diff options
Diffstat (limited to 'src/mame/audio/channelf.cpp')
-rw-r--r-- | src/mame/audio/channelf.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/mame/audio/channelf.cpp b/src/mame/audio/channelf.cpp index 5003f28ae3a..ec4971d35df 100644 --- a/src/mame/audio/channelf.cpp +++ b/src/mame/audio/channelf.cpp @@ -30,7 +30,7 @@ void channelf_sound_device::device_start() { int rate; - m_channel = stream_alloc_legacy(0, 1, machine().sample_rate()); + m_channel = stream_alloc(0, 1, machine().sample_rate()); rate = machine().sample_rate(); /* @@ -67,19 +67,18 @@ void channelf_sound_device::device_start() } //------------------------------------------------- -// sound_stream_update_legacy - handle a stream update +// sound_stream_update - handle a stream update //------------------------------------------------- -void channelf_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) +void channelf_sound_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) { uint32_t mask = 0, target = 0; - stream_sample_t *buffer = outputs[0]; - stream_sample_t *sample = buffer; + auto &buffer = outputs[0]; switch( m_sound_mode ) { case 0: /* sound off */ - memset(buffer,0,sizeof(*buffer)*samples); + buffer.fill(0); return; case 1: /* high tone (2V) - 1000Hz */ @@ -96,12 +95,12 @@ void channelf_sound_device::sound_stream_update_legacy(sound_stream &stream, str break; } - while (samples-- > 0) + for (int sampindex = 0; sampindex < buffer.samples(); sampindex++) { if ((m_forced_ontime > 0) || ((m_sample_counter & mask) == target)) // change made for improved sound - *sample++ = m_envelope; + buffer.put_int(sampindex, m_envelope, 32768); else - *sample++ = 0; + buffer.put(sampindex, 0); m_sample_counter += m_incr; m_envelope *= m_decay_mult; if (m_forced_ontime > 0) // added for improved sound |