diff options
author | Aaron Giles <aaronsgiles@users.noreply.github.com> | 2020-09-13 10:18:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-13 10:18:44 -0700 |
commit | c1bd56f0d318c71faac757d89c910c2682af6651 (patch) | |
tree | 9f4bbe78f74401a13603d89b6314c67fbd68a3f5 /src/mame/audio | |
parent | a3572727bd862176aa7458a84e2e9664c9d3f918 (diff) |
Significant internal changes to sound streams (#7169)
Significant internal changes to sound streams:
Abstracted buffers of sound data into an internal stream_buffer class, with helper classes read_stream_view and write_stream_view which offer readable/writable "views" into the buffers
Internal sound calculations are all done using stream_buffer::sample_t, which is a 32-bit float; existing callbacks are supported through an adapter that converts to/from signed 32-bit integers
Improved behavior of dynamic stream sample rate changes to resample a short runway of data to preserve continuity across transitions
Created a new stream update callback which passes a std::vector of read_stream_views for inputs, and a std::vector of write_stream_views for outputs
Updated core mixer and speaker devices to the new stream update callback
Updated the following sound cores to the new stream update callback: ay8910, dac, k054539, msm5205, namco, netlist, okim6295, pokey, samples, sn76496, sp0250, tms5220, tms57002, upd7759, vgm_visualizer, volt_reg
Changed existing stream update callback to make inputs explicitly const and the output pointers const as well, since they are re-used across calls; fixed several engines that violated this rule
Sound_manager::stream_alloc can no longer automatically connect to a device's sound_stream_update callback; instead, the stream_alloc() on the sound_device_interface should be called; updated many violators of this rule
Streams can be created with SAMPLE_RATE_OUTPUT_ADAPTIVE, which dynamically tracks the sample rate of its first downstream output, or with SAMPLE_RATE_INPUT_ADAPTIVE, which tracks the sample rate of its first input
Changed resampling to be a separate sound_stream that is invoked as needed, opening the path for selectable resampling implementations
Added a flags parameter to the new stream allocation method that allows you to specify a that input streams should not be resampled
Exposed stream_input and stream_output classes directly, simplifying access to user gains and stream names
Added a simple dynamic compressor to sound_manager to provide nicer results when overdriven sound happens; compression does not affect speaker_report results
Improved verbose speaker_report to print a graph of peaks over time
More aggressive debugging enabled for now even in release builds (should be disabled prior to next release) via SOUND_DEBUG define in sound.h; report any assertions for fixing
Diffstat (limited to 'src/mame/audio')
81 files changed, 197 insertions, 195 deletions
diff --git a/src/mame/audio/arcadia.cpp b/src/mame/audio/arcadia.cpp index aa0bc4b8616..19adb9fac4e 100644 --- a/src/mame/audio/arcadia.cpp +++ b/src/mame/audio/arcadia.cpp @@ -59,7 +59,7 @@ arcadia_sound_device::arcadia_sound_device(const machine_config &mconfig, const //------------------------------------------------- void arcadia_sound_device::device_start() { - m_channel = machine().sound().stream_alloc(*this, 0, 1, UVI_PAL*OSAMP); + m_channel = stream_alloc_legacy(0, 1, UVI_PAL*OSAMP); m_lfsr = LFSR_INIT; m_tval = 1; logerror("arcadia_sound start\n"); @@ -76,11 +76,11 @@ void arcadia_sound_device::device_reset() } //------------------------------------------------- -// sound_stream_update - handle update requests for +// sound_stream_update_legacy - handle update requests for // our sound stream //------------------------------------------------- -void arcadia_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void arcadia_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int i; stream_sample_t *buffer = outputs[0]; diff --git a/src/mame/audio/arcadia.h b/src/mame/audio/arcadia.h index 3452b755d5d..de67b71705d 100644 --- a/src/mame/audio/arcadia.h +++ b/src/mame/audio/arcadia.h @@ -21,7 +21,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; sound_stream *m_channel; uint8_t m_reg[3]; diff --git a/src/mame/audio/channelf.cpp b/src/mame/audio/channelf.cpp index 8823294c75e..5003f28ae3a 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(0, 1, machine().sample_rate()); + m_channel = stream_alloc_legacy(0, 1, machine().sample_rate()); rate = machine().sample_rate(); /* @@ -67,10 +67,10 @@ void channelf_sound_device::device_start() } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void channelf_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void channelf_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { uint32_t mask = 0, target = 0; stream_sample_t *buffer = outputs[0]; diff --git a/src/mame/audio/channelf.h b/src/mame/audio/channelf.h index 26e3b85b52d..36c98aa47ed 100644 --- a/src/mame/audio/channelf.h +++ b/src/mame/audio/channelf.h @@ -20,7 +20,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: // internal state sound_stream *m_channel; diff --git a/src/mame/audio/cheekyms.cpp b/src/mame/audio/cheekyms.cpp index e0c777a3e30..1ff076de3c0 100644 --- a/src/mame/audio/cheekyms.cpp +++ b/src/mame/audio/cheekyms.cpp @@ -55,7 +55,7 @@ void cheekyms_audio_device::device_add_mconfig(machine_config &config) NETLIST_LOGIC_INPUT(config, "sound_nl:pest_dies", "I_PEST_DIES.IN", 0); NETLIST_LOGIC_INPUT(config, "sound_nl:coin_extra", "I_COIN_EXTRA.IN", 0); - NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "VR1.2").set_mult_offset(30000.0 * 10.0, 0.0); + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "VR1.2").set_mult_offset(30000.0 * 10.0 / 32768.0, 0.0); } diff --git a/src/mame/audio/cinemat.cpp b/src/mame/audio/cinemat.cpp index c7b75f31311..4b9168aa949 100644 --- a/src/mame/audio/cinemat.cpp +++ b/src/mame/audio/cinemat.cpp @@ -145,7 +145,7 @@ void cinemat_audio_device_base::input_set(int bit, int state) DEFINE_DEVICE_TYPE(SPACE_WARS_AUDIO, spacewar_audio_device, "spacewar_audio", "Space Wars Sound Board") spacewar_audio_device::spacewar_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, SPACE_WARS_AUDIO, tag, owner, clock, 0x1f, NETLIST_NAME(spacewar), 150000.0) + : cinemat_audio_device_base(mconfig, SPACE_WARS_AUDIO, tag, owner, clock, 0x1f, NETLIST_NAME(spacewar), 4.5) { } @@ -160,7 +160,7 @@ spacewar_audio_device::spacewar_audio_device(const machine_config &mconfig, cons DEFINE_DEVICE_TYPE(BARRIER_AUDIO, barrier_audio_device, "barrier_audio", "Barrier Sound Board") barrier_audio_device::barrier_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, BARRIER_AUDIO, tag, owner, clock, 0x07, NETLIST_NAME(barrier), 200000.0) + : cinemat_audio_device_base(mconfig, BARRIER_AUDIO, tag, owner, clock, 0x07, NETLIST_NAME(barrier), 6.1) { } @@ -175,7 +175,7 @@ barrier_audio_device::barrier_audio_device(const machine_config &mconfig, const DEFINE_DEVICE_TYPE(SPEED_FREAK_AUDIO, speedfrk_audio_device, "speedfrk_audio", "Speed Freak Sound Board") speedfrk_audio_device::speedfrk_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, SPEED_FREAK_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(speedfrk), 12000.0) + : cinemat_audio_device_base(mconfig, SPEED_FREAK_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(speedfrk), 0.35) { } @@ -190,7 +190,7 @@ speedfrk_audio_device::speedfrk_audio_device(const machine_config &mconfig, cons DEFINE_DEVICE_TYPE(STAR_HAWK_AUDIO, starhawk_audio_device, "starhawk_audio", "Star Hawk Sound Board") starhawk_audio_device::starhawk_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, STAR_HAWK_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(starhawk), 50000.0) + : cinemat_audio_device_base(mconfig, STAR_HAWK_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(starhawk), 1.5) { } @@ -205,7 +205,7 @@ starhawk_audio_device::starhawk_audio_device(const machine_config &mconfig, cons DEFINE_DEVICE_TYPE(SUNDANCE_AUDIO, sundance_audio_device, "sundance_audio", "Sundance Sound Board") sundance_audio_device::sundance_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, SUNDANCE_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(sundance), 45000.0) + : cinemat_audio_device_base(mconfig, SUNDANCE_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(sundance), 1.0) { } @@ -220,7 +220,7 @@ sundance_audio_device::sundance_audio_device(const machine_config &mconfig, cons DEFINE_DEVICE_TYPE(TAIL_GUNNER_AUDIO, tailg_audio_device, "tailg_audio", "Tail Gunner Sound Board") tailg_audio_device::tailg_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, TAIL_GUNNER_AUDIO, tag, owner, clock, 0x1f, NETLIST_NAME(tailg), 75000.0) + : cinemat_audio_device_base(mconfig, TAIL_GUNNER_AUDIO, tag, owner, clock, 0x1f, NETLIST_NAME(tailg), 2.2) { } @@ -235,7 +235,7 @@ tailg_audio_device::tailg_audio_device(const machine_config &mconfig, const char DEFINE_DEVICE_TYPE(WARRIOR_AUDIO, warrior_audio_device, "warrior_audio", "Warrior Sound Board") warrior_audio_device::warrior_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, WARRIOR_AUDIO, tag, owner, clock, 0x1f, NETLIST_NAME(warrior), 50000.0) + : cinemat_audio_device_base(mconfig, WARRIOR_AUDIO, tag, owner, clock, 0x1f, NETLIST_NAME(warrior), 1.5) { } @@ -250,7 +250,7 @@ warrior_audio_device::warrior_audio_device(const machine_config &mconfig, const DEFINE_DEVICE_TYPE(ARMOR_ATTACK_AUDIO, armora_audio_device, "armora_audio", "Armor Atrack Sound Board") armora_audio_device::armora_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, ARMOR_ATTACK_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(armora), 5000.0) + : cinemat_audio_device_base(mconfig, ARMOR_ATTACK_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(armora), 0.15) { } @@ -265,7 +265,7 @@ armora_audio_device::armora_audio_device(const machine_config &mconfig, const ch DEFINE_DEVICE_TYPE(RIPOFF_AUDIO, ripoff_audio_device, "ripoff_audio", "Rip Off Sound Board") ripoff_audio_device::ripoff_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, RIPOFF_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(ripoff), 20000.0) + : cinemat_audio_device_base(mconfig, RIPOFF_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(ripoff), 0.61) { } @@ -280,7 +280,7 @@ ripoff_audio_device::ripoff_audio_device(const machine_config &mconfig, const ch DEFINE_DEVICE_TYPE(STAR_CASTLE_AUDIO, starcas_audio_device, "starcas_audio", "Star Castle Sound Board") starcas_audio_device::starcas_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, STAR_CASTLE_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(starcas), 5000.0) + : cinemat_audio_device_base(mconfig, STAR_CASTLE_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(starcas), 0.15) { } @@ -295,7 +295,7 @@ starcas_audio_device::starcas_audio_device(const machine_config &mconfig, const DEFINE_DEVICE_TYPE(SOLAR_QUEST_AUDIO, solarq_audio_device, "solarq_audio", "Solar Quest Sound Board") solarq_audio_device::solarq_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, SOLAR_QUEST_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(solarq), 5000.0) + : cinemat_audio_device_base(mconfig, SOLAR_QUEST_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(solarq), 0.15) { } @@ -310,7 +310,7 @@ solarq_audio_device::solarq_audio_device(const machine_config &mconfig, const ch DEFINE_DEVICE_TYPE(BOXING_BUGS_AUDIO, boxingb_audio_device, "boxingb_audio", "Boxing Bugs Sound Board") boxingb_audio_device::boxingb_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, BOXING_BUGS_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(boxingb), 5000.0) + : cinemat_audio_device_base(mconfig, BOXING_BUGS_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(boxingb), 0.15) { } @@ -325,7 +325,7 @@ boxingb_audio_device::boxingb_audio_device(const machine_config &mconfig, const DEFINE_DEVICE_TYPE(WAR_OF_THE_WORLDS_AUDIO, wotw_audio_device, "wotw_audio", "War of the Worlds Sound Board") wotw_audio_device::wotw_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cinemat_audio_device_base(mconfig, WAR_OF_THE_WORLDS_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(wotw), 5000.0) + : cinemat_audio_device_base(mconfig, WAR_OF_THE_WORLDS_AUDIO, tag, owner, clock, 0x9f, NETLIST_NAME(wotw), 0.15) { } diff --git a/src/mame/audio/cmi01a.cpp b/src/mame/audio/cmi01a.cpp index 8a45582d2fd..dbb180c2247 100644 --- a/src/mame/audio/cmi01a.cpp +++ b/src/mame/audio/cmi01a.cpp @@ -132,7 +132,7 @@ void cmi01a_device::device_add_mconfig(machine_config &config) } -void cmi01a_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void cmi01a_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { if (m_run) { @@ -175,7 +175,7 @@ void cmi01a_device::device_start() m_zx_timer->adjust(attotime::never); m_eosi_timer->adjust(attotime::never); - m_stream = stream_alloc(0, 1, 44100); + m_stream = stream_alloc_legacy(0, 1, 44100); m_ptm->set_external_clocks(clock() / 8, clock() / 4, clock() / 4); diff --git a/src/mame/audio/cmi01a.h b/src/mame/audio/cmi01a.h index 61e294111db..7e5da0b56a8 100644 --- a/src/mame/audio/cmi01a.h +++ b/src/mame/audio/cmi01a.h @@ -34,7 +34,7 @@ public: void write(offs_t offset, uint8_t data); uint8_t read(offs_t offset); - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; protected: virtual void device_resolve_objects() override; diff --git a/src/mame/audio/cps3.cpp b/src/mame/audio/cps3.cpp index f800aa0e598..aa7eb8340f0 100644 --- a/src/mame/audio/cps3.cpp +++ b/src/mame/audio/cps3.cpp @@ -39,7 +39,7 @@ cps3_sound_device::cps3_sound_device(const machine_config &mconfig, const char * void cps3_sound_device::device_start() { /* Allocate the stream */ - m_stream = stream_alloc(0, 2, clock() / 384); + m_stream = stream_alloc_legacy(0, 2, clock() / 384); save_item(NAME(m_key)); for (int i = 0; i < 16; i++) @@ -52,10 +52,10 @@ void cps3_sound_device::device_start() //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void cps3_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void cps3_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { /* Clear the buffers */ memset(outputs[0], 0, samples*sizeof(*outputs[0])); diff --git a/src/mame/audio/cps3.h b/src/mame/audio/cps3.h index 482b156a755..4e3fe471c8d 100644 --- a/src/mame/audio/cps3.h +++ b/src/mame/audio/cps3.h @@ -46,7 +46,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: sound_stream *m_stream; diff --git a/src/mame/audio/dai_snd.cpp b/src/mame/audio/dai_snd.cpp index 72dd3f75b41..37004da5644 100644 --- a/src/mame/audio/dai_snd.cpp +++ b/src/mame/audio/dai_snd.cpp @@ -33,7 +33,7 @@ dai_sound_device::dai_sound_device(const machine_config &mconfig, const char *ta void dai_sound_device::device_start() { - m_mixer_channel = machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate()); + m_mixer_channel = stream_alloc_legacy(0, 2, machine().sample_rate()); } //------------------------------------------------- @@ -115,11 +115,11 @@ WRITE_LINE_MEMBER(dai_sound_device::set_input_ch2) } //------------------------------------------------- -// sound_stream_update - handle update requests for +// sound_stream_update_legacy - handle update requests for // our sound stream //------------------------------------------------- -void dai_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void dai_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *sample_left = outputs[0]; stream_sample_t *sample_right = outputs[1]; diff --git a/src/mame/audio/dai_snd.h b/src/mame/audio/dai_snd.h index d82bc000d8a..cea0e1c6c71 100644 --- a/src/mame/audio/dai_snd.h +++ b/src/mame/audio/dai_snd.h @@ -27,7 +27,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: sound_stream * m_mixer_channel; diff --git a/src/mame/audio/dsbz80.cpp b/src/mame/audio/dsbz80.cpp index ae0e4b216a4..7643face54b 100644 --- a/src/mame/audio/dsbz80.cpp +++ b/src/mame/audio/dsbz80.cpp @@ -85,7 +85,7 @@ void dsbz80_device::device_start() m_rxd_handler.resolve_safe(); uint8_t *rom_base = machine().root_device().memregion("mpeg")->base(); decoder = new mpeg_audio(rom_base, mpeg_audio::L2, false, 0); - machine().sound().stream_alloc(*this, 0, 2, 32000); + stream_alloc_legacy(0, 2, 32000); } //------------------------------------------------- @@ -232,7 +232,7 @@ void dsbz80_device::mpeg_stereo_w(uint8_t data) mp_pan = data & 3; // 0 = stereo, 1 = left on both channels, 2 = right on both channels } -void dsbz80_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void dsbz80_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *out_l = outputs[0]; stream_sample_t *out_r = outputs[1]; diff --git a/src/mame/audio/dsbz80.h b/src/mame/audio/dsbz80.h index 0c62482100b..92e0c4f3f2f 100644 --- a/src/mame/audio/dsbz80.h +++ b/src/mame/audio/dsbz80.h @@ -37,7 +37,7 @@ protected: virtual void device_start() override; virtual void device_reset() override; virtual void device_add_mconfig(machine_config &config) override; - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: mpeg_audio *decoder; diff --git a/src/mame/audio/elan_eu3a05.cpp b/src/mame/audio/elan_eu3a05.cpp index d11039df082..39ab90a08fb 100644 --- a/src/mame/audio/elan_eu3a05.cpp +++ b/src/mame/audio/elan_eu3a05.cpp @@ -54,7 +54,7 @@ void elan_eu3a05_sound_device::map(address_map &map) void elan_eu3a05_sound_device::device_start() { m_space_read_cb.resolve_safe(0); - m_stream = stream_alloc(0, 1, 8000); + m_stream = stream_alloc_legacy(0, 1, 8000); m_sound_end_cb.resolve_all_safe(); @@ -92,10 +92,10 @@ void elan_eu3a05_sound_device::device_reset() } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void elan_eu3a05_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void elan_eu3a05_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { // reset the output stream memset(outputs[0], 0, samples * sizeof(*outputs[0])); diff --git a/src/mame/audio/elan_eu3a05.h b/src/mame/audio/elan_eu3a05.h index ddd6c370033..c9ef2e83ab3 100644 --- a/src/mame/audio/elan_eu3a05.h +++ b/src/mame/audio/elan_eu3a05.h @@ -30,7 +30,7 @@ protected: virtual void device_reset() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) 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 space_config_vector memory_space_config() const override; const address_space_config m_space_config; diff --git a/src/mame/audio/exidy.cpp b/src/mame/audio/exidy.cpp index 55dda4ea22b..8220c3e1af7 100644 --- a/src/mame/audio/exidy.cpp +++ b/src/mame/audio/exidy.cpp @@ -180,7 +180,7 @@ void exidy_sound_device::common_sh_start() m_sh6840_clocks_per_sample = (int)(SH6840_CLOCK.dvalue() / (double)sample_rate * (double)(1 << 24)); /* allocate the stream */ - m_stream = machine().sound().stream_alloc(*this, 0, 1, sample_rate); + m_stream = stream_alloc_legacy(0, 1, sample_rate); sh6840_register_state_globals(); } @@ -239,10 +239,10 @@ void exidy_sound_device::device_reset() } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void exidy_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void exidy_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { sh6840_timer_channel *sh6840_timer = m_sh6840_timer; diff --git a/src/mame/audio/exidy.h b/src/mame/audio/exidy.h index d3e049f7f2b..86ed7b145cd 100644 --- a/src/mame/audio/exidy.h +++ b/src/mame/audio/exidy.h @@ -54,7 +54,7 @@ protected: void sh6840_register_state_globals(); // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) 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 stream_sample_t generate_music_sample(); static inline void sh6840_apply_clock(sh6840_timer_channel *t, int clocks); diff --git a/src/mame/audio/exidy440.cpp b/src/mame/audio/exidy440.cpp index fb221df1e4b..a4ca2d10339 100644 --- a/src/mame/audio/exidy440.cpp +++ b/src/mame/audio/exidy440.cpp @@ -146,7 +146,7 @@ void exidy440_sound_device::device_start() m_channel_frequency[3] = clock()/2; /* get stream channels */ - m_stream = machine().sound().stream_alloc(*this, 0, 2, clock()); + m_stream = stream_alloc_legacy(0, 2, clock()); /* allocate the sample cache */ length = m_samples.bytes() * 16 + MAX_CACHE_ENTRIES * sizeof(sound_cache_entry); @@ -836,10 +836,10 @@ void exidy440_sound_device::sound_banks_w(offs_t offset, uint8_t data) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void exidy440_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void exidy440_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int ch; diff --git a/src/mame/audio/exidy440.h b/src/mame/audio/exidy440.h index 826ed3467ea..9f8861bdfe3 100644 --- a/src/mame/audio/exidy440.h +++ b/src/mame/audio/exidy440.h @@ -29,7 +29,7 @@ protected: virtual void device_stop() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: void exidy440_audio_map(address_map &map); diff --git a/src/mame/audio/flower.cpp b/src/mame/audio/flower.cpp index d708bc1fd35..4ade0d864a9 100644 --- a/src/mame/audio/flower.cpp +++ b/src/mame/audio/flower.cpp @@ -63,7 +63,7 @@ flower_sound_device::flower_sound_device(const machine_config &mconfig, const ch void flower_sound_device::device_start() { m_iospace = &space(AS_IO); - m_stream = machine().sound().stream_alloc(*this, 0, 1, clock()/2); + m_stream = stream_alloc_legacy(0, 1, clock()/2); m_mixer_buffer = make_unique_clear<short[]>(clock()/2); make_mixer_table(MAX_VOICES, defgain); @@ -127,7 +127,7 @@ void flower_sound_device::device_reset() } } -void flower_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void flower_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *buffer = outputs[0]; short *mix; diff --git a/src/mame/audio/flower.h b/src/mame/audio/flower.h index d595a2dfa6c..8fad33679c6 100644 --- a/src/mame/audio/flower.h +++ b/src/mame/audio/flower.h @@ -39,7 +39,7 @@ protected: virtual void device_start() override; virtual void device_reset() override; virtual space_config_vector memory_space_config() const override; - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; address_space *m_iospace; private: diff --git a/src/mame/audio/geebee.cpp b/src/mame/audio/geebee.cpp index 037a398dc3b..63859916d7c 100644 --- a/src/mame/audio/geebee.cpp +++ b/src/mame/audio/geebee.cpp @@ -42,7 +42,7 @@ void geebee_sound_device::device_start() m_decay[0x7fff - i] = (int16_t) (0x7fff/exp(1.0*i/4096)); /* 1V = HSYNC = 18.432MHz / 3 / 2 / 384 = 8000Hz */ - m_channel = machine().sound().stream_alloc(*this, 0, 1, clock() / 3 / 2 / 384); + m_channel = stream_alloc_legacy(0, 1, clock() / 3 / 2 / 384); m_vcount = 0; m_volume_timer = timer_alloc(TIMER_VOLUME_DECAY); @@ -103,10 +103,10 @@ void geebee_sound_device::sound_w(u8 data) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void geebee_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void geebee_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *buffer = outputs[0]; diff --git a/src/mame/audio/geebee.h b/src/mame/audio/geebee.h index 56fde3cacf2..1cca0fc6dd0 100644 --- a/src/mame/audio/geebee.h +++ b/src/mame/audio/geebee.h @@ -22,7 +22,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) 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 device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; diff --git a/src/mame/audio/gomoku.cpp b/src/mame/audio/gomoku.cpp index 197b2d77827..6aeb288f6db 100644 --- a/src/mame/audio/gomoku.cpp +++ b/src/mame/audio/gomoku.cpp @@ -52,7 +52,7 @@ void gomoku_sound_device::device_start() int ch; // get stream channels - m_stream = stream_alloc(0, 1, clock()); + m_stream = stream_alloc_legacy(0, 1, clock()); // allocate a pair of buffers to mix into - 1 second's worth should be more than enough m_mixer_buffer = std::make_unique<short[]>(2 * clock()); @@ -87,10 +87,10 @@ void gomoku_sound_device::device_start() //------------------------------------------------- -// sound_stream_update - handle a stream update in mono +// sound_stream_update_legacy - handle a stream update in mono //------------------------------------------------- -void gomoku_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void gomoku_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *buffer = outputs[0]; sound_channel *voice; diff --git a/src/mame/audio/gomoku.h b/src/mame/audio/gomoku.h index 5947bfc40b8..75de8a2c09c 100644 --- a/src/mame/audio/gomoku.h +++ b/src/mame/audio/gomoku.h @@ -23,7 +23,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: void make_mixer_table(int voices, int gain); diff --git a/src/mame/audio/gridlee.cpp b/src/mame/audio/gridlee.cpp index ad002ddf731..429518b39d0 100644 --- a/src/mame/audio/gridlee.cpp +++ b/src/mame/audio/gridlee.cpp @@ -43,17 +43,17 @@ gridlee_sound_device::gridlee_sound_device(const machine_config &mconfig, const void gridlee_sound_device::device_start() { /* allocate the stream */ - m_stream = stream_alloc(0, 1, machine().sample_rate()); + m_stream = stream_alloc_legacy(0, 1, machine().sample_rate()); m_freq_to_step = (double)(1 << 24) / (double)machine().sample_rate(); } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void gridlee_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void gridlee_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *buffer = outputs[0]; diff --git a/src/mame/audio/hyprolyb.cpp b/src/mame/audio/hyprolyb.cpp index d2bd798286e..77ff8034ae5 100644 --- a/src/mame/audio/hyprolyb.cpp +++ b/src/mame/audio/hyprolyb.cpp @@ -82,11 +82,11 @@ void hyprolyb_adpcm_device::vck_callback( int st ) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void hyprolyb_adpcm_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void hyprolyb_adpcm_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { // should never get here - fatalerror("sound_stream_update called; not applicable to legacy sound devices\n"); + fatalerror("sound_stream_update_legacy called; not applicable to legacy sound devices\n"); } diff --git a/src/mame/audio/hyprolyb.h b/src/mame/audio/hyprolyb.h index b3123c3cd52..ac2687b40e4 100644 --- a/src/mame/audio/hyprolyb.h +++ b/src/mame/audio/hyprolyb.h @@ -28,7 +28,7 @@ protected: virtual void device_reset() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: // internal state diff --git a/src/mame/audio/irem.cpp b/src/mame/audio/irem.cpp index 24f3fbefa32..b10a97a2200 100644 --- a/src/mame/audio/irem.cpp +++ b/src/mame/audio/irem.cpp @@ -457,10 +457,10 @@ void m62_audio_device::device_add_mconfig(machine_config &config) NETLIST_STREAM_INPUT(config, "snd_nl:cin4", 4, "R_AY45L_B.R"); NETLIST_STREAM_INPUT(config, "snd_nl:cin5", 5, "R_AY45L_C.R"); - NETLIST_STREAM_INPUT(config, "snd_nl:cin6", 6, "I_MSM2K0.IN").set_mult_offset(5.0/65535.0, 2.5); - NETLIST_STREAM_INPUT(config, "snd_nl:cin7", 7, "I_MSM3K0.IN").set_mult_offset(5.0/65535.0, 2.5); + NETLIST_STREAM_INPUT(config, "snd_nl:cin6", 6, "I_MSM2K0.IN").set_mult_offset(10.0, 2.5); + NETLIST_STREAM_INPUT(config, "snd_nl:cin7", 7, "I_MSM3K0.IN").set_mult_offset(10.0, 2.5); - NETLIST_STREAM_OUTPUT(config, "snd_nl:cout0", 0, "R26.1").set_mult_offset(30000.0 * 10.0, 0.0); + NETLIST_STREAM_OUTPUT(config, "snd_nl:cout0", 0, "R26.1").set_mult_offset(30000.0 * 10.0 / 32768.0, 0.0); } void m52_soundc_audio_device::device_add_mconfig(machine_config &config) diff --git a/src/mame/audio/lynx.cpp b/src/mame/audio/lynx.cpp index 2c36c831157..40369d86d1d 100644 --- a/src/mame/audio/lynx.cpp +++ b/src/mame/audio/lynx.cpp @@ -172,7 +172,7 @@ void lynx_sound_device::init() void lynx_sound_device::device_start() { - m_mixer_channel = machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate()); + m_mixer_channel = stream_alloc_legacy(0, 1, machine().sample_rate()); m_usec_per_sample = 1000000 / machine().sample_rate(); m_timer_delegate.resolve(); init(); @@ -182,7 +182,7 @@ void lynx_sound_device::device_start() void lynx2_sound_device::device_start() { - m_mixer_channel = machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate()); + m_mixer_channel = stream_alloc_legacy(0, 2, machine().sample_rate()); m_usec_per_sample = 1000000 / machine().sample_rate(); m_timer_delegate.resolve(); init(); @@ -467,10 +467,10 @@ void lynx_sound_device::write(offs_t offset, uint8_t data) //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void lynx_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void lynx_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int v; stream_sample_t *buffer = outputs[0]; @@ -488,10 +488,10 @@ void lynx_sound_device::sound_stream_update(sound_stream &stream, stream_sample_ } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void lynx2_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void lynx2_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *left=outputs[0], *right=outputs[1]; int v; diff --git a/src/mame/audio/lynx.h b/src/mame/audio/lynx.h index bce0d520ce4..11b983089a7 100644 --- a/src/mame/audio/lynx.h +++ b/src/mame/audio/lynx.h @@ -45,7 +45,7 @@ protected: virtual void device_reset() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; void reset_channel(LYNX_AUDIO *channel); void shift(int chan_nr); @@ -75,7 +75,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; }; diff --git a/src/mame/audio/mario.cpp b/src/mame/audio/mario.cpp index da4e4f1699a..1bdf1822bcd 100644 --- a/src/mame/audio/mario.cpp +++ b/src/mame/audio/mario.cpp @@ -670,7 +670,7 @@ void mario_state::mario_audio(machine_config &config) NETLIST_LOGIC_INPUT(config, m_audio_snd7, "SOUND7.IN", 0); NETLIST_INT_INPUT(config, m_audio_dac, "DAC.VAL", 0, 255); - NETLIST_STREAM_OUTPUT(config, "snd_nl:cout0", 0, "ROUT.1").set_mult_offset(150000.0, 0.0); + NETLIST_STREAM_OUTPUT(config, "snd_nl:cout0", 0, "ROUT.1").set_mult_offset(150000.0 / 32768.0, 0.0); #endif } diff --git a/src/mame/audio/micro3d.cpp b/src/mame/audio/micro3d.cpp index 6e0a4d87db5..52f723ef55f 100644 --- a/src/mame/audio/micro3d.cpp +++ b/src/mame/audio/micro3d.cpp @@ -182,7 +182,7 @@ micro3d_sound_device::micro3d_sound_device(const machine_config &mconfig, const void micro3d_sound_device::device_start() { /* Allocate the stream */ - m_stream = machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate()); + m_stream = stream_alloc_legacy(0, 2, machine().sample_rate()); m_filter.init(machine().sample_rate()); m_noise_filters[0].configure(2.7e3 + 2.7e3, 1.0e-6); @@ -206,10 +206,10 @@ void micro3d_sound_device::device_reset() } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void micro3d_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void micro3d_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { lp_filter *iir = &m_filter; float pan_l, pan_r; diff --git a/src/mame/audio/micro3d.h b/src/mame/audio/micro3d.h index e27c57e5bac..937d1fbed74 100644 --- a/src/mame/audio/micro3d.h +++ b/src/mame/audio/micro3d.h @@ -24,7 +24,7 @@ protected: virtual void device_reset() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: enum dac_registers { diff --git a/src/mame/audio/mw8080bw.cpp b/src/mame/audio/mw8080bw.cpp index 55f8faedddf..28c7320a7a4 100644 --- a/src/mame/audio/mw8080bw.cpp +++ b/src/mame/audio/mw8080bw.cpp @@ -798,8 +798,8 @@ void gunfight_audio_device::device_add_mconfig(machine_config &config) // the outputs before the power amps so that the highest output spikes // of +/- 3 volts just reach the clipping limits for signed 16-bit // samples. - NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUT_L").set_mult_offset(32767.0 / 3.0, 0.0); - NETLIST_STREAM_OUTPUT(config, "sound_nl:cout1", 1, "OUT_R").set_mult_offset(32767.0 / 3.0, 0.0); + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUT_L").set_mult_offset(1.0 / 3.0, 0.0); + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout1", 1, "OUT_R").set_mult_offset(1.0 / 3.0, 0.0); // Netlist volume-potentiometer interfaces NETLIST_ANALOG_INPUT(config, "sound_nl:pot_left_master_vol", "R103.DIAL"); @@ -3768,7 +3768,7 @@ void zzzap_common_audio_device::device_add_mconfig(machine_config &config) // just reach the clipping limits for signed 16-bit samples. // So turning the volume up much higher than the default will // give clipped output. - NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(32767.0 / 1.25, -(32767.0 / 1.25) * 2.50); + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(1.0 / 1.25, -(1.0 / 1.25) * 2.50); // Netlist volume-potentiometer interface NETLIST_ANALOG_INPUT(config, "sound_nl:pot_master_vol", "R70.DIAL"); diff --git a/src/mame/audio/phoenix.cpp b/src/mame/audio/phoenix.cpp index 566c9796525..7c43519c186 100644 --- a/src/mame/audio/phoenix.cpp +++ b/src/mame/audio/phoenix.cpp @@ -89,7 +89,7 @@ void phoenix_sound_device::device_start() m_poly18[i] = bits; } - m_channel = machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate()); + m_channel = stream_alloc_legacy(0, 1, machine().sample_rate()); save_item(NAME(m_sound_latch_a)); save_item(NAME(m_c24_state.counter)); @@ -520,10 +520,10 @@ void phoenix_sound_device::control_b_w(uint8_t data) //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void phoenix_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void phoenix_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int samplerate = machine().sample_rate(); stream_sample_t *buffer = outputs[0]; diff --git a/src/mame/audio/phoenix.h b/src/mame/audio/phoenix.h index 43c360871c1..6a02220c30e 100644 --- a/src/mame/audio/phoenix.h +++ b/src/mame/audio/phoenix.h @@ -22,7 +22,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: struct c_state diff --git a/src/mame/audio/pleiads.cpp b/src/mame/audio/pleiads.cpp index cb0d3c89c4f..ee69320e7d6 100644 --- a/src/mame/audio/pleiads.cpp +++ b/src/mame/audio/pleiads.cpp @@ -642,7 +642,7 @@ void pleiads_sound_device::common_start() m_poly18[i] = bits; } - m_channel = machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate()); + m_channel = stream_alloc_legacy(0, 1, machine().sample_rate()); save_item(NAME(m_sound_latch_a)); save_item(NAME(m_sound_latch_b)); @@ -691,10 +691,10 @@ void pleiads_sound_device::common_start() } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void pleiads_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void pleiads_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int rate = machine().sample_rate(); stream_sample_t *buffer = outputs[0]; @@ -706,12 +706,12 @@ void pleiads_sound_device::sound_stream_update(sound_stream &stream, stream_samp } } -void naughtyb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void naughtyb_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { - pleiads_sound_device::sound_stream_update(stream, inputs, outputs, samples); + pleiads_sound_device::sound_stream_update_legacy(stream, inputs, outputs, samples); } -void popflame_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void popflame_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { - pleiads_sound_device::sound_stream_update(stream, inputs, outputs, samples); + pleiads_sound_device::sound_stream_update_legacy(stream, inputs, outputs, samples); } diff --git a/src/mame/audio/pleiads.h b/src/mame/audio/pleiads.h index 103c1d5121e..0c4ef99b4a9 100644 --- a/src/mame/audio/pleiads.h +++ b/src/mame/audio/pleiads.h @@ -51,7 +51,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; void common_start(); inline int tone1(int samplerate); @@ -105,7 +105,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; }; @@ -119,7 +119,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; }; diff --git a/src/mame/audio/polepos.cpp b/src/mame/audio/polepos.cpp index b8e08fc588d..48865d300e0 100644 --- a/src/mame/audio/polepos.cpp +++ b/src/mame/audio/polepos.cpp @@ -225,7 +225,7 @@ polepos_sound_device::polepos_sound_device(const machine_config &mconfig, const void polepos_sound_device::device_start() { - m_stream = stream_alloc(0, 1, OUTPUT_RATE); + m_stream = stream_alloc_legacy(0, 1, OUTPUT_RATE); m_sample_msb = m_sample_lsb = 0; m_sample_enable = 0; @@ -251,10 +251,10 @@ void polepos_sound_device::device_reset() //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void polepos_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void polepos_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { uint32_t step, clock, slot; uint8_t *base; diff --git a/src/mame/audio/polepos.h b/src/mame/audio/polepos.h index 69c8852ac75..430078088b2 100644 --- a/src/mame/audio/polepos.h +++ b/src/mame/audio/polepos.h @@ -19,7 +19,7 @@ protected: virtual void device_reset() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; public: DECLARE_WRITE_LINE_MEMBER(clson_w); diff --git a/src/mame/audio/redbaron.cpp b/src/mame/audio/redbaron.cpp index 486dffb4cea..c08036c7d3b 100644 --- a/src/mame/audio/redbaron.cpp +++ b/src/mame/audio/redbaron.cpp @@ -102,16 +102,16 @@ void redbaron_sound_device::device_start() m_vol_crash[i] = 32767 * r0 / (r0 + r1); } - m_channel = stream_alloc(0, 1, OUTPUT_RATE); + m_channel = stream_alloc_legacy(0, 1, OUTPUT_RATE); } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void redbaron_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void redbaron_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *buffer = outputs[0]; while( samples-- ) diff --git a/src/mame/audio/redbaron.h b/src/mame/audio/redbaron.h index c5c81cb3264..a66b74dff21 100644 --- a/src/mame/audio/redbaron.h +++ b/src/mame/audio/redbaron.h @@ -21,7 +21,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: std::unique_ptr<int16_t[]> m_vol_lookup; diff --git a/src/mame/audio/segag80.cpp b/src/mame/audio/segag80.cpp index 6d266f3ba24..aa377894643 100644 --- a/src/mame/audio/segag80.cpp +++ b/src/mame/audio/segag80.cpp @@ -127,7 +127,7 @@ void segag80_audio_device_base::write_ay(offs_t addr, uint8_t data) DEFINE_DEVICE_TYPE(ELIMINATOR_AUDIO, elim_audio_device, "elim_audio", "Eliminator Sound Board") elim_audio_device::elim_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - segag80_audio_device_base(mconfig, ELIMINATOR_AUDIO, tag, owner, clock, 0xfe, 0xff, false, NETLIST_NAME(elim), 5000.0) + segag80_audio_device_base(mconfig, ELIMINATOR_AUDIO, tag, owner, clock, 0xfe, 0xff, false, NETLIST_NAME(elim), 0.15) { } @@ -142,7 +142,7 @@ elim_audio_device::elim_audio_device(const machine_config &mconfig, const char * DEFINE_DEVICE_TYPE(ZEKTOR_AUDIO, zektor_audio_device, "zektor_audio", "Zektor Sound Board") zektor_audio_device::zektor_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - segag80_audio_device_base(mconfig, ZEKTOR_AUDIO, tag, owner, clock, 0xfe, 0xff, true, NETLIST_NAME(zektor), 5000.0) + segag80_audio_device_base(mconfig, ZEKTOR_AUDIO, tag, owner, clock, 0xfe, 0xff, true, NETLIST_NAME(zektor), 0.15) { } @@ -157,7 +157,7 @@ zektor_audio_device::zektor_audio_device(const machine_config &mconfig, const ch DEFINE_DEVICE_TYPE(SPACE_FURY_AUDIO, spacfury_audio_device, "spcfury_audio", "Space Fury Sound Board") spacfury_audio_device::spacfury_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - segag80_audio_device_base(mconfig, SPACE_FURY_AUDIO, tag, owner, clock, 0xc7, 0x3f, false, NETLIST_NAME(spacfury), 60000.0) + segag80_audio_device_base(mconfig, SPACE_FURY_AUDIO, tag, owner, clock, 0xc7, 0x3f, false, NETLIST_NAME(spacfury), 2.0) { } @@ -172,6 +172,6 @@ spacfury_audio_device::spacfury_audio_device(const machine_config &mconfig, cons DEFINE_DEVICE_TYPE(ASTRO_BLASTER_AUDIO, astrob_audio_device, "astrob_audio", "Astro Blaster Sound Board") astrob_audio_device::astrob_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - segag80_audio_device_base(mconfig, ASTRO_BLASTER_AUDIO, tag, owner, clock, 0xff, 0xff, false, NETLIST_NAME(astrob), 25000.0) + segag80_audio_device_base(mconfig, ASTRO_BLASTER_AUDIO, tag, owner, clock, 0xff, 0xff, false, NETLIST_NAME(astrob), 1.0) { } diff --git a/src/mame/audio/segag80r.cpp b/src/mame/audio/segag80r.cpp index 1662c2f2258..90a8463cbad 100644 --- a/src/mame/audio/segag80r.cpp +++ b/src/mame/audio/segag80r.cpp @@ -46,7 +46,7 @@ void sega005_sound_device::device_start() segag80r_state *state = machine().driver_data<segag80r_state>(); /* create the stream */ - m_sega005_stream = machine().sound().stream_alloc(*this, 0, 1, SEGA005_COUNTER_FREQ); + m_sega005_stream = stream_alloc_legacy(0, 1, SEGA005_COUNTER_FREQ); /* create a timer for the 555 */ m_sega005_sound_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sega005_sound_device::sega005_auto_timer), this)); @@ -57,10 +57,10 @@ void sega005_sound_device::device_start() } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void sega005_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void sega005_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { segag80r_state *state = machine().driver_data<segag80r_state>(); const uint8_t *sound_prom = state->memregion("proms")->base(); diff --git a/src/mame/audio/segausb.cpp b/src/mame/audio/segausb.cpp index 16293500ed0..ef6343e945d 100644 --- a/src/mame/audio/segausb.cpp +++ b/src/mame/audio/segausb.cpp @@ -100,7 +100,7 @@ void usb_sound_device::device_start() #else - m_stream = stream_alloc(0, 1, USB_2MHZ_CLOCK); + m_stream = stream_alloc_legacy(0, 1, USB_2MHZ_CLOCK); m_noise_shift = 0x15555; @@ -451,10 +451,10 @@ void usb_sound_device::env_w(int which, u8 offset, u8 data) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void usb_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *dest = outputs[0]; diff --git a/src/mame/audio/segausb.h b/src/mame/audio/segausb.h index afed3b688af..e34d892142d 100644 --- a/src/mame/audio/segausb.h +++ b/src/mame/audio/segausb.h @@ -62,7 +62,7 @@ protected: #if (!ENABLE_SEGAUSB_NETLIST) // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; #endif private: diff --git a/src/mame/audio/seibu.cpp b/src/mame/audio/seibu.cpp index 798338a29a6..17075367960 100644 --- a/src/mame/audio/seibu.cpp +++ b/src/mame/audio/seibu.cpp @@ -385,7 +385,7 @@ seibu_adpcm_device::seibu_adpcm_device(const machine_config &mconfig, const char void seibu_adpcm_device::device_start() { m_playing = 0; - m_stream = machine().sound().stream_alloc(*this, 0, 1, clock()); + m_stream = stream_alloc_legacy(0, 1, clock()); m_adpcm.reset(); save_item(NAME(m_current)); @@ -443,10 +443,10 @@ void seibu_adpcm_device::ctl_w(u8 data) //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void seibu_adpcm_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void seibu_adpcm_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *dest = outputs[0]; diff --git a/src/mame/audio/seibu.h b/src/mame/audio/seibu.h index 396f4612d0b..9954b462205 100644 --- a/src/mame/audio/seibu.h +++ b/src/mame/audio/seibu.h @@ -145,7 +145,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: // internal state diff --git a/src/mame/audio/snk6502.cpp b/src/mame/audio/snk6502.cpp index 70247ff9c5e..4d5550e08c3 100644 --- a/src/mame/audio/snk6502.cpp +++ b/src/mame/audio/snk6502.cpp @@ -165,7 +165,7 @@ void snk6502_sound_device::device_start() // 38.99 Hz update (according to schematic) set_music_clock(M_LN2 * (RES_K(18) * 2 + RES_K(1)) * CAP_U(1)); - m_tone_stream = machine().sound().stream_alloc(*this, 0, 1, SAMPLE_RATE); + m_tone_stream = stream_alloc_legacy(0, 1, SAMPLE_RATE); for (int i = 0; i < NUM_CHANNELS; i++) { @@ -509,10 +509,10 @@ void snk6502_sound_device::speech_w(uint8_t data, const uint16_t *table, int sta */ //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void snk6502_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void snk6502_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *buffer = outputs[0]; diff --git a/src/mame/audio/snk6502.h b/src/mame/audio/snk6502.h index dab65476835..99c0178120c 100644 --- a/src/mame/audio/snk6502.h +++ b/src/mame/audio/snk6502.h @@ -40,7 +40,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: static constexpr unsigned NUM_CHANNELS = 3; diff --git a/src/mame/audio/socrates.cpp b/src/mame/audio/socrates.cpp index 0b86830d412..4b49ec0b5bd 100644 --- a/src/mame/audio/socrates.cpp +++ b/src/mame/audio/socrates.cpp @@ -43,15 +43,15 @@ void socrates_snd_device::device_start() m_DAC_output = 0x00; /* output */ m_state[0] = m_state[1] = m_state[2] = 0; m_accum[0] = m_accum[1] = m_accum[2] = 0xFF; - m_stream = machine().sound().stream_alloc(*this, 0, 1, clock() ? clock() : machine().sample_rate()); + m_stream = stream_alloc_legacy(0, 1, clock() ? clock() : machine().sample_rate()); } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void socrates_snd_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void socrates_snd_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { for (int i = 0; i < samples; i++) { diff --git a/src/mame/audio/socrates.h b/src/mame/audio/socrates.h index 4f840bca384..cd2d240079c 100644 --- a/src/mame/audio/socrates.h +++ b/src/mame/audio/socrates.h @@ -22,7 +22,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: void snd_clock(); static const uint8_t s_volumeLUT[]; diff --git a/src/mame/audio/special.cpp b/src/mame/audio/special.cpp index e48d8a37c4a..9a1383bfec0 100644 --- a/src/mame/audio/special.cpp +++ b/src/mame/audio/special.cpp @@ -41,15 +41,15 @@ specimx_sound_device::specimx_sound_device(const machine_config &mconfig, const void specimx_sound_device::device_start() { m_specimx_input[0] = m_specimx_input[1] = m_specimx_input[2] = 0; - m_mixer_channel = stream_alloc(0, 1, machine().sample_rate()); + m_mixer_channel = stream_alloc_legacy(0, 1, machine().sample_rate()); } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void specimx_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void specimx_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int16_t channel_0_signal; int16_t channel_1_signal; diff --git a/src/mame/audio/special.h b/src/mame/audio/special.h index 8fbcfe176cc..daaa983a2d7 100644 --- a/src/mame/audio/special.h +++ b/src/mame/audio/special.h @@ -26,7 +26,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: sound_stream *m_mixer_channel; diff --git a/src/mame/audio/svis_snd.cpp b/src/mame/audio/svis_snd.cpp index a51dbb15d35..91fdd2dcce1 100644 --- a/src/mame/audio/svis_snd.cpp +++ b/src/mame/audio/svis_snd.cpp @@ -45,15 +45,15 @@ void svision_sound_device::device_start() memset(&m_noise, 0, sizeof(m_noise)); memset(m_channel, 0, sizeof(m_channel)); - m_mixer_channel = stream_alloc(0, 2, machine().sample_rate()); + m_mixer_channel = stream_alloc_legacy(0, 2, machine().sample_rate()); } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void svision_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void svision_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *left=outputs[0], *right=outputs[1]; diff --git a/src/mame/audio/svis_snd.h b/src/mame/audio/svis_snd.h index fc761ba73ba..9b7efad6353 100644 --- a/src/mame/audio/svis_snd.h +++ b/src/mame/audio/svis_snd.h @@ -41,7 +41,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: struct NOISE diff --git a/src/mame/audio/tiamc1.cpp b/src/mame/audio/tiamc1.cpp index 0bfc371802a..d99de897c22 100644 --- a/src/mame/audio/tiamc1.cpp +++ b/src/mame/audio/tiamc1.cpp @@ -77,7 +77,7 @@ void tiamc1_sound_device::device_start() timer8253_reset(&m_timer0); timer8253_reset(&m_timer1); - m_channel = stream_alloc(0, 1, clock() / CLOCK_DIVIDER); + m_channel = stream_alloc_legacy(0, 1, clock() / CLOCK_DIVIDER); m_timer1_divider = 0; @@ -104,10 +104,10 @@ void tiamc1_sound_device::device_start() //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void tiamc1_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void tiamc1_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int count, o0, o1, o2, len, orval = 0; diff --git a/src/mame/audio/tiamc1.h b/src/mame/audio/tiamc1.h index 83ae793d08a..d8834816899 100644 --- a/src/mame/audio/tiamc1.h +++ b/src/mame/audio/tiamc1.h @@ -25,7 +25,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: struct timer8253chan diff --git a/src/mame/audio/timeplt.cpp b/src/mame/audio/timeplt.cpp index f0302ec0be2..7fe94dd46c7 100644 --- a/src/mame/audio/timeplt.cpp +++ b/src/mame/audio/timeplt.cpp @@ -228,11 +228,11 @@ void locomotn_audio_device::device_add_mconfig(machine_config &config) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void timeplt_audio_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void timeplt_audio_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { // should never get here - fatalerror("sound_stream_update called; not applicable to legacy sound devices\n"); + fatalerror("sound_stream_update_legacy called; not applicable to legacy sound devices\n"); } diff --git a/src/mame/audio/timeplt.h b/src/mame/audio/timeplt.h index 195c6c79830..8e69d20caa1 100644 --- a/src/mame/audio/timeplt.h +++ b/src/mame/audio/timeplt.h @@ -27,7 +27,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; void filter_w(offs_t offset, uint8_t data); uint8_t portB_r(); diff --git a/src/mame/audio/trackfld.cpp b/src/mame/audio/trackfld.cpp index 77c474809c5..bf139f858e9 100644 --- a/src/mame/audio/trackfld.cpp +++ b/src/mame/audio/trackfld.cpp @@ -132,11 +132,11 @@ WRITE_LINE_MEMBER(trackfld_audio_device::sh_irqtrigger_w) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void trackfld_audio_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void trackfld_audio_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { // should never get here - fatalerror("sound_stream_update called; not applicable to legacy sound devices\n"); + fatalerror("sound_stream_update_legacy called; not applicable to legacy sound devices\n"); } diff --git a/src/mame/audio/trackfld.h b/src/mame/audio/trackfld.h index fbcff2817b1..f1502443562 100644 --- a/src/mame/audio/trackfld.h +++ b/src/mame/audio/trackfld.h @@ -34,7 +34,7 @@ protected: virtual void device_reset() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: optional_device<cpu_device> m_audiocpu; diff --git a/src/mame/audio/turrett.cpp b/src/mame/audio/turrett.cpp index 397c27c55e1..4d8414b0118 100644 --- a/src/mame/audio/turrett.cpp +++ b/src/mame/audio/turrett.cpp @@ -47,7 +47,7 @@ void turrett_device::device_start() space().cache(m_cache); // Create the sound stream - m_stream = machine().sound().stream_alloc(*this, 0, 2, 44100); + m_stream = stream_alloc_legacy(0, 2, 44100); // Create the volume table for (int i = 0; i < 0x4f; ++i) @@ -78,10 +78,10 @@ void turrett_device::device_reset() //------------------------------------------------- -// sound_stream_update - update sound stream +// sound_stream_update_legacy - update sound stream //------------------------------------------------- -void turrett_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void turrett_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { // Silence the buffers memset(outputs[0], 0x00, sizeof(stream_sample_t) * samples); diff --git a/src/mame/audio/tvc.cpp b/src/mame/audio/tvc.cpp index 0d05b871361..e30c79ef959 100644 --- a/src/mame/audio/tvc.cpp +++ b/src/mame/audio/tvc.cpp @@ -31,7 +31,7 @@ void tvc_sound_device::device_start() // resolve callbacks m_write_sndint.resolve_safe(); - m_stream = machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate()); + m_stream = stream_alloc_legacy(0, 1, machine().sample_rate()); m_sndint_timer = timer_alloc(TIMER_SNDINT); } @@ -58,19 +58,19 @@ void tvc_sound_device::device_timer(emu_timer &timer, device_timer_id id, int pa } //------------------------------------------------- -// sound_stream_update - handle update requests for +// sound_stream_update_legacy - handle update requests for // our sound stream //------------------------------------------------- -void tvc_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void tvc_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int rate = machine().sample_rate() / 2; - + stream_sample_t *output = outputs[0]; if (m_enabled && m_freq) { while( samples-- > 0 ) { - *outputs[0]++ = m_signal * (m_volume * 0x0800); + *output++ = m_signal * (m_volume * 0x0800); m_incr -= m_freq; while(m_incr < 0) { @@ -82,7 +82,7 @@ void tvc_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t else { // fill output with 0 if the sound is disabled - memset(outputs[0], 0, samples * sizeof(stream_sample_t)); + memset(output, 0, samples * sizeof(stream_sample_t)); } } diff --git a/src/mame/audio/tvc.h b/src/mame/audio/tvc.h index 04358375304..669184a0a2b 100644 --- a/src/mame/audio/tvc.h +++ b/src/mame/audio/tvc.h @@ -34,7 +34,7 @@ protected: virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: static const device_timer_id TIMER_SNDINT = 0; diff --git a/src/mame/audio/tx1.cpp b/src/mame/audio/tx1.cpp index e415fb54669..a6dd9d2aeb6 100644 --- a/src/mame/audio/tx1.cpp +++ b/src/mame/audio/tx1.cpp @@ -111,7 +111,7 @@ void tx1_sound_device::device_start() /* Allocate the stream */ - m_stream = machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate()); + m_stream = stream_alloc_legacy(0, 2, machine().sample_rate()); m_freq_to_step = (double)(1 << TX1_FRAC) / (double)machine().sample_rate(); /* Compute the engine resistor weights */ @@ -356,10 +356,10 @@ static inline void update_engine(int eng[4]) //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void tx1_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void tx1_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { uint32_t step_0, step_1, step_2; double /*gain_0, gain_1,*/ gain_2, gain_3; @@ -662,7 +662,7 @@ void buggyboy_sound_device::device_start() m_eng_voltages[i] = combine_weights(aweights, BIT(tmp[i], 0), BIT(tmp[i], 1), BIT(tmp[i], 2), BIT(tmp[i], 3)); /* Allocate the stream */ - m_stream = machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate()); + m_stream = stream_alloc_legacy(0, 2, machine().sample_rate()); m_freq_to_step = (double)(1 << 24) / (double)machine().sample_rate(); } @@ -763,10 +763,10 @@ void buggyboy_sound_device::ym2_b_w(uint8_t data) //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void buggyboy_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void buggyboy_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { /* This is admittedly a bit of a hack job... */ diff --git a/src/mame/audio/tx1.h b/src/mame/audio/tx1.h index b27ddd0fa73..71e228e324c 100644 --- a/src/mame/audio/tx1.h +++ b/src/mame/audio/tx1.h @@ -73,7 +73,7 @@ protected: virtual void device_reset() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; void tx1_sound_io(address_map &map); void tx1_sound_prg(address_map &map); @@ -155,7 +155,7 @@ protected: virtual void device_reset() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; void ym1_a_w(uint8_t data); diff --git a/src/mame/audio/vboy.cpp b/src/mame/audio/vboy.cpp index 05d9c3a3779..37eec2ee80b 100644 --- a/src/mame/audio/vboy.cpp +++ b/src/mame/audio/vboy.cpp @@ -209,7 +209,7 @@ void vboysnd_device::device_start() { uint32_t rate = clock() / 120; // create the stream - m_stream = machine().sound().stream_alloc(*this, 0, 2, rate); + m_stream = stream_alloc_legacy(0, 2, rate); m_timer = timer_alloc(0, nullptr); m_timer->adjust(attotime::zero, 0, rate ? attotime::from_hz(rate / 4) : attotime::never); @@ -265,11 +265,11 @@ void vboysnd_device::device_timer(emu_timer &timer, device_timer_id tid, int par } //------------------------------------------------- -// sound_stream_update - handle update requests for +// sound_stream_update_legacy - handle update requests for // our sound stream //------------------------------------------------- -void vboysnd_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void vboysnd_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *outL, *outR; int len, i, j, channel; diff --git a/src/mame/audio/vboy.h b/src/mame/audio/vboy.h index 6ee190b83b2..f8d3a050272 100644 --- a/src/mame/audio/vboy.h +++ b/src/mame/audio/vboy.h @@ -72,7 +72,7 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; s_snd_channel snd_channel[5]; diff --git a/src/mame/audio/vc4000.cpp b/src/mame/audio/vc4000.cpp index df4a308f619..84c19a2d942 100644 --- a/src/mame/audio/vc4000.cpp +++ b/src/mame/audio/vc4000.cpp @@ -31,15 +31,15 @@ vc4000_sound_device::vc4000_sound_device(const machine_config &mconfig, const ch void vc4000_sound_device::device_start() { - m_channel = stream_alloc(0, 1, machine().sample_rate()); + m_channel = stream_alloc_legacy(0, 1, machine().sample_rate()); } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void vc4000_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void vc4000_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { int i; stream_sample_t *buffer = outputs[0]; diff --git a/src/mame/audio/vc4000.h b/src/mame/audio/vc4000.h index e906dc601c4..3917ffa2776 100644 --- a/src/mame/audio/vc4000.h +++ b/src/mame/audio/vc4000.h @@ -28,7 +28,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; public: void soundport_w(int mode, int data); diff --git a/src/mame/audio/warpwarp.cpp b/src/mame/audio/warpwarp.cpp index 2e4075771ea..9e00ff069fd 100644 --- a/src/mame/audio/warpwarp.cpp +++ b/src/mame/audio/warpwarp.cpp @@ -52,7 +52,7 @@ void warpwarp_sound_device::device_start() m_clock_16h = clock() / 3 / 2 / 16; m_clock_1v = clock() / 3 / 2 / 384; - m_channel = machine().sound().stream_alloc(*this, 0, 1, m_clock_16h); + m_channel = stream_alloc_legacy(0, 1, m_clock_16h); m_sound_volume_timer = timer_alloc(TIMER_SOUND_VOLUME_DECAY); m_music_volume_timer = timer_alloc(TIMER_MUSIC_VOLUME_DECAY); @@ -169,10 +169,10 @@ void warpwarp_sound_device::music2_w(u8 data) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void warpwarp_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void warpwarp_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *buffer = outputs[0]; diff --git a/src/mame/audio/warpwarp.h b/src/mame/audio/warpwarp.h index c8ca872d239..7bf06a4dc25 100644 --- a/src/mame/audio/warpwarp.h +++ b/src/mame/audio/warpwarp.h @@ -27,7 +27,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) 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 device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; diff --git a/src/mame/audio/wiping.cpp b/src/mame/audio/wiping.cpp index 56a0c56ee96..0b83b88f8ac 100644 --- a/src/mame/audio/wiping.cpp +++ b/src/mame/audio/wiping.cpp @@ -42,7 +42,7 @@ void wiping_sound_device::device_start() wp_sound_channel *voice; /* get stream channels */ - m_stream = machine().sound().stream_alloc(*this, 0, 1, clock()/2); + m_stream = stream_alloc_legacy(0, 1, clock()/2); /* allocate a buffer to mix into - 1 second's worth should be more than enough */ m_mixer_buffer = make_unique_clear<short[]>(clock()/2); @@ -150,10 +150,10 @@ void wiping_sound_device::sound_w(offs_t offset, uint8_t data) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void wiping_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void wiping_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t *buffer = outputs[0]; wp_sound_channel *voice; diff --git a/src/mame/audio/wiping.h b/src/mame/audio/wiping.h index 43ae2caf98a..d10a26d2848 100644 --- a/src/mame/audio/wiping.h +++ b/src/mame/audio/wiping.h @@ -17,7 +17,7 @@ protected: virtual void device_start() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: /* 8 voices max */ diff --git a/src/mame/audio/wswan.cpp b/src/mame/audio/wswan.cpp index 8089d01a6d1..0e6442cea6d 100644 --- a/src/mame/audio/wswan.cpp +++ b/src/mame/audio/wswan.cpp @@ -62,7 +62,7 @@ constexpr int clk_div = 64; void wswan_sound_device::device_start() { - m_channel = stream_alloc(0, 2, clock() / clk_div); + m_channel = stream_alloc_legacy(0, 2, clock() / clk_div); save_item(NAME(m_sweep_step)); save_item(NAME(m_sweep_time)); @@ -164,13 +164,15 @@ int wswan_sound_device::fetch_sample(int channel, int offset) } //------------------------------------------------- -// sound_stream_update - handle a stream update +// sound_stream_update_legacy - handle a stream update //------------------------------------------------- -void wswan_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void wswan_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { stream_sample_t sample, left, right; + stream_sample_t *outputl = outputs[0]; + stream_sample_t *outputr = outputs[1]; while( samples-- > 0 ) { left = right = 0; @@ -269,8 +271,8 @@ void wswan_sound_device::sound_stream_update(sound_stream &stream, stream_sample left <<= 5; right <<= 5; - *(outputs[0]++) = left; - *(outputs[1]++) = right; + *outputl++ = left; + *outputr++ = right; } } diff --git a/src/mame/audio/wswan.h b/src/mame/audio/wswan.h index a23655e0b0b..e3c4974bf54 100644 --- a/src/mame/audio/wswan.h +++ b/src/mame/audio/wswan.h @@ -59,7 +59,7 @@ protected: virtual void rom_bank_updated() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) override; private: void wswan_ch_set_freq( CHAN *ch, uint16_t freq ); diff --git a/src/mame/audio/xavix.cpp b/src/mame/audio/xavix.cpp index 3d01d8812fd..a4b2d12dccb 100644 --- a/src/mame/audio/xavix.cpp +++ b/src/mame/audio/xavix.cpp @@ -27,7 +27,7 @@ void xavix_sound_device::device_start() m_readregs_cb.resolve_safe(0xff); m_readsamples_cb.resolve_safe(0x80); - m_stream = stream_alloc(0, 2, 163840); + m_stream = stream_alloc_legacy(0, 2, 163840); } void xavix_sound_device::device_reset() @@ -43,7 +43,7 @@ void xavix_sound_device::device_reset() } -void xavix_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void xavix_sound_device::sound_stream_update_legacy(sound_stream &stream, stream_sample_t const * const *inputs, stream_sample_t * const *outputs, int samples) { // reset the output stream memset(outputs[0], 0, samples * sizeof(*outputs[0])); diff --git a/src/mame/audio/zaccaria.cpp b/src/mame/audio/zaccaria.cpp index e597c48eeab..f7b31e245e5 100644 --- a/src/mame/audio/zaccaria.cpp +++ b/src/mame/audio/zaccaria.cpp @@ -472,14 +472,14 @@ void zac1b11142_audio_device::device_add_mconfig(machine_config &config) * The 5200 output is a current source providing between 0 and 1.5mA. * This is explained in detail in the datasheet. */ - NETLIST_STREAM_INPUT(config, "sound_nl:cin6", 6, "I_SP.I").set_mult_offset(750e-6 / 16384.0, 750e-6); + NETLIST_STREAM_INPUT(config, "sound_nl:cin6", 6, "I_SP.I").set_mult_offset(2.0 * 750e-6, 750e-6); /* DAC * The 1408 output is a current sink providing between 0 and 2.0mA. * This is explained in detail in the datasheet. */ - NETLIST_STREAM_INPUT(config, "sound_nl:cin7", 7, "I_DAC.I").set_mult_offset(1e-3 / 32768.0, 1e-3); + NETLIST_STREAM_INPUT(config, "sound_nl:cin7", 7, "I_DAC.I").set_mult_offset(1e-3, 1e-3); - NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "C7.2").set_mult_offset(3000.0 * 10.0, 0.0); // FIXME: no clue what numbers to use here + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "C7.2").set_mult_offset(3000.0 * 10.0 / 32768.0, 0.0); // FIXME: no clue what numbers to use here // Potentiometers NETLIST_ANALOG_INPUT(config, "sound_nl:pot1", "P1.DIAL"); |