Added frequency parameter.

This commit is contained in:
Toni Wilen 2015-01-01 13:21:22 +02:00
parent a9cbaa4a89
commit ba3cf5896b
5 changed files with 17 additions and 9 deletions

View File

@ -26,6 +26,7 @@
#include "mp3decoder.h"
#include "cda_play.h"
#include "memory.h"
#include "audio.h"
#ifdef RETROPLATFORM
#include "rp.h"
#endif
@ -424,6 +425,11 @@ static void audio_unpack (struct cdunit *cdu, struct cdtoc *t)
Sleep (10);
}
void audio_state_cda(int ch)
{
audio_state_cda_state(ch, 0, 0);
}
static void *cdda_play_func (void *v)
{
int cdda_pos;
@ -446,7 +452,7 @@ static void *cdda_play_func (void *v)
bufon[0] = bufon[1] = 0;
bufnum = 0;
cda_audio *cda = new cda_audio (num_sectors, 2352);
cda_audio *cda = new cda_audio (num_sectors, 2352, 44100);
while (cdu->cdda_play > 0) {

View File

@ -1538,7 +1538,7 @@ addrbank *cd32_fmv_init (uaecptr start)
kjmp2_init(&mp2);
if (!cda) {
cda = new cda_audio(PCM_SECTORS, KJMP2_SAMPLES_PER_FRAME * 4);
cda = new cda_audio(PCM_SECTORS, KJMP2_SAMPLES_PER_FRAME * 4, 44100);
l64111_setvolume();
}
if (!mpeg_decoder) {

View File

@ -502,7 +502,7 @@ static void *cdda_play (void *v)
bufnum = 0;
buffered = 0;
cda_audio *cda = new cda_audio (num_sectors, 2352);
cda_audio *cda = new cda_audio (num_sectors, 2352, 44100);
while (ciw->cdda_play > 0) {

View File

@ -52,7 +52,7 @@ cda_audio::~cda_audio()
}
}
cda_audio::cda_audio(int num_sectors, int sectorsize)
cda_audio::cda_audio(int num_sectors, int sectorsize, int samplerate)
{
active = false;
playing = false;
@ -69,7 +69,7 @@ cda_audio::cda_audio(int num_sectors, int sectorsize)
wav.cbSize = 0;
wav.nChannels = 2;
wav.nSamplesPerSec = 44100;
wav.nSamplesPerSec = samplerate;
wav.wBitsPerSample = 16;
wav.nBlockAlign = wav.wBitsPerSample / 8 * wav.nChannels;
wav.nAvgBytesPerSec = wav.nBlockAlign * wav.nSamplesPerSec;
@ -216,9 +216,11 @@ bool cda_audio::play(int bufnum)
return true;
#else
uae_s16 *p = (uae_s16*)(buffers[bufnum]);
for (int i = 0; i < num_sectors * sectorsize / 4; i++) {
p[i * 2 + 0] = p[i * 2 + 0] * volume[0] / 32768;
p[i * 2 + 1] = p[i * 2 + 1] * volume[1] / 32768;
if (volume[0] != 32768 || volume[1] != 32768) {
for (int i = 0; i < num_sectors * sectorsize / 4; i++) {
p[i * 2 + 0] = p[i * 2 + 0] * volume[0] / 32768;
p[i * 2 + 1] = p[i * 2 + 1] * volume[1] / 32768;
}
}
MMRESULT mmr = waveOutWrite (wavehandle, &whdr[bufnum], sizeof (WAVEHDR));
if (mmr != MMSYSERR_NOERROR) {

View File

@ -24,7 +24,7 @@ private:
public:
uae_u8 *buffers[2];
cda_audio(int num_sectors, int sectorsize);
cda_audio(int num_sectors, int sectorsize, int samplerate);
~cda_audio();
void setvolume(int master, int left, int right);
bool play(int bufnum);