summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/milton6805.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/milton6805.cpp')
-rw-r--r--src/mame/drivers/milton6805.cpp23
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;
}