mirror of
https://github.com/LIV2/WinUAE.git
synced 2025-12-06 00:12:52 +00:00
Added frequency parameter.
This commit is contained in:
parent
a9cbaa4a89
commit
ba3cf5896b
@ -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) {
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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) {
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user