diff options
Diffstat (limited to 'src/mame/drivers/milton6805.cpp')
-rw-r--r-- | src/mame/drivers/milton6805.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/mame/drivers/milton6805.cpp b/src/mame/drivers/milton6805.cpp index efda2a0886d..1377e8d85a2 100644 --- a/src/mame/drivers/milton6805.cpp +++ b/src/mame/drivers/milton6805.cpp @@ -90,7 +90,7 @@ public: protected: virtual void device_start() override; - virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; + virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override; private: sound_stream *m_stream; @@ -108,25 +108,24 @@ milton_filter_device::milton_filter_device(const machine_config &mconfig, const void milton_filter_device::device_start() { - m_stream = stream_alloc_legacy(1, 1, machine().sample_rate()); + m_stream = stream_alloc(1, 1, machine().sample_rate()); m_led_out.resolve(); } -void milton_filter_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) +void milton_filter_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) { - int level = 0; + stream_buffer::sample_t level = 0; - for (int i = 0; i < samples; i++) - { - level += abs(inputs[0][i]); - outputs[0][i] = inputs[0][i]; - } + for (int i = 0; i < outputs[0].samples(); i++) + level += fabsf(inputs[0].get(i)); + + outputs[0] = inputs[0]; - if (samples > 0) - level /= samples; + if (outputs[0].samples() > 0) + level /= outputs[0].samples(); // 2 leds connected to the audio circuit - const int threshold = 1500; + const stream_buffer::sample_t threshold = 1500.0 / 32768.0; m_led_out = (level > threshold) ? 1 : 0; } |