diff options
author | 2020-09-13 10:18:44 -0700 | |
---|---|---|
committer | 2020-09-13 10:18:44 -0700 | |
commit | c1bd56f0d318c71faac757d89c910c2682af6651 (patch) | |
tree | 9f4bbe78f74401a13603d89b6314c67fbd68a3f5 /src/devices/sound/digitalk.h | |
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/devices/sound/digitalk.h')
-rw-r--r-- | src/devices/sound/digitalk.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/devices/sound/digitalk.h b/src/devices/sound/digitalk.h index 44eff1e0343..89347d3c5fb 100644 --- a/src/devices/sound/digitalk.h +++ b/src/devices/sound/digitalk.h @@ -29,7 +29,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 digitalker_write(uint8_t *adr, uint8_t vol, int8_t dac); |