From 785b6a50c63d106f13f550f006952370bf3b410a Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Thu, 18 Dec 2008 08:32:50 +0000 Subject: [PATCH] From: Atari Ace [mailto:atari_ace@verizon.net] Sent: Wednesday, December 17, 2008 9:03 PM To: submit@mamedev.org Cc: atariace@hotmail.com Subject: [patch] STREAM_UPDATE update Hi mamedev, This patch modifies the parameters of the stream_update_func callback. The first two patches go through and changes all the callbacks to use a consistent set of parameters (the larger patch was mechanically generated, the smaller second patch are hand edits where review or compilation showed issues with the automatic conversion). The third patch then macroizes all the callbacks to STREAM_UPDATE, and was done mechanically except for the change to streams.h. The fourth patch then adds device to the callback, and eliminates Machine in a handful of callbacks by referencing the device. deprecat.h -= 8. ~aa --- src/emu/machine/ldcore.c | 4 ++-- src/emu/sound.c | 10 ++++---- src/emu/sound/2151intf.c | 4 ++-- src/emu/sound/2203intf.c | 4 ++-- src/emu/sound/2413intf.c | 4 ++-- src/emu/sound/2608intf.c | 4 ++-- src/emu/sound/2610intf.c | 8 +++---- src/emu/sound/2612intf.c | 4 ++-- src/emu/sound/262intf.c | 4 ++-- src/emu/sound/3812intf.c | 12 +++++----- src/emu/sound/5110intf.c | 16 ++++++------- src/emu/sound/5220intf.c | 16 ++++++------- src/emu/sound/aica.c | 6 ++--- src/emu/sound/astrocde.c | 4 ++-- src/emu/sound/ay8910.c | 14 +++++------ src/emu/sound/beep.c | 8 +++---- src/emu/sound/bsmt2000.c | 18 +++++++-------- src/emu/sound/c140.c | 20 ++++++++-------- src/emu/sound/c352.c | 16 ++++++------- src/emu/sound/c6280.c | 26 ++++++++++----------- src/emu/sound/cdda.c | 4 ++-- src/emu/sound/cdp1869.c | 8 +++---- src/emu/sound/cem3394.c | 26 ++++++++++----------- src/emu/sound/dac.c | 6 ++--- src/emu/sound/discrete.c | 8 +++---- src/emu/sound/dmadac.c | 8 +++---- src/emu/sound/es5503.c | 6 ++--- src/emu/sound/es5506.c | 20 ++++++++-------- src/emu/sound/es8712.c | 2 +- src/emu/sound/flt_rc.c | 2 +- src/emu/sound/flt_vol.c | 2 +- src/emu/sound/gaelco.c | 10 ++++---- src/emu/sound/hc55516.c | 16 ++++++------- src/emu/sound/ics2115.c | 12 +++++----- src/emu/sound/iremga20.c | 10 ++++---- src/emu/sound/k005289.c | 12 +++++----- src/emu/sound/k007232.c | 12 +++++----- src/emu/sound/k051649.c | 10 ++++---- src/emu/sound/k053260.c | 8 +++---- src/emu/sound/k054539.c | 46 ++++++++++++++++++------------------- src/emu/sound/msm5205.c | 10 ++++---- src/emu/sound/msm5232.c | 24 +++++++++---------- src/emu/sound/multipcm.c | 12 +++++----- src/emu/sound/n63701x.c | 8 +++---- src/emu/sound/namco.c | 26 ++++++++++----------- src/emu/sound/namco52.c | 12 +++++----- src/emu/sound/nes_apu.c | 4 ++-- src/emu/sound/nile.c | 8 +++---- src/emu/sound/okim6258.c | 2 +- src/emu/sound/okim6295.c | 2 +- src/emu/sound/pokey.c | 10 ++++---- src/emu/sound/psx.c | 12 +++++----- src/emu/sound/qsound.c | 18 +++++++-------- src/emu/sound/rf5c400.c | 12 +++++----- src/emu/sound/rf5c68.c | 14 +++++------ src/emu/sound/s14001a.c | 4 ++-- src/emu/sound/saa1099.c | 12 +++++----- src/emu/sound/samples.c | 12 +++++----- src/emu/sound/scsp.c | 6 ++--- src/emu/sound/segapcm.c | 12 +++++----- src/emu/sound/sid6581.c | 6 ++--- src/emu/sound/sn76477.c | 8 +++---- src/emu/sound/sn76496.c | 12 +++++----- src/emu/sound/snkwave.c | 8 +++---- src/emu/sound/sp0250.c | 6 ++--- src/emu/sound/sp0256.c | 22 +++++++++--------- src/emu/sound/speaker.c | 6 ++--- src/emu/sound/st0016.c | 8 +++---- src/emu/sound/tiaintf.c | 4 ++-- src/emu/sound/tms3615.c | 8 +++---- src/emu/sound/tms36xx.c | 10 ++++---- src/emu/sound/upd7759.c | 4 ++-- src/emu/sound/vlm5030.c | 20 ++++++++-------- src/emu/sound/votrax.c | 4 ++-- src/emu/sound/vrender0.c | 4 ++-- src/emu/sound/wave.c | 12 +++++----- src/emu/sound/x1_010.c | 14 +++++------ src/emu/sound/ymf271.c | 22 +++++++++--------- src/emu/sound/ymf278b.c | 8 +++---- src/emu/sound/ymz280b.c | 18 +++++++-------- src/emu/streams.c | 15 ++++++------ src/emu/streams.h | 4 +++- src/mame/audio/amiga.c | 15 ++++++------ src/mame/audio/attckufo.c | 6 ++--- src/mame/audio/bzone.c | 4 ++-- src/mame/audio/cps3.c | 15 ++++++------ src/mame/audio/exidy.c | 4 ++-- src/mame/audio/exidy440.c | 24 +++++++++---------- src/mame/audio/flower.c | 10 ++++---- src/mame/audio/galaxian.c | 8 +++---- src/mame/audio/geebee.c | 4 ++-- src/mame/audio/gomoku.c | 10 ++++---- src/mame/audio/gridlee.c | 4 ++-- src/mame/audio/leland.c | 28 +++++++++++----------- src/mame/audio/phoenix.c | 7 +++--- src/mame/audio/pleiads.c | 7 +++--- src/mame/audio/polepos.c | 11 ++++----- src/mame/audio/redbaron.c | 4 ++-- src/mame/audio/rockola.c | 9 ++++---- src/mame/audio/segag80r.c | 7 +++--- src/mame/audio/segasnd.c | 4 ++-- src/mame/audio/seibu.c | 2 +- src/mame/audio/snes.c | 4 ++-- src/mame/audio/tiamc1.c | 4 ++-- src/mame/audio/tx1.c | 27 +++++++++++----------- src/mame/audio/warpwarp.c | 4 ++-- src/mame/audio/wiping.c | 10 ++++---- src/mame/drivers/mjkjidai.c | 2 +- src/mame/drivers/renegade.c | 2 +- src/mame/includes/snes.h | 3 ++- 110 files changed, 554 insertions(+), 558 deletions(-) diff --git a/src/emu/machine/ldcore.c b/src/emu/machine/ldcore.c index 63e50c2e97d..a03e0bd7e42 100644 --- a/src/emu/machine/ldcore.c +++ b/src/emu/machine/ldcore.c @@ -146,7 +146,7 @@ static TIMER_CALLBACK( perform_player_update ); static void read_track_data(laserdisc_state *ld); static void process_track_data(const device_config *device); static CUSTOM_START( custom_start ); -static void custom_stream_callback(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples); +static STREAM_UPDATE( custom_stream_callback ); static void configuration_load(running_machine *machine, int config_type, xml_data_node *parentnode); static void configuration_save(running_machine *machine, int config_type, xml_data_node *parentnode); @@ -957,7 +957,7 @@ static CUSTOM_START( custom_start ) for laserdiscs -------------------------------------------------*/ -static void custom_stream_callback(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( custom_stream_callback ) { sound_token *token = param; laserdisc_state *ld = token->ld; diff --git a/src/emu/sound.c b/src/emu/sound.c index ea1b0ba97e3..db52ac20671 100644 --- a/src/emu/sound.c +++ b/src/emu/sound.c @@ -118,7 +118,7 @@ static void sound_save(running_machine *machine, int config_type, xml_data_node static TIMER_CALLBACK( sound_update ); static void start_sound_chips(running_machine *machine); static void route_sound(running_machine *machine); -static void mixer_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length); +static STREAM_UPDATE( mixer_update ); static STATE_POSTLOAD( mixer_postload ); @@ -770,16 +770,16 @@ static TIMER_CALLBACK( sound_update ) mixer_update - mix all inputs to one output -------------------------------------------------*/ -static void mixer_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( mixer_update ) { speaker_info *speaker = param; int numinputs = speaker->inputs; int pos; - VPRINTF(("Mixer_update(%d)\n", length)); + VPRINTF(("Mixer_update(%d)\n", samples)); /* loop over samples */ - for (pos = 0; pos < length; pos++) + for (pos = 0; pos < samples; pos++) { INT32 sample = inputs[0][pos]; int inp; @@ -787,7 +787,7 @@ static void mixer_update(void *param, stream_sample_t **inputs, stream_sample_t /* add up all the inputs */ for (inp = 1; inp < numinputs; inp++) sample += inputs[inp][pos]; - buffer[0][pos] = sample; + outputs[0][pos] = sample; } } diff --git a/src/emu/sound/2151intf.c b/src/emu/sound/2151intf.c index 10e1eca8f8d..e3abe82f63a 100644 --- a/src/emu/sound/2151intf.c +++ b/src/emu/sound/2151intf.c @@ -22,10 +22,10 @@ struct ym2151_info }; -static void ym2151_update(void *param, stream_sample_t **inputs, stream_sample_t **buffers, int length) +static STREAM_UPDATE( ym2151_update ) { struct ym2151_info *info = param; - ym2151_update_one(info->chip, buffers, length); + ym2151_update_one(info->chip, outputs, samples); } diff --git a/src/emu/sound/2203intf.c b/src/emu/sound/2203intf.c index 8b37cd5d173..5f106ebdb4c 100644 --- a/src/emu/sound/2203intf.c +++ b/src/emu/sound/2203intf.c @@ -91,10 +91,10 @@ static void timer_handler(void *param,int c,int count,int clock) } } -static void ym2203_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( ym2203_stream_update ) { struct ym2203_info *info = param; - ym2203_update_one(info->chip, buffer[0], length); + ym2203_update_one(info->chip, outputs[0], samples); } diff --git a/src/emu/sound/2413intf.c b/src/emu/sound/2413intf.c index 09ba3e303b5..a957994aa4a 100644 --- a/src/emu/sound/2413intf.c +++ b/src/emu/sound/2413intf.c @@ -36,10 +36,10 @@ void YM2413DAC_update(int chip,stream_sample_t **inputs, stream_sample_t **_buff } #endif -static void ym2413_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffers, int length) +static STREAM_UPDATE( ym2413_stream_update ) { struct ym2413_info *info = param; - ym2413_update_one(info->chip, buffers, length); + ym2413_update_one(info->chip, outputs, samples); } static void _stream_update(void *param, int interval) diff --git a/src/emu/sound/2608intf.c b/src/emu/sound/2608intf.c index 17df778c71e..12b6d5b2eef 100644 --- a/src/emu/sound/2608intf.c +++ b/src/emu/sound/2608intf.c @@ -104,10 +104,10 @@ void ym2608_update_request(void *param) stream_update(info->stream); } -static void ym2608_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffers, int length) +static STREAM_UPDATE( ym2608_stream_update ) { struct ym2608_info *info = param; - ym2608_update_one(info->chip, buffers, length); + ym2608_update_one(info->chip, outputs, samples); } diff --git a/src/emu/sound/2610intf.c b/src/emu/sound/2610intf.c index e512c3eef04..1ac4fa5b240 100644 --- a/src/emu/sound/2610intf.c +++ b/src/emu/sound/2610intf.c @@ -106,10 +106,10 @@ void ym2610_update_request(void *param) } #if BUILD_YM2610 -static void ym2610_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffers, int length) +static STREAM_UPDATE( ym2610_stream_update ) { struct ym2610_info *info = param; - ym2610_update_one(info->chip, buffers, length); + ym2610_update_one(info->chip, outputs, samples); } @@ -181,10 +181,10 @@ static SND_START( ym2610 ) #endif #if BUILD_YM2610B -static void ym2610b_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffers, int length) +static STREAM_UPDATE( ym2610b_stream_update ) { struct ym2610_info *info = param; - ym2610b_update_one(info->chip, buffers, length); + ym2610b_update_one(info->chip, outputs, samples); } static SND_START( ym2610b ) diff --git a/src/emu/sound/2612intf.c b/src/emu/sound/2612intf.c index 68d3e7ccdb7..4fcf173843a 100644 --- a/src/emu/sound/2612intf.c +++ b/src/emu/sound/2612intf.c @@ -73,10 +73,10 @@ void ym2612_update_request(void *param) /* YM2612 */ /***********************************************************/ -static void ym2612_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffers, int length) +static STREAM_UPDATE( ym2612_stream_update ) { struct ym2612_info *info = param; - ym2612_update_one(info->chip, buffers, length); + ym2612_update_one(info->chip, outputs, samples); } diff --git a/src/emu/sound/262intf.c b/src/emu/sound/262intf.c index 3222f9a4d30..e8ed4df69d3 100644 --- a/src/emu/sound/262intf.c +++ b/src/emu/sound/262intf.c @@ -54,10 +54,10 @@ static void timer_handler_262(void *param,int timer, attotime period) } } -static void ymf262_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffers, int length) +static STREAM_UPDATE( ymf262_stream_update ) { struct ymf262_info *info = param; - ymf262_update_one(info->chip, buffers, length); + ymf262_update_one(info->chip, outputs, samples); } static void _stream_update(void *param, int interval) diff --git a/src/emu/sound/3812intf.c b/src/emu/sound/3812intf.c index e91b9d467f4..ee81eb60c89 100644 --- a/src/emu/sound/3812intf.c +++ b/src/emu/sound/3812intf.c @@ -66,10 +66,10 @@ static void TimerHandler_3812(void *param,int c,attotime period) } -static void ym3812_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( ym3812_stream_update ) { struct ym3812_info *info = param; - ym3812_update_one(info->chip, buffer[0], length); + ym3812_update_one(info->chip, outputs[0], samples); } static void _stream_update_3812(void * param, int interval) @@ -237,10 +237,10 @@ static void TimerHandler_3526(void *param,int c,attotime period) } -static void ym3526_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( ym3526_stream_update ) { struct ym3526_info *info = param; - ym3526_update_one(info->chip, buffer[0], length); + ym3526_update_one(info->chip, outputs[0], samples); } static void _stream_update_3526(void *param, int interval) @@ -442,10 +442,10 @@ static void Y8950KeyboardHandler_w(void *param,unsigned char data) info->intf->keyboardwrite(space,info->index,data); } -static void y8950_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( y8950_stream_update ) { struct y8950_info *info = param; - y8950_update_one(info->chip, buffer[0], length); + y8950_update_one(info->chip, outputs[0], samples); } static void _stream_update_8950(void *param, int interval) diff --git a/src/emu/sound/5110intf.c b/src/emu/sound/5110intf.c index 67426de7959..08288ee48a0 100644 --- a/src/emu/sound/5110intf.c +++ b/src/emu/sound/5110intf.c @@ -33,7 +33,7 @@ struct tms5110_info /* static function prototypes */ -static void tms5110_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length); +static STREAM_UPDATE( tms5110_update ); static int speech_rom_read_bit(void) { @@ -242,25 +242,25 @@ int tms5110_ready_r(void) ******************************************************************************/ -static void tms5110_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( tms5110_update ) { struct tms5110_info *info = param; INT16 sample_data[MAX_SAMPLE_CHUNK]; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; /* loop while we still have samples to generate */ - while (length) + while (samples) { - int samples = (length > MAX_SAMPLE_CHUNK) ? MAX_SAMPLE_CHUNK : length; + int length = (samples > MAX_SAMPLE_CHUNK) ? MAX_SAMPLE_CHUNK : samples; int index; /* generate the samples and copy to the target buffer */ - tms5110_process(info->chip, sample_data, samples); - for (index = 0; index < samples; index++) + tms5110_process(info->chip, sample_data, length); + for (index = 0; index < length; index++) *buffer++ = sample_data[index]; /* account for the samples */ - length -= samples; + samples -= length; } } diff --git a/src/emu/sound/5220intf.c b/src/emu/sound/5220intf.c index 490566174c4..1534ef3c8d1 100644 --- a/src/emu/sound/5220intf.c +++ b/src/emu/sound/5220intf.c @@ -31,7 +31,7 @@ struct tms5220_info /* static function prototypes */ -static void tms5220_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length); +static STREAM_UPDATE( tms5220_update ); @@ -195,25 +195,25 @@ int tms5220_int_r(void) ***********************************************************************************************/ -static void tms5220_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( tms5220_update ) { struct tms5220_info *info = param; INT16 sample_data[MAX_SAMPLE_CHUNK]; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; /* loop while we still have samples to generate */ - while (length) + while (samples) { - int samples = (length > MAX_SAMPLE_CHUNK) ? MAX_SAMPLE_CHUNK : length; + int length = (samples > MAX_SAMPLE_CHUNK) ? MAX_SAMPLE_CHUNK : samples; int index; /* generate the samples and copy to the target buffer */ - tms5220_process(info->chip, sample_data, samples); - for (index = 0; index < samples; index++) + tms5220_process(info->chip, sample_data, length); + for (index = 0; index < length; index++) *buffer++ = sample_data[index]; /* account for the samples */ - length -= samples; + samples -= length; } } diff --git a/src/emu/sound/aica.c b/src/emu/sound/aica.c index a451b5124e4..df537127560 100644 --- a/src/emu/sound/aica.c +++ b/src/emu/sound/aica.c @@ -1276,11 +1276,11 @@ static int AICA_IRQCB(void *param) } #endif -static void AICA_Update(void *param, stream_sample_t **inputs, stream_sample_t **buf, int samples) +static STREAM_UPDATE( AICA_Update ) { struct _AICA *AICA = param; - bufferl = buf[0]; - bufferr = buf[1]; + bufferl = outputs[0]; + bufferr = outputs[1]; length = samples; AICA_DoMasterSamples(AICA, samples); } diff --git a/src/emu/sound/astrocde.c b/src/emu/sound/astrocde.c index d313f6f7617..2585c088a7a 100644 --- a/src/emu/sound/astrocde.c +++ b/src/emu/sound/astrocde.c @@ -76,10 +76,10 @@ struct astrocade_info * *************************************/ -static void astrocade_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int samples) +static STREAM_UPDATE( astrocade_update ) { struct astrocade_info *chip = param; - stream_sample_t *dest = buffer[0]; + stream_sample_t *dest = outputs[0]; UINT16 noise_state; UINT8 master_count; UINT8 noise_clock; diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c index 26133022e0c..d84919fe986 100644 --- a/src/emu/sound/ay8910.c +++ b/src/emu/sound/ay8910.c @@ -473,19 +473,19 @@ static void ay8910_write_reg(ay8910_context *psg, int r, int v) } } -static void ay8910_update(void *param,stream_sample_t **inputs, stream_sample_t **buffer,int length) +static STREAM_UPDATE( ay8910_update ) { ay8910_context *psg = param; stream_sample_t *buf[NUM_CHANNELS]; int chan; - buf[0] = buffer[0]; + buf[0] = outputs[0]; buf[1] = NULL; buf[2] = NULL; if (psg->streams == NUM_CHANNELS) { - buf[1] = buffer[1]; - buf[2] = buffer[2]; + buf[1] = outputs[1]; + buf[2] = outputs[2]; } /* hack to prevent us from hanging when starting filtered outputs */ @@ -493,7 +493,7 @@ static void ay8910_update(void *param,stream_sample_t **inputs, stream_sample_t { for (chan = 0; chan < NUM_CHANNELS; chan++) if (buf[chan] != NULL) - memset(buf[chan], 0, length * sizeof(*buf[chan])); + memset(buf[chan], 0, samples * sizeof(*buf[chan])); } /* The 8910 has three outputs, each output is the mix of one of the three */ @@ -504,7 +504,7 @@ static void ay8910_update(void *param,stream_sample_t **inputs, stream_sample_t /* is 1, not 0, and can be modulated changing the volume. */ /* buffering loop */ - while (length) + while (samples) { for (chan = 0; chan < NUM_CHANNELS; chan++) { @@ -601,7 +601,7 @@ static void ay8910_update(void *param,stream_sample_t **inputs, stream_sample_t + vol_enabled[2] * psg->vol_table[psg->Vol[2]]) / psg->step; #endif } - length--; + samples--; } } diff --git a/src/emu/sound/beep.c b/src/emu/sound/beep.c index 204fd82f34c..e8d3767b0ad 100644 --- a/src/emu/sound/beep.c +++ b/src/emu/sound/beep.c @@ -36,10 +36,10 @@ struct beep_sound * *************************************/ -static void beep_sound_update(void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) +static STREAM_UPDATE( beep_sound_update ) { struct beep_sound *bs = (struct beep_sound *) param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; INT16 signal = bs->signal; int clock = 0, rate = BEEP_RATE / 2; @@ -52,12 +52,12 @@ static void beep_sound_update(void *param,stream_sample_t **inputs, stream_sampl /* if we're not enabled, just fill with 0 */ if ( !bs->enable || clock == 0 ) { - memset( buffer, 0, length * sizeof(*buffer) ); + memset( buffer, 0, samples * sizeof(*buffer) ); return; } /* fill in the sample */ - while( length-- > 0 ) + while( samples-- > 0 ) { *buffer++ = signal; incr -= clock; diff --git a/src/emu/sound/bsmt2000.c b/src/emu/sound/bsmt2000.c index 1d8aca8a5c4..def48e4da10 100644 --- a/src/emu/sound/bsmt2000.c +++ b/src/emu/sound/bsmt2000.c @@ -86,7 +86,7 @@ struct _bsmt2000_chip /* core implementation */ static void bsmt2000_reset(bsmt2000_chip *chip); -static void bsmt2000_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length); +static STREAM_UPDATE( bsmt2000_update ); /* read/write access */ static void bsmt2000_reg_write(bsmt2000_chip *chip, offs_t offset, UINT16 data); @@ -183,17 +183,17 @@ static SND_RESET( bsmt2000 ) sample generation -------------------------------------------------*/ -static void bsmt2000_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( bsmt2000_update ) { - stream_sample_t *left = buffer[0]; - stream_sample_t *right = buffer[1]; + stream_sample_t *left = outputs[0]; + stream_sample_t *right = outputs[1]; bsmt2000_chip *chip = param; bsmt2000_voice *voice; int samp, voicenum; /* clear out the accumulator */ - memset(left, 0, length * sizeof(left[0])); - memset(right, 0, length * sizeof(right[0])); + memset(left, 0, samples * sizeof(left[0])); + memset(right, 0, samples * sizeof(right[0])); /* loop over voices */ for (voicenum = 0; voicenum < chip->voices; voicenum++) @@ -211,7 +211,7 @@ static void bsmt2000_update(void *param, stream_sample_t **inputs, stream_sample UINT16 frac = voice->fraction; /* loop while we still have samples to generate */ - for (samp = 0; samp < length; samp++) + for (samp = 0; samp < samples; samp++) { #if ENABLE_INTERPOLATION INT32 sample = (base[pos] * (0x800 - frac) + (base[pos + 1] * frac)) >> 11; @@ -249,7 +249,7 @@ static void bsmt2000_update(void *param, stream_sample_t **inputs, stream_sample UINT32 frac = voice->fraction; /* loop while we still have samples to generate */ - for (samp = 0; samp < length && pos < voice->loopend; samp++) + for (samp = 0; samp < samples && pos < voice->loopend; samp++) { /* apply volumes and add */ left[samp] += (chip->adpcm_current * lvol) >> 8; @@ -304,7 +304,7 @@ static void bsmt2000_update(void *param, stream_sample_t **inputs, stream_sample } /* reduce the overall gain */ - for (samp = 0; samp < length; samp++) + for (samp = 0; samp < samples; samp++) { left[samp] >>= 9; right[samp] >>= 9; diff --git a/src/emu/sound/c140.c b/src/emu/sound/c140.c index a585c896513..548c1be45f4 100644 --- a/src/emu/sound/c140.c +++ b/src/emu/sound/c140.c @@ -259,7 +259,7 @@ INLINE int limit(INT32 in) return in; } -static void update_stereo(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( update_stereo ) { struct c140_info *info = param; int i,j; @@ -277,11 +277,11 @@ static void update_stereo(void *param, stream_sample_t **inputs, stream_sample_t INT16 *lmix, *rmix; - if(length>info->sample_rate) length=info->sample_rate; + if(samples>info->sample_rate) samples=info->sample_rate; /* zap the contents of the mixer buffer */ - memset(info->mixer_buffer_left, 0, length * sizeof(INT16)); - memset(info->mixer_buffer_right, 0, length * sizeof(INT16)); + memset(info->mixer_buffer_left, 0, samples * sizeof(INT16)); + memset(info->mixer_buffer_right, 0, samples * sizeof(INT16)); /* get the number of voices to update */ voicecnt = (info->banking_type == C140_TYPE_ASIC219) ? 16 : 24; @@ -306,7 +306,7 @@ static void update_stereo(void *param, stream_sample_t **inputs, stream_sample_t lvol=(vreg->volume_left*32)/MAX_VOICE; //32ch -> 24ch rvol=(vreg->volume_right*32)/MAX_VOICE; - /* Set mixer buffer base pointers */ + /* Set mixer outputs base pointers */ lmix = info->mixer_buffer_left; rmix = info->mixer_buffer_right; @@ -330,7 +330,7 @@ static void update_stereo(void *param, stream_sample_t **inputs, stream_sample_t { //compressed PCM (maybe correct...) /* Loop for enough to fill sample buffer as requested */ - for(j=0;j>16)&0x7fff; @@ -377,7 +377,7 @@ static void update_stereo(void *param, stream_sample_t **inputs, stream_sample_t else { /* linear 8bit signed PCM */ - for(j=0;j>16)&0x7fff; @@ -444,9 +444,9 @@ static void update_stereo(void *param, stream_sample_t **inputs, stream_sample_t lmix = info->mixer_buffer_left; rmix = info->mixer_buffer_right; { - stream_sample_t *dest1 = buffer[0]; - stream_sample_t *dest2 = buffer[1]; - for (i = 0; i < length; i++) + stream_sample_t *dest1 = outputs[0]; + stream_sample_t *dest2 = outputs[1]; + for (i = 0; i < samples; i++) { *dest1++ = limit(8*(*lmix++)); *dest2++ = limit(8*(*rmix++)); diff --git a/src/emu/sound/c352.c b/src/emu/sound/c352.c index f6126ec05c2..c14304fe932 100644 --- a/src/emu/sound/c352.c +++ b/src/emu/sound/c352.c @@ -325,26 +325,26 @@ static void c352_mix_one_channel(struct c352_info *info, unsigned long ch, long } -static void c352_update(void *param, stream_sample_t **inputs, stream_sample_t **buf, int sample_count) +static STREAM_UPDATE( c352_update ) { struct c352_info *info = param; int i, j; - stream_sample_t *bufferl = buf[0]; - stream_sample_t *bufferr = buf[1]; - stream_sample_t *bufferl2 = buf[2]; - stream_sample_t *bufferr2 = buf[3]; + stream_sample_t *bufferl = outputs[0]; + stream_sample_t *bufferr = outputs[1]; + stream_sample_t *bufferl2 = outputs[2]; + stream_sample_t *bufferr2 = outputs[3]; - for(i = 0 ; i < sample_count ; i++) + for(i = 0 ; i < samples ; i++) { info->channel_l[i] = info->channel_r[i] = info->channel_l2[i] = info->channel_r2[i] = 0; } for (j = 0 ; j < 32 ; j++) { - c352_mix_one_channel(info, j, sample_count); + c352_mix_one_channel(info, j, samples); } - for(i = 0 ; i < sample_count ; i++) + for(i = 0 ; i < samples ; i++) { *bufferl++ = (short) (info->channel_l[i] >>3); *bufferr++ = (short) (info->channel_r[i] >>3); diff --git a/src/emu/sound/c6280.c b/src/emu/sound/c6280.c index 3bd394b3964..82c1f035a98 100644 --- a/src/emu/sound/c6280.c +++ b/src/emu/sound/c6280.c @@ -208,7 +208,7 @@ static void c6280_write(c6280_t *p, int offset, int data) } -static void c6280_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( c6280_update ) { static const int scale_tab[] = { 0x00, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, @@ -226,10 +226,10 @@ static void c6280_update(void *param, stream_sample_t **inputs, stream_sample_t rmal = scale_tab[rmal]; /* Clear buffer */ - for(i = 0; i < length; i++) + for(i = 0; i < samples; i++) { - buffer[0][i] = 0; - buffer[1][i] = 0; + outputs[0][i] = 0; + outputs[1][i] = 0; } for(ch = 0; ch < 6; ch++) @@ -259,7 +259,7 @@ static void c6280_update(void *param, stream_sample_t **inputs, stream_sample_t { /* Noise mode */ UINT32 step = p->noise_freq_tab[(p->channel[ch].noise_control & 0x1F) ^ 0x1F]; - for(i = 0; i < length; i += 1) + for(i = 0; i < samples; i += 1) { static int data = 0; p->channel[ch].noise_counter += step; @@ -268,25 +268,25 @@ static void c6280_update(void *param, stream_sample_t **inputs, stream_sample_t data = (mame_rand(p->device->machine) & 1) ? 0x1F : 0; } p->channel[ch].noise_counter &= 0x7FF; - buffer[0][i] += (INT16)(vll * (data - 16)); - buffer[1][i] += (INT16)(vlr * (data - 16)); + outputs[0][i] += (INT16)(vll * (data - 16)); + outputs[1][i] += (INT16)(vlr * (data - 16)); } } else if(p->channel[ch].control & 0x40) { /* DDA mode */ - for(i = 0; i < length; i++) + for(i = 0; i < samples; i++) { - buffer[0][i] += (INT16)(vll * (p->channel[ch].dda - 16)); - buffer[1][i] += (INT16)(vlr * (p->channel[ch].dda - 16)); + outputs[0][i] += (INT16)(vll * (p->channel[ch].dda - 16)); + outputs[1][i] += (INT16)(vlr * (p->channel[ch].dda - 16)); } } else { /* Waveform mode */ UINT32 step = p->wave_freq_tab[p->channel[ch].frequency]; - for(i = 0; i < length; i += 1) + for(i = 0; i < samples; i += 1) { int offset; INT16 data; @@ -294,8 +294,8 @@ static void c6280_update(void *param, stream_sample_t **inputs, stream_sample_t p->channel[ch].counter += step; p->channel[ch].counter &= 0x1FFFF; data = p->channel[ch].waveform[offset]; - buffer[0][i] += (INT16)(vll * (data - 16)); - buffer[1][i] += (INT16)(vlr * (data - 16)); + outputs[0][i] += (INT16)(vll * (data - 16)); + outputs[1][i] += (INT16)(vlr * (data - 16)); } } } diff --git a/src/emu/sound/cdda.c b/src/emu/sound/cdda.c index c53a950b945..009d099f0a6 100644 --- a/src/emu/sound/cdda.c +++ b/src/emu/sound/cdda.c @@ -32,10 +32,10 @@ static void get_audio_data(cdda_info *info, stream_sample_t *bufL, stream_sample cdda_update - stream update callback -------------------------------------------------*/ -static void cdda_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( cdda_update ) { cdda_info *info = param; - get_audio_data(info, &outputs[0][0], &outputs[1][0], length); + get_audio_data(info, &outputs[0][0], &outputs[1][0], samples); } diff --git a/src/emu/sound/cdp1869.c b/src/emu/sound/cdp1869.c index 4c24c9db19d..8dc3af14a4c 100644 --- a/src/emu/sound/cdp1869.c +++ b/src/emu/sound/cdp1869.c @@ -40,13 +40,13 @@ struct CDP1869 * *************************************/ -static void cdp1869_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( cdp1869_update ) { struct CDP1869 *info = param; INT16 signal = info->signal; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; - memset( buffer, 0, length * sizeof(*buffer) ); + memset( buffer, 0, samples * sizeof(*buffer) ); if (!info->toneoff && info->toneamp) { @@ -67,7 +67,7 @@ static void cdp1869_update(void *param, stream_sample_t **inputs, stream_sample_ signal = info->toneamp * (0x07fff / 15); } - while( length-- > 0 ) + while( samples-- > 0 ) { *buffer++ = signal; incr -= frequency; diff --git a/src/emu/sound/cem3394.c b/src/emu/sound/cem3394.c index 3d380ff5c18..5f058f641a4 100644 --- a/src/emu/sound/cem3394.c +++ b/src/emu/sound/cem3394.c @@ -139,13 +139,13 @@ typedef struct /* generate sound to the mix buffer in mono */ -static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( cem3394_update ) { sound_chip *chip = param; int int_volume = (chip->volume * chip->mixer_internal) / 256; int ext_volume = (chip->volume * chip->mixer_external) / 256; UINT32 step = chip->step, position, end_position = 0; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; INT16 *mix, *ext; int i; @@ -160,7 +160,7 @@ static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_ /* bail if nothing's going on */ if (int_volume == 0 && ext_volume == 0) { - memset(buffer, 0, sizeof(*buffer) * length); + memset(buffer, 0, sizeof(*buffer) * samples); return; } @@ -171,7 +171,7 @@ static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_ INT16 last_ext = chip->last_ext; /* fetch the external data */ - (*chip->external)(chip->index, length, chip->external_buffer); + (*chip->external)(chip->index, samples, chip->external_buffer); /* compute the modulation depth, and adjust fstep to the maximum frequency */ /* we lop off 13 bits of depth so that we can multiply by stepadjust, below, */ @@ -182,7 +182,7 @@ static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_ /* "apply" the filter: note this is pretty cheesy; it basically just downsamples the external sample to filter_freq by allowing only 2 transitions for every cycle */ - for (i = 0, ext = chip->external_buffer, position = chip->position; i < length; i++, ext++) + for (i = 0, ext = chip->external_buffer, position = chip->position; i < samples; i++, ext++) { UINT32 newposition; INT32 stepadjust; @@ -224,7 +224,7 @@ static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_ /* if the width is wider than the step, we're guaranteed to hit it once per cycle */ if (pulse_width >= step) { - for (i = 0, mix = chip->mixer_buffer, position = chip->position; i < length; i++, mix++) + for (i = 0, mix = chip->mixer_buffer, position = chip->position; i < samples; i++, mix++) { if (position < pulse_width) *mix = 0x1932; @@ -238,7 +238,7 @@ static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_ else { INT16 volume = 0x1932 * pulse_width / step; - for (i = 0, mix = chip->mixer_buffer, position = chip->position; i < length; i++, mix++) + for (i = 0, mix = chip->mixer_buffer, position = chip->position; i < samples; i++, mix++) { UINT32 newposition = position + step; if ((newposition ^ position) & ~FRACTION_MASK) @@ -253,13 +253,13 @@ static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_ /* otherwise, clear the mixing buffer */ else - memset(chip->mixer_buffer, 0, sizeof(INT16) * length); + memset(chip->mixer_buffer, 0, sizeof(INT16) * samples); /* handle the sawtooth component; it maxes out at 0x2000, which is 27% larger */ /* than the pulse */ if (ENABLE_SAWTOOTH && (chip->wave_select & WAVE_SAWTOOTH)) { - for (i = 0, mix = chip->mixer_buffer, position = chip->position; i < length; i++, mix++) + for (i = 0, mix = chip->mixer_buffer, position = chip->position; i < samples; i++, mix++) { *mix += ((position >> (FRACTION_BITS - 14)) & 0x3fff) - 0x2000; position += step; @@ -272,7 +272,7 @@ static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_ /* a multiplication) */ if (ENABLE_TRIANGLE && (chip->wave_select & WAVE_TRIANGLE)) { - for (i = 0, mix = chip->mixer_buffer, position = chip->position; i < length; i++, mix++) + for (i = 0, mix = chip->mixer_buffer, position = chip->position; i < samples; i++, mix++) { INT16 value; if (position & (1 << (FRACTION_BITS - 1))) @@ -296,19 +296,19 @@ static void cem3394_update(void *param, stream_sample_t **inputs, stream_sample_ /* internal + external */ if (ext_volume != 0 && int_volume != 0) { - for (i = 0; i < length; i++, mix++, ext++) + for (i = 0; i < samples; i++, mix++, ext++) *buffer++ = (*mix * int_volume + *ext * ext_volume) / 128; } /* internal only */ else if (int_volume != 0) { - for (i = 0; i < length; i++, mix++) + for (i = 0; i < samples; i++, mix++) *buffer++ = *mix * int_volume / 128; } /* external only */ else { - for (i = 0; i < length; i++, ext++) + for (i = 0; i < samples; i++, ext++) *buffer++ = *ext * ext_volume / 128; } } diff --git a/src/emu/sound/dac.c b/src/emu/sound/dac.c index 53c2040039c..fa30aefc338 100644 --- a/src/emu/sound/dac.c +++ b/src/emu/sound/dac.c @@ -18,13 +18,13 @@ struct dac_info -static void DAC_update(void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) +static STREAM_UPDATE( DAC_update ) { struct dac_info *info = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; INT16 out = info->output; - while (length--) *(buffer++) = out; + while (samples--) *(buffer++) = out; } diff --git a/src/emu/sound/discrete.c b/src/emu/sound/discrete.c index 8339fb1c2c5..0de541d2aa4 100644 --- a/src/emu/sound/discrete.c +++ b/src/emu/sound/discrete.c @@ -424,7 +424,7 @@ static SND_RESET( discrete ) * *************************************/ -static void discrete_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( discrete_stream_update ) { discrete_info *info = param; int samplenum, nodenum, outputnum; @@ -439,8 +439,8 @@ static void discrete_stream_update(void *param, stream_sample_t **inputs, stream info->input_stream_data[nodenum] = inputs[nodenum]; } - /* Now we must do length iterations of the node list, one output for each step */ - for (samplenum = 0; samplenum < length; samplenum++) + /* Now we must do samples iterations of the node list, one output for each step */ + for (samplenum = 0; samplenum < samples; samplenum++) { /* loop over all nodes */ for (nodenum = 0; nodenum < info->node_count; nodenum++) @@ -463,7 +463,7 @@ static void discrete_stream_update(void *param, stream_sample_t **inputs, stream for (outputnum = 0; outputnum < info->discrete_outputs; outputnum++) { val = (*info->output_node[outputnum]->input[0]) * (*info->output_node[outputnum]->input[1]); - buffer[outputnum][samplenum] = val; + outputs[outputnum][samplenum] = val; } /* Dump any csv logs */ diff --git a/src/emu/sound/dmadac.c b/src/emu/sound/dmadac.c index 4f0c3068aa9..9e2eeffb2d8 100644 --- a/src/emu/sound/dmadac.c +++ b/src/emu/sound/dmadac.c @@ -62,21 +62,21 @@ struct dmadac_channel_data * *************************************/ -static void dmadac_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( dmadac_update ) { struct dmadac_channel_data *ch = param; - stream_sample_t *output = _buffer[0]; + stream_sample_t *output = outputs[0]; INT16 *source = ch->buffer; UINT32 curout = ch->bufout; UINT32 curin = ch->bufin; int volume = ch->volume; /* feed as much as we can */ - while (curout != curin && length-- > 0) + while (curout != curin && samples-- > 0) *output++ = (source[curout++ % BUFFER_SIZE] * volume) >> 8; /* fill the rest with silence */ - while (length-- > 0) + while (samples-- > 0) *output++ = 0; /* save the new output pointer */ diff --git a/src/emu/sound/es5503.c b/src/emu/sound/es5503.c index 4b984b27c2c..2cf6f3c1903 100644 --- a/src/emu/sound/es5503.c +++ b/src/emu/sound/es5503.c @@ -141,7 +141,7 @@ static TIMER_CALLBACK( es5503_timer_cb ) stream_update(chip->stream); } -static void es5503_pcm_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( es5503_pcm_update ) { INT32 mix[48000*2]; INT32 *mixp; @@ -169,7 +169,7 @@ static void es5503_pcm_update(void *param, stream_sample_t **inputs, stream_samp int resshift = resshifts[pOsc->resolution] - pOsc->wavetblsize; UINT32 sizemask = accmasks[pOsc->wavetblsize]; - for (snum = 0; snum < length; snum++) + for (snum = 0; snum < samples; snum++) { ramptr = (acc >> resshift) & sizemask; altram = acc >> resshift; @@ -216,7 +216,7 @@ static void es5503_pcm_update(void *param, stream_sample_t **inputs, stream_samp } mixp = &mix[0]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { outputs[0][i] = (*mixp++)>>1; outputs[1][i] = (*mixp++)>>1; diff --git a/src/emu/sound/es5506.c b/src/emu/sound/es5506.c index 0412119f4c0..42812101117 100644 --- a/src/emu/sound/es5506.c +++ b/src/emu/sound/es5506.c @@ -769,12 +769,12 @@ logerror("IRQ raised on voice %d!!\n",v); ***********************************************************************************************/ -static void es5506_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( es5506_update ) { struct ES5506Chip *chip = param; INT32 *lsrc = chip->scratch, *rsrc = chip->scratch; - stream_sample_t *ldest = buffer[0]; - stream_sample_t *rdest = buffer[1]; + stream_sample_t *ldest = outputs[0]; + stream_sample_t *rdest = outputs[1]; #if MAKE_WAVS /* start the logging once we have a sample rate */ @@ -786,18 +786,18 @@ static void es5506_update(void *param, stream_sample_t **inputs, stream_sample_t #endif /* loop until all samples are output */ - while (length) + while (samples) { - int samples = (length > MAX_SAMPLE_CHUNK) ? MAX_SAMPLE_CHUNK : length; + int length = (samples > MAX_SAMPLE_CHUNK) ? MAX_SAMPLE_CHUNK : samples; int samp; /* determine left/right source data */ lsrc = chip->scratch; - rsrc = chip->scratch + samples; - generate_samples(chip, lsrc, rsrc, samples); + rsrc = chip->scratch + length; + generate_samples(chip, lsrc, rsrc, length); /* copy the data */ - for (samp = 0; samp < samples; samp++) + for (samp = 0; samp < length; samp++) { *ldest++ = lsrc[samp] >> 4; *rdest++ = rsrc[samp] >> 4; @@ -806,11 +806,11 @@ static void es5506_update(void *param, stream_sample_t **inputs, stream_sample_t #if MAKE_WAVS /* log the raw data */ if (chip->wavraw) - wav_add_data_32lr(chip->wavraw, lsrc, rsrc, samples, 4); + wav_add_data_32lr(chip->wavraw, lsrc, rsrc, length, 4); #endif /* account for these samples */ - length -= samples; + samples -= length; } } diff --git a/src/emu/sound/es8712.c b/src/emu/sound/es8712.c index 081a456cb7c..79113f528a1 100644 --- a/src/emu/sound/es8712.c +++ b/src/emu/sound/es8712.c @@ -165,7 +165,7 @@ static void generate_adpcm(struct es8712 *chip, stream_sample_t *buffer, int sam ***********************************************************************************************/ -static void es8712_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( es8712_update ) { stream_sample_t *buffer = outputs[0]; struct es8712 *chip = param; diff --git a/src/emu/sound/flt_rc.c b/src/emu/sound/flt_rc.c index 58088e4c06f..5fbb5bba61c 100644 --- a/src/emu/sound/flt_rc.c +++ b/src/emu/sound/flt_rc.c @@ -14,7 +14,7 @@ struct filter_rc_info const flt_rc_config flt_rc_ac_default = {FLT_RC_AC, 10000, 0, 0, CAP_U(1)}; -static void filter_rc_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( filter_rc_update ) { stream_sample_t *src = inputs[0]; stream_sample_t *dst = outputs[0]; diff --git a/src/emu/sound/flt_vol.c b/src/emu/sound/flt_vol.c index 914ca7aa993..c2457e5199b 100644 --- a/src/emu/sound/flt_vol.c +++ b/src/emu/sound/flt_vol.c @@ -11,7 +11,7 @@ struct filter_volume_info -static void filter_volume_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( filter_volume_update ) { stream_sample_t *src = inputs[0]; stream_sample_t *dst = outputs[0]; diff --git a/src/emu/sound/gaelco.c b/src/emu/sound/gaelco.c index cf112ed0c05..e72357ded8a 100644 --- a/src/emu/sound/gaelco.c +++ b/src/emu/sound/gaelco.c @@ -83,13 +83,13 @@ static void * wavraw; /* raw waveform */ Writes length bytes to the sound buffer ============================================================================*/ -static void gaelco_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( gaelco_update ) { struct GAELCOSND *info = param; int j, ch; /* fill all data needed */ - for(j = 0; j < length; j++){ + for(j = 0; j < samples; j++){ int output_l = 0, output_r = 0; /* for each channel */ @@ -175,12 +175,12 @@ static void gaelco_update(void *param, stream_sample_t **inputs, stream_sample_t #endif /* now that we have computed all channels, save current data to the output buffer */ - buffer[0][j] = output_l; - buffer[1][j] = output_r; + outputs[0][j] = output_l; + outputs[1][j] = output_r; } if (wavraw) - wav_add_data_32lr(wavraw, buffer[0], buffer[1], length, 0); + wav_add_data_32lr(wavraw, outputs[0], outputs[1], samples, 0); } /*============================================================================ diff --git a/src/emu/sound/hc55516.c b/src/emu/sound/hc55516.c index 70aef19d72c..e6e6d24fc70 100644 --- a/src/emu/sound/hc55516.c +++ b/src/emu/sound/hc55516.c @@ -48,7 +48,7 @@ struct hc55516_data static double charge, decay, leak; -static void hc55516_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length); +static STREAM_UPDATE( hc55516_update ); @@ -182,21 +182,21 @@ static void process_digit(struct hc55516_data *chip) } -static void hc55516_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( hc55516_update ) { struct hc55516_data *chip = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; int i; INT32 sample, slope; /* zero-length? bail */ - if (length == 0) + if (samples == 0) return; if (!is_external_osciallator(chip)) { /* track how many samples we've updated without a clock */ - chip->update_count += length; + chip->update_count += samples; if (chip->update_count > SAMPLE_RATE / 32) { chip->update_count = SAMPLE_RATE; @@ -206,13 +206,13 @@ static void hc55516_update(void *param, stream_sample_t **inputs, stream_sample_ /* compute the interpolation slope */ sample = chip->curr_sample; - slope = ((INT32)chip->next_sample - sample) / length; + slope = ((INT32)chip->next_sample - sample) / samples; chip->curr_sample = chip->next_sample; if (is_external_osciallator(chip)) { /* external oscillator */ - for (i = 0; i < length; i++, sample += slope) + for (i = 0; i < samples; i++, sample += slope) { UINT8 clock_state; @@ -236,7 +236,7 @@ static void hc55516_update(void *param, stream_sample_t **inputs, stream_sample_ /* software driven clock */ else - for (i = 0; i < length; i++, sample += slope) + for (i = 0; i < samples; i++, sample += slope) *buffer++ = sample; } diff --git a/src/emu/sound/ics2115.c b/src/emu/sound/ics2115.c index 89debf2ea9f..eb205991ac2 100644 --- a/src/emu/sound/ics2115.c +++ b/src/emu/sound/ics2115.c @@ -85,14 +85,14 @@ static void recalc_irq(struct ics2115 *chip) } -static void update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( update ) { struct ics2115 *chip = param; int osc, i; int rec_irq = 0; - memset(buffer[0], 0, length*sizeof(*buffer[0])); - memset(buffer[1], 0, length*sizeof(*buffer[0])); + memset(outputs[0], 0, samples*sizeof(*outputs[0])); + memset(outputs[1], 0, samples*sizeof(*outputs[0])); for(osc = 0; osc < 32; osc++) if(chip->voice[osc].state & V_ON) { @@ -108,7 +108,7 @@ static void update(void *param, stream_sample_t **inputs, stream_sample_t **buff if (ICS2115LOGERROR) logerror("ICS2115: KEYRUN %02d adr=%08x end=%08x delta=%08x\n", osc, adr, end, delta); - for(i=0; irom[badr|(adr >> 12)]; if(conf & 1) v = chip->ulaw[v]; @@ -116,8 +116,8 @@ static void update(void *param, stream_sample_t **inputs, stream_sample_t **buff v = ((INT8)v) << 6; v = (v*vol)>>(16+5); - buffer[0][i] += v; - buffer[1][i] += v; + outputs[0][i] += v; + outputs[1][i] += v; adr += delta; if(adr >= end) { if (ICS2115LOGERROR) logerror("ICS2115: KEYDONE %2d\n", osc); diff --git a/src/emu/sound/iremga20.c b/src/emu/sound/iremga20.c index ac3b0deee00..0bd4dba1297 100644 --- a/src/emu/sound/iremga20.c +++ b/src/emu/sound/iremga20.c @@ -55,7 +55,7 @@ struct IremGA20_chip_def struct IremGA20_channel_def channel[4]; }; -static void IremGA20_update( void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length ) +static STREAM_UPDATE( IremGA20_update ) { struct IremGA20_chip_def *chip = param; UINT32 rate[4], pos[4], frac[4], end[4], vol[4], play[4]; @@ -74,12 +74,12 @@ static void IremGA20_update( void *param, stream_sample_t **inputs, stream_sampl play[i] = chip->channel[i].play; } - i = length; + i = samples; pSamples = chip->rom; - outL = buffer[0]; - outR = buffer[1]; + outL = outputs[0]; + outR = outputs[1]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { sampleout = 0; diff --git a/src/emu/sound/k005289.c b/src/emu/sound/k005289.c index 8a4a56ad7bc..a969c59ac91 100644 --- a/src/emu/sound/k005289.c +++ b/src/emu/sound/k005289.c @@ -87,16 +87,16 @@ static int make_mixer_table(struct k005289_info *info, int voices) /* generate sound to the mix buffer */ -static void K005289_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( K005289_update ) { struct k005289_info *info = param; k005289_sound_channel *voice=info->channel_list; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; short *mix; int i,v,f; /* zap the contents of the mixer buffer */ - memset(info->mixer_buffer, 0, length * sizeof(INT16)); + memset(info->mixer_buffer, 0, samples * sizeof(INT16)); v=voice[0].volume; f=voice[0].frequency; @@ -108,7 +108,7 @@ static void K005289_update(void *param, stream_sample_t **inputs, stream_sample_ mix = info->mixer_buffer; /* add our contribution */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { int offs; @@ -131,7 +131,7 @@ static void K005289_update(void *param, stream_sample_t **inputs, stream_sample_ mix = info->mixer_buffer; /* add our contribution */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { int offs; @@ -146,7 +146,7 @@ static void K005289_update(void *param, stream_sample_t **inputs, stream_sample_ /* mix it down */ mix = info->mixer_buffer; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) *buffer++ = info->mixer_lookup[*mix++]; } diff --git a/src/emu/sound/k007232.c b/src/emu/sound/k007232.c index 5e6653b9f47..a984dccddf6 100644 --- a/src/emu/sound/k007232.c +++ b/src/emu/sound/k007232.c @@ -216,13 +216,13 @@ static void KDAC_A_make_fncode( struct kdacApcm *info ){ /* Konami PCM update */ /************************************************/ -static void KDAC_A_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int buffer_len) +static STREAM_UPDATE( KDAC_A_update ) { struct kdacApcm *info = param; int i; - memset(buffer[0],0,buffer_len * sizeof(*buffer[0])); - memset(buffer[1],0,buffer_len * sizeof(*buffer[1])); + memset(outputs[0],0,samples * sizeof(*outputs[0])); + memset(outputs[1],0,samples * sizeof(*outputs[1])); for( i = 0; i < KDAC_A_PCM_MAX; i++ ) { @@ -242,7 +242,7 @@ static void KDAC_A_update(void *param, stream_sample_t **inputs, stream_sample_t volB = (volB + cen) < 0x1fe ? (volB + cen) : 0x1fe; #endif - for( j = 0; j < buffer_len; j++ ) + for( j = 0; j < samples; j++ ) { old_addr = addr; addr = info->start[i] + ((info->addr[i]>>BASE_SHIFT)&0x000fffff); @@ -282,8 +282,8 @@ static void KDAC_A_update(void *param, stream_sample_t **inputs, stream_sample_t out = (info->pcmbuf[i][addr] & 0x7f) - 0x40; - buffer[0][j] += out * volA; - buffer[1][j] += out * volB; + outputs[0][j] += out * volA; + outputs[1][j] += out * volB; } } } diff --git a/src/emu/sound/k051649.c b/src/emu/sound/k051649.c index fc9a750c600..2a5a7e4240d 100644 --- a/src/emu/sound/k051649.c +++ b/src/emu/sound/k051649.c @@ -81,16 +81,16 @@ static int make_mixer_table(struct k051649_info *info, int voices) /* generate sound to the mix buffer */ -static void k051649_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( k051649_update ) { struct k051649_info *info = param; k051649_sound_channel *voice=info->channel_list; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; short *mix; int i,v,f,j,k; /* zap the contents of the mixer buffer */ - memset(info->mixer_buffer, 0, length * sizeof(short)); + memset(info->mixer_buffer, 0, samples * sizeof(short)); for (j=0; j<5; j++) { v=voice[j].volume; @@ -105,7 +105,7 @@ static void k051649_update(void *param, stream_sample_t **inputs, stream_sample_ mix = info->mixer_buffer; /* add our contribution */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { int offs; @@ -123,7 +123,7 @@ static void k051649_update(void *param, stream_sample_t **inputs, stream_sample_ /* mix it down */ mix = info->mixer_buffer; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) *buffer++ = info->mixer_lookup[*mix++]; } diff --git a/src/emu/sound/k053260.c b/src/emu/sound/k053260.c index a3d7c073f3f..b6bf0ef40ae 100644 --- a/src/emu/sound/k053260.c +++ b/src/emu/sound/k053260.c @@ -100,7 +100,7 @@ INLINE int limit( int val, int max, int min ) { #define MAXOUT 0x7fff #define MINOUT -0x8000 -static void k053260_update( void * param, stream_sample_t **inputs, stream_sample_t **buffer, int length ) { +static STREAM_UPDATE( k053260_update ) { static const long dpcmcnv[] = { 0,1,2,4,8,16,32,64, -128, -64, -32, -16, -8, -4, -2, -1}; int i, j, lvol[4], rvol[4], play[4], loop[4], ppcm_data[4], ppcm[4]; @@ -126,7 +126,7 @@ static void k053260_update( void * param, stream_sample_t **inputs, stream_sampl delta[i] /= 2; } - for ( j = 0; j < length; j++ ) { + for ( j = 0; j < samples; j++ ) { dataL = dataR = 0; @@ -187,8 +187,8 @@ static void k053260_update( void * param, stream_sample_t **inputs, stream_sampl } } - buffer[1][j] = limit( dataL, MAXOUT, MINOUT ); - buffer[0][j] = limit( dataR, MAXOUT, MINOUT ); + outputs[1][j] = limit( dataL, MAXOUT, MINOUT ); + outputs[0][j] = limit( dataR, MAXOUT, MINOUT ); } /* update the regs now */ diff --git a/src/emu/sound/k054539.c b/src/emu/sound/k054539.c index 59a8814406e..09f51782ed2 100644 --- a/src/emu/sound/k054539.c +++ b/src/emu/sound/k054539.c @@ -119,7 +119,7 @@ static void k054539_keyoff(struct k054539_info *info, int channel) info->regs[0x22c] &= ~(1 << channel); } -static void k054539_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( k054539_update ) { struct k054539_info *info = param; #define VOL_CAP 1.80 @@ -131,7 +131,7 @@ static void k054539_update(void *param, stream_sample_t **inputs, stream_sample_ int ch, reverb_pos; short *rbase; - unsigned char *samples; + unsigned char *rom; UINT32 rom_mask; unsigned char *base1, *base2; @@ -146,15 +146,15 @@ static void k054539_update(void *param, stream_sample_t **inputs, stream_sample_ reverb_pos = info->reverb_pos; rbase = (short *)(info->ram); - memset(buffer[0], 0, length*sizeof(*buffer[0])); - memset(buffer[1], 0, length*sizeof(*buffer[1])); + memset(outputs[0], 0, samples*sizeof(*outputs[0])); + memset(outputs[1], 0, samples*sizeof(*outputs[1])); - samples = info->rom; + rom = info->rom; rom_mask = info->rom_mask; if(!(info->regs[0x22f] & 1)) return; - info->reverb_pos = (reverb_pos + length) & 0x3fff; + info->reverb_pos = (reverb_pos + samples) & 0x3fff; for(ch=0; ch<8; ch++) @@ -199,8 +199,8 @@ else cur_pos = (base1[0x0c] | (base1[0x0d] << 8) | (base1[0x0e] << 16)) & rom_mask; - bufl = buffer[0]; - bufr = buffer[1]; + bufl = outputs[0]; + bufr = outputs[1]; //* if(base2[0] & 0x20) { @@ -233,18 +233,18 @@ else switch(base2[0] & 0xc) { case 0x0: { // 8bit pcm - for(i=0; i>1]; + cur_val = rom[cur_pos>>1]; if(cur_val == 0x88) { if(base2[1] & 1) { cur_pos = ((base1[0x08] | (base1[0x09] << 8) | (base1[0x0a] << 16)) & rom_mask) << 1; - cur_val = samples[cur_pos>>1]; + cur_val = rom[cur_pos>>1]; if(cur_val != 0x88) goto next_iter; } @@ -351,19 +351,19 @@ else //* drivers should be given the option to disable reverb when things go terribly wrong if(!(info->k054539_flags & K054539_DISABLE_REVERB)) { - for(i=0; i 0x4000) { + if(reverb_pos + samples > 0x4000) { i = 0x4000 - reverb_pos; memset(rbase + reverb_pos, 0, i*2); - memset(rbase, 0, (length-i)*2); + memset(rbase, 0, (samples-i)*2); } else - memset(rbase + reverb_pos, 0, length*2); + memset(rbase + reverb_pos, 0, samples*2); #if CHANNEL_DEBUG { diff --git a/src/emu/sound/msm5205.c b/src/emu/sound/msm5205.c index e7da4462402..b203f3b49f4 100644 --- a/src/emu/sound/msm5205.c +++ b/src/emu/sound/msm5205.c @@ -90,23 +90,23 @@ static void ComputeTables (struct MSM5205Voice *voice) } /* stream update callbacks */ -static void MSM5205_update(void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) +static STREAM_UPDATE( MSM5205_update ) { struct MSM5205Voice *voice = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; /* if this voice is active */ if(voice->signal) { short val = voice->signal * 16; - while (length) + while (samples) { *buffer++ = val; - length--; + samples--; } } else - memset (buffer,0,length*sizeof(*buffer)); + memset (buffer,0,samples*sizeof(*buffer)); } /* timer callback at VCLK low eddge */ diff --git a/src/emu/sound/msm5232.c b/src/emu/sound/msm5232.c index 794b2b275cb..ac2f83dc7a5 100644 --- a/src/emu/sound/msm5232.c +++ b/src/emu/sound/msm5232.c @@ -703,20 +703,20 @@ INLINE void TG_group_advance(MSM5232 *chip, int groupidx) #endif -static void MSM5232_update_one(void *param, stream_sample_t **inputs, stream_sample_t** buffer, int samples) +static STREAM_UPDATE( MSM5232_update_one ) { MSM5232 * chip = param; - stream_sample_t *buf1 = buffer[0]; - stream_sample_t *buf2 = buffer[1]; - stream_sample_t *buf3 = buffer[2]; - stream_sample_t *buf4 = buffer[3]; - stream_sample_t *buf5 = buffer[4]; - stream_sample_t *buf6 = buffer[5]; - stream_sample_t *buf7 = buffer[6]; - stream_sample_t *buf8 = buffer[7]; - stream_sample_t *bufsolo1 = buffer[8]; - stream_sample_t *bufsolo2 = buffer[9]; - stream_sample_t *bufnoise = buffer[10]; + stream_sample_t *buf1 = outputs[0]; + stream_sample_t *buf2 = outputs[1]; + stream_sample_t *buf3 = outputs[2]; + stream_sample_t *buf4 = outputs[3]; + stream_sample_t *buf5 = outputs[4]; + stream_sample_t *buf6 = outputs[5]; + stream_sample_t *buf7 = outputs[6]; + stream_sample_t *buf8 = outputs[7]; + stream_sample_t *bufsolo1 = outputs[8]; + stream_sample_t *bufsolo2 = outputs[9]; + stream_sample_t *bufnoise = outputs[10]; int i; for (i=0; ivoices[ch]; if (v->playing) @@ -62,7 +62,7 @@ static void namco_63701x_update(void *param, stream_sample_t **inputs, stream_sa int vol = vol_table[v->volume]; int p; - for (p = 0;p < length;p++) + for (p = 0;p < samples;p++) { if (v->silence_counter) { @@ -94,7 +94,7 @@ static void namco_63701x_update(void *param, stream_sample_t **inputs, stream_sa v->position = pos; } else - memset(buf, 0, length * sizeof(*buf)); + memset(buf, 0, samples * sizeof(*buf)); } } diff --git a/src/emu/sound/namco.c b/src/emu/sound/namco.c index 9e10150a94a..f0584237f89 100644 --- a/src/emu/sound/namco.c +++ b/src/emu/sound/namco.c @@ -160,14 +160,14 @@ INLINE UINT32 namco_update_one(struct namco_sound *chip, stream_sample_t *buffer /* generate sound to the mix buffer in mono */ -static void namco_update_mono(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( namco_update_mono ) { struct namco_sound *chip = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; sound_channel *voice; /* zap the contents of the buffer */ - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); /* if no sound, we're done */ if (chip->sound_enable == 0) @@ -194,7 +194,7 @@ static void namco_update_mono(void *param, stream_sample_t **inputs, stream_samp int i; /* add our contribution */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { int cnt; @@ -235,7 +235,7 @@ static void namco_update_mono(void *param, stream_sample_t **inputs, stream_samp const INT16 *w = &chip->waveform[v][voice->waveform_select * 32]; /* generate sound into buffer and update the counter for this voice */ - voice->counter = namco_update_one(chip, mix, length, w, voice->counter, voice->frequency); + voice->counter = namco_update_one(chip, mix, samples, w, voice->counter, voice->frequency); } } } @@ -243,14 +243,14 @@ static void namco_update_mono(void *param, stream_sample_t **inputs, stream_samp /* generate sound to the mix buffer in stereo */ -static void namco_update_stereo(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( namco_update_stereo ) { struct namco_sound *chip = param; sound_channel *voice; /* zap the contents of the buffers */ - memset(buffer[0], 0, length * sizeof(*buffer[0])); - memset(buffer[1], 0, length * sizeof(*buffer[1])); + memset(outputs[0], 0, samples * sizeof(*outputs[0])); + memset(outputs[1], 0, samples * sizeof(*outputs[1])); /* if no sound, we're done */ if (chip->sound_enable == 0) @@ -259,8 +259,8 @@ static void namco_update_stereo(void *param, stream_sample_t **inputs, stream_sa /* loop over each voice and add its contribution */ for (voice = chip->channel_list; voice < chip->last_channel; voice++) { - stream_sample_t *lmix = buffer[0]; - stream_sample_t *rmix = buffer[1]; + stream_sample_t *lmix = outputs[0]; + stream_sample_t *rmix = outputs[1]; int lv = voice->volume[0]; int rv = voice->volume[1]; @@ -280,7 +280,7 @@ static void namco_update_stereo(void *param, stream_sample_t **inputs, stream_sa int i; /* add our contribution */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { int cnt; @@ -333,7 +333,7 @@ static void namco_update_stereo(void *param, stream_sample_t **inputs, stream_sa const INT16 *lw = &chip->waveform[lv][voice->waveform_select * 32]; /* generate sound into the buffer */ - c = namco_update_one(chip, lmix, length, lw, voice->counter, voice->frequency); + c = namco_update_one(chip, lmix, samples, lw, voice->counter, voice->frequency); } /* only update if we have non-zero right volume */ @@ -342,7 +342,7 @@ static void namco_update_stereo(void *param, stream_sample_t **inputs, stream_sa const INT16 *rw = &chip->waveform[rv][voice->waveform_select * 32]; /* generate sound into the buffer */ - c = namco_update_one(chip, rmix, length, rw, voice->counter, voice->frequency); + c = namco_update_one(chip, rmix, samples, rw, voice->counter, voice->frequency); } /* update the counter for this voice */ diff --git a/src/emu/sound/namco52.c b/src/emu/sound/namco52.c index 94de6d44da7..c2bee47c0a3 100644 --- a/src/emu/sound/namco52.c +++ b/src/emu/sound/namco52.c @@ -72,19 +72,19 @@ struct namco_52xx static void namco_52xx_reset(struct namco_52xx *chip); -static void namco_52xx_stream_update_one(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( namco_52xx_stream_update_one ) { struct namco_52xx *chip = param; int i, rom_pos, whole_pb_cycles, buf; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; if (chip->n52_start >= chip->n52_end) { - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); return; } - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { chip->n52_pb_cycle += chip->n52_step; if (chip->n52_pb_cycle >= 1) @@ -97,8 +97,8 @@ static void namco_52xx_stream_update_one(void *param, stream_sample_t **inputs, if (chip->n52_pos > chip->n52_length) { /* sample done */ - memset(&buffer[i], 0, (length - i) * sizeof(INT16)); - i = length; + memset(&buffer[i], 0, (samples - i) * sizeof(INT16)); + i = samples; namco_52xx_reset(chip); } else diff --git a/src/emu/sound/nes_apu.c b/src/emu/sound/nes_apu.c index f7a01a922a0..a96741bb5e4 100644 --- a/src/emu/sound/nes_apu.c +++ b/src/emu/sound/nes_apu.c @@ -660,10 +660,10 @@ WRITE8_HANDLER( nes_psg_0_w ) {apu_write(0,offset,data);} WRITE8_HANDLER( nes_psg_1_w ) {apu_write(1,offset,data);} /* UPDATE APU SYSTEM */ -static void nes_psg_update_sound(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( nes_psg_update_sound ) { struct nesapu_info *info = param; - apu_update(info, buffer[0], length); + apu_update(info, outputs[0], samples); } diff --git a/src/emu/sound/nile.c b/src/emu/sound/nile.c index f8571f2c1b7..32c9bf11927 100644 --- a/src/emu/sound/nile.c +++ b/src/emu/sound/nile.c @@ -131,7 +131,7 @@ WRITE16_HANDLER(nile_snd_w) // printf("v%02d: %04x to reg %02d (PC=%x)\n", v, nile_sound_regs[offset], r, cpu_get_pc(space->cpu)); } -static void nile_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( nile_update ) { struct nile_info *info = param; UINT8 *sound_ram = info->sound_ram; @@ -144,7 +144,7 @@ static void nile_update(void *param, stream_sample_t **inputs, stream_sample_t * lsptr=leptr=0; - memset(mix, 0, sizeof(mix[0])*length*2); + memset(mix, 0, sizeof(mix[0])*samples*2); for (v = 0; v < NILE_VOICES; v++) { @@ -161,7 +161,7 @@ static void nile_update(void *param, stream_sample_t **inputs, stream_sample_t * lsptr = slot[NILE_REG_LSPTR_HI]<<16 | slot[NILE_REG_LSPTR_LO]; leptr = slot[NILE_REG_LEPTR_HI]<<16 | slot[NILE_REG_LEPTR_LO]; - for (snum = 0; snum < length; snum++) + for (snum = 0; snum < samples; snum++) { sample = sound_ram[sptr + info->vpos[v]]<<8; @@ -209,7 +209,7 @@ static void nile_update(void *param, stream_sample_t **inputs, stream_sample_t * } } mixp = &mix[0]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { outputs[0][i] = (*mixp++)>>4; outputs[1][i] = (*mixp++)>>4; diff --git a/src/emu/sound/okim6258.c b/src/emu/sound/okim6258.c index 6abcf057ee0..ed061176e6b 100644 --- a/src/emu/sound/okim6258.c +++ b/src/emu/sound/okim6258.c @@ -120,7 +120,7 @@ static INT16 clock_adpcm(struct okim6258 *chip, UINT8 nibble) ***********************************************************************************************/ -static void okim6258_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( okim6258_update ) { struct okim6258 *chip = param; stream_sample_t *buffer = outputs[0]; diff --git a/src/emu/sound/okim6295.c b/src/emu/sound/okim6295.c index a7e8ce45a3a..3feaa850f39 100644 --- a/src/emu/sound/okim6295.c +++ b/src/emu/sound/okim6295.c @@ -251,7 +251,7 @@ static void generate_adpcm(struct okim6295 *chip, struct ADPCMVoice *voice, INT1 ***********************************************************************************************/ -static void okim6295_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( okim6295_update ) { struct okim6295 *chip = param; int i; diff --git a/src/emu/sound/pokey.c b/src/emu/sound/pokey.c index 792be15c983..2d576a4f22d 100644 --- a/src/emu/sound/pokey.c +++ b/src/emu/sound/pokey.c @@ -336,7 +336,7 @@ static TIMER_CALLBACK( pokey_pot_trigger ); chip->samplepos_whole++; \ /* store sum of output signals into the buffer */ \ *buffer++ = (sum > 0x7fff) ? 0x7fff : sum; \ - length-- + samples-- #if HEAVY_MACRO_USAGE @@ -357,7 +357,7 @@ static TIMER_CALLBACK( pokey_pot_trigger ); sum += chip->volume[CHAN3]; \ if( chip->output[CHAN4] ) \ sum += chip->volume[CHAN4]; \ - while( length > 0 ) \ + while( samples > 0 ) \ { \ if( chip->counter[CHAN1] < chip->samplepos_whole ) \ { \ @@ -486,7 +486,7 @@ static TIMER_CALLBACK( pokey_pot_trigger ); sum += chip->volume[CHAN3]; \ if( chip->output[CHAN4] ) \ sum += chip->volume[CHAN4]; \ - while( length > 0 ) \ + while( samples > 0 ) \ { \ UINT32 event = chip->samplepos_whole; \ UINT32 channel = SAMPLE; \ @@ -524,10 +524,10 @@ static TIMER_CALLBACK( pokey_pot_trigger ); #endif -static void pokey_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( pokey_update ) { struct POKEYregisters *chip = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; PROCESS_POKEY(chip); } diff --git a/src/emu/sound/psx.c b/src/emu/sound/psx.c index dba896d93f6..f126e4151ad 100644 --- a/src/emu/sound/psx.c +++ b/src/emu/sound/psx.c @@ -111,7 +111,7 @@ INLINE int limit( int v ) return v; } -static void PSXSPU_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( PSXSPU_update ) { struct psxinfo *chip = param; int v; @@ -136,15 +136,15 @@ static void PSXSPU_update(void *param, stream_sample_t **inputs, stream_sample_t { 122, -60 } }; - memset( buffer[ 0 ], 0, length * sizeof( *buffer[ 0 ] )); - memset( buffer[ 1 ], 0, length * sizeof( *buffer[ 1 ] )); + memset( outputs[ 0 ], 0, samples * sizeof( *outputs[ 0 ] )); + memset( outputs[ 1 ], 0, samples * sizeof( *outputs[ 1 ] )); for( n_channel = 0; n_channel < MAX_CHANNEL; n_channel++ ) { voll = volume( chip->m_p_n_volumeleft[ n_channel ] ); volr = volume( chip->m_p_n_volumeright[ n_channel ] ); - for( n_sample = 0; n_sample < length; n_sample++ ) + for( n_sample = 0; n_sample < samples; n_sample++ ) { if( chip->m_p_n_blockoffset[ n_channel ] >= ( SAMPLES_PER_BLOCK << PITCH_SHIFT ) ) { @@ -207,8 +207,8 @@ static void PSXSPU_update(void *param, stream_sample_t **inputs, stream_sample_t } v = chip->m_p_n_blockbuffer[ ( n_channel * SAMPLES_PER_BLOCK ) + ( chip->m_p_n_blockoffset[ n_channel ] >> PITCH_SHIFT ) ]; chip->m_p_n_blockoffset[ n_channel ] += chip->m_p_n_pitch[ n_channel ]; - buffer[ 0 ][ n_sample ] = limit( buffer[ 0 ][ n_sample ] + ( ( v * voll ) / 0x4000 ) ); - buffer[ 1 ][ n_sample ] = limit( buffer[ 1 ][ n_sample ] + ( ( v * volr ) / 0x4000 ) ); + outputs[ 0 ][ n_sample ] = limit( outputs[ 0 ][ n_sample ] + ( ( v * voll ) / 0x4000 ) ); + outputs[ 1 ][ n_sample ] = limit( outputs[ 1 ][ n_sample ] + ( ( v * volr ) / 0x4000 ) ); } } } diff --git a/src/emu/sound/qsound.c b/src/emu/sound/qsound.c index c2bd44422d7..8c0ff014bdf 100644 --- a/src/emu/sound/qsound.c +++ b/src/emu/sound/qsound.c @@ -89,7 +89,7 @@ struct qsound_info }; /* Function prototypes */ -static void qsound_update( void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length ); +static STREAM_UPDATE( qsound_update ); static void qsound_set_command(struct qsound_info *chip, int data, int value); static SND_START( qsound ) @@ -304,7 +304,7 @@ static void qsound_set_command(struct qsound_info *chip, int data, int value) } -static void qsound_update( void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length ) +static STREAM_UPDATE( qsound_update ) { struct qsound_info *chip = param; int i,j; @@ -312,10 +312,10 @@ static void qsound_update( void *param, stream_sample_t **inputs, stream_sample_ struct QSOUND_CHANNEL *pC=&chip->channel[0]; stream_sample_t *datap[2]; - datap[0] = buffer[0]; - datap[1] = buffer[1]; - memset( datap[0], 0x00, length * sizeof(*datap[0]) ); - memset( datap[1], 0x00, length * sizeof(*datap[1]) ); + datap[0] = outputs[0]; + datap[1] = outputs[1]; + memset( datap[0], 0x00, samples * sizeof(*datap[0]) ); + memset( datap[1], 0x00, samples * sizeof(*datap[1]) ); for (i=0; irvol*pC->vol)>>8; lvol=(pC->lvol*pC->vol)>>8; - for (j=length-1; j>=0; j--) + for (j=samples-1; j>=0; j--) { count=(pC->offset)>>16; pC->offset &= 0xffff; @@ -358,9 +358,9 @@ static void qsound_update( void *param, stream_sample_t **inputs, stream_sample_ } if (chip->fpRawDataL) - fwrite(datap[0], length*sizeof(QSOUND_SAMPLE), 1, chip->fpRawDataL); + fwrite(datap[0], samples*sizeof(QSOUND_SAMPLE), 1, chip->fpRawDataL); if (chip->fpRawDataR) - fwrite(datap[1], length*sizeof(QSOUND_SAMPLE), 1, chip->fpRawDataR); + fwrite(datap[1], samples*sizeof(QSOUND_SAMPLE), 1, chip->fpRawDataR); } diff --git a/src/emu/sound/rf5c400.c b/src/emu/sound/rf5c400.c index 1a50dd7bda4..708bba8bef4 100644 --- a/src/emu/sound/rf5c400.c +++ b/src/emu/sound/rf5c400.c @@ -102,7 +102,7 @@ static UINT8 decode80(UINT8 val) return val; } -static void rf5c400_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( rf5c400_update ) { int i, ch; struct rf5c400_info *info = param; @@ -113,14 +113,14 @@ static void rf5c400_update(void *param, stream_sample_t **inputs, stream_sample_ UINT8 env_phase; double env_level, env_step, env_rstep; - memset(buffer[0], 0, length * sizeof(*buffer[0])); - memset(buffer[1], 0, length * sizeof(*buffer[1])); + memset(outputs[0], 0, samples * sizeof(*outputs[0])); + memset(outputs[1], 0, samples * sizeof(*outputs[1])); for (ch=0; ch < 32; ch++) { struct RF5C400_CHANNEL *channel = &info->channels[ch]; - stream_sample_t *buf0 = buffer[0]; - stream_sample_t *buf1 = buffer[1]; + stream_sample_t *buf0 = outputs[0]; + stream_sample_t *buf1 = outputs[1]; start = ((channel->startH & 0xFF00) << 8) | channel->startL; end = ((channel->endHloopH & 0xFF) << 16) | channel->endL; @@ -136,7 +136,7 @@ static void rf5c400_update(void *param, stream_sample_t **inputs, stream_sample_ env_step = channel->env_step; env_rstep = env_step * channel->env_scale; - for (i=0; i < length; i++) + for (i=0; i < samples; i++) { INT16 tmp; INT32 sample; diff --git a/src/emu/sound/rf5c68.c b/src/emu/sound/rf5c68.c index 4efa837ac74..8cad4434b18 100644 --- a/src/emu/sound/rf5c68.c +++ b/src/emu/sound/rf5c68.c @@ -39,16 +39,16 @@ struct rf5c68pcm /* RF5C68 stream update */ /************************************************/ -static void rf5c68_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( rf5c68_update ) { struct rf5c68pcm *chip = param; - stream_sample_t *left = buffer[0]; - stream_sample_t *right = buffer[1]; + stream_sample_t *left = outputs[0]; + stream_sample_t *right = outputs[1]; int i, j; /* start with clean buffers */ - memset(left, 0, length * sizeof(*left)); - memset(right, 0, length * sizeof(*right)); + memset(left, 0, samples * sizeof(*left)); + memset(right, 0, samples * sizeof(*right)); /* bail if not enabled */ if (!chip->enable) @@ -66,7 +66,7 @@ static void rf5c68_update(void *param, stream_sample_t **inputs, stream_sample_t int rv = ((chan->pan >> 4) & 0x0f) * chan->env; /* loop over the sample buffer */ - for (j = 0; j < length; j++) + for (j = 0; j < samples; j++) { int sample; @@ -100,7 +100,7 @@ static void rf5c68_update(void *param, stream_sample_t **inputs, stream_sample_t } /* now clamp and shift the result (output is only 10 bits) */ - for (j = 0; j < length; j++) + for (j = 0; j < samples; j++) { stream_sample_t temp; diff --git a/src/emu/sound/s14001a.c b/src/emu/sound/s14001a.c index 5b8adbe2c70..ca0f63ce0b3 100644 --- a/src/emu/sound/s14001a.c +++ b/src/emu/sound/s14001a.c @@ -532,7 +532,7 @@ static void s14001a_clock(S14001AChip *chip) /* called once per clock */ MAME glue code **************************************************************************/ -static void s14001a_pcm_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( s14001a_pcm_update ) { INT32 mix[48000]; INT32 *mixp; @@ -542,7 +542,7 @@ static void s14001a_pcm_update(void *param, stream_sample_t **inputs, stream_sam memset(mix, 0, sizeof(mix)); mixp = &mix[0]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { s14001a_clock(chip); if (chip->audioout == ALTFLAG) // input from test pins -> output diff --git a/src/emu/sound/saa1099.c b/src/emu/sound/saa1099.c index fa91d00b132..1d0f931ff4b 100644 --- a/src/emu/sound/saa1099.c +++ b/src/emu/sound/saa1099.c @@ -212,7 +212,7 @@ static void saa1099_envelope(struct SAA1099 *saa, int ch) } -static void saa1099_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( saa1099_update ) { struct SAA1099 *saa = param; int j, ch; @@ -221,8 +221,8 @@ static void saa1099_update(void *param, stream_sample_t **inputs, stream_sample_ if (!saa->all_ch_enable) { /* init output data */ - memset(buffer[LEFT],0,length*sizeof(*buffer[LEFT])); - memset(buffer[RIGHT],0,length*sizeof(*buffer[RIGHT])); + memset(outputs[LEFT],0,samples*sizeof(*outputs[LEFT])); + memset(outputs[RIGHT],0,samples*sizeof(*outputs[RIGHT])); return; } @@ -238,7 +238,7 @@ static void saa1099_update(void *param, stream_sample_t **inputs, stream_sample_ } /* fill all data needed */ - for( j = 0; j < length; j++ ) + for( j = 0; j < samples; j++ ) { int output_l = 0, output_r = 0; @@ -305,8 +305,8 @@ static void saa1099_update(void *param, stream_sample_t **inputs, stream_sample_ } } /* write sound data to the buffer */ - buffer[LEFT][j] = output_l / 6; - buffer[RIGHT][j] = output_r / 6; + outputs[LEFT][j] = output_l / 6; + outputs[RIGHT][j] = output_r / 6; } } diff --git a/src/emu/sound/samples.c b/src/emu/sound/samples.c index ca497e6bfb8..e04b16f9ea8 100644 --- a/src/emu/sound/samples.c +++ b/src/emu/sound/samples.c @@ -442,10 +442,10 @@ int sample_loaded(int samplenum) } -static void sample_update_sound(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( sample_update_sound ) { struct sample_channel *chan = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; if (chan->source && !chan->paused) { @@ -456,7 +456,7 @@ static void sample_update_sound(void *param, stream_sample_t **inputs, stream_sa const INT16 *sample = chan->source; UINT32 sample_length = chan->source_length; - while (length--) + while (samples--) { /* do a linear interp on the sample */ INT32 sample1 = sample[pos]; @@ -478,8 +478,8 @@ static void sample_update_sound(void *param, stream_sample_t **inputs, stream_sa { chan->source = NULL; chan->source_num = -1; - if (length > 0) - memset(buffer, 0, length * sizeof(*buffer)); + if (samples > 0) + memset(buffer, 0, samples * sizeof(*buffer)); break; } } @@ -490,7 +490,7 @@ static void sample_update_sound(void *param, stream_sample_t **inputs, stream_sa chan->frac = frac; } else - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); } diff --git a/src/emu/sound/scsp.c b/src/emu/sound/scsp.c index 364c983c0a0..6c6aad26316 100644 --- a/src/emu/sound/scsp.c +++ b/src/emu/sound/scsp.c @@ -1212,11 +1212,11 @@ int SCSP_IRQCB(void *param) } #endif -static void SCSP_Update(void *param, stream_sample_t **inputs, stream_sample_t **buf, int samples) +static STREAM_UPDATE( SCSP_Update ) { struct _SCSP *SCSP = param; - bufferl = buf[0]; - bufferr = buf[1]; + bufferl = outputs[0]; + bufferr = outputs[1]; length = samples; SCSP_DoMasterSamples(SCSP, samples); } diff --git a/src/emu/sound/segapcm.c b/src/emu/sound/segapcm.c index 38dc5b6cb07..3dbb0e1cd84 100644 --- a/src/emu/sound/segapcm.c +++ b/src/emu/sound/segapcm.c @@ -16,14 +16,14 @@ struct segapcm sound_stream * stream; }; -static void SEGAPCM_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( SEGAPCM_update ) { struct segapcm *spcm = param; int ch; /* clear the buffers */ - memset(buffer[0], 0, length*sizeof(*buffer[0])); - memset(buffer[1], 0, length*sizeof(*buffer[1])); + memset(outputs[0], 0, samples*sizeof(*outputs[0])); + memset(outputs[1], 0, samples*sizeof(*outputs[1])); /* loop over channels */ for (ch = 0; ch < 16; ch++) @@ -43,7 +43,7 @@ static void SEGAPCM_update(void *param, stream_sample_t **inputs, stream_sample_ int i; /* loop over samples on this channel */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { INT8 v = 0; @@ -63,8 +63,8 @@ static void SEGAPCM_update(void *param, stream_sample_t **inputs, stream_sample_ v = rom[addr >> 8] - 0x80; /* apply panning and advance */ - buffer[0][i] += v * voll; - buffer[1][i] += v * volr; + outputs[0][i] += v * voll; + outputs[1][i] += v * volr; addr += delta; } diff --git a/src/emu/sound/sid6581.c b/src/emu/sound/sid6581.c index 9b25c2472c9..72886adac34 100644 --- a/src/emu/sound/sid6581.c +++ b/src/emu/sound/sid6581.c @@ -21,10 +21,10 @@ static SID6581 *get_sid(int indx) -static void sid_update(void *token,stream_sample_t **inputs, stream_sample_t **_buffer,int length) +static STREAM_UPDATE( sid_update ) { - SID6581 *sid = (SID6581 *) token; - sidEmuFillBuffer(sid, _buffer[0], length); + SID6581 *sid = (SID6581 *) param; + sidEmuFillBuffer(sid, outputs[0], samples); } diff --git a/src/emu/sound/sn76477.c b/src/emu/sound/sn76477.c index 62bafbadeac..1306e2fdd65 100644 --- a/src/emu/sound/sn76477.c +++ b/src/emu/sound/sn76477.c @@ -1959,7 +1959,7 @@ void sn76477_feedback_res_w(int chip, double data) * *****************************************************************************/ -static void SN76477_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( SN76477_update ) { double one_shot_cap_charging_step; double one_shot_cap_discharging_step; @@ -1979,7 +1979,7 @@ static void SN76477_update(void *param, stream_sample_t **inputs, stream_sample_ double center_to_peak_voltage_out; struct SN76477 *sn = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; #if TEST_MODE @@ -2017,8 +2017,8 @@ static void SN76477_update(void *param, stream_sample_t **inputs, stream_sample_ center_to_peak_voltage_out = compute_center_to_peak_voltage_out(sn); - /* process 'length' number of samples */ - while (length--) + /* process 'samples' number of samples */ + while (samples--) { /* update the one-shot cap voltage */ if (!sn->one_shot_cap_voltage_ext) diff --git a/src/emu/sound/sn76496.c b/src/emu/sound/sn76496.c index b6a9ea92961..7ecd307b051 100644 --- a/src/emu/sound/sn76496.c +++ b/src/emu/sound/sn76496.c @@ -134,11 +134,11 @@ WRITE8_HANDLER( sn76496_3_w ) { SN76496Write(3,data); } WRITE8_HANDLER( sn76496_4_w ) { SN76496Write(4,data); } -static void SN76496Update(void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) +static STREAM_UPDATE( SN76496Update ) { int i; struct SN76496 *R = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; /* If the volume is 0, increase the counter */ @@ -146,14 +146,14 @@ static void SN76496Update(void *param,stream_sample_t **inputs, stream_sample_t { if (R->Volume[i] == 0) { - /* note that I do count += length, NOT count = length + 1. You might think */ + /* note that I do count += samples, NOT count = samples + 1. You might think */ /* it's the same since the volume is 0, but doing the latter could cause */ /* interferencies when the program is rapidly modulating the volume. */ - if (R->Count[i] <= length*STEP) R->Count[i] += length*STEP; + if (R->Count[i] <= samples*STEP) R->Count[i] += samples*STEP; } } - while (length > 0) + while (samples > 0) { int vol[4]; unsigned int out; @@ -245,7 +245,7 @@ static void SN76496Update(void *param,stream_sample_t **inputs, stream_sample_t *(buffer++) = out / STEP; - length--; + samples--; } } diff --git a/src/emu/sound/snkwave.c b/src/emu/sound/snkwave.c index e83be659089..14205b09ecb 100644 --- a/src/emu/sound/snkwave.c +++ b/src/emu/sound/snkwave.c @@ -53,13 +53,13 @@ static void update_waveform(struct snkwave_sound *chip, unsigned int offset, UIN /* generate sound to the mix buffer */ -static void snkwave_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( snkwave_update ) { struct snkwave_sound *chip = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; /* zap the contents of the buffer */ - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); assert(chip->counter < 0x1000); assert(chip->frequency < 0x1000); @@ -69,7 +69,7 @@ static void snkwave_update(void *param, stream_sample_t **inputs, stream_sample_ return; /* generate sound into buffer while updating the counter */ - while (length-- > 0) + while (samples-- > 0) { int loops; INT16 out = 0; diff --git a/src/emu/sound/sp0250.c b/src/emu/sound/sp0250.c index c33115d0947..90f31bd044e 100644 --- a/src/emu/sound/sp0250.c +++ b/src/emu/sound/sp0250.c @@ -123,12 +123,12 @@ static TIMER_CALLBACK( sp0250_timer_tick ) stream_update(sp->stream); } -static void sp0250_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( sp0250_update ) { struct sp0250 *sp = param; - stream_sample_t *output = buffer[0]; + stream_sample_t *output = outputs[0]; int i; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { if (sp->playing) { diff --git a/src/emu/sound/sp0256.c b/src/emu/sound/sp0256.c index 151de405553..fc595277ea5 100644 --- a/src/emu/sound/sp0256.c +++ b/src/emu/sound/sp0256.c @@ -1091,14 +1091,14 @@ static void sp0256_micro(struct sp0256 *sp) } } -static void sp0256_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( sp0256_update ) { struct sp0256 *sp = param; - stream_sample_t *output = buffer[0]; + stream_sample_t *output = outputs[0]; int output_index = 0; - int samples, did_samp, old_idx; + int length, did_samp, old_idx; - while( output_index < length ) + while( output_index < samples ) { /* ---------------------------------------------------------------- */ /* First, drain as much of our scratch buffer as we can into the */ @@ -1110,17 +1110,17 @@ static void sp0256_update(void *param, stream_sample_t **inputs, stream_sample_t output[output_index++] = sp->scratch[sp->sc_tail++ & SCBUF_MASK]; sp->sc_tail &= SCBUF_MASK; - if( output_index > length ) + if( output_index > samples ) break; } /* ---------------------------------------------------------------- */ - /* If output buffer is full, then we're done. */ + /* If output outputs is full, then we're done. */ /* ---------------------------------------------------------------- */ - if( output_index > length ) + if( output_index > samples ) break; - samples = length - output_index; + length = samples - output_index; /* ---------------------------------------------------------------- */ /* Process the current set of filter coefficients as long as the */ @@ -1128,7 +1128,7 @@ static void sp0256_update(void *param, stream_sample_t **inputs, stream_sample_t /* ---------------------------------------------------------------- */ did_samp = 0; old_idx = sp->sc_head; - if (samples > 0) do + if (length > 0) do { int do_samp; @@ -1141,7 +1141,7 @@ static void sp0256_update(void *param, stream_sample_t **inputs, stream_sample_t /* ------------------------------------------------------------ */ /* Do as many samples as we can. */ /* ------------------------------------------------------------ */ - do_samp = samples - did_samp; + do_samp = length - did_samp; if (sp->sc_head + do_samp - sp->sc_tail > SCBUF_SIZE) do_samp = sp->sc_tail + SCBUF_SIZE - sp->sc_head; @@ -1164,7 +1164,7 @@ static void sp0256_update(void *param, stream_sample_t **inputs, stream_sample_t sp->sc_head &= SCBUF_MASK; - } while (sp->filt.rpt >= 0 && samples > did_samp); + } while (sp->filt.rpt >= 0 && length > did_samp); } } diff --git a/src/emu/sound/speaker.c b/src/emu/sound/speaker.c index dce69a40774..3f636d184bc 100644 --- a/src/emu/sound/speaker.c +++ b/src/emu/sound/speaker.c @@ -23,13 +23,13 @@ struct speaker -static void speaker_sound_update(void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) +static STREAM_UPDATE( speaker_sound_update ) { struct speaker *sp = (struct speaker *) param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; int volume = sp->levels[sp->level]; - while( length-- > 0 ) + while( samples-- > 0 ) *buffer++ = volume; } diff --git a/src/emu/sound/st0016.c b/src/emu/sound/st0016.c index 8bcd6b7fd57..724623a171c 100644 --- a/src/emu/sound/st0016.c +++ b/src/emu/sound/st0016.c @@ -48,7 +48,7 @@ WRITE8_HANDLER(st0016_snd_w) } } -static void st0016_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( st0016_update ) { struct st0016_info *info = param; UINT8 *sound_ram = *info->sound_ram; @@ -59,7 +59,7 @@ static void st0016_update(void *param, stream_sample_t **inputs, stream_sample_t INT16 sample; int sptr, eptr, freq, lsptr, leptr; - memset(mix, 0, sizeof(mix[0])*length*2); + memset(mix, 0, sizeof(mix[0])*samples*2); for (v = 0; v < 8; v++) { @@ -75,7 +75,7 @@ static void st0016_update(void *param, stream_sample_t **inputs, stream_sample_t lsptr = slot[0x06]<<16 | slot[0x05]<<8 | slot[0x04]; leptr = slot[0x0a]<<16 | slot[0x09]<<8 | slot[0x08]; - for (snum = 0; snum < length; snum++) + for (snum = 0; snum < samples; snum++) { sample = sound_ram[(sptr + info->vpos[v])&0x1fffff]<<8; @@ -117,7 +117,7 @@ static void st0016_update(void *param, stream_sample_t **inputs, stream_sample_t } mixp = &mix[0]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { outputs[0][i] = (*mixp++)>>4; outputs[1][i] = (*mixp++)>>4; diff --git a/src/emu/sound/tiaintf.c b/src/emu/sound/tiaintf.c index 827b21d5125..8688ae7708d 100644 --- a/src/emu/sound/tiaintf.c +++ b/src/emu/sound/tiaintf.c @@ -10,10 +10,10 @@ struct tia_info }; -static void tia_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( tia_update ) { struct tia_info *info = param; - tia_process(info->chip, buffer[0], length); + tia_process(info->chip, outputs[0], samples); } diff --git a/src/emu/sound/tms3615.c b/src/emu/sound/tms3615.c index d0c5bc5f49a..8e18fa42353 100644 --- a/src/emu/sound/tms3615.c +++ b/src/emu/sound/tms3615.c @@ -20,14 +20,14 @@ struct TMS3615 { int enable; /* mask which tones to play */ }; -static void tms3615_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( tms3615_sound_update ) { struct TMS3615 *tms = param; int samplerate = tms->samplerate; - stream_sample_t *buffer8 = _buffer[TMS3615_FOOTAGE_8]; - stream_sample_t *buffer16 = _buffer[TMS3615_FOOTAGE_16]; + stream_sample_t *buffer8 = outputs[TMS3615_FOOTAGE_8]; + stream_sample_t *buffer16 = outputs[TMS3615_FOOTAGE_16]; - while( length-- > 0 ) + while( samples-- > 0 ) { int sum8 = 0, sum16 = 0, tone = 0; diff --git a/src/emu/sound/tms36xx.c b/src/emu/sound/tms36xx.c index 90841c1f56a..bb5db06e715 100644 --- a/src/emu/sound/tms36xx.c +++ b/src/emu/sound/tms36xx.c @@ -341,21 +341,21 @@ static const int *const tunes[] = {NULL,tune1,tune2,tune3,tune4}; -static void tms36xx_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( tms36xx_sound_update ) { struct TMS36XX *tms = param; int samplerate = tms->samplerate; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; /* no tune played? */ if( !tunes[tms->tune_num] || tms->voices == 0 ) { - while (--length >= 0) - buffer[length] = 0; + while (--samples >= 0) + buffer[samples] = 0; return; } - while( length-- > 0 ) + while( samples-- > 0 ) { int sum = 0; diff --git a/src/emu/sound/upd7759.c b/src/emu/sound/upd7759.c index d6f42049096..63e83e6cff1 100644 --- a/src/emu/sound/upd7759.c +++ b/src/emu/sound/upd7759.c @@ -459,14 +459,14 @@ static void advance_state(struct upd7759_chip *chip) *************************************************************/ -static void upd7759_update(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int samples) +static STREAM_UPDATE( upd7759_update ) { struct upd7759_chip *chip = param; INT32 clocks_left = chip->clocks_left; INT16 sample = chip->sample; UINT32 step = chip->step; UINT32 pos = chip->pos; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; /* loop until done */ if (chip->state != STATE_IDLE) diff --git a/src/emu/sound/vlm5030.c b/src/emu/sound/vlm5030.c index 7852f52d0cd..723fd1496da 100644 --- a/src/emu/sound/vlm5030.c +++ b/src/emu/sound/vlm5030.c @@ -287,20 +287,20 @@ static int parse_frame (struct vlm5030_info *chip) } /* decode and buffering data */ -static void vlm5030_update_callback(void *param,stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( vlm5030_update_callback ) { struct vlm5030_info *chip = param; int buf_count=0; int interp_effect; int i; int u[11]; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; /* running */ if( chip->phase == PH_RUN || chip->phase == PH_STOP ) { /* playing speech */ - while (length > 0) + while (samples > 0) { int current_val; @@ -401,7 +401,7 @@ static void vlm5030_update_callback(void *param,stream_sample_t **inputs, stream if (chip->pitch_count >= chip->current_pitch ) chip->pitch_count = 0; /* size */ - length--; + samples--; } /* return;*/ } @@ -410,7 +410,7 @@ phase_stop: switch( chip->phase ) { case PH_SETUP: - if( chip->sample_count <= length) + if( chip->sample_count <= samples) { chip->sample_count = 0; /* logerror("VLM5030 BSY=H\n" ); */ @@ -419,11 +419,11 @@ phase_stop: } else { - chip->sample_count -= length; + chip->sample_count -= samples; } break; case PH_END: - if( chip->sample_count <= length) + if( chip->sample_count <= samples) { chip->sample_count = 0; /* logerror("VLM5030 BSY=L\n" ); */ @@ -432,14 +432,14 @@ phase_stop: } else { - chip->sample_count -= length; + chip->sample_count -= samples; } } /* silent buffering */ - while (length > 0) + while (samples > 0) { buffer[buf_count++] = 0x00; - length--; + samples--; } } diff --git a/src/emu/sound/votrax.c b/src/emu/sound/votrax.c index fd49704ebaf..eaaf9ac7d3c 100644 --- a/src/emu/sound/votrax.c +++ b/src/emu/sound/votrax.c @@ -58,10 +58,10 @@ static const char *const VotraxTable[65] = 0 }; -static void votrax_update_sound(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length) +static STREAM_UPDATE( votrax_update_sound ) { struct votrax_info *info = param; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; if (info->sample) { diff --git a/src/emu/sound/vrender0.c b/src/emu/sound/vrender0.c index 137cadf70a0..30118770557 100644 --- a/src/emu/sound/vrender0.c +++ b/src/emu/sound/vrender0.c @@ -25,10 +25,10 @@ struct _VR0Chip static void VR0_RenderAudio(struct _VR0Chip *VR0, int nsamples,stream_sample_t *l,stream_sample_t *r); -static void VR0_Update(void *param, stream_sample_t **inputs, stream_sample_t **buf, int samples) +static STREAM_UPDATE( VR0_Update ) { struct _VR0Chip *VR0 = param; - VR0_RenderAudio(VR0, samples,buf[0],buf[1]); + VR0_RenderAudio(VR0, samples,outputs[0],outputs[1]); } //Correct table thanks to Evoga diff --git a/src/emu/sound/wave.c b/src/emu/sound/wave.c index 674cf8c76d3..bc452a9565e 100644 --- a/src/emu/sound/wave.c +++ b/src/emu/sound/wave.c @@ -22,7 +22,7 @@ -static void wave_sound_update(void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) +static STREAM_UPDATE( wave_sound_update ) { #ifdef MESS const device_config *image = param; @@ -30,7 +30,7 @@ static void wave_sound_update(void *param,stream_sample_t **inputs, stream_sampl cassette_state state; double time_index; double duration; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; int i; state = cassette_get_state(image); @@ -40,16 +40,16 @@ static void wave_sound_update(void *param,stream_sample_t **inputs, stream_sampl { cassette = cassette_get_image(image); time_index = cassette_get_position(image); - duration = ((double) length) / image->machine->sample_rate; + duration = ((double) samples) / image->machine->sample_rate; - cassette_get_samples(cassette, 0, time_index, duration, length, 2, buffer, CASSETTE_WAVEFORM_16BIT); + cassette_get_samples(cassette, 0, time_index, duration, samples, 2, buffer, CASSETTE_WAVEFORM_16BIT); - for (i = length-1; i >= 0; i--) + for (i = samples-1; i >= 0; i--) buffer[i] = ((INT16 *) buffer)[i]; } else { - memset(buffer, 0, sizeof(*buffer) * length); + memset(buffer, 0, sizeof(*buffer) * samples); } #endif } diff --git a/src/emu/sound/x1_010.c b/src/emu/sound/x1_010.c index 66896f853b2..8883dd68977 100644 --- a/src/emu/sound/x1_010.c +++ b/src/emu/sound/x1_010.c @@ -102,7 +102,7 @@ struct x1_010_info /*-------------------------------------------------------------- generate sound to the mix buffer --------------------------------------------------------------*/ -static void seta_update( void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length ) +static STREAM_UPDATE( seta_update ) { struct x1_010_info *info = param; X1_010_CHANNEL *reg; @@ -113,16 +113,16 @@ static void seta_update( void *param, stream_sample_t **inputs, stream_sample_t const UINT8 *snd1 = info->region; // mixer buffer zero clear - memset( buffer[0], 0, length*sizeof(*buffer[0]) ); - memset( buffer[1], 0, length*sizeof(*buffer[1]) ); + memset( outputs[0], 0, samples*sizeof(*outputs[0]) ); + memset( outputs[1], 0, samples*sizeof(*outputs[1]) ); // if( info->sound_enable == 0 ) return; for( ch = 0; ch < SETA_NUM_CHANNELS; ch++ ) { reg = (X1_010_CHANNEL *)&(info->reg[ch*sizeof(X1_010_CHANNEL)]); if( (reg->status&1) != 0 ) { // Key On - stream_sample_t *bufL = buffer[0]; - stream_sample_t *bufR = buffer[1]; + stream_sample_t *bufL = outputs[0]; + stream_sample_t *bufR = outputs[1]; if( (reg->status&2) == 0 ) { // PCM sampling start = (INT8 *)(reg->start *0x1000+snd1); end = (INT8 *)((0x100-reg->end)*0x1000+snd1); @@ -138,7 +138,7 @@ static void seta_update( void *param, stream_sample_t **inputs, stream_sample_t LOG_SOUND(( "Play sample %p - %p, channel %X volume %d:%d freq %X step %X offset %X\n", start, end, ch, volL, volR, freq, smp_step, smp_offs )); } - for( i = 0; i < length; i++ ) { + for( i = 0; i < samples; i++ ) { delta = smp_offs>>FREQ_BASE_BITS; // sample ended? if( start+delta >= end ) { @@ -165,7 +165,7 @@ static void seta_update( void *param, stream_sample_t **inputs, stream_sample_t LOG_SOUND(( "Play waveform %X, channel %X volume %X freq %4X step %X offset %X\n", reg->volume, ch, reg->end, freq, smp_step, smp_offs )); } - for( i = 0; i < length; i++ ) { + for( i = 0; i < samples; i++ ) { int vol; delta = env_offs>>ENV_BASE_BITS; // Envelope one shot mode diff --git a/src/emu/sound/ymf271.c b/src/emu/sound/ymf271.c index 899a0a14741..2e63e266656 100644 --- a/src/emu/sound/ymf271.c +++ b/src/emu/sound/ymf271.c @@ -675,14 +675,14 @@ INLINE INT32 calculate_1op_fm_1(YMF271Chip *chip, int slotnum) return slot_output; } -static void ymf271_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( ymf271_update ) { int i, j; int op; INT32 *mixp; YMF271Chip *chip = param; - memset(mix, 0, sizeof(mix[0])*length*2); + memset(mix, 0, sizeof(mix[0])*samples*2); for (j = 0; j < 12; j++) { @@ -707,7 +707,7 @@ static void ymf271_update(void *param, stream_sample_t **inputs, stream_sample_t if (chip->slots[slot1].active) { - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { INT64 output1 = 0, output2 = 0, output3 = 0, output4 = 0, phase_mod1 = 0, phase_mod2 = 0; switch (chip->slots[slot1].algorithm) @@ -893,7 +893,7 @@ static void ymf271_update(void *param, stream_sample_t **inputs, stream_sample_t mixp = &mix[0]; if (chip->slots[slot1].active) { - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { INT64 output1 = 0, output2 = 0, phase_mod = 0; switch (chip->slots[slot1].algorithm & 3) @@ -946,7 +946,7 @@ static void ymf271_update(void *param, stream_sample_t **inputs, stream_sample_t if (chip->slots[slot1].active) { - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { INT64 output1 = 0, output2 = 0, output3 = 0, phase_mod = 0; switch (chip->slots[slot1].algorithm & 7) @@ -1028,16 +1028,16 @@ static void ymf271_update(void *param, stream_sample_t **inputs, stream_sample_t } } - update_pcm(chip, j + (3*12), mixp, length); + update_pcm(chip, j + (3*12), mixp, samples); break; } case 3: // PCM { - update_pcm(chip, j + (0*12), mixp, length); - update_pcm(chip, j + (1*12), mixp, length); - update_pcm(chip, j + (2*12), mixp, length); - update_pcm(chip, j + (3*12), mixp, length); + update_pcm(chip, j + (0*12), mixp, samples); + update_pcm(chip, j + (1*12), mixp, samples); + update_pcm(chip, j + (2*12), mixp, samples); + update_pcm(chip, j + (3*12), mixp, samples); break; } @@ -1046,7 +1046,7 @@ static void ymf271_update(void *param, stream_sample_t **inputs, stream_sample_t } mixp = &mix[0]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { outputs[0][i] = (*mixp++)>>2; outputs[1][i] = (*mixp++)>>2; diff --git a/src/emu/sound/ymf278b.c b/src/emu/sound/ymf278b.c index 7c5b71de74d..0c40142d493 100644 --- a/src/emu/sound/ymf278b.c +++ b/src/emu/sound/ymf278b.c @@ -255,7 +255,7 @@ static void ymf278b_envelope_next(YMF278BSlot *slot) } } -static void ymf278b_pcm_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( ymf278b_pcm_update ) { YMF278BChip *chip = param; int i, j; @@ -265,7 +265,7 @@ static void ymf278b_pcm_update(void *param, stream_sample_t **inputs, stream_sam INT32 *mixp; INT32 vl, vr; - memset(mix, 0, sizeof(mix[0])*length*2); + memset(mix, 0, sizeof(mix[0])*samples*2); rombase = chip->rom; @@ -277,7 +277,7 @@ static void ymf278b_pcm_update(void *param, stream_sample_t **inputs, stream_sam { mixp = mix; - for (j = 0; j < length; j++) + for (j = 0; j < samples; j++) { switch (slot->bits) { @@ -329,7 +329,7 @@ static void ymf278b_pcm_update(void *param, stream_sample_t **inputs, stream_sam mixp = mix; vl = chip->mix_level[chip->pcm_l]; vr = chip->mix_level[chip->pcm_r]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { outputs[0][i] = (*mixp++ * vl) >> 16; outputs[1][i] = (*mixp++ * vr) >> 16; diff --git a/src/emu/sound/ymz280b.c b/src/emu/sound/ymz280b.c index 53ae851c49d..61c3dd59e7c 100644 --- a/src/emu/sound/ymz280b.c +++ b/src/emu/sound/ymz280b.c @@ -488,16 +488,16 @@ static int generate_pcm16(struct YMZ280BVoice *voice, UINT8 *base, INT16 *buffer ***********************************************************************************************/ -static void ymz280b_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( ymz280b_update ) { struct YMZ280BChip *chip = param; - stream_sample_t *lacc = buffer[0]; - stream_sample_t *racc = buffer[1]; + stream_sample_t *lacc = outputs[0]; + stream_sample_t *racc = outputs[1]; int v; /* clear out the accumulator */ - memset(lacc, 0, length * sizeof(lacc[0])); - memset(racc, 0, length * sizeof(racc[0])); + memset(lacc, 0, samples * sizeof(lacc[0])); + memset(racc, 0, samples * sizeof(racc[0])); /* loop over voices */ for (v = 0; v < 8; v++) @@ -510,7 +510,7 @@ static void ymz280b_update(void *param, stream_sample_t **inputs, stream_sample_ INT32 *rdest = racc; UINT32 new_samples, samples_left; UINT32 final_pos; - int remaining = length; + int remaining = samples; int lvol = voice->output_left; int rvol = voice->output_right; @@ -612,10 +612,10 @@ static void ymz280b_update(void *param, stream_sample_t **inputs, stream_sample_ voice->curr_sample = curr; } - for (v = 0; v < length; v++) + for (v = 0; v < samples; v++) { - buffer[0][v] /= 256; - buffer[1][v] /= 256; + outputs[0][v] /= 256; + outputs[1][v] /= 256; } } diff --git a/src/emu/streams.c b/src/emu/streams.c index 3f7d17a0370..a546b7d9309 100644 --- a/src/emu/streams.c +++ b/src/emu/streams.c @@ -111,7 +111,7 @@ struct _stream_output struct _sound_stream { /* linking information */ - running_machine * machine; /* owning machine object */ + const device_config * device; /* owning device */ sound_stream * next; /* next stream in the chain */ void * tag; /* tag (used for identification) */ int index; /* index for save states */ @@ -362,7 +362,7 @@ sound_stream *stream_create(const device_config *device, int inputs, int outputs VPRINTF(("stream_create(%d, %d, %d) => %p\n", inputs, outputs, sample_rate, stream)); /* fill in the data */ - stream->machine = machine; + stream->device = device; stream->tag = strdata->current_tag; stream->index = strdata->stream_index++; stream->sample_rate = sample_rate; @@ -457,7 +457,7 @@ void stream_set_input(sound_stream *stream, int index, sound_stream *input_strea input->source->dependents++; /* update sample rates now that we know the input */ - recompute_sample_rate_data(stream->machine->streams_data, stream); + recompute_sample_rate_data(stream->device->machine->streams_data, stream); } @@ -468,8 +468,9 @@ void stream_set_input(sound_stream *stream, int index, sound_stream *input_strea void stream_update(sound_stream *stream) { - streams_private *strdata = stream->machine->streams_data; - INT32 update_sampindex = time_to_sampindex(strdata, stream, timer_get_time(stream->machine)); + running_machine *machine = stream->device->machine; + streams_private *strdata = machine->streams_data; + INT32 update_sampindex = time_to_sampindex(strdata, stream, timer_get_time(machine)); /* generate samples to get us up to the appropriate time */ assert(stream->output_sampindex - stream->output_base_sampindex >= 0); @@ -538,7 +539,7 @@ void stream_set_sample_rate(sound_stream *stream, int sample_rate) attotime stream_get_time(sound_stream *stream) { - streams_private *strdata = stream->machine->streams_data; + streams_private *strdata = stream->device->machine->streams_data; attotime base = attotime_make(strdata->last_update.seconds, 0); return attotime_add_attoseconds(base, stream->output_sampindex * stream->attoseconds_per_sample); } @@ -808,7 +809,7 @@ static void generate_samples(sound_stream *stream, int samples) /* run the callback */ VPRINTF((" callback(%p, %d)\n", stream, samples)); - (*stream->callback)(stream->param, stream->input_array, stream->output_array, samples); + (*stream->callback)(stream->device, stream->param, stream->input_array, stream->output_array, samples); VPRINTF((" callback done\n")); } diff --git a/src/emu/streams.h b/src/emu/streams.h index edbc685e8d5..d79858768c6 100644 --- a/src/emu/streams.h +++ b/src/emu/streams.h @@ -21,7 +21,9 @@ typedef struct _sound_stream sound_stream; -typedef void (*stream_update_func)(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples); +typedef void (*stream_update_func)(const device_config *device, void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples); + +#define STREAM_UPDATE(name) void name(const device_config *device, void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) diff --git a/src/mame/audio/amiga.c b/src/mame/audio/amiga.c index 0a59e3040a5..1e4e0d590da 100644 --- a/src/mame/audio/amiga.c +++ b/src/mame/audio/amiga.c @@ -10,7 +10,6 @@ #include "driver.h" #include "streams.h" -#include "deprecat.h" #include "includes/amiga.h" #include "cpu/m68000/m68000.h" @@ -123,7 +122,7 @@ void amiga_audio_update(void) -static void amiga_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( amiga_stream_update ) { amiga_audio *audio = param; int channum, sampoffs = 0; @@ -138,11 +137,11 @@ static void amiga_stream_update(void *param, stream_sample_t **inputs, stream_sa /* clear the sample data to 0 */ for (channum = 0; channum < 4; channum++) - memset(outputs[channum], 0, sizeof(stream_sample_t) * length); + memset(outputs[channum], 0, sizeof(stream_sample_t) * samples); return; } - length *= CLOCK_DIVIDER; + samples *= CLOCK_DIVIDER; /* update the DMA states on each channel and reload if fresh */ for (channum = 0; channum < 4; channum++) @@ -154,10 +153,10 @@ static void amiga_stream_update(void *param, stream_sample_t **inputs, stream_sa } /* loop until done */ - while (length > 0) + while (samples > 0) { int nextper, nextvol; - int ticks = length; + int ticks = samples; /* determine the number of ticks we can do in this chunk */ if (ticks > audio->channel[0].curticks) @@ -242,7 +241,7 @@ static void amiga_stream_update(void *param, stream_sample_t **inputs, stream_sa /* if we're in manual mode, signal an interrupt once we latch the low byte */ if (!chan->dmaenabled && chan->manualmode && (chan->curlocation & 1)) { - signal_irq(Machine, NULL, channum); + signal_irq(device->machine, NULL, channum); chan->manualmode = FALSE; } } @@ -250,7 +249,7 @@ static void amiga_stream_update(void *param, stream_sample_t **inputs, stream_sa /* bump ourselves forward by the number of ticks */ sampoffs += ticks; - length -= ticks; + samples -= ticks; } } diff --git a/src/mame/audio/attckufo.c b/src/mame/audio/attckufo.c index d60edd763d3..de63983dd16 100644 --- a/src/mame/audio/attckufo.c +++ b/src/mame/audio/attckufo.c @@ -132,12 +132,12 @@ void attckufo_soundport_w (int offset, int data) /************************************/ /* Sound handler update */ /************************************/ -static void attckufo_update (void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) +static STREAM_UPDATE( attckufo_update ) { int i, v; - stream_sample_t *buffer = _buffer[0]; + stream_sample_t *buffer = outputs[0]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { v = 0; if (TONE1_ON /*||(tone1pos!=0) */ ) diff --git a/src/mame/audio/bzone.c b/src/mame/audio/bzone.c index 2d704e5bde2..ffebf8062c0 100644 --- a/src/mame/audio/bzone.c +++ b/src/mame/audio/bzone.c @@ -67,10 +67,10 @@ WRITE8_HANDLER( bzone_sounds_w ) sound_global_enable(latch & 0x20); } -static void bzone_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( bzone_sound_update ) { stream_sample_t *buffer = outputs[0]; - while( length-- ) + while( samples-- ) { static int last_val = 0; int sum = 0; diff --git a/src/mame/audio/cps3.c b/src/mame/audio/cps3.c index 455d3f52902..7f3fefb1b0f 100644 --- a/src/mame/audio/cps3.c +++ b/src/mame/audio/cps3.c @@ -4,7 +4,6 @@ ***************************************************************************/ #include "driver.h" -#include "deprecat.h" #include "streams.h" #include "includes/cps3.h" @@ -25,14 +24,14 @@ static struct UINT16 key; } chip; -static void cps3_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( cps3_stream_update ) { int i; - INT8 *base = (INT8*)memory_region(Machine, "user5"); + INT8 *base = (INT8*)memory_region(device->machine, "user5"); /* Clear the buffers */ - memset(buffer[0], 0, length*sizeof(*buffer[0])); - memset(buffer[1], 0, length*sizeof(*buffer[1])); + memset(outputs[0], 0, samples*sizeof(*outputs[0])); + memset(outputs[1], 0, samples*sizeof(*outputs[1])); for (i = 0; i < CPS3_VOICES; i ++) { @@ -62,7 +61,7 @@ static void cps3_stream_update(void *param, stream_sample_t **inputs, stream_sam loop -= 0x400000; /* Go through the buffer and add voice contributions */ - for (j = 0; j < length; j ++) + for (j = 0; j < samples; j ++) { INT32 sample; @@ -86,8 +85,8 @@ static void cps3_stream_update(void *param, stream_sample_t **inputs, stream_sam sample = base[BYTE4_XOR_LE(start + pos)]; frac += step; - buffer[0][j] += (sample * (vol_l >> 8)); - buffer[1][j] += (sample * (vol_r >> 8)); + outputs[0][j] += (sample * (vol_l >> 8)); + outputs[1][j] += (sample * (vol_r >> 8)); } vptr->pos = pos; diff --git a/src/mame/audio/exidy.c b/src/mame/audio/exidy.c index 753dcd94d49..801497ce2a9 100644 --- a/src/mame/audio/exidy.c +++ b/src/mame/audio/exidy.c @@ -222,13 +222,13 @@ INLINE int sh6840_update_noise(int clocks) * *************************************/ -static void exidy_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( exidy_stream_update ) { int noisy = ((sh6840_timer[0].cr & sh6840_timer[1].cr & sh6840_timer[2].cr & 0x02) == 0); stream_sample_t *buffer = outputs[0]; /* loop over samples */ - while (length--) + while (samples--) { struct sh6840_timer_channel *t; struct sh8253_timer_channel *c; diff --git a/src/mame/audio/exidy440.c b/src/mame/audio/exidy440.c index f7ff013fd03..8fa3b2ac9fa 100644 --- a/src/mame/audio/exidy440.c +++ b/src/mame/audio/exidy440.c @@ -111,7 +111,7 @@ static const int channel_bits[4] = /* function prototypes */ -static void channel_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length); +static STREAM_UPDATE( channel_update ); static void m6844_finished(int ch); static void play_cvsd(running_machine *machine, int ch); static void stop_cvsd(int ch); @@ -277,19 +277,19 @@ static void mix_to_16(int length, stream_sample_t *dest_left, stream_sample_t *d * *************************************/ -static void channel_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( channel_update ) { int ch; /* reset the mixer buffers */ - memset(mixer_buffer_left, 0, length * sizeof(INT32)); - memset(mixer_buffer_right, 0, length * sizeof(INT32)); + memset(mixer_buffer_left, 0, samples * sizeof(INT32)); + memset(mixer_buffer_right, 0, samples * sizeof(INT32)); /* loop over channels */ for (ch = 0; ch < 4; ch++) { sound_channel_data *channel = &sound_channel[ch]; - int samples, volume, left = length; + int length, volume, left = samples; int effective_offset; /* if we're not active, bail */ @@ -297,22 +297,22 @@ static void channel_update(void *param, stream_sample_t **inputs, stream_sample_ continue; /* see how many samples to copy */ - samples = (left > channel->remaining) ? channel->remaining : left; + length = (left > channel->remaining) ? channel->remaining : left; /* get a pointer to the sample data and copy to the left */ volume = sound_volume[2 * ch + 0]; if (volume) - add_and_scale_samples(ch, mixer_buffer_left, samples, volume); + add_and_scale_samples(ch, mixer_buffer_left, length, volume); /* get a pointer to the sample data and copy to the left */ volume = sound_volume[2 * ch + 1]; if (volume) - add_and_scale_samples(ch, mixer_buffer_right, samples, volume); + add_and_scale_samples(ch, mixer_buffer_right, length, volume); /* update our counters */ - channel->offset += samples; - channel->remaining -= samples; - left -= samples; + channel->offset += length; + channel->remaining -= length; + left -= length; /* update the MC6844 */ effective_offset = (ch & 2) ? channel->offset / 2 : channel->offset; @@ -327,7 +327,7 @@ static void channel_update(void *param, stream_sample_t **inputs, stream_sample_ } /* all done, time to mix it */ - mix_to_16(length, outputs[0], outputs[1]); + mix_to_16(samples, outputs[0], outputs[1]); } diff --git a/src/mame/audio/flower.c b/src/mame/audio/flower.c index 66ea6c255b6..604b4186a29 100644 --- a/src/mame/audio/flower.c +++ b/src/mame/audio/flower.c @@ -77,7 +77,7 @@ static int make_mixer_table(int voices, int gain) /* generate sound to the mix buffer in mono */ -static void flower_update_mono(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( flower_update_mono ) { stream_sample_t *buffer = outputs[0]; sound_channel *voice; @@ -87,12 +87,12 @@ static void flower_update_mono(void *param, stream_sample_t **inputs, stream_sam /* if no sound, we're done */ if (sound_enable == 0) { - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); return; } /* zap the contents of the mixer buffer */ - memset(mixer_buffer, 0, length * sizeof(short)); + memset(mixer_buffer, 0, samples * sizeof(short)); /* loop over each voice and add its contribution */ for (voice = channel_list; voice < last_channel; voice++) @@ -109,7 +109,7 @@ static void flower_update_mono(void *param, stream_sample_t **inputs, stream_sam mix = mixer_buffer; /* add our contribution */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { int offs; @@ -148,7 +148,7 @@ static void flower_update_mono(void *param, stream_sample_t **inputs, stream_sam /* mix it down */ mix = mixer_buffer; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) *buffer++ = mixer_lookup[*mix++]; } diff --git a/src/mame/audio/galaxian.c b/src/mame/audio/galaxian.c index 4f89c50761b..e130e6ddbbc 100644 --- a/src/mame/audio/galaxian.c +++ b/src/mame/audio/galaxian.c @@ -70,16 +70,16 @@ static emu_timer *noisetimer; static TIMER_CALLBACK( lfo_timer_cb ); static TIMER_CALLBACK( galaxian_sh_update ); -static void tone_update(void *param, stream_sample_t **input, stream_sample_t **output, int length) +static STREAM_UPDATE( tone_update ) { - stream_sample_t *buffer = output[0]; + stream_sample_t *buffer = outputs[0]; int i,j; INT16 *w = tonewave[vol]; /* only update if we have non-zero volume and frequency */ if( pitch != 0xff ) { - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { int mix = 0; @@ -99,7 +99,7 @@ static void tone_update(void *param, stream_sample_t **input, stream_sample_t ** } else { - for( i = 0; i < length; i++ ) + for( i = 0; i < samples; i++ ) *buffer++ = 0; } } diff --git a/src/mame/audio/geebee.c b/src/mame/audio/geebee.c index 7a0e73ce800..fb704493a1e 100644 --- a/src/mame/audio/geebee.c +++ b/src/mame/audio/geebee.c @@ -62,11 +62,11 @@ WRITE8_HANDLER( geebee_sound_w ) } } -static void geebee_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( geebee_sound_update ) { stream_sample_t *buffer = outputs[0]; - while (length--) + while (samples--) { *buffer++ = sound_signal; /* 1V = HSYNC = 18.432MHz / 3 / 2 / 384 = 8000Hz */ diff --git a/src/mame/audio/gomoku.c b/src/mame/audio/gomoku.c index 965fe7a7f0e..fbe6bfc3536 100644 --- a/src/mame/audio/gomoku.c +++ b/src/mame/audio/gomoku.c @@ -78,7 +78,7 @@ static int make_mixer_table(int voices, int gain) /* generate sound to the mix buffer in mono */ -static void gomoku_update_mono(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( gomoku_update_mono ) { stream_sample_t *buffer = outputs[0]; sound_channel *voice; @@ -88,12 +88,12 @@ static void gomoku_update_mono(void *param, stream_sample_t **inputs, stream_sam /* if no sound, we're done */ if (sound_enable == 0) { - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); return; } /* zap the contents of the mixer buffer */ - memset(mixer_buffer, 0, length * sizeof(short)); + memset(mixer_buffer, 0, samples * sizeof(short)); /* loop over each voice and add its contribution */ for (ch = 0, voice = channel_list; voice < last_channel; ch++, voice++) @@ -115,7 +115,7 @@ static void gomoku_update_mono(void *param, stream_sample_t **inputs, stream_sam mix = mixer_buffer; /* add our contribution */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { c += f; @@ -156,7 +156,7 @@ static void gomoku_update_mono(void *param, stream_sample_t **inputs, stream_sam /* mix it down */ mix = mixer_buffer; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) *buffer++ = mixer_lookup[*mix++]; } diff --git a/src/mame/audio/gridlee.c b/src/mame/audio/gridlee.c index 5cff8adfa43..013cd159168 100644 --- a/src/mame/audio/gridlee.c +++ b/src/mame/audio/gridlee.c @@ -42,12 +42,12 @@ static double freq_to_step; * *************************************/ -static void gridlee_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( gridlee_stream_update ) { stream_sample_t *buffer = outputs[0]; /* loop over samples */ - while (length--) + while (samples--) { /* tone channel */ tone_fraction += tone_step; diff --git a/src/mame/audio/leland.c b/src/mame/audio/leland.c index 953545b7676..21f7b921e8f 100644 --- a/src/mame/audio/leland.c +++ b/src/mame/audio/leland.c @@ -104,13 +104,13 @@ static UINT32 dac_bufout[2]; static sound_stream * dac_stream; -static void leland_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( leland_update ) { stream_sample_t *buffer = outputs[0]; int dacnum; /* reset the buffer */ - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); for (dacnum = 0; dacnum < 2; dacnum++) { int bufout = dac_bufout[dacnum]; @@ -121,7 +121,7 @@ static void leland_update(void *param, stream_sample_t **inputs, stream_sample_t UINT8 *base = dac_buffer[dacnum]; int i; - for (i = 0; i < length && count > 0; i++, count--) + for (i = 0; i < samples && count > 0; i++, count--) { buffer[i] += ((INT16)base[bufout] - 0x80) * 0x40; bufout = (bufout + 1) & DAC_BUFFER_MASK; @@ -304,7 +304,7 @@ static WRITE16_HANDLER( peripheral_w ); * *************************************/ -static void leland_80186_dac_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( leland_80186_dac_update ) { stream_sample_t *buffer = outputs[0]; int i, j, start, stop; @@ -312,7 +312,7 @@ static void leland_80186_dac_update(void *param, stream_sample_t **inputs, strea if (LOG_SHORTAGES) logerror("----\n"); /* reset the buffer */ - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); /* if we're redline racer, we have more DACs */ if (!is_redline) @@ -335,7 +335,7 @@ static void leland_80186_dac_update(void *param, stream_sample_t **inputs, strea int step = d->step; /* sample-rate convert to the output frequency */ - for (j = 0; j < length && count > 0; j++) + for (j = 0; j < samples && count > 0; j++) { buffer[j] += base[source]; frac += step; @@ -345,8 +345,8 @@ static void leland_80186_dac_update(void *param, stream_sample_t **inputs, strea source &= DAC_BUFFER_SIZE_MASK; } - if (LOG_SHORTAGES && j < length) - logerror("DAC #%d short by %d/%d samples\n", i, length - j, length); + if (LOG_SHORTAGES && j < samples) + logerror("DAC #%d short by %d/%d samples\n", i, samples - j, samples); /* update the DAC state */ d->fraction = frac; @@ -367,14 +367,14 @@ static void leland_80186_dac_update(void *param, stream_sample_t **inputs, strea * *************************************/ -static void leland_80186_dma_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( leland_80186_dma_update ) { const address_space *dmaspace = param; stream_sample_t *buffer = outputs[0]; int i, j; /* reset the buffer */ - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); /* loop over DMA buffers */ for (i = 0; i < 2; i++) @@ -416,7 +416,7 @@ static void leland_80186_dma_update(void *param, stream_sample_t **inputs, strea volume = dac[which].volume; /* sample-rate convert to the output frequency */ - for (j = 0; j < length && count > 0; j++) + for (j = 0; j < samples && count > 0; j++) { buffer[j] += ((int)memory_read_byte(dmaspace, source) - 0x80) * volume; frac += step; @@ -456,7 +456,7 @@ static void leland_80186_dma_update(void *param, stream_sample_t **inputs, strea * *************************************/ -static void leland_80186_extern_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( leland_80186_extern_update ) { stream_sample_t *buffer = outputs[0]; struct dac_state *d = &dac[7]; @@ -464,7 +464,7 @@ static void leland_80186_extern_update(void *param, stream_sample_t **inputs, st int j; /* reset the buffer */ - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); /* if we have data, process it */ if (count > 0 && ext_active) @@ -474,7 +474,7 @@ static void leland_80186_extern_update(void *param, stream_sample_t **inputs, st int step = d->step; /* sample-rate convert to the output frequency */ - for (j = 0; j < length && count > 0; j++) + for (j = 0; j < samples && count > 0; j++) { buffer[j] += ((INT16)ext_base[source] - 0x80) * d->volume; frac += step; diff --git a/src/mame/audio/phoenix.c b/src/mame/audio/phoenix.c index 273acba078b..6d342eee2fe 100644 --- a/src/mame/audio/phoenix.c +++ b/src/mame/audio/phoenix.c @@ -10,7 +10,6 @@ #include "driver.h" #include "streams.h" -#include "deprecat.h" #include "sound/custom.h" #include "sound/tms36xx.h" #include "phoenix.h" @@ -205,12 +204,12 @@ INLINE int noise(int samplerate) return sum; } -static void phoenix_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( phoenix_sound_update ) { - int samplerate = Machine->sample_rate; + int samplerate = device->machine->sample_rate; stream_sample_t *buffer = outputs[0]; - while( length-- > 0 ) + while( samples-- > 0 ) { int sum = 0; sum = noise(samplerate) / 2; diff --git a/src/mame/audio/pleiads.c b/src/mame/audio/pleiads.c index d74c3aeb417..c26ad9fa8f5 100644 --- a/src/mame/audio/pleiads.c +++ b/src/mame/audio/pleiads.c @@ -8,7 +8,6 @@ ****************************************************************************/ #include "driver.h" #include "streams.h" -#include "deprecat.h" #include "sound/custom.h" #include "sound/tms36xx.h" #include "includes/phoenix.h" @@ -397,12 +396,12 @@ INLINE int noise(int samplerate) return sum / 2; } -static void pleiads_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( pleiads_sound_update ) { - int rate = Machine->sample_rate; + int rate = device->machine->sample_rate; stream_sample_t *buffer = outputs[0]; - while( length-- > 0 ) + while( samples-- > 0 ) { int sum = tone1(rate)/2 + tone23(rate)/2 + tone4(rate) + noise(rate); *buffer++ = sum < 32768 ? sum > -32768 ? sum : -32768 : 32767; diff --git a/src/mame/audio/polepos.c b/src/mame/audio/polepos.c index e39eed04ba4..051e0fbc82e 100644 --- a/src/mame/audio/polepos.c +++ b/src/mame/audio/polepos.c @@ -3,7 +3,6 @@ Sound handler ****************************************************************************/ #include "driver.h" -#include "deprecat.h" #include "streams.h" #include "sound/filter.h" #include "machine/rescap.h" @@ -47,7 +46,7 @@ static const double r_filt_total = 1.0 / (1.0/RES_K(4.7) + 1.0/RES_K(7.5) + 1.0/ /************************************/ /* Stream updater */ /************************************/ -static void engine_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( engine_sound_update ) { static UINT32 current_position; UINT32 step, clock, slot; @@ -59,21 +58,21 @@ static void engine_sound_update(void *param, stream_sample_t **inputs, stream_sa /* if we're not enabled, just fill with 0 */ if (!sample_enable) { - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); return; } /* determine the effective clock rate */ - clock = (cpu_get_clock(Machine->cpu[0]) / 16) * ((sample_msb + 1) * 64 + sample_lsb + 1) / (64*64); + clock = (cpu_get_clock(device->machine->cpu[0]) / 16) * ((sample_msb + 1) * 64 + sample_lsb + 1) / (64*64); step = (clock << 12) / OUTPUT_RATE; /* determine the volume */ slot = (sample_msb >> 3) & 7; volume = volume_table[slot]; - base = &memory_region(Machine, "engine")[slot * 0x800]; + base = &memory_region(device->machine, "engine")[slot * 0x800]; /* fill in the sample */ - while (length--) + while (samples--) { filter_engine[0].x0 = (3.4 / 255 * base[(current_position >> 12) & 0x7ff] - 2) * volume; filter_engine[1].x0 = filter_engine[0].x0; diff --git a/src/mame/audio/redbaron.c b/src/mame/audio/redbaron.c index 46537e57703..04f6c869408 100644 --- a/src/mame/audio/redbaron.c +++ b/src/mame/audio/redbaron.c @@ -62,10 +62,10 @@ WRITE8_HANDLER( redbaron_pokey_w ) pokey1_w(space, offset, data); } -static void redbaron_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( redbaron_sound_update ) { stream_sample_t *buffer = outputs[0]; - while( length-- ) + while( samples-- ) { int sum = 0; diff --git a/src/mame/audio/rockola.c b/src/mame/audio/rockola.c index f373d219cbe..d6c2515a45c 100644 --- a/src/mame/audio/rockola.c +++ b/src/mame/audio/rockola.c @@ -11,7 +11,6 @@ #include "driver.h" -#include "deprecat.h" #include "streams.h" #include "sound/custom.h" #include "sound/sn76477.h" @@ -394,15 +393,15 @@ INLINE void validate_tone_channel(running_machine *machine, int channel) } } -static void rockola_tone_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int len) +static STREAM_UPDATE( rockola_tone_update ) { stream_sample_t *buffer = outputs[0]; int i; for (i = 0; i < CHANNELS; i++) - validate_tone_channel(Machine, i); + validate_tone_channel(device->machine, i); - while (len-- > 0) + while (samples-- > 0) { INT32 data = 0; @@ -435,7 +434,7 @@ static void rockola_tone_update(void *param, stream_sample_t **inputs, stream_sa tone_channels[i].offset++; tone_channels[i].offset &= tone_channels[i].mask; - validate_tone_channel(Machine, i); + validate_tone_channel(device->machine, i); } if (tone_channels[0].offset == 0 && Sound0StopOnRollover) diff --git a/src/mame/audio/segag80r.c b/src/mame/audio/segag80r.c index 58412d73210..3bd26cfe8f6 100644 --- a/src/mame/audio/segag80r.c +++ b/src/mame/audio/segag80r.c @@ -8,7 +8,6 @@ ***************************************************************************/ #include "driver.h" -#include "deprecat.h" #include "streams.h" #include "cpu/mcs48/mcs48.h" #include "segag80r.h" @@ -340,7 +339,7 @@ WRITE8_HANDLER( astrob_sound_w ) static SOUND_START( 005 ); static CUSTOM_START( sega005_custom_start ); -static void sega005_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples); +static STREAM_UPDATE( sega005_stream_update ); static TIMER_CALLBACK( sega005_auto_timer ); static WRITE8_DEVICE_HANDLER( sega005_sound_a_w ); static WRITE8_DEVICE_HANDLER( sega005_sound_b_w ); @@ -595,9 +594,9 @@ static CUSTOM_START( sega005_custom_start ) } -static void sega005_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( sega005_stream_update ) { - const UINT8 *sound_prom = memory_region(Machine, "proms"); + const UINT8 *sound_prom = memory_region(device->machine, "proms"); int i; /* no implementation yet */ diff --git a/src/mame/audio/segasnd.c b/src/mame/audio/segasnd.c index ce7940406b8..31ee08482b2 100644 --- a/src/mame/audio/segasnd.c +++ b/src/mame/audio/segasnd.c @@ -484,12 +484,12 @@ INLINE void clock_channel(timer8253_channel *ch) } -static void usb_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( usb_stream_update ) { stream_sample_t *dest = outputs[0]; /* iterate over samples */ - while (length--) + while (samples--) { double noiseval; double sample = 0; diff --git a/src/mame/audio/seibu.c b/src/mame/audio/seibu.c index 6a181be234b..99e23c3deb1 100644 --- a/src/mame/audio/seibu.c +++ b/src/mame/audio/seibu.c @@ -141,7 +141,7 @@ static struct seibu_adpcm_state UINT8 *base; } seibu_adpcm[2]; -static void seibu_adpcm_callback(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( seibu_adpcm_callback ) { struct seibu_adpcm_state *state = param; stream_sample_t *dest = outputs[0]; diff --git a/src/mame/audio/snes.c b/src/mame/audio/snes.c index b078db574e9..2fe13dd23f0 100644 --- a/src/mame/audio/snes.c +++ b/src/mame/audio/snes.c @@ -1170,12 +1170,12 @@ CUSTOM_START( snes_sh_start ) return auto_malloc(1); } -void snes_sh_update( void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length ) +STREAM_UPDATE( snes_sh_update ) { int i; short mix[2]; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { mix[0] = mix[1] = 0; DSP_Update(mix); diff --git a/src/mame/audio/tiamc1.c b/src/mame/audio/tiamc1.c index 1a180848529..39d5b0b89fc 100644 --- a/src/mame/audio/tiamc1.c +++ b/src/mame/audio/tiamc1.c @@ -244,11 +244,11 @@ WRITE8_HANDLER( tiamc1_timer1_gate_w ) } -static void tiamc1_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( tiamc1_sound_update ) { int count, o0, o1, o2, len, or = 0; - len = length * CLOCK_DIVIDER; + len = samples * CLOCK_DIVIDER; for (count = 0; count < len; count++) { timer1_divider++; diff --git a/src/mame/audio/tx1.c b/src/mame/audio/tx1.c index 614bafbc856..2a81bcf9f47 100644 --- a/src/mame/audio/tx1.c +++ b/src/mame/audio/tx1.c @@ -6,7 +6,6 @@ #include "driver.h" #include "streams.h" -#include "deprecat.h" #include "includes/tx1.h" #include "video/resnet.h" #include "sound/custom.h" @@ -211,21 +210,21 @@ INLINE void update_engine (int eng[4]) } -static void tx1_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( tx1_stream_update ) { UINT32 step_0, step_1, step_2; double gain_0, gain_1, gain_2, gain_3; - stream_sample_t *fl = &buffer[0][0]; - stream_sample_t *fr = &buffer[1][0]; + stream_sample_t *fl = &outputs[0][0]; + stream_sample_t *fr = &outputs[1][0]; static stream_sample_t pit0 = 0; static stream_sample_t pit1 = 0; static stream_sample_t pit2 = 0; /* Clear the buffers */ - memset(buffer[0], 0, length * sizeof(*buffer[0])); - memset(buffer[1], 0, length * sizeof(*buffer[1])); + memset(outputs[0], 0, samples * sizeof(*outputs[0])); + memset(outputs[1], 0, samples * sizeof(*outputs[1])); /* 8253 outputs for the player/opponent engine sounds. */ step_0 = pit8253.counts[0].val ? (TX1_PIT_CLOCK / pit8253.counts[0].val) * freq_to_step : 0; @@ -237,7 +236,7 @@ static void tx1_stream_update(void *param, stream_sample_t **inputs, stream_samp gain_2 = tx1_engine_gains[ay_outputb & 0xf]; gain_3 = BIT(ay_outputb, 5) ? 1.0f : 1.5f; - while (length--) + while (samples--) { if (step0 & ((1 << TX1_FRAC))) { @@ -417,18 +416,18 @@ WRITE8_HANDLER( bb_ym1_b_w ) } /* This is admittedly a bit of a hack job... */ -static void buggyboy_stream_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length) +static STREAM_UPDATE( buggyboy_stream_update ) { UINT32 step_0, step_1; int n1_en, n2_en; double gain0, gain1_l, gain1_r; - stream_sample_t *fl = &buffer[0][0]; - stream_sample_t *fr = &buffer[1][0]; + stream_sample_t *fl = &outputs[0][0]; + stream_sample_t *fr = &outputs[1][0]; /* Clear the buffers */ - memset(buffer[0], 0, length * sizeof(*buffer[0])); - memset(buffer[1], 0, length * sizeof(*buffer[1])); + memset(outputs[0], 0, samples * sizeof(*outputs[0])); + memset(outputs[1], 0, samples * sizeof(*outputs[1])); /* 8253 outputs for the player/opponent buggy engine sounds. */ step_0 = pit8253.counts[0].val ? (BUGGYBOY_PIT_CLOCK / pit8253.counts[0].val) * freq_to_step : 0; @@ -441,7 +440,7 @@ static void buggyboy_stream_update(void *param, stream_sample_t **inputs, stream gain1_l = bb_engine_gains[ym_outputa >> 4] * 5; gain1_r = bb_engine_gains[ym_outputa & 0xf] * 5; - while (length--) + while (samples--) { int i; stream_sample_t pit0, pit1, n1, n2; @@ -449,7 +448,7 @@ static void buggyboy_stream_update(void *param, stream_sample_t **inputs, stream pit1 = buggyboy_eng_voltages[(step1 >> 24) & 0xf]; /* Calculate the tyre screech noise source */ - for (i = 0; i < BUGGYBOY_NOISE_CLOCK / Machine->sample_rate; ++i) + for (i = 0; i < BUGGYBOY_NOISE_CLOCK / device->machine->sample_rate; ++i) { /* CD4006 is a 4-4-1-4-4-1 shift register */ int p13 = BIT(noise_lfsra, 3); diff --git a/src/mame/audio/warpwarp.c b/src/mame/audio/warpwarp.c index 292b88dcefd..5030c4722e5 100644 --- a/src/mame/audio/warpwarp.c +++ b/src/mame/audio/warpwarp.c @@ -119,7 +119,7 @@ WRITE8_HANDLER( warpwarp_music2_w ) } -static void warpwarp_sound_update(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( warpwarp_sound_update ) { static int vcarry = 0; static int vcount = 0; @@ -127,7 +127,7 @@ static void warpwarp_sound_update(void *param, stream_sample_t **inputs, stream_ static int mcount = 0; stream_sample_t *buffer = outputs[0]; - while (length--) + while (samples--) { *buffer++ = (sound_signal + music_signal) / 2; diff --git a/src/mame/audio/wiping.c b/src/mame/audio/wiping.c index 82ad8e25b81..504d274cd27 100644 --- a/src/mame/audio/wiping.c +++ b/src/mame/audio/wiping.c @@ -78,7 +78,7 @@ static int make_mixer_table(int voices, int gain) /* generate sound to the mix buffer in mono */ -static void wiping_update_mono(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int length) +static STREAM_UPDATE( wiping_update_mono ) { stream_sample_t *buffer = outputs[0]; sound_channel *voice; @@ -88,12 +88,12 @@ static void wiping_update_mono(void *param, stream_sample_t **inputs, stream_sam /* if no sound, we're done */ if (sound_enable == 0) { - memset(buffer, 0, length * sizeof(*buffer)); + memset(buffer, 0, samples * sizeof(*buffer)); return; } /* zap the contents of the mixer buffer */ - memset(mixer_buffer, 0, length * sizeof(short)); + memset(mixer_buffer, 0, samples * sizeof(short)); /* loop over each voice and add its contribution */ for (voice = channel_list; voice < last_channel; voice++) @@ -110,7 +110,7 @@ static void wiping_update_mono(void *param, stream_sample_t **inputs, stream_sam mix = mixer_buffer; /* add our contribution */ - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) { int offs; @@ -155,7 +155,7 @@ static void wiping_update_mono(void *param, stream_sample_t **inputs, stream_sam /* mix it down */ mix = mixer_buffer; - for (i = 0; i < length; i++) + for (i = 0; i < samples; i++) *buffer++ = mixer_lookup[*mix++]; } diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c index 610dbc11138..b291561259d 100644 --- a/src/mame/drivers/mjkjidai.c +++ b/src/mame/drivers/mjkjidai.c @@ -47,7 +47,7 @@ static struct mjkjidai_adpcm_state UINT8 *base; } mjkjidai_adpcm; -static void mjkjidai_adpcm_callback (void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( mjkjidai_adpcm_callback ) { struct mjkjidai_adpcm_state *state = param; stream_sample_t *dest = outputs[0]; diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c index 4b6393fab72..4ef9de80fd6 100644 --- a/src/mame/drivers/renegade.c +++ b/src/mame/drivers/renegade.c @@ -138,7 +138,7 @@ static struct renegade_adpcm_state UINT8 *base; } renegade_adpcm; -static void renegade_adpcm_callback(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +static STREAM_UPDATE( renegade_adpcm_callback ) { struct renegade_adpcm_state *state = param; stream_sample_t *dest = outputs[0]; diff --git a/src/mame/includes/snes.h b/src/mame/includes/snes.h index fb38db4e3bc..ada3a66f170 100644 --- a/src/mame/includes/snes.h +++ b/src/mame/includes/snes.h @@ -1,6 +1,7 @@ #ifndef _SNES_H_ #define _SNES_H_ +#include "streams.h" #include "sound/custom.h" /* @@ -493,7 +494,7 @@ extern READ8_HANDLER( spc_ram_r ); extern WRITE8_HANDLER( spc_ram_w ); extern READ8_HANDLER( spc_ipl_r ); extern CUSTOM_START( snes_sh_start ); -extern void snes_sh_update( void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length ); +extern STREAM_UPDATE( snes_sh_update ); /* Stuff from OpenSPC 0.3.99 by Brad Martin */