Previous | 199869 Revisions | Next |
r166519 Sunday 13th September, 2020 at 17:18:44 UTC by Aaron Giles |
---|
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 |
[/branches/psx_metafix/src/devices/bus/a2bus] | a2mcms.cpp a2mcms.h |
[/branches/psx_metafix/src/devices/bus/coco] | coco_ssc.cpp |
[/branches/psx_metafix/src/devices/bus/isa] | gus.cpp gus.h |
[/branches/psx_metafix/src/devices/cpu/tms57002] | tms57002.cpp tms57002.h |
[/branches/psx_metafix/src/devices/imagedev] | cassette.cpp cassette.h floppy.cpp floppy.h |
[/branches/psx_metafix/src/devices/machine] | 8364_paula.cpp 8364_paula.h acorn_vidc.cpp laserdsc.cpp laserdsc.h netlist.cpp netlist.h s2636.cpp s2636.h spg2xx_audio.cpp spg2xx_audio.h |
[/branches/psx_metafix/src/devices/sound] | 2203intf.cpp 2203intf.h 2608intf.cpp 2608intf.h 2610intf.cpp 2610intf.h 2612intf.cpp 2612intf.h 262intf.cpp 262intf.h 3526intf.cpp 3526intf.h 3812intf.cpp 3812intf.h 8950intf.cpp 8950intf.h aica.cpp aica.h asc.cpp asc.h astrocde.cpp astrocde.h awacs.cpp awacs.h ay8910.cpp ay8910.h beep.cpp beep.h bsmt2000.cpp bsmt2000.h c140.cpp c140.h c352.cpp c352.h c6280.cpp c6280.h cdda.cpp cdda.h cdp1863.cpp cdp1863.h cdp1864.cpp cdp1864.h cdp1869.cpp cdp1869.h cem3394.cpp cem3394.h dac.h dac76.cpp dac76.h dave.cpp dave.h digitalk.cpp digitalk.h disc_cls.h disc_inp.hxx discrete.cpp discrete.h dmadac.cpp dmadac.h dspv.cpp dspv.h es1373.cpp es1373.h es5503.cpp es5503.h es5506.cpp es5506.h esqpump.cpp esqpump.h flt_rc.cpp flt_rc.h flt_vol.cpp flt_vol.h fm.cpp fm.h fm2612.cpp gaelco.cpp gaelco.h gb.cpp gb.h hc55516.cpp hc55516.h huc6230.cpp huc6230.h i5000.cpp i5000.h ics2115.cpp ics2115.h iopspu.cpp iopspu.h iremga20.cpp iremga20.h k005289.cpp k005289.h k007232.cpp k007232.h k051649.cpp k051649.h k053260.cpp k053260.h k054539.cpp k054539.h ks0164.cpp ks0164.h l7a1045_l6028_dsp_a.cpp l7a1045_l6028_dsp_a.h lmc1992.cpp lmc1992.h mas3507d.cpp mas3507d.h mea8000.cpp mea8000.h mos6560.cpp mos6560.h mos6581.cpp mos6581.h mos7360.cpp mos7360.h msm5205.cpp msm5205.h msm5232.cpp msm5232.h multipcm.cpp multipcm.h n63701x.cpp n63701x.h namco.cpp namco.h namco_163.cpp namco_163.h nes_apu.cpp nes_apu.h nile.cpp nile.h okim6258.cpp okim6258.h okim6295.cpp okim6295.h okim6376.cpp okim6376.h okim9810.cpp okim9810.h pcd3311.cpp pcd3311.h pokey.cpp pokey.h qs1000.cpp qs1000.h qsound.cpp qsound.h qsoundhle.cpp qsoundhle.h rf5c400.cpp rf5c400.h rf5c68.cpp rf5c68.h rolandpcm.cpp rolandpcm.h rp2c33_snd.cpp rp2c33_snd.h s14001a.cpp s14001a.h s_dsp.cpp s_dsp.h saa1099.cpp saa1099.h samples.cpp samples.h scsp.cpp scsp.h segapcm.cpp segapcm.h sn76477.cpp sn76477.h sn76496.cpp sn76496.h snkwave.cpp snkwave.h sp0250.cpp sp0250.h sp0256.cpp sp0256.h spkrdev.cpp spkrdev.h spu.cpp spu.h st0016.cpp st0016.h swp00.cpp swp00.h swp20.cpp swp20.h swp30.cpp swp30.h t6721a.cpp t6721a.h t6w28.cpp t6w28.h tc8830f.cpp tc8830f.h tiaintf.cpp tiaintf.h tms3615.cpp tms3615.h tms36xx.cpp tms36xx.h tms5110.cpp tms5110.h tms5220.cpp tms5220.h upd1771.cpp upd1771.h upd7752.cpp upd7752.h upd7759.cpp upd7759.h upd934g.cpp upd934g.h vgm_visualizer.cpp vgm_visualizer.h vlm5030.cpp vlm5030.h volt_reg.cpp volt_reg.h votrax.cpp votrax.h vrc6.cpp vrc6.h vrender0.cpp vrender0.h wave.cpp wave.h x1_010.cpp x1_010.h ym2151.cpp ym2151.h ym2413.cpp ym2413.h ymf262.cpp ymf262.h ymf271.cpp ymf271.h ymf278b.cpp ymf278b.h ymz280b.cpp ymz280b.h ymz770.cpp ymz770.h zsg2.cpp zsg2.h |
[/branches/psx_metafix/src/devices/video] | i8244.cpp i8244.h |
[/branches/psx_metafix/src/emu] | disound.cpp disound.h sound.cpp sound.h speaker.cpp speaker.h |
[/branches/psx_metafix/src/frontend/mame/ui] | ui.cpp |
[/branches/psx_metafix/src/mame/audio] | arcadia.cpp arcadia.h channelf.cpp channelf.h cheekyms.cpp cinemat.cpp cmi01a.cpp cmi01a.h cps3.cpp cps3.h dai_snd.cpp dai_snd.h dsbz80.cpp dsbz80.h elan_eu3a05.cpp elan_eu3a05.h exidy.cpp exidy.h exidy440.cpp exidy440.h flower.cpp flower.h geebee.cpp geebee.h gomoku.cpp gomoku.h gridlee.cpp hyprolyb.cpp hyprolyb.h irem.cpp lynx.cpp lynx.h mario.cpp micro3d.cpp micro3d.h mw8080bw.cpp phoenix.cpp phoenix.h pleiads.cpp pleiads.h polepos.cpp polepos.h redbaron.cpp redbaron.h segag80.cpp segag80r.cpp segausb.cpp segausb.h seibu.cpp seibu.h snk6502.cpp snk6502.h socrates.cpp socrates.h special.cpp special.h svis_snd.cpp svis_snd.h tiamc1.cpp tiamc1.h timeplt.cpp timeplt.h trackfld.cpp trackfld.h turrett.cpp tvc.cpp tvc.h tx1.cpp tx1.h vboy.cpp vboy.h vc4000.cpp vc4000.h warpwarp.cpp warpwarp.h wiping.cpp wiping.h wswan.cpp wswan.h xavix.cpp zaccaria.cpp |
[/branches/psx_metafix/src/mame/drivers] | 1942.cpp carpolo.cpp cocoloco.cpp destroyr.cpp esq1.cpp flyball.cpp galaxian.cpp gamemachine.cpp istrebiteli.cpp milton6805.cpp ninjaw.cpp popeye.cpp pv1000.cpp segas16b.cpp starcrus.cpp starfire.cpp tankbatt.cpp |
[/branches/psx_metafix/src/mame/includes] | gridlee.h segag80r.h turrett.h xavix.h |
[/branches/psx_metafix/src/mame/machine] | mega32x.cpp mega32x.h |
[/branches/psx_metafix/src/mame/video] | gic.cpp gic.h |
https://github.com/mamedev/mame/commit/c1bd56f0d318c71faac757d89c910c2682af6651 |
Previous | 199869 Revisions | Next |