Previous 199869 Revisions Next

r36953 Sunday 5th April, 2015 at 13:56:19 UTC by Vasantha Crabb
CoreAudio sound output good enough to be default on OSX
[src/osd/modules/lib]osdobj_common.c
[src/osd/modules/sound]coreaudio_sound.c

trunk/src/osd/modules/lib/osdobj_common.c
r245464r245465
163163   REGISTER_MODULE(m_mod_man, FONT_NONE);
164164
165165   REGISTER_MODULE(m_mod_man, SOUND_DSOUND);
166   REGISTER_MODULE(m_mod_man, SOUND_COREAUDIO);
166167   REGISTER_MODULE(m_mod_man, SOUND_JS);
167168   REGISTER_MODULE(m_mod_man, SOUND_SDL);
168   REGISTER_MODULE(m_mod_man, SOUND_COREAUDIO);
169169   REGISTER_MODULE(m_mod_man, SOUND_NONE);
170170
171171#ifdef SDLMAME_MACOSX
trunk/src/osd/modules/sound/coreaudio_sound.c
r245464r245465
2626      osd_module(OSD_SOUND_PROVIDER, "coreaudio"),
2727      sound_module(),
2828      m_open(false),
29      m_attenuation(0),
30      m_scale(128),
3129      m_sample_bytes(0),
3230      m_headroom(0),
3331      m_buffer_size(0),
r245464r245465
3533      m_playpos(0),
3634      m_writepos(0),
3735      m_in_underrun(false),
36      m_scale(128),
3837      m_overflows(0),
3938      m_underflows(0)
4039   {
r245464r245465
8786
8887   bool        m_open;
8988   AudioUnit   m_output;
90   int         m_attenuation;
91   INT32       m_scale;
9289   UINT32      m_sample_bytes;
9390   UINT32      m_headroom;
9491   UINT32      m_buffer_size;
r245464r245465
9693   UINT32      m_playpos;
9794   UINT32      m_writepos;
9895   bool        m_in_underrun;
96   INT32       m_scale;
9997   unsigned    m_overflows;
10098   unsigned    m_underflows;
10199};
r245464r245465
163161   m_sample_bytes = format.mBytesPerFrame;
164162
165163   // Allocate buffer
166   m_headroom = (clamped_latency() * sample_rate() / 40) * m_sample_bytes;
167   m_buffer_size = MAX(sample_rate() * m_sample_bytes * (clamped_latency() + 2) / 40, m_sample_bytes * 256);
164   m_headroom = m_sample_bytes * (clamped_latency() * sample_rate() / 40);
165   m_buffer_size = m_sample_bytes * MAX(sample_rate() * (clamped_latency() + 3) / 40, 256);
168166   m_buffer = global_alloc_array_clear(INT8, m_buffer_size);
169167   if (!m_buffer)
170168   {
r245464r245465
175173   m_playpos = 0;
176174   m_writepos = m_headroom;
177175   m_in_underrun = false;
176   m_scale = 128;
178177   m_overflows = m_underflows = 0;
179178
180179   // Initialise and start
r245464r245465
253252
254253void sound_coreaudio::set_mastervolume(int attenuation)
255254{
256   m_attenuation = MAX(MIN(attenuation, 0), -32);
257   m_scale = (-32 == m_attenuation) ? 0 : (INT32)(pow(10.0, m_attenuation / 20.0) * 128);
255   int const clamped_attenuation = MAX(MIN(attenuation, 0), -32);
256   m_scale = (-32 == clamped_attenuation) ? 0 : (INT32)(pow(10.0, clamped_attenuation / 20.0) * 128);
258257}
259258
260259


Previous 199869 Revisions Next


© 1997-2024 The MAME Team