mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
Merge pull request #2028 from intealls/master
Fix issues on 32-bit builds and clamp latency
This commit is contained in:
commit
282a7e76c3
@ -59,7 +59,7 @@ private:
|
||||
|
||||
audio_buffer(int size, int reserve) : size(size + reserve), reserve(reserve) {
|
||||
playpos = writepos = 0;
|
||||
buf = new T[size]();
|
||||
buf = new T[this->size];
|
||||
}
|
||||
|
||||
~audio_buffer() { delete[] buf; }
|
||||
@ -130,6 +130,12 @@ private:
|
||||
}
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
LATENCY_MIN = 1,
|
||||
LATENCY_MAX = 5,
|
||||
};
|
||||
|
||||
int callback(s16* output_buffer, size_t number_of_frames);
|
||||
static int _callback(const void*,
|
||||
void *output_buffer,
|
||||
@ -186,6 +192,7 @@ int sound_pa::init(osd_options const &options)
|
||||
m_skip_threshold_ticks = 0;
|
||||
m_osd_tps = osd_ticks_per_second();
|
||||
m_buffer_min_ct = INT_MAX;
|
||||
m_audio_latency = std::min<int>(std::max<int>(m_audio_latency, LATENCY_MIN), LATENCY_MAX);
|
||||
|
||||
try {
|
||||
m_ab = new audio_buffer<s16>(m_sample_rate, 2);
|
||||
@ -415,12 +422,15 @@ void sound_pa::exit()
|
||||
osd_printf_error("PortAudio: Error writing log.\n");
|
||||
#endif
|
||||
|
||||
Pa_StopStream(m_pa_stream);
|
||||
err = Pa_Terminate();
|
||||
err = Pa_StopStream(m_pa_stream); if (err != paNoError) goto error;
|
||||
err = Pa_CloseStream(m_pa_stream); if (err != paNoError) goto error;
|
||||
|
||||
error:
|
||||
if (err != paNoError)
|
||||
osd_printf_error("PortAudio error: %s\n", Pa_GetErrorText(err));
|
||||
|
||||
Pa_Terminate();
|
||||
|
||||
delete m_ab;
|
||||
|
||||
if (m_overflows || m_underflows)
|
||||
|
Loading…
Reference in New Issue
Block a user