From 84e9ab0e011ae244b1d130b91bd166e454609bc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mo=C5=84?= Date: Wed, 25 Feb 2009 19:59:52 +0100 Subject: [PATCH] revise SettingsWidget --- effects.c | 318 ++++++++++++++++++------------------- effects.h | 5 +- gdigi.c | 123 -------------- gui.c | 19 +-- tests.c | 468 +++++++++++++++++++++++++++--------------------------- 5 files changed, 399 insertions(+), 534 deletions(-) diff --git a/effects.c b/effects.c index bf023c9..0691a6d 100644 --- a/effects.c +++ b/effects.c @@ -18,229 +18,229 @@ #include "effects.h" static SettingsWidget wah_widgets[] = { - {"Wah min", set_wah_min, NULL, 0.0, 99.0}, - {"Wah max", set_wah_max, NULL, 0.0, 99.0}, - {"Wah level", set_wah_level, NULL, 0.0, 12.0}, + {"Wah min", 0.0, 99.0, WAH_MIN, WAH_POSITION_MIN_MAX}, + {"Wah max", 0.0, 99.0, WAH_MAX, WAH_POSITION_MIN_MAX}, + {"Wah level", 0.0, 12.0, WAH_LEVEL, WAH_POSITION}, }; static SettingsWidget comp_digi_widgets[] = { - {"Compressor sustain", set_comp_sustain, NULL, 0.0, 99.0}, - {"Compressor tone", set_comp_tone, NULL, 0.0, 99.0}, - {"Compressor attack", set_comp_attack, NULL, 0.0, 99.0}, - {"Compressor level", set_comp_level, NULL, 0.0, 99.0}, + {"Compressor sustain", 0.0, 99.0, COMP_SUSTAIN, COMP_POSITION}, + {"Compressor tone", 0.0, 99.0, COMP_TONE, COMP_POSITION}, + {"Compressor attack", 0.0, 99.0, COMP_ATTACK, COMP_POSITION}, + {"Compressor level", 0.0, 99.0, COMP_LEVEL, COMP_POSITION}, }; static SettingsWidget comp_cs_widgets[] = { - {"Compressor sustain", set_comp_sustain, NULL, 0.0, 99.0}, - {"Compressor attack", set_comp_attack, NULL, 0.0, 99.0}, - {"Compressor level", set_comp_level, NULL, 0.0, 99.0}, + {"Compressor sustain", 0.0, 99.0, COMP_SUSTAIN, COMP_POSITION}, + {"Compressor attack", 0.0, 99.0, COMP_ATTACK, COMP_POSITION}, + {"Compressor level", 0.0, 99.0, COMP_LEVEL, COMP_POSITION}, }; static SettingsWidget dist_screamer_widgets[] = { - {"Screamer drive", NULL, set_dist_option, 0.0, 99.0, DIST_SCREAMER_DRIVE}, - {"Screamer tone", NULL, set_dist_option, 0.0, 99.0, DIST_SCREAMER_TONE}, - {"Screamer level", NULL, set_dist_option, 0.0, 99.0, DIST_SCREAMER_LVL}, + {"Screamer drive", 0.0, 99.0, DIST_SCREAMER_DRIVE, DIST_POSITION}, + {"Screamer tone", 0.0, 99.0, DIST_SCREAMER_TONE, DIST_POSITION}, + {"Screamer level", 0.0, 99.0, DIST_SCREAMER_LVL, DIST_POSITION}, }; static SettingsWidget dist_808_widgets[] = { - {"808 overdrive", NULL, set_dist_option, 0.0, 99.0, DIST_808_OVERDRIVE}, - {"808 tone", NULL, set_dist_option, 0.0, 99.0, DIST_808_TONE}, - {"808 level", NULL, set_dist_option, 0.0, 99.0, DIST_808_LVL}, + {"808 overdrive", 0.0, 99.0, DIST_808_OVERDRIVE, DIST_POSITION}, + {"808 tone", 0.0, 99.0, DIST_808_TONE, DIST_POSITION}, + {"808 level", 0.0, 99.0, DIST_808_LVL, DIST_POSITION}, }; static SettingsWidget dist_guyod_widgets[] = { - {"GuyOD drive", NULL, set_dist_option, 0.0, 99.0, DIST_GUYOD_DRIVE}, - {"GuyOD level", NULL, set_dist_option, 0.0, 99.0, DIST_GUYOD_LVL}, + {"GuyOD drive", 0.0, 99.0, DIST_GUYOD_DRIVE, DIST_POSITION}, + {"GuyOD level", 0.0, 99.0, DIST_GUYOD_LVL, DIST_POSITION}, }; static SettingsWidget dist_dod250_widgets[] = { - {"DOD250 gain", NULL, set_dist_option, 0.0, 99.0, DIST_DOD250_GAIN}, - {"DOD250 level", NULL, set_dist_option, 0.0, 99.0, DIST_DOD250_LVL}, + {"DOD250 gain", 0.0, 99.0, DIST_DOD250_GAIN, DIST_POSITION}, + {"DOD250 level", 0.0, 99.0, DIST_DOD250_LVL, DIST_POSITION}, }; static SettingsWidget dist_rodent_widgets[] = { - {"Rodent dist", NULL, set_dist_option, 0.0, 99.0, DIST_RODENT_DIST}, - {"Rodent filter", NULL, set_dist_option, 0.0, 99.0, DIST_RODENT_FILTER}, - {"Rodent level", NULL, set_dist_option, 0.0, 99.0, DIST_RODENT_LVL}, + {"Rodent dist", 0.0, 99.0, DIST_RODENT_DIST, DIST_POSITION}, + {"Rodent filter", 0.0, 99.0, DIST_RODENT_FILTER, DIST_POSITION}, + {"Rodent level", 0.0, 99.0, DIST_RODENT_LVL, DIST_POSITION}, }; static SettingsWidget dist_mx_widgets[] = { - {"MX dist", NULL, set_dist_option, 0.0, 99.0, DIST_MX_DIST}, - {"MX output", NULL, set_dist_option, 0.0, 99.0, DIST_MX_OUTPUT}, + {"MX dist", 0.0, 99.0, DIST_MX_DIST, DIST_POSITION}, + {"MX output", 0.0, 99.0, DIST_MX_OUTPUT, DIST_POSITION}, }; static SettingsWidget dist_ds_widgets[] = { - {"DS gain", NULL, set_dist_option, 0.0, 99.0, DIST_DS_GAIN}, - {"DS tone", NULL, set_dist_option, 0.0, 99.0, DIST_DS_TONE}, - {"DS level", NULL, set_dist_option, 0.0, 99.0, DIST_DS_LVL}, + {"DS gain", 0.0, 99.0, DIST_DS_GAIN, DIST_POSITION}, + {"DS tone", 0.0, 99.0, DIST_DS_TONE, DIST_POSITION}, + {"DS level", 0.0, 99.0, DIST_DS_LVL, DIST_POSITION}, }; static SettingsWidget dist_grunge_widgets[] = { - {"Grunge", NULL, set_dist_option, 0.0, 99.0, DIST_GRUNGE_GRUNGE}, - {"Grunge face", NULL, set_dist_option, 0.0, 99.0, DIST_GRUNGE_FACE}, - {"Grunge loud", NULL, set_dist_option, 0.0, 99.0, DIST_GRUNGE_LOUD}, - {"Grunge butt", NULL, set_dist_option, 0.0, 99.0, DIST_GRUNGE_BUTT}, + {"Grunge", 0.0, 99.0, DIST_GRUNGE_GRUNGE, DIST_POSITION}, + {"Grunge face", 0.0, 99.0, DIST_GRUNGE_FACE, DIST_POSITION}, + {"Grunge loud", 0.0, 99.0, DIST_GRUNGE_LOUD, DIST_POSITION}, + {"Grunge butt", 0.0, 99.0, DIST_GRUNGE_BUTT, DIST_POSITION}, }; static SettingsWidget dist_zone_widgets[] = { - {"Zone gain", NULL, set_dist_option, 0.0, 99.0, DIST_ZONE_GAIN}, - {"Zone low", NULL, set_dist_option, 0.0, 99.0, DIST_ZONE_LOW}, - {"Zone mid level", NULL, set_dist_option, 0.0, 99.0, DIST_ZONE_MID_LVL}, - {"Zone mid freq", NULL, set_dist_option, 0.0, 99.0, DIST_ZONE_MID_FREQ}, - {"Zone high", NULL, set_dist_option, 0.0, 99.0, DIST_ZONE_HIGH}, - {"Zone level", NULL, set_dist_option, 0.0, 99.0, DIST_ZONE_LEVEL}, + {"Zone gain", 0.0, 99.0, DIST_ZONE_GAIN, DIST_POSITION}, + {"Zone low", 0.0, 99.0, DIST_ZONE_LOW, DIST_POSITION}, + {"Zone mid level", 0.0, 99.0, DIST_ZONE_MID_LVL, DIST_POSITION}, + {"Zone mid freq", 0.0, 99.0, DIST_ZONE_MID_FREQ, DIST_POSITION}, + {"Zone high", 0.0, 99.0, DIST_ZONE_HIGH, DIST_POSITION}, + {"Zone level", 0.0, 99.0, DIST_ZONE_LEVEL, DIST_POSITION}, }; static SettingsWidget dist_death_widgets[] = { - {"Death low", NULL, set_dist_option, 0.0, 99.0, DIST_DEATH_LOW}, - {"Death mid", NULL, set_dist_option, 0.0, 99.0, DIST_DEATH_MID}, - {"Death high", NULL, set_dist_option, 0.0, 99.0, DIST_DEATH_HIGH}, - {"Death level", NULL, set_dist_option, 0.0, 99.0, DIST_DEATH_LVL}, + {"Death low", 0.0, 99.0, DIST_DEATH_LOW, DIST_POSITION}, + {"Death mid", 0.0, 99.0, DIST_DEATH_MID, DIST_POSITION}, + {"Death high", 0.0, 99.0, DIST_DEATH_HIGH, DIST_POSITION}, + {"Death level", 0.0, 99.0, DIST_DEATH_LVL, DIST_POSITION}, }; static SettingsWidget dist_gonk_widgets[] = { - {"Gonk gonk", NULL, set_dist_option, 0.0, 99.0, DIST_GONK_GONK}, - {"Gonk smear", NULL, set_dist_option, 0.0, 99.0, DIST_GONK_SMEAR}, - {"Gonk suck", NULL, set_dist_option, 0.0, 99.0, DIST_GONK_SUCK}, - {"Gonk heave", NULL, set_dist_option, 0.0, 99.0, DIST_GONK_HEAVE}, + {"Gonk gonk", 0.0, 99.0, DIST_GONK_GONK, DIST_POSITION}, + {"Gonk smear", 0.0, 99.0, DIST_GONK_SMEAR, DIST_POSITION}, + {"Gonk suck", 0.0, 99.0, DIST_GONK_SUCK, DIST_POSITION}, + {"Gonk heave", 0.0, 99.0, DIST_GONK_HEAVE, DIST_POSITION}, }; static SettingsWidget dist_fuzzy_widgets[] = { - {"Fuzzy fuzz", NULL, set_dist_option, 0.0, 99.0, DIST_FUZZY_FUZZ}, - {"Fuzzy volume", NULL, set_dist_option, 0.0, 99.0, DIST_FUZZY_VOLUME}, + {"Fuzzy fuzz", 0.0, 99.0, DIST_FUZZY_FUZZ, DIST_POSITION}, + {"Fuzzy volume", 0.0, 99.0, DIST_FUZZY_VOLUME, DIST_POSITION}, }; static SettingsWidget dist_mp_widgets[] = { - {"MP sustain", NULL, set_dist_option, 0.0, 99.0, DIST_MP_SUSTAIN}, - {"MP tone", NULL, set_dist_option, 0.0, 99.0, DIST_MP_TONE}, - {"MP volume", NULL, set_dist_option, 0.0, 99.0, DIST_MP_VOLUME}, + {"MP sustain", 0.0, 99.0, DIST_MP_SUSTAIN, DIST_POSITION}, + {"MP tone", 0.0, 99.0, DIST_MP_TONE, DIST_POSITION}, + {"MP volume", 0.0, 99.0, DIST_MP_VOLUME, DIST_POSITION}, }; static SettingsWidget eq_widgets[] = { - {"EQ gain", set_eq_gain, NULL, 0.0, 99.0}, - {"EQ level", set_eq_level, NULL, 0.0, 99.0}, + {"EQ gain", 0.0, 99.0, AMP_GAIN, AMP_POSITION}, + {"EQ level", 0.0, 99.0, AMP_LEVEL, AMP_POSITION}, // TODO: make those display propertly (display range -12 to 12) - {"EQ bass", set_eq_bass, NULL, 0.0, 24.0}, - {"EQ mid", set_eq_mid, NULL, 0.0, 24.0}, - {"EQ treble", set_eq_treble, NULL, 0.0, 24.0}, + {"EQ bass", 0.0, 24.0, EQ_BASS, EQ_POSITION}, + {"EQ mid", 0.0, 24.0, EQ_MID, EQ_POSITION}, + {"EQ treble", 0.0, 24.0, EQ_TREBLE, EQ_POSITION}, // TODO: make this display propertly (display range 300 to 5000) - {"EQ mid Hz", set_eq_mid_hz, NULL, 0.0, 4700.0}, + {"EQ mid Hz", 0.0, 4700.0, EQ_MID_HZ, EQ_POSITION}, // TODO: make this display propertly (display range 500 to 8000) - {"EQ treb Hz", set_eq_treb_hz, NULL, 0.0, 7500.0}, + {"EQ treb Hz", 0.0, 7500.0, EQ_TREBLE_HZ, EQ_POSITION}, }; static SettingsWidget noisegate_gate_widgets[] = { - {"Gate treshold", NULL, set_gate_option, 0.0, 99.0, NOISEGATE_GATE_TRESHOLD}, - {"Gate attack", NULL, set_gate_option, 0.0, 99.0, NOISEGATE_ATTACK}, - {"Gate release", NULL, set_gate_option, 0.0, 99.0, NOISEGATE_RELEASE}, - {"Gate attn", NULL, set_gate_option, 0.0, 99.0, NOISEGATE_ATTN}, + {"Gate treshold", 0.0, 99.0, NOISEGATE_GATE_TRESHOLD, NOISEGATE_POSITION}, + {"Gate attack", 0.0, 99.0, NOISEGATE_ATTACK, NOISEGATE_POSITION}, + {"Gate release", 0.0, 99.0, NOISEGATE_RELEASE, NOISEGATE_POSITION}, + {"Gate attn", 0.0, 99.0, NOISEGATE_ATTN, NOISEGATE_POSITION}, }; static SettingsWidget noisegate_swell_widgets[] = { - {"Swell sens", NULL, set_gate_option, 0.0, 99.0, NOISEGATE_SWELL_SENS}, - {"Swell attack", NULL, set_gate_option, 0.0, 99.0, NOISEGATE_ATTACK}, - {"Swell release", NULL, set_gate_option, 0.0, 99.0, NOISEGATE_RELEASE}, - {"Swell attn", NULL, set_gate_option, 0.0, 99.0, NOISEGATE_ATTN}, + {"Swell sens", 0.0, 99.0, NOISEGATE_SWELL_SENS, NOISEGATE_POSITION}, + {"Swell attack", 0.0, 99.0, NOISEGATE_ATTACK, NOISEGATE_POSITION}, + {"Swell release", 0.0, 99.0, NOISEGATE_RELEASE, NOISEGATE_POSITION}, + {"Swell attn", 0.0, 99.0, NOISEGATE_ATTN, NOISEGATE_POSITION}, }; static SettingsWidget chorusfx_ce_widgets[] = { - {"CE chorus speed", NULL, set_chorusfx_option, 0.0, 99.0, CE_CHORUS_SPEED}, - {"CE chorus depth", NULL, set_chorusfx_option, 0.0, 99.0, CE_CHORUS_DEPTH}, + {"CE chorus speed", 0.0, 99.0, CE_CHORUS_SPEED, CHORUSFX_POSITION}, + {"CE chorus depth", 0.0, 99.0, CE_CHORUS_DEPTH, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_dual_widgets[] = { - {"Dual chorus speed", NULL, set_chorusfx_option, 0.0, 99.0, DUAL_CHORUS_SPEED}, - {"Dual chorus depth", NULL, set_chorusfx_option, 0.0, 99.0, DUAL_CHORUS_DEPTH}, - {"Dual chorus level", NULL, set_chorusfx_option, 0.0, 99.0, DUAL_CHORUS_LEVEL}, + {"Dual chorus speed", 0.0, 99.0, DUAL_CHORUS_SPEED, CHORUSFX_POSITION}, + {"Dual chorus depth", 0.0, 99.0, DUAL_CHORUS_DEPTH, CHORUSFX_POSITION}, + {"Dual chorus level", 0.0, 99.0, DUAL_CHORUS_LEVEL, CHORUSFX_POSITION}, // TODO: DUAL_CHORUS_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; static SettingsWidget chorusfx_multi_widgets[] = { - {"Multi chorus speed", NULL, set_chorusfx_option, 0.0, 99.0, MULTI_CHORUS_SPEED}, - {"Multi chorus depth", NULL, set_chorusfx_option, 0.0, 99.0, MULTI_CHORUS_DEPTH}, - {"Multi chorus level", NULL, set_chorusfx_option, 0.0, 99.0, MULTI_CHORUS_LEVEL}, + {"Multi chorus speed", 0.0, 99.0, MULTI_CHORUS_SPEED, CHORUSFX_POSITION}, + {"Multi chorus depth", 0.0, 99.0, MULTI_CHORUS_DEPTH, CHORUSFX_POSITION}, + {"Multi chorus level", 0.0, 99.0, MULTI_CHORUS_LEVEL, CHORUSFX_POSITION}, // TODO: MULTI_CHORUS_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; static SettingsWidget chorusfx_flanger_widgets[] = { - {"Flanger speed", NULL, set_chorusfx_option, 0.0, 99.0, FLANGER_SPEED}, - {"Flanger depth", NULL, set_chorusfx_option, 0.0, 99.0, FLANGER_DEPTH}, - {"Flanger regen", NULL, set_chorusfx_option, 0.0, 99.0, FLANGER_REGEN}, - {"Flanger level", NULL, set_chorusfx_option, 0.0, 99.0, FLANGER_LEVEL}, + {"Flanger speed", 0.0, 99.0, FLANGER_SPEED, CHORUSFX_POSITION}, + {"Flanger depth", 0.0, 99.0, FLANGER_DEPTH, CHORUSFX_POSITION}, + {"Flanger regen", 0.0, 99.0, FLANGER_REGEN, CHORUSFX_POSITION}, + {"Flanger level", 0.0, 99.0, FLANGER_LEVEL, CHORUSFX_POSITION}, // TODO: FLANGER_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; static SettingsWidget chorusfx_mxr_flanger_widgets[] = { - {"MXR flanger speed", NULL, set_chorusfx_option, 0.0, 99.0, MXR_FLANGER_SPEED}, - {"MXR flanger width", NULL, set_chorusfx_option, 0.0, 99.0, MXR_FLANGER_WIDTH}, - {"MXR flanger regen", NULL, set_chorusfx_option, 0.0, 99.0, MXR_FLANGER_REGEN}, - {"MXR flanger manual", NULL, set_chorusfx_option, 0.0, 99.0, MXR_FLANGER_MANUAL}, + {"MXR flanger speed", 0.0, 99.0, MXR_FLANGER_SPEED, CHORUSFX_POSITION}, + {"MXR flanger width", 0.0, 99.0, MXR_FLANGER_WIDTH, CHORUSFX_POSITION}, + {"MXR flanger regen", 0.0, 99.0, MXR_FLANGER_REGEN, CHORUSFX_POSITION}, + {"MXR flanger manual", 0.0, 99.0, MXR_FLANGER_MANUAL, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_phaser_widgets[] = { - {"Phaser speed", NULL, set_chorusfx_option, 0.0, 99.0, PHASER_SPEED}, - {"Phaser depth", NULL, set_chorusfx_option, 0.0, 99.0, PHASER_DEPTH}, - {"Phaser regen", NULL, set_chorusfx_option, 0.0, 99.0, PHASER_REGEN}, - {"Phaser level", NULL, set_chorusfx_option, 0.0, 99.0, PHASER_LEVEL}, + {"Phaser speed", 0.0, 99.0, PHASER_SPEED, CHORUSFX_POSITION}, + {"Phaser depth", 0.0, 99.0, PHASER_DEPTH, CHORUSFX_POSITION}, + {"Phaser regen", 0.0, 99.0, PHASER_REGEN, CHORUSFX_POSITION}, + {"Phaser level", 0.0, 99.0, PHASER_LEVEL, CHORUSFX_POSITION}, // TODO: PHASER_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; static SettingsWidget chorusfx_vibrato_widgets[] = { - {"Vibrato speed", NULL, set_chorusfx_option, 0.0, 99.0, VIBRATO_SPEED}, - {"Vibrato depth", NULL, set_chorusfx_option, 0.0, 99.0, VIBRATO_DEPTH}, + {"Vibrato speed", 0.0, 99.0, VIBRATO_SPEED, CHORUSFX_POSITION}, + {"Vibrato depth", 0.0, 99.0, VIBRATO_DEPTH, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_rotary_widgets[] = { - {"Rotary speed", NULL, set_chorusfx_option, 0.0, 99.0, ROTARY_SPEED}, - {"Rotary intensity", NULL, set_chorusfx_option, 0.0, 99.0, ROTARY_INTENSITY}, - {"Rotary doppler", NULL, set_chorusfx_option, 0.0, 99.0, ROTARY_DOPPLER}, - {"Rotary crossover", NULL, set_chorusfx_option, 0.0, 99.0, ROTARY_CROSSOVER}, + {"Rotary speed", 0.0, 99.0, ROTARY_SPEED, CHORUSFX_POSITION}, + {"Rotary intensity", 0.0, 99.0, ROTARY_INTENSITY, CHORUSFX_POSITION}, + {"Rotary doppler", 0.0, 99.0, ROTARY_DOPPLER, CHORUSFX_POSITION}, + {"Rotary crossover", 0.0, 99.0, ROTARY_CROSSOVER, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_vibropan_widgets[] = { - {"Vibropan speed", NULL, set_chorusfx_option, 0.0, 99.0, VIBROPAN_SPEED}, - {"Vibropan depth", NULL, set_chorusfx_option, 0.0, 99.0, VIBROPAN_DEPTH}, - {"Vibropan vibra", NULL, set_chorusfx_option, 0.0, 99.0, VIBROPAN_VIBRA}, + {"Vibropan speed", 0.0, 99.0, VIBROPAN_SPEED, CHORUSFX_POSITION}, + {"Vibropan depth", 0.0, 99.0, VIBROPAN_DEPTH, CHORUSFX_POSITION}, + {"Vibropan vibra", 0.0, 99.0, VIBROPAN_VIBRA, CHORUSFX_POSITION}, // TODO: VIBROPAN_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; static SettingsWidget chorusfx_tremolo_widgets[] = { - {"Tremolo speed", NULL, set_chorusfx_option, 0.0, 99.0, TREMOLO_SPEED}, - {"Tremolo depth", NULL, set_chorusfx_option, 0.0, 99.0, TREMOLO_DEPTH}, + {"Tremolo speed", 0.0, 99.0, TREMOLO_SPEED, CHORUSFX_POSITION}, + {"Tremolo depth", 0.0, 99.0, TREMOLO_DEPTH, CHORUSFX_POSITION}, // TODO: TREMOLO_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; static SettingsWidget chorusfx_panner_widgets[] = { - {"Panner speed", NULL, set_chorusfx_option, 0.0, 99.0, PANNER_SPEED}, - {"Panner depth", NULL, set_chorusfx_option, 0.0, 99.0, PANNER_DEPTH}, + {"Panner speed", 0.0, 99.0, PANNER_SPEED, CHORUSFX_POSITION}, + {"Panner depth", 0.0, 99.0, PANNER_DEPTH, CHORUSFX_POSITION}, // TODO: PANNER_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; static SettingsWidget chorusfx_envelope_widgets[] = { - {"Envelope sensitivity", NULL, set_chorusfx_option, 0.0, 99.0, ENVELOPE_SENSITIVITY}, - {"Envelope range", NULL, set_chorusfx_option, 0.0, 99.0, ENVELOPE_RANGE}, + {"Envelope sensitivity", 0.0, 99.0, ENVELOPE_SENSITIVITY, CHORUSFX_POSITION}, + {"Envelope range", 0.0, 99.0, ENVELOPE_RANGE, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_autoya_widgets[] = { - {"AutoYa speed", NULL, set_chorusfx_option, 0.0, 99.0, AUTOYA_SPEED}, - {"AutoYa intensity", NULL, set_chorusfx_option, 0.0, 99.0, AUTOYA_INTENSITY}, - {"AutoYa range", NULL, set_chorusfx_option, 0.0, 49.0, AUTOYA_RANGE}, + {"AutoYa speed", 0.0, 99.0, AUTOYA_SPEED, CHORUSFX_POSITION}, + {"AutoYa intensity", 0.0, 99.0, AUTOYA_INTENSITY, CHORUSFX_POSITION}, + {"AutoYa range", 0.0, 49.0, AUTOYA_RANGE, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_yaya_widgets[] = { - {"YaYa pedal", NULL, set_chorusfx_option, 0.0, 99.0, YAYA_PEDAL}, - {"YaYa intensity", NULL, set_chorusfx_option, 0.0, 99.0, YAYA_INTENSITY}, - {"YaYa range", NULL, set_chorusfx_option, 0.0, 49.0, YAYA_RANGE}, + {"YaYa pedal", 0.0, 99.0, YAYA_PEDAL, CHORUSFX_POSITION}, + {"YaYa intensity", 0.0, 99.0, YAYA_INTENSITY, CHORUSFX_POSITION}, + {"YaYa range", 0.0, 49.0, YAYA_RANGE, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_step_filter_widgets[] = { - {"Step filter speed", NULL, set_chorusfx_option, 0.0, 99.0, STEP_FILTER_SPEED}, - {"Step filter intensity", NULL, set_chorusfx_option, 0.0, 99.0, STEP_FILTER_INTENSITY}, + {"Step filter speed", 0.0, 99.0, STEP_FILTER_SPEED, CHORUSFX_POSITION}, + {"Step filter intensity", 0.0, 99.0, STEP_FILTER_INTENSITY, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_whammy_widgets[] = { - {"Whammy pedal", NULL, set_chorusfx_option, 0.0, 99.0, WHAMMY_PEDAL}, - {"Whammy mix", NULL, set_chorusfx_option, 0.0, 99.0, WHAMMY_MIX}, + {"Whammy pedal", 0.0, 99.0, WHAMMY_PEDAL, CHORUSFX_POSITION}, + {"Whammy mix", 0.0, 99.0, WHAMMY_MIX, CHORUSFX_POSITION}, //TODO: WHAMMY_AMOUNT with valid options: // WHAMMY_OCT_UP, WHAMMY_2OCT_UP, WHAMMY_2ND_DN, WHAMMY_RV_2ND, // WHAMMY_4TH_DN, WHAMMY_OCT_DN, WHAMMY_2OCT_DN, WHAMMY_DIV_BMB, @@ -250,13 +250,13 @@ static SettingsWidget chorusfx_whammy_widgets[] = { static SettingsWidget chorusfx_pitch_shift_widgets[] = { // TODO: make this display propertly (display range -24 to 24) - {"Pitch amount", NULL, set_chorusfx_option, 0.0, 48.0, PITCH_AMOUNT}, - {"Pitch mix", NULL, set_chorusfx_option, 0.0, 99.0, PITCH_MIX}, + {"Pitch amount", 0.0, 48.0, PITCH_AMOUNT, CHORUSFX_POSITION}, + {"Pitch mix", 0.0, 99.0, PITCH_MIX, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_detune_widgets[] = { - {"Detune amount", NULL, set_chorusfx_option, 0.0, 48.0, DETUNE_AMOUNT}, - {"Detune level", NULL, set_chorusfx_option, 0.0, 99.0, DETUNE_LEVEL}, + {"Detune amount", 0.0, 48.0, DETUNE_AMOUNT, CHORUSFX_POSITION}, + {"Detune level", 0.0, 99.0, DETUNE_LEVEL, CHORUSFX_POSITION}, }; static SettingsWidget chorusfx_ips_widgets[] = { @@ -272,93 +272,93 @@ static SettingsWidget chorusfx_ips_widgets[] = { // TODO: IPS_SCALE with valid options: // IPS_MAJOR, IPS_MINOR, IPS_DORIA, IPS_MIXLYD, IPS_LYDIAN, IPS_HMINO - {"IPS level", NULL, set_chorusfx_option, 0.0, 99.0, IPS_LEVEL}, + {"IPS level", 0.0, 99.0, IPS_LEVEL, CHORUSFX_POSITION}, }; static SettingsWidget delay_analog_widgets[] = { // TODO: make this display propertly (10 msec to 5 sec) - {"Delay time", set_delay_time, NULL, 0.0, 139.0}, - {"Delay analog level", NULL, set_delay_option, 0.0, 99.0, ANALOG_LEVEL}, + {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, + {"Delay analog level", 0.0, 99.0, ANALOG_LEVEL, DELAY_POSITION}, // TODO: make last value display propertly - {"Delay analog repeats", NULL, set_delay_option, 0.0, 100.0, ANALOG_REPEATS}, + {"Delay analog repeats", 0.0, 100.0, ANALOG_REPEATS, DELAY_POSITION}, }; static SettingsWidget delay_digital_widgets[] = { // TODO: make this display propertly (10 msec to 5 sec) - {"Delay time", set_delay_time, NULL, 0.0, 139.0}, - {"Delay digital level", NULL, set_delay_option, 0.0, 99.0, DIGITAL_LEVEL}, + {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, + {"Delay digital level", 0.0, 99.0, DIGITAL_LEVEL, DELAY_POSITION}, // TODO: make last value display propertly - {"Delay digital repeats", NULL, set_delay_option, 0.0, 100.0, DIGITAL_REPEATS}, - {"Delay digital ducker thresh", NULL, set_delay_option, 0.0, 99.0, DIGITAL_DUCKER_THRESH}, - {"Delay digital ducker level", NULL, set_delay_option, 0.0, 99.0, DIGITAL_DUCKER_LEVEL}, + {"Delay digital repeats", 0.0, 100.0, DIGITAL_REPEATS, DELAY_POSITION}, + {"Delay digital ducker thresh", 0.0, 99.0, DIGITAL_DUCKER_THRESH, DELAY_POSITION}, + {"Delay digital ducker level", 0.0, 99.0, DIGITAL_DUCKER_LEVEL, DELAY_POSITION}, }; static SettingsWidget delay_modulated_widgets[] = { // TODO: make this display propertly (10 msec to 5 sec) - {"Delay time", set_delay_time, NULL, 0.0, 139.0}, - {"Delay modulated level", NULL, set_delay_option, 0.0, 99.0, MODULATED_LEVEL}, + {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, + {"Delay modulated level", 0.0, 99.0, MODULATED_LEVEL, DELAY_POSITION}, // TODO: make last value display propertly - {"Delay modulated repeats", NULL, set_delay_option, 0.0, 100.0, MODULATED_REPEATS}, - {"Delay modulated depth", NULL, set_delay_option, 0.0, 99.0, MODULATED_DEPTH}, + {"Delay modulated repeats", 0.0, 100.0, MODULATED_REPEATS, DELAY_POSITION}, + {"Delay modulated depth", 0.0, 99.0, MODULATED_DEPTH, DELAY_POSITION}, }; static SettingsWidget delay_pong_widgets[] = { // TODO: make this display propertly (10 msec to 5 sec) - {"Delay time", set_delay_time, NULL, 0.0, 139.0}, - {"Delay pong level", NULL, set_delay_option, 0.0, 99.0, PONG_LEVEL}, + {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, + {"Delay pong level", 0.0, 99.0, PONG_LEVEL, DELAY_POSITION}, // TODO: make last value display propertly - {"Delay pong repeats", NULL, set_delay_option, 0.0, 100.0, PONG_REPEATS}, - {"Delay pong ducker thresh", NULL, set_delay_option, 0.0, 99.0, PONG_DUCKER_THRESH}, - {"Delay pong ducker level", NULL, set_delay_option, 0.0, 99.0, PONG_DUCKER_LEVEL}, + {"Delay pong repeats", 0.0, 100.0, PONG_REPEATS, DELAY_POSITION}, + {"Delay pong ducker thresh", 0.0, 99.0, PONG_DUCKER_THRESH, DELAY_POSITION}, + {"Delay pong ducker level", 0.0, 99.0, PONG_DUCKER_LEVEL, DELAY_POSITION}, }; static SettingsWidget delay_tape_widgets[] = { // TODO: make this display propertly (10 msec to 5 sec) - {"Delay time", set_delay_time, NULL, 0.0, 139.0}, - {"Delay tape level", NULL, set_delay_option, 0.0, 99.0, TAPE_LEVEL}, + {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, + {"Delay tape level", 0.0, 99.0, TAPE_LEVEL, DELAY_POSITION}, // TODO: make last value display propertly - {"Delay tape repeats", NULL, set_delay_option, 0.0, 100.0, TAPE_REPEATS}, - {"Delay tape wow", NULL, set_delay_option, 0.0, 99.0, TAPE_WOW}, - {"Delay tape flutter", NULL, set_delay_option, 0.0, 99.0, TAPE_FLUTTER}, + {"Delay tape repeats", 0.0, 100.0, TAPE_REPEATS, DELAY_POSITION}, + {"Delay tape wow", 0.0, 99.0, TAPE_WOW, DELAY_POSITION}, + {"Delay tape flutter", 0.0, 99.0, TAPE_FLUTTER, DELAY_POSITION}, }; static SettingsWidget reverb_twin_widgets[] = { - {"Twin reverb", NULL, set_reverb_option, 0.0, 99.0, TWIN_REVERB}, + {"Twin reverb", 0.0, 99.0, TWIN_REVERB, REVERB_POSITION}, }; static SettingsWidget reverb_lex_ambience_widgets[] = { - {"Predelay", NULL, set_reverb_option, 0.0, 15.0, LEX_AMBIENCE_PREDELAY}, - {"Decay", NULL, set_reverb_option, 0.0, 99.0, LEX_AMBIENCE_DECAY}, - {"Liveliness", NULL, set_reverb_option, 0.0, 99.0, LEX_AMBIENCE_LIVELINESS}, - {"Level", NULL, set_reverb_option, 0.0, 99.0, LEX_AMBIENCE_LEVEL}, + {"Predelay", 0.0, 15.0, LEX_AMBIENCE_PREDELAY, REVERB_POSITION}, + {"Decay", 0.0, 99.0, LEX_AMBIENCE_DECAY, REVERB_POSITION}, + {"Liveliness", 0.0, 99.0, LEX_AMBIENCE_LIVELINESS, REVERB_POSITION}, + {"Level", 0.0, 99.0, LEX_AMBIENCE_LEVEL, REVERB_POSITION}, }; static SettingsWidget reverb_lex_studio_widgets[] = { - {"Predelay", NULL, set_reverb_option, 0.0, 15.0, LEX_STUDIO_PREDELAY}, - {"Decay", NULL, set_reverb_option, 0.0, 99.0, LEX_STUDIO_DECAY}, - {"Liveliness", NULL, set_reverb_option, 0.0, 99.0, LEX_STUDIO_LIVELINESS}, - {"Level", NULL, set_reverb_option, 0.0, 99.0, LEX_STUDIO_LEVEL}, + {"Predelay", 0.0, 15.0, LEX_STUDIO_PREDELAY, REVERB_POSITION}, + {"Decay", 0.0, 99.0, LEX_STUDIO_DECAY, REVERB_POSITION}, + {"Liveliness", 0.0, 99.0, LEX_STUDIO_LIVELINESS, REVERB_POSITION}, + {"Level", 0.0, 99.0, LEX_STUDIO_LEVEL, REVERB_POSITION}, }; static SettingsWidget reverb_lex_room_widgets[] = { - {"Predelay", NULL, set_reverb_option, 0.0, 15.0, LEX_ROOM_PREDELAY}, - {"Decay", NULL, set_reverb_option, 0.0, 99.0, LEX_ROOM_DECAY}, - {"Liveliness", NULL, set_reverb_option, 0.0, 99.0, LEX_ROOM_LIVELINESS}, - {"Level", NULL, set_reverb_option, 0.0, 99.0, LEX_ROOM_LEVEL}, + {"Predelay", 0.0, 15.0, LEX_ROOM_PREDELAY, REVERB_POSITION}, + {"Decay", 0.0, 99.0, LEX_ROOM_DECAY, REVERB_POSITION}, + {"Liveliness", 0.0, 99.0, LEX_ROOM_LIVELINESS, REVERB_POSITION}, + {"Level", 0.0, 99.0, LEX_ROOM_LEVEL, REVERB_POSITION}, }; static SettingsWidget reverb_lex_hall_widgets[] = { - {"Predelay", NULL, set_reverb_option, 0.0, 15.0, LEX_HALL_PREDELAY}, - {"Decay", NULL, set_reverb_option, 0.0, 99.0, LEX_HALL_DECAY}, - {"Liveliness", NULL, set_reverb_option, 0.0, 99.0, LEX_HALL_LIVELINESS}, - {"Level", NULL, set_reverb_option, 0.0, 99.0, LEX_HALL_LEVEL}, + {"Predelay", 0.0, 15.0, LEX_HALL_PREDELAY, REVERB_POSITION}, + {"Decay", 0.0, 99.0, LEX_HALL_DECAY, REVERB_POSITION}, + {"Liveliness", 0.0, 99.0, LEX_HALL_LIVELINESS, REVERB_POSITION}, + {"Level", 0.0, 99.0, LEX_HALL_LEVEL, REVERB_POSITION}, }; static SettingsWidget reverb_emt240_plate_widgets[] = { - {"Predelay", NULL, set_reverb_option, 0.0, 15.0, EMT240_PLATE_PREDELAY}, - {"Decay", NULL, set_reverb_option, 0.0, 99.0, EMT240_PLATE_DECAY}, - {"Liveliness", NULL, set_reverb_option, 0.0, 99.0, EMT240_PLATE_LIVELINESS}, - {"Level", NULL, set_reverb_option, 0.0, 99.0, EMT240_PLATE_LEVEL}, + {"Predelay", 0.0, 15.0, EMT240_PLATE_PREDELAY, REVERB_POSITION}, + {"Decay", 0.0, 99.0, EMT240_PLATE_DECAY, REVERB_POSITION}, + {"Liveliness", 0.0, 99.0, EMT240_PLATE_LIVELINESS, REVERB_POSITION}, + {"Level", 0.0, 99.0, EMT240_PLATE_LEVEL, REVERB_POSITION}, }; static WidgetContainer wah_container[] = { diff --git a/effects.h b/effects.h index 7fbb192..217ceac 100644 --- a/effects.h +++ b/effects.h @@ -18,11 +18,10 @@ typedef struct { char *label; - void (*callback)(int); - void (*callback_with_option)(guint32, int); gdouble min; gdouble max; - guint32 option; + guint option; + guint position; } SettingsWidget; typedef struct { diff --git a/gdigi.c b/gdigi.c index 01bd6e4..ab558cb 100644 --- a/gdigi.c +++ b/gdigi.c @@ -214,24 +214,6 @@ void set_option(guint id, guint position, guint value) } } -/* level = 0 to 99 */ -void set_wah_min(int level) -{ - set_option(WAH_MIN, WAH_POSITION_MIN_MAX, level); -} - -/* level = 0 to 99 */ -void set_wah_max(int level) -{ - set_option(WAH_MAX, WAH_POSITION_MIN_MAX, level); -} - -/* level = 0 to 12 */ -void set_wah_level(int level) -{ - set_option(WAH_LEVEL, WAH_POSITION, level); -} - void set_wah_type(int type) { set_option(WAH_TYPE, WAH_POSITION, type); @@ -242,30 +224,6 @@ void set_wah_on_off(gboolean val) set_option(WAH_ON_OFF, WAH_POSITION, (val == TRUE) ? 1 : 0); } -/* level = 0 to 99 */ -void set_comp_sustain(int level) -{ - set_option(COMP_SUSTAIN, COMP_POSITION, level); -} - -/* level = 0 to 99, available only in digi comp */ -void set_comp_tone(int level) -{ - set_option(COMP_TONE, COMP_POSITION, level); -} - -/* level = 0 to 99 */ -void set_comp_attack(int level) -{ - set_option(COMP_ATTACK, COMP_POSITION, level); -} - -/* level = 0 to 99 */ -void set_comp_level(int level) -{ - set_option(COMP_LEVEL, COMP_POSITION, level); -} - void set_comp_type(int type) { set_option(COMP_TYPE, COMP_POSITION, type); @@ -313,11 +271,6 @@ void set_dist_type(int type) set_option(DIST_TYPE, DIST_POSITION, type); } -void set_dist_option(guint32 option, int value) -{ - set_option(option, DIST_POSITION, value); -} - void set_dist_on_off(gboolean val) { set_option(DIST_ON_OFF, DIST_POSITION, (val == TRUE) ? 1 : 0); @@ -334,54 +287,6 @@ void set_eq_type(int type) set_option(EQ_TYPE, EQ_POSITION, type); } -/* x = 0 to 99 */ -void set_eq_gain(int x) -{ - set_option(AMP_GAIN, AMP_POSITION, x); -} - -/* x = 0 to 99 */ -void set_eq_level(int x) -{ - set_option(AMP_LEVEL, AMP_POSITION, x); -} - -/* x = 0x00 (-12dB) to 0x18 (12dB) */ -void set_eq_bass(int x) -{ - set_option(EQ_BASS, EQ_POSITION, x); -} - -/* x = 0x00 (-12dB) to 0x18 (12dB) */ -void set_eq_mid(int x) -{ - set_option(EQ_MID, EQ_POSITION, x); -} - -/* - x = 0 to 4700 (which transforms into 300-5000 Hz) - device itself will accept higher value, but X-Edit allows only 300-5000Hz -*/ -void set_eq_mid_hz(int x) -{ - set_option(EQ_MID_HZ, EQ_POSITION, x); -} - -/* x = 0x00 (-12dB) to 0x18 (12dB) */ -void set_eq_treble(int x) -{ - set_option(EQ_TREBLE, EQ_POSITION, x); -} - -/* - x = 0 to 7500 (which transforms into 500-8000 Hz) - device itself will accept higher value, but X-Edit allows only 500-8000Hz -*/ -void set_eq_treb_hz(int x) -{ - set_option(EQ_TREBLE_HZ, EQ_POSITION, x); -} - void set_eq_on_off(gboolean val) { set_option(EQ_ON_OFF, EQ_POSITION, (val == TRUE) ? 1 : 0); @@ -392,22 +297,11 @@ void set_noisegate_type(int type) set_option(NOISEGATE_TYPE, NOISEGATE_POSITION, type); } -/* x = 0 to 99 */ -void set_gate_option(guint32 option, int x) -{ - set_option(option, NOISEGATE_POSITION, x); -} - void set_noisegate_on_off(gboolean val) { set_option(NOISEGATE_ON_OFF, NOISEGATE_POSITION, (val == TRUE) ? 1 : 0); } -void set_chorusfx_option(guint32 option, int x) -{ - set_option(option, CHORUSFX_POSITION, x); -} - void set_chorusfx_type(int type) { set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, type); @@ -418,33 +312,16 @@ void set_chorusfx_on_off(gboolean val) set_option(CHORUSFX_ON_OFF, CHORUSFX_POSITION, (val == TRUE) ? 1 : 0); } -/* x = 0 to 139 */ -void set_delay_time(int x) -{ - set_option(DELAY_TIME, DELAY_POSITION, x); -} - void set_delay_type(int type) { set_option(DELAY_TYPE, DELAY_POSITION, type); } -void set_delay_option(guint32 option, int x) -{ - set_option(option, DELAY_POSITION, x); -} - void set_delay_on_off(gboolean val) { set_option(DELAY_ON_OFF, DELAY_POSITION, (val == TRUE) ? 1 : 0); } -/* x = 0 to 15 (predelay), otherwise 0 to 99 */ -void set_reverb_option(guint32 option, int x) -{ - set_option(option, REVERB_POSITION, x); -} - void set_reverb_type(int type) { set_option(REVERB_TYPE, REVERB_POSITION, type); diff --git a/gui.c b/gui.c index fb0a189..ed6492d 100644 --- a/gui.c +++ b/gui.c @@ -22,17 +22,12 @@ extern VBoxes vboxes[]; extern int n_vboxes; -void value_changed_cb(GtkSpinButton *spinbutton, void (*callback)(int)) +void value_changed_option_cb(GtkSpinButton *spinbutton, SettingsWidget *setting) { - int val = gtk_spin_button_get_value_as_int(spinbutton); - callback(val); -} + g_return_if_fail(setting != NULL); -void value_changed_option_cb(GtkSpinButton *spinbutton, void (*callback)(guint32, int)) -{ int val = gtk_spin_button_get_value_as_int(spinbutton); - guint32 option = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(spinbutton), "option_id")); - callback(option, val); + set_option(setting->option, setting->position, val); } void toggled_cb(GtkToggleButton *button, void (*callback)(gboolean)) @@ -53,13 +48,7 @@ GtkWidget *create_table(SettingsWidget *widgets, gint amt) label = gtk_label_new(widgets[x].label); adj = gtk_adjustment_new(0.0, widgets[x].min, widgets[x].max, 1.0, 1.0, 1.0); widget = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 1.0, 0); - if (widgets[x].callback) - g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(value_changed_cb), widgets[x].callback); - - if (widgets[x].callback_with_option) { - g_object_set_data(G_OBJECT(widget), "option_id", GINT_TO_POINTER(widgets[x].option)); - g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(value_changed_option_cb), widgets[x].callback_with_option); - } + g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(value_changed_option_cb), &widgets[x]); gtk_table_attach(GTK_TABLE(table), label, 0, 1, x, x+1, GTK_SHRINK, GTK_SHRINK, 2, 2); gtk_table_attach(GTK_TABLE(table), widget, 1, 2, x, x+1, GTK_SHRINK, GTK_SHRINK, 2, 2); diff --git a/tests.c b/tests.c index daba2c2..437662d 100644 --- a/tests.c +++ b/tests.c @@ -22,33 +22,33 @@ void test_wah() set_wah_type(WAH_TYPE_CRY); for (x=0; x<=99; x++) - set_wah_min(x); + set_option(WAH_MIN, WAH_POSITION_MIN_MAX, x); for (x=0; x<=99; x++) - set_wah_max(x); + set_option(WAH_MAX, WAH_POSITION_MIN_MAX, x); for (x=0; x<=12; x++) - set_wah_level(x); + set_option(WAH_LEVEL, WAH_POSITION, x); set_wah_type(WAH_TYPE_FULLRANGE); for (x=0; x<=99; x++) - set_wah_min(x); + set_option(WAH_MIN, WAH_POSITION_MIN_MAX, x); for (x=0; x<=99; x++) - set_wah_max(x); + set_option(WAH_MAX, WAH_POSITION_MIN_MAX, x); for (x=0; x<=12; x++) - set_wah_level(x); + set_option(WAH_LEVEL, WAH_POSITION, x); set_wah_type(WAH_TYPE_CLYDE); for (x=0; x<=99; x++) - set_wah_min(x); + set_option(WAH_MIN, WAH_POSITION_MIN_MAX, x); for (x=0; x<=99; x++) - set_wah_max(x); + set_option(WAH_MAX, WAH_POSITION_MIN_MAX, x); for (x=0; x<=12; x++) - set_wah_level(x); + set_option(WAH_LEVEL, WAH_POSITION, x); set_wah_on_off(TRUE); set_wah_on_off(FALSE); @@ -60,26 +60,26 @@ void test_compressor() set_comp_type(COMP_TYPE_DIGI); for (x=0; x<=99; x++) - set_comp_sustain(x); + set_option(COMP_SUSTAIN, COMP_POSITION, x); for (x=0; x<=99; x++) - set_comp_tone(x); + set_option(COMP_TONE, COMP_POSITION, x); for (x=0; x<=99; x++) - set_comp_attack(x); + set_option(COMP_ATTACK, COMP_POSITION, x); for (x=0; x<=99; x++) - set_comp_level(x); + set_option(COMP_LEVEL, COMP_POSITION, x); set_comp_type(COMP_TYPE_CS); for (x=0; x<=99; x++) - set_comp_sustain(x); + set_option(COMP_SUSTAIN, COMP_POSITION, x); for (x=0; x<=99; x++) - set_comp_attack(x); + set_option(COMP_ATTACK, COMP_POSITION, x); for (x=0; x<=99; x++) - set_comp_level(x); + set_option(COMP_LEVEL, COMP_POSITION, x); set_comp_on_off(TRUE); set_comp_on_off(FALSE); @@ -91,111 +91,111 @@ void test_dist() set_dist_type(DIST_TYPE_SCREAMER); for (x=0; x<=99; x++) - set_dist_option(DIST_SCREAMER_DRIVE, x); + set_option(DIST_SCREAMER_DRIVE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_SCREAMER_TONE, x); + set_option(DIST_SCREAMER_TONE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_SCREAMER_LVL, x); + set_option(DIST_SCREAMER_LVL, DIST_POSITION, x); set_dist_type(DIST_TYPE_808); for (x=0; x<=99; x++) - set_dist_option(DIST_808_OVERDRIVE, x); + set_option(DIST_808_OVERDRIVE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_808_TONE, x); + set_option(DIST_808_TONE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_808_LVL, x); + set_option(DIST_808_LVL, DIST_POSITION, x); set_dist_type(DIST_TYPE_GUYOD); for (x=0; x<=99; x++) - set_dist_option(DIST_GUYOD_DRIVE, x); + set_option(DIST_GUYOD_DRIVE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_GUYOD_LVL, x); + set_option(DIST_GUYOD_LVL, DIST_POSITION, x); set_dist_type(DIST_TYPE_DOD250); for (x=0; x<=99; x++) - set_dist_option(DIST_DOD250_GAIN, x); + set_option(DIST_DOD250_GAIN, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_DOD250_LVL, x); + set_option(DIST_DOD250_LVL, DIST_POSITION, x); set_dist_type(DIST_TYPE_RODENT); for (x=0; x<=99; x++) - set_dist_option(DIST_RODENT_DIST, x); + set_option(DIST_RODENT_DIST, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_RODENT_FILTER, x); + set_option(DIST_RODENT_FILTER, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_RODENT_LVL, x); + set_option(DIST_RODENT_LVL, DIST_POSITION, x); set_dist_type(DIST_TYPE_MX); for (x=0; x<=99; x++) - set_dist_option(DIST_MX_DIST, x); + set_option(DIST_MX_DIST, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_MX_OUTPUT, x); + set_option(DIST_MX_OUTPUT, DIST_POSITION, x); set_dist_type(DIST_TYPE_DS); for (x=0; x<=99; x++) - set_dist_option(DIST_DS_GAIN, x); + set_option(DIST_DS_GAIN, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_DS_TONE, x); + set_option(DIST_DS_TONE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_DS_LVL, x); + set_option(DIST_DS_LVL, DIST_POSITION, x); set_dist_type(DIST_TYPE_GRUNGE); for (x=0; x<=99; x++) - set_dist_option(DIST_GRUNGE_GRUNGE, x); + set_option(DIST_GRUNGE_GRUNGE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_GRUNGE_FACE, x); + set_option(DIST_GRUNGE_FACE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_GRUNGE_LOUD, x); + set_option(DIST_GRUNGE_LOUD, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_GRUNGE_BUTT, x); + set_option(DIST_GRUNGE_BUTT, DIST_POSITION, x); set_dist_type(DIST_TYPE_ZONE); for (x=0; x<=99; x++) - set_dist_option(DIST_ZONE_GAIN, x); + set_option(DIST_ZONE_GAIN, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_ZONE_LOW, x); + set_option(DIST_ZONE_LOW, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_ZONE_MID_LVL, x); + set_option(DIST_ZONE_MID_LVL, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_ZONE_MID_FREQ, x); + set_option(DIST_ZONE_MID_FREQ, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_ZONE_HIGH, x); + set_option(DIST_ZONE_HIGH, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_ZONE_LEVEL, x); + set_option(DIST_ZONE_LEVEL, DIST_POSITION, x); set_dist_type(DIST_TYPE_DEATH); for (x=0; x<=99; x++) - set_dist_option(DIST_DEATH_LOW, x); + set_option(DIST_DEATH_LOW, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_DEATH_MID, x); + set_option(DIST_DEATH_MID, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_DEATH_HIGH, x); + set_option(DIST_DEATH_HIGH, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_DEATH_LVL, x); + set_option(DIST_DEATH_LVL, DIST_POSITION, x); set_dist_type(DIST_TYPE_GONK); for (x=0; x<=99; x++) - set_dist_option(DIST_GONK_GONK, x); + set_option(DIST_GONK_GONK, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_GONK_SMEAR, x); + set_option(DIST_GONK_SMEAR, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_GONK_SUCK, x); + set_option(DIST_GONK_SUCK, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_GONK_HEAVE, x); + set_option(DIST_GONK_HEAVE, DIST_POSITION, x); set_dist_type(DIST_TYPE_FUZZY); for (x=0; x<=99; x++) - set_dist_option(DIST_FUZZY_FUZZ, x); + set_option(DIST_FUZZY_FUZZ, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_FUZZY_VOLUME, x); + set_option(DIST_FUZZY_VOLUME, DIST_POSITION, x); set_dist_type(DIST_TYPE_MP); for (x=0; x<=99; x++) - set_dist_option(DIST_MP_SUSTAIN, x); + set_option(DIST_MP_SUSTAIN, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_MP_TONE, x); + set_option(DIST_MP_TONE, DIST_POSITION, x); for (x=0; x<=99; x++) - set_dist_option(DIST_MP_VOLUME, x); + set_option(DIST_MP_VOLUME, DIST_POSITION, x); set_dist_on_off(TRUE); set_dist_on_off(FALSE); @@ -234,20 +234,20 @@ void test_eq() set_eq_type(EQ_TYPE_WARM); for (x=0; x<=99; x++) - set_eq_gain(x); + set_option(AMP_GAIN, AMP_POSITION, x); for (x=0; x<=99; x++) - set_eq_level(x); + set_option(AMP_LEVEL, AMP_POSITION, x); for (x=0; x<=0x18; x++) - set_eq_bass(x); + set_option(EQ_BASS, EQ_POSITION, x); for (x=0; x<=0x18; x++) - set_eq_mid(x); + set_option(EQ_MID, EQ_POSITION, x); for (x=0; x<=4700; x++) - set_eq_mid_hz(x); + set_option(EQ_MID_HZ, EQ_POSITION, x); for (x=0; x<=0x18; x++) - set_eq_treble(x); + set_option(EQ_TREBLE, EQ_POSITION, x); for (x=0; x<=7500; x++) - set_eq_treb_hz(x); + set_option(EQ_TREBLE_HZ, EQ_POSITION, x); set_eq_on_off(TRUE); set_eq_on_off(FALSE); @@ -259,23 +259,23 @@ void test_noisegate() set_noisegate_type(NOISEGATE_GATE); for (x=0; x<=99; x++) - set_gate_option(NOISEGATE_GATE_TRESHOLD, x); + set_option(NOISEGATE_GATE_TRESHOLD, NOISEGATE_POSITION, x); for (x=0; x<=99; x++) - set_gate_option(NOISEGATE_ATTACK, x); + set_option(NOISEGATE_ATTACK, NOISEGATE_POSITION, x); for (x=0; x<=99; x++) - set_gate_option(NOISEGATE_RELEASE, x); + set_option(NOISEGATE_RELEASE, NOISEGATE_POSITION, x); for (x=0; x<=99; x++) - set_gate_option(NOISEGATE_ATTN, x); + set_option(NOISEGATE_ATTN, NOISEGATE_POSITION, x); set_noisegate_type(NOISEGATE_SWELL); for (x=0; x<=99; x++) - set_gate_option(NOISEGATE_SWELL_SENS, x); + set_option(NOISEGATE_SWELL_SENS, NOISEGATE_POSITION, x); for (x=0; x<=99; x++) - set_gate_option(NOISEGATE_ATTACK, x); + set_option(NOISEGATE_ATTACK, NOISEGATE_POSITION, x); for (x=0; x<=99; x++) - set_gate_option(NOISEGATE_RELEASE, x); + set_option(NOISEGATE_RELEASE, NOISEGATE_POSITION, x); for (x=0; x<=99; x++) - set_gate_option(NOISEGATE_ATTN, x); + set_option(NOISEGATE_ATTN, NOISEGATE_POSITION, x); set_noisegate_on_off(TRUE); set_noisegate_on_off(FALSE); @@ -287,210 +287,210 @@ void test_chorusfx() set_chorusfx_type(CHORUS_TYPE_CE); for (x=0; x<=99; x++) - set_chorusfx_option(CE_CHORUS_SPEED, x); + set_option(CE_CHORUS_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(CE_CHORUS_DEPTH, x); + set_option(CE_CHORUS_DEPTH, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_DUAL); for (x=0; x<=99; x++) - set_chorusfx_option(DUAL_CHORUS_SPEED, x); + set_option(DUAL_CHORUS_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(DUAL_CHORUS_DEPTH, x); + set_option(DUAL_CHORUS_DEPTH, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(DUAL_CHORUS_LEVEL, x); - set_chorusfx_option(DUAL_CHORUS_WAVE, WAVE_TRI); - set_chorusfx_option(DUAL_CHORUS_WAVE, WAVE_SINE); - set_chorusfx_option(DUAL_CHORUS_WAVE, WAVE_SQUARE); + set_option(DUAL_CHORUS_LEVEL, CHORUSFX_POSITION, x); + set_option(DUAL_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_TRI); + set_option(DUAL_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_SINE); + set_option(DUAL_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_SQUARE); set_chorusfx_type(CHORUS_TYPE_MULTI); for (x=0; x<=99; x++) - set_chorusfx_option(MULTI_CHORUS_SPEED, x); + set_option(MULTI_CHORUS_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(MULTI_CHORUS_DEPTH, x); + set_option(MULTI_CHORUS_DEPTH, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(MULTI_CHORUS_LEVEL, x); - set_chorusfx_option(MULTI_CHORUS_WAVE, WAVE_TRI); - set_chorusfx_option(MULTI_CHORUS_WAVE, WAVE_SINE); - set_chorusfx_option(MULTI_CHORUS_WAVE, WAVE_SQUARE); + set_option(MULTI_CHORUS_LEVEL, CHORUSFX_POSITION, x); + set_option(MULTI_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_TRI); + set_option(MULTI_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_SINE); + set_option(MULTI_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_SQUARE); set_chorusfx_type(CHORUS_TYPE_FLANGER); for (x=0; x<=99; x++) - set_chorusfx_option(FLANGER_SPEED, x); + set_option(FLANGER_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(FLANGER_DEPTH, x); + set_option(FLANGER_DEPTH, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(FLANGER_REGEN, x); + set_option(FLANGER_REGEN, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(FLANGER_LEVEL, x); - set_chorusfx_option(FLANGER_WAVE, WAVE_TRI); - set_chorusfx_option(FLANGER_WAVE, WAVE_SINE); - set_chorusfx_option(FLANGER_WAVE, WAVE_SQUARE); + set_option(FLANGER_LEVEL, CHORUSFX_POSITION, x); + set_option(FLANGER_WAVE, CHORUSFX_POSITION, WAVE_TRI); + set_option(FLANGER_WAVE, CHORUSFX_POSITION, WAVE_SINE); + set_option(FLANGER_WAVE, CHORUSFX_POSITION, WAVE_SQUARE); set_chorusfx_type(CHORUS_TYPE_MXR_FLANGER); for (x=0; x<=99; x++) - set_chorusfx_option(MXR_FLANGER_SPEED, x); + set_option(MXR_FLANGER_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(MXR_FLANGER_WIDTH, x); + set_option(MXR_FLANGER_WIDTH, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(MXR_FLANGER_REGEN, x); + set_option(MXR_FLANGER_REGEN, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(MXR_FLANGER_MANUAL, x); + set_option(MXR_FLANGER_MANUAL, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_PHASER); for (x=0; x<=99; x++) - set_chorusfx_option(PHASER_SPEED, x); + set_option(PHASER_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(PHASER_DEPTH, x); + set_option(PHASER_DEPTH, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(PHASER_REGEN, x); + set_option(PHASER_REGEN, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(PHASER_LEVEL, x); - set_chorusfx_option(PHASER_WAVE, WAVE_TRI); - set_chorusfx_option(PHASER_WAVE, WAVE_SINE); - set_chorusfx_option(PHASER_WAVE, WAVE_SQUARE); + set_option(PHASER_LEVEL, CHORUSFX_POSITION, x); + set_option(PHASER_WAVE, CHORUSFX_POSITION, WAVE_TRI); + set_option(PHASER_WAVE, CHORUSFX_POSITION, WAVE_SINE); + set_option(PHASER_WAVE, CHORUSFX_POSITION, WAVE_SQUARE); set_chorusfx_type(CHORUS_TYPE_VIBRATO); for (x=0; x<=99; x++) - set_chorusfx_option(VIBRATO_SPEED, x); + set_option(VIBRATO_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(VIBRATO_DEPTH, x); + set_option(VIBRATO_DEPTH, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_ROTARY); for (x=0; x<=99; x++) - set_chorusfx_option(ROTARY_SPEED, x); + set_option(ROTARY_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(ROTARY_INTENSITY, x); + set_option(ROTARY_INTENSITY, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(ROTARY_DOPPLER, x); + set_option(ROTARY_DOPPLER, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(ROTARY_CROSSOVER, x); + set_option(ROTARY_CROSSOVER, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_VIBROPAN); for (x=0; x<=99; x++) - set_chorusfx_option(VIBROPAN_SPEED, x); + set_option(VIBROPAN_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(VIBROPAN_DEPTH, x); + set_option(VIBROPAN_DEPTH, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(VIBROPAN_VIBRA, x); - set_chorusfx_option(VIBROPAN_WAVE, WAVE_TRI); - set_chorusfx_option(VIBROPAN_WAVE, WAVE_SINE); - set_chorusfx_option(VIBROPAN_WAVE, WAVE_SQUARE); + set_option(VIBROPAN_VIBRA, CHORUSFX_POSITION, x); + set_option(VIBROPAN_WAVE, CHORUSFX_POSITION, WAVE_TRI); + set_option(VIBROPAN_WAVE, CHORUSFX_POSITION, WAVE_SINE); + set_option(VIBROPAN_WAVE, CHORUSFX_POSITION, WAVE_SQUARE); set_chorusfx_type(CHORUS_TYPE_TREMOLO); for (x=0; x<=99; x++) - set_chorusfx_option(TREMOLO_SPEED, x); + set_option(TREMOLO_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(TREMOLO_DEPTH, x); - set_chorusfx_option(TREMOLO_WAVE, WAVE_TRI); - set_chorusfx_option(TREMOLO_WAVE, WAVE_SINE); - set_chorusfx_option(TREMOLO_WAVE, WAVE_SQUARE); + set_option(TREMOLO_DEPTH, CHORUSFX_POSITION, x); + set_option(TREMOLO_WAVE, CHORUSFX_POSITION, WAVE_TRI); + set_option(TREMOLO_WAVE, CHORUSFX_POSITION, WAVE_SINE); + set_option(TREMOLO_WAVE, CHORUSFX_POSITION, WAVE_SQUARE); set_chorusfx_type(CHORUS_TYPE_PANNER); for (x=0; x<=99; x++) - set_chorusfx_option(PANNER_SPEED, x); + set_option(PANNER_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(PANNER_DEPTH, x); - set_chorusfx_option(PANNER_WAVE, WAVE_TRI); - set_chorusfx_option(PANNER_WAVE, WAVE_SINE); - set_chorusfx_option(PANNER_WAVE, WAVE_SQUARE); + set_option(PANNER_DEPTH, CHORUSFX_POSITION, x); + set_option(PANNER_WAVE, CHORUSFX_POSITION, WAVE_TRI); + set_option(PANNER_WAVE, CHORUSFX_POSITION, WAVE_SINE); + set_option(PANNER_WAVE, CHORUSFX_POSITION, WAVE_SQUARE); set_chorusfx_type(CHORUS_TYPE_ENVELOPE); for (x=0; x<=99; x++) - set_chorusfx_option(ENVELOPE_SENSITIVITY, x); + set_option(ENVELOPE_SENSITIVITY, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(ENVELOPE_RANGE, x); + set_option(ENVELOPE_RANGE, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_AUTOYA); for (x=0; x<=99; x++) - set_chorusfx_option(AUTOYA_SPEED, x); + set_option(AUTOYA_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(AUTOYA_INTENSITY, x); + set_option(AUTOYA_INTENSITY, CHORUSFX_POSITION, x); for (x=0; x<=0x31; x++) - set_chorusfx_option(AUTOYA_RANGE, x); + set_option(AUTOYA_RANGE, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_YAYA); for (x=0; x<=99; x++) - set_chorusfx_option(YAYA_PEDAL, x); + set_option(YAYA_PEDAL, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(YAYA_INTENSITY, x); + set_option(YAYA_INTENSITY, CHORUSFX_POSITION, x); for (x=0; x<=0x31; x++) - set_chorusfx_option(YAYA_RANGE, x); + set_option(YAYA_RANGE, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_STEP_FILTER); for (x=0; x<=99; x++) - set_chorusfx_option(STEP_FILTER_SPEED, x); + set_option(STEP_FILTER_SPEED, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(STEP_FILTER_INTENSITY, x); + set_option(STEP_FILTER_INTENSITY, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_WHAMMY); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_OCT_UP); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_2OCT_UP); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_2ND_DN); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_RV_2ND); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_4TH_DN); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_OCT_DN); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_2OCT_DN); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_DIV_BMB); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_M3_MA); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_2ND_MA3); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_3RD_4TH); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_4TH_5TH); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_5TH_OCT); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_HOCT_UP); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_HOCT_DN); - set_chorusfx_option(WHAMMY_AMOUNT, WHAMMY_OCT_UD); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_OCT_UP); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_2OCT_UP); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_2ND_DN); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_RV_2ND); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_4TH_DN); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_OCT_DN); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_2OCT_DN); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_DIV_BMB); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_M3_MA); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_2ND_MA3); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_3RD_4TH); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_4TH_5TH); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_5TH_OCT); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_HOCT_UP); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_HOCT_DN); + set_option(WHAMMY_AMOUNT, CHORUSFX_POSITION, WHAMMY_OCT_UD); for (x=0; x<=99; x++) - set_chorusfx_option(WHAMMY_PEDAL, x); + set_option(WHAMMY_PEDAL, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(WHAMMY_MIX, x); + set_option(WHAMMY_MIX, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_PITCH_SHIFT); for (x=0; x<=0x30; x++) - set_chorusfx_option(PITCH_AMOUNT, x); + set_option(PITCH_AMOUNT, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(PITCH_MIX, x); + set_option(PITCH_MIX, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_DETUNE); for (x=0; x<=0x30; x++) - set_chorusfx_option(DETUNE_AMOUNT, x); + set_option(DETUNE_AMOUNT, CHORUSFX_POSITION, x); for (x=0; x<=99; x++) - set_chorusfx_option(DETUNE_LEVEL, x); + set_option(DETUNE_LEVEL, CHORUSFX_POSITION, x); set_chorusfx_type(CHORUS_TYPE_IPS); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_OCT_D); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_7TH_DN); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_6TH_DN); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_5TH_DN); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_4TH_DN); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_3RD_DN); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_2ND_DN); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_2ND_UP); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_3RD_UP); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_4TH_UP); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_5TH_UP); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_6TH_UP); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_7TH_UP); - set_chorusfx_option(IPS_SHIFT_AMOUNT, IPS_OCT_U); - set_chorusfx_option(IPS_KEY, IPS_E); - set_chorusfx_option(IPS_KEY, IPS_F); - set_chorusfx_option(IPS_KEY, IPS_GB); - set_chorusfx_option(IPS_KEY, IPS_G); - set_chorusfx_option(IPS_KEY, IPS_AB); - set_chorusfx_option(IPS_KEY, IPS_A); - set_chorusfx_option(IPS_KEY, IPS_BB); - set_chorusfx_option(IPS_KEY, IPS_B); - set_chorusfx_option(IPS_KEY, IPS_C); - set_chorusfx_option(IPS_KEY, IPS_DD); - set_chorusfx_option(IPS_KEY, IPS_D); - set_chorusfx_option(IPS_KEY, IPS_EB); - set_chorusfx_option(IPS_SCALE, IPS_MAJOR); - set_chorusfx_option(IPS_SCALE, IPS_MINOR); - set_chorusfx_option(IPS_SCALE, IPS_DORIA); - set_chorusfx_option(IPS_SCALE, IPS_MIXLYD); - set_chorusfx_option(IPS_SCALE, IPS_LYDIAN); - set_chorusfx_option(IPS_SCALE, IPS_HMINO); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_OCT_D); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_7TH_DN); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_6TH_DN); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_5TH_DN); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_4TH_DN); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_3RD_DN); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_2ND_DN); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_2ND_UP); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_3RD_UP); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_4TH_UP); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_5TH_UP); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_6TH_UP); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_7TH_UP); + set_option(IPS_SHIFT_AMOUNT, CHORUSFX_POSITION, IPS_OCT_U); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_E); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_F); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_GB); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_G); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_AB); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_A); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_BB); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_B); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_C); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_DD); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_D); + set_option(IPS_KEY, CHORUSFX_POSITION, IPS_EB); + set_option(IPS_SCALE, CHORUSFX_POSITION, IPS_MAJOR); + set_option(IPS_SCALE, CHORUSFX_POSITION, IPS_MINOR); + set_option(IPS_SCALE, CHORUSFX_POSITION, IPS_DORIA); + set_option(IPS_SCALE, CHORUSFX_POSITION, IPS_MIXLYD); + set_option(IPS_SCALE, CHORUSFX_POSITION, IPS_LYDIAN); + set_option(IPS_SCALE, CHORUSFX_POSITION, IPS_HMINO); for (x=0; x<=99; x++) - set_chorusfx_option(IPS_LEVEL, x); + set_option(IPS_LEVEL, CHORUSFX_POSITION, x); set_chorusfx_on_off(TRUE); set_chorusfx_on_off(FALSE); @@ -502,57 +502,57 @@ void test_delay() set_delay_type(DELAY_TYPE_ANALOG); for (x=0; x<=139; x++) - set_delay_time(x); + set_option(DELAY_TIME, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(ANALOG_LEVEL, x); + set_option(ANALOG_LEVEL, DELAY_POSITION, x); for (x=0; x<=100; x++) - set_delay_option(ANALOG_REPEATS, x); + set_option(ANALOG_REPEATS, DELAY_POSITION, x); set_delay_type(DELAY_TYPE_DIGITAL); for (x=0; x<=139; x++) - set_delay_time(x); + set_option(DELAY_TIME, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(DIGITAL_LEVEL, x); + set_option(DIGITAL_LEVEL, DELAY_POSITION, x); for (x=0; x<=100; x++) - set_delay_option(DIGITAL_REPEATS, x); + set_option(DIGITAL_REPEATS, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(DIGITAL_DUCKER_THRESH, x); + set_option(DIGITAL_DUCKER_THRESH, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(DIGITAL_DUCKER_LEVEL, x); + set_option(DIGITAL_DUCKER_LEVEL, DELAY_POSITION, x); set_delay_type(DELAY_TYPE_MODULATED); for (x=0; x<=139; x++) - set_delay_time(x); + set_option(DELAY_TIME, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(MODULATED_LEVEL, x); + set_option(MODULATED_LEVEL, DELAY_POSITION, x); for (x=0; x<=100; x++) - set_delay_option(MODULATED_REPEATS, x); + set_option(MODULATED_REPEATS, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(MODULATED_DEPTH, x); + set_option(MODULATED_DEPTH, DELAY_POSITION, x); set_delay_type(DELAY_TYPE_PONG); for (x=0; x<=139; x++) - set_delay_time(x); + set_option(DELAY_TIME, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(PONG_LEVEL, x); + set_option(PONG_LEVEL, DELAY_POSITION, x); for (x=0; x<=100; x++) - set_delay_option(PONG_REPEATS, x); + set_option(PONG_REPEATS, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(PONG_DUCKER_THRESH, x); + set_option(PONG_DUCKER_THRESH, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(PONG_DUCKER_LEVEL, x); + set_option(PONG_DUCKER_LEVEL, DELAY_POSITION, x); set_delay_type(DELAY_TYPE_TAPE); for (x=0; x<=139; x++) - set_delay_time(x); + set_option(DELAY_TIME, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(TAPE_LEVEL, x); + set_option(TAPE_LEVEL, DELAY_POSITION, x); for (x=0; x<=100; x++) - set_delay_option(TAPE_REPEATS, x); + set_option(TAPE_REPEATS, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(TAPE_WOW, x); + set_option(TAPE_WOW, DELAY_POSITION, x); for (x=0; x<=99; x++) - set_delay_option(TAPE_FLUTTER, x); + set_option(TAPE_FLUTTER, DELAY_POSITION, x); set_delay_on_off(TRUE); set_delay_on_off(FALSE); @@ -564,57 +564,57 @@ void test_reverb() set_reverb_type(REVERB_TYPE_TWIN); for (x=0; x<=99; x++) - set_reverb_option(TWIN_REVERB, x); + set_option(TWIN_REVERB, REVERB_POSITION, x); set_reverb_type(REVERB_TYPE_LEX_AMBIENCE); for (x=0; x<=15; x++) - set_reverb_option(LEX_AMBIENCE_PREDELAY, x); + set_option(LEX_AMBIENCE_PREDELAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_AMBIENCE_DECAY, x); + set_option(LEX_AMBIENCE_DECAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_AMBIENCE_LIVELINESS, x); + set_option(LEX_AMBIENCE_LIVELINESS, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_AMBIENCE_LEVEL, x); + set_option(LEX_AMBIENCE_LEVEL, REVERB_POSITION, x); set_reverb_type(REVERB_TYPE_LEX_STUDIO); for (x=0; x<=15; x++) - set_reverb_option(LEX_STUDIO_PREDELAY, x); + set_option(LEX_STUDIO_PREDELAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_STUDIO_DECAY, x); + set_option(LEX_STUDIO_DECAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_STUDIO_LIVELINESS, x); + set_option(LEX_STUDIO_LIVELINESS, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_STUDIO_LEVEL, x); + set_option(LEX_STUDIO_LEVEL, REVERB_POSITION, x); set_reverb_type(REVERB_TYPE_LEX_ROOM); for (x=0; x<=15; x++) - set_reverb_option(LEX_ROOM_PREDELAY, x); + set_option(LEX_ROOM_PREDELAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_ROOM_DECAY, x); + set_option(LEX_ROOM_DECAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_ROOM_LIVELINESS, x); + set_option(LEX_ROOM_LIVELINESS, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_ROOM_LEVEL, x); + set_option(LEX_ROOM_LEVEL, REVERB_POSITION, x); set_reverb_type(REVERB_TYPE_LEX_HALL); for (x=0; x<=15; x++) - set_reverb_option(LEX_HALL_PREDELAY, x); + set_option(LEX_HALL_PREDELAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_HALL_DECAY, x); + set_option(LEX_HALL_DECAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_HALL_LIVELINESS, x); + set_option(LEX_HALL_LIVELINESS, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(LEX_HALL_LEVEL, x); + set_option(LEX_HALL_LEVEL, REVERB_POSITION, x); set_reverb_type(REVERB_TYPE_EMT240_PLATE); for (x=0; x<=15; x++) - set_reverb_option(EMT240_PLATE_PREDELAY, x); + set_option(EMT240_PLATE_PREDELAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(EMT240_PLATE_DECAY, x); + set_option(EMT240_PLATE_DECAY, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(EMT240_PLATE_LIVELINESS, x); + set_option(EMT240_PLATE_LIVELINESS, REVERB_POSITION, x); for (x=0; x<=99; x++) - set_reverb_option(EMT240_PLATE_LEVEL, x); + set_option(EMT240_PLATE_LEVEL, REVERB_POSITION, x); set_reverb_on_off(TRUE); set_reverb_on_off(FALSE);