From 95f4ad698a24039bee323137f4d7917bfd429138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mo=C5=84?= Date: Wed, 25 Feb 2009 22:19:01 +0100 Subject: [PATCH] renames, some comments, no functional changes --- effects.c | 274 +++++++++++++++++++++++++++--------------------------- effects.h | 45 +++++---- gui.c | 54 +++++------ 3 files changed, 186 insertions(+), 187 deletions(-) diff --git a/effects.c b/effects.c index 8ec944e..d8d9bb5 100644 --- a/effects.c +++ b/effects.c @@ -17,72 +17,72 @@ #include "gdigi.h" #include "effects.h" -static SettingsWidget wah_widgets[] = { +static EffectSettings wah_settings[] = { {"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[] = { +static EffectSettings comp_digi_settings[] = { {"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[] = { +static EffectSettings comp_cs_settings[] = { {"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[] = { +static EffectSettings dist_screamer_settings[] = { {"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[] = { +static EffectSettings dist_808_settings[] = { {"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[] = { +static EffectSettings dist_guyod_settings[] = { {"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[] = { +static EffectSettings dist_dod250_settings[] = { {"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[] = { +static EffectSettings dist_rodent_settings[] = { {"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[] = { +static EffectSettings dist_mx_settings[] = { {"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[] = { +static EffectSettings dist_ds_settings[] = { {"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[] = { +static EffectSettings dist_grunge_settings[] = { {"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[] = { +static EffectSettings dist_zone_settings[] = { {"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}, @@ -91,32 +91,32 @@ static SettingsWidget dist_zone_widgets[] = { {"Zone level", 0.0, 99.0, DIST_ZONE_LEVEL, DIST_POSITION}, }; -static SettingsWidget dist_death_widgets[] = { +static EffectSettings dist_death_settings[] = { {"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[] = { +static EffectSettings dist_gonk_settings[] = { {"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[] = { +static EffectSettings dist_fuzzy_settings[] = { {"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[] = { +static EffectSettings dist_mp_settings[] = { {"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[] = { +static EffectSettings eq_settings[] = { {"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) @@ -129,40 +129,40 @@ static SettingsWidget eq_widgets[] = { {"EQ treb Hz", 0.0, 7500.0, EQ_TREBLE_HZ, EQ_POSITION}, }; -static SettingsWidget noisegate_gate_widgets[] = { +static EffectSettings noisegate_gate_settings[] = { {"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[] = { +static EffectSettings noisegate_swell_settings[] = { {"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[] = { +static EffectSettings chorusfx_ce_settings[] = { {"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[] = { +static EffectSettings chorusfx_dual_settings[] = { {"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[] = { +static EffectSettings chorusfx_multi_settings[] = { {"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[] = { +static EffectSettings chorusfx_flanger_settings[] = { {"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}, @@ -170,14 +170,14 @@ static SettingsWidget chorusfx_flanger_widgets[] = { // TODO: FLANGER_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; -static SettingsWidget chorusfx_mxr_flanger_widgets[] = { +static EffectSettings chorusfx_mxr_flanger_settings[] = { {"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[] = { +static EffectSettings chorusfx_phaser_settings[] = { {"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}, @@ -185,60 +185,60 @@ static SettingsWidget chorusfx_phaser_widgets[] = { // TODO: PHASER_WAVE with valid options WAVE_TRI, WAVE_SINE, WAVE_SQUARE }; -static SettingsWidget chorusfx_vibrato_widgets[] = { +static EffectSettings chorusfx_vibrato_settings[] = { {"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[] = { +static EffectSettings chorusfx_rotary_settings[] = { {"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[] = { +static EffectSettings chorusfx_vibropan_settings[] = { {"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[] = { +static EffectSettings chorusfx_tremolo_settings[] = { {"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[] = { +static EffectSettings chorusfx_panner_settings[] = { {"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[] = { +static EffectSettings chorusfx_envelope_settings[] = { {"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[] = { +static EffectSettings chorusfx_autoya_settings[] = { {"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[] = { +static EffectSettings chorusfx_yaya_settings[] = { {"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[] = { +static EffectSettings chorusfx_step_filter_settings[] = { {"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[] = { +static EffectSettings chorusfx_whammy_settings[] = { {"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: @@ -248,18 +248,18 @@ static SettingsWidget chorusfx_whammy_widgets[] = { // WHAMMY_5TH_OCT, WHAMMY_HOCT_UP, WHAMMY_HOCT_DN, WHAMMY_OCT_UD }; -static SettingsWidget chorusfx_pitch_shift_widgets[] = { +static EffectSettings chorusfx_pitch_shift_settings[] = { // TODO: make this display propertly (display range -24 to 24) {"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[] = { +static EffectSettings chorusfx_detune_settings[] = { {"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[] = { +static EffectSettings chorusfx_ips_settings[] = { // TODO: IPS_SHIFT_AMOUNT with valid options: // IPS_7TH_DN, IPS_6TH_DN, IPS_5TH_DN, IPS_4TH_DN, IPS_3RD_DN, // IPS_2ND_DN, IPS_2ND_UP, IPS_3RD_UP, IPS_4TH_UP, IPS_5TH_UP, @@ -275,7 +275,7 @@ static SettingsWidget chorusfx_ips_widgets[] = { {"IPS level", 0.0, 99.0, IPS_LEVEL, CHORUSFX_POSITION}, }; -static SettingsWidget delay_analog_widgets[] = { +static EffectSettings delay_analog_settings[] = { // TODO: make this display propertly (10 msec to 5 sec) {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, {"Delay analog level", 0.0, 99.0, ANALOG_LEVEL, DELAY_POSITION}, @@ -283,7 +283,7 @@ static SettingsWidget delay_analog_widgets[] = { {"Delay analog repeats", 0.0, 100.0, ANALOG_REPEATS, DELAY_POSITION}, }; -static SettingsWidget delay_digital_widgets[] = { +static EffectSettings delay_digital_settings[] = { // TODO: make this display propertly (10 msec to 5 sec) {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, {"Delay digital level", 0.0, 99.0, DIGITAL_LEVEL, DELAY_POSITION}, @@ -293,7 +293,7 @@ static SettingsWidget delay_digital_widgets[] = { {"Delay digital ducker level", 0.0, 99.0, DIGITAL_DUCKER_LEVEL, DELAY_POSITION}, }; -static SettingsWidget delay_modulated_widgets[] = { +static EffectSettings delay_modulated_settings[] = { // TODO: make this display propertly (10 msec to 5 sec) {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, {"Delay modulated level", 0.0, 99.0, MODULATED_LEVEL, DELAY_POSITION}, @@ -302,7 +302,7 @@ static SettingsWidget delay_modulated_widgets[] = { {"Delay modulated depth", 0.0, 99.0, MODULATED_DEPTH, DELAY_POSITION}, }; -static SettingsWidget delay_pong_widgets[] = { +static EffectSettings delay_pong_settings[] = { // TODO: make this display propertly (10 msec to 5 sec) {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, {"Delay pong level", 0.0, 99.0, PONG_LEVEL, DELAY_POSITION}, @@ -312,7 +312,7 @@ static SettingsWidget delay_pong_widgets[] = { {"Delay pong ducker level", 0.0, 99.0, PONG_DUCKER_LEVEL, DELAY_POSITION}, }; -static SettingsWidget delay_tape_widgets[] = { +static EffectSettings delay_tape_settings[] = { // TODO: make this display propertly (10 msec to 5 sec) {"Delay time", 0.0, 139.0, DELAY_TIME, DELAY_POSITION}, {"Delay tape level", 0.0, 99.0, TAPE_LEVEL, DELAY_POSITION}, @@ -322,164 +322,164 @@ static SettingsWidget delay_tape_widgets[] = { {"Delay tape flutter", 0.0, 99.0, TAPE_FLUTTER, DELAY_POSITION}, }; -static SettingsWidget reverb_twin_widgets[] = { +static EffectSettings reverb_twin_settings[] = { {"Twin reverb", 0.0, 99.0, TWIN_REVERB, REVERB_POSITION}, }; -static SettingsWidget reverb_lex_ambience_widgets[] = { +static EffectSettings reverb_lex_ambience_settings[] = { {"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[] = { +static EffectSettings reverb_lex_studio_settings[] = { {"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[] = { +static EffectSettings reverb_lex_room_settings[] = { {"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[] = { +static EffectSettings reverb_lex_hall_settings[] = { {"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[] = { +static EffectSettings reverb_emt240_plate_settings[] = { {"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[] = { - {WAH_TYPE_CRY, "Cry wah", WAH_TYPE, WAH_POSITION, wah_widgets, G_N_ELEMENTS(wah_widgets)}, - {WAH_TYPE_FULLRANGE, "Fullrange wah", WAH_TYPE, WAH_POSITION, wah_widgets, G_N_ELEMENTS(wah_widgets)}, - {WAH_TYPE_CLYDE, "Clyde wah", WAH_TYPE, WAH_POSITION, wah_widgets, G_N_ELEMENTS(wah_widgets)}, +static EffectGroup wah_group[] = { + {WAH_TYPE_CRY, "Cry wah", WAH_TYPE, WAH_POSITION, wah_settings, G_N_ELEMENTS(wah_settings)}, + {WAH_TYPE_FULLRANGE, "Fullrange wah", WAH_TYPE, WAH_POSITION, wah_settings, G_N_ELEMENTS(wah_settings)}, + {WAH_TYPE_CLYDE, "Clyde wah", WAH_TYPE, WAH_POSITION, wah_settings, G_N_ELEMENTS(wah_settings)}, }; -static WidgetContainer comp_container[] = { - {COMP_TYPE_DIGI, "Digital compressor", COMP_TYPE, COMP_POSITION, comp_digi_widgets, G_N_ELEMENTS(comp_digi_widgets)}, - {COMP_TYPE_CS, "CS compressor", COMP_TYPE, COMP_POSITION, comp_cs_widgets, G_N_ELEMENTS(comp_cs_widgets)}, +static EffectGroup comp_group[] = { + {COMP_TYPE_DIGI, "Digital compressor", COMP_TYPE, COMP_POSITION, comp_digi_settings, G_N_ELEMENTS(comp_digi_settings)}, + {COMP_TYPE_CS, "CS compressor", COMP_TYPE, COMP_POSITION, comp_cs_settings, G_N_ELEMENTS(comp_cs_settings)}, }; -static WidgetContainer dist_container[] = { - {DIST_TYPE_SCREAMER, "Screamer", DIST_TYPE, DIST_POSITION, dist_screamer_widgets, G_N_ELEMENTS(dist_screamer_widgets)}, - {DIST_TYPE_808, "808", DIST_TYPE, DIST_POSITION, dist_808_widgets, G_N_ELEMENTS(dist_808_widgets)}, - {DIST_TYPE_GUYOD, "GuyOD", DIST_TYPE, DIST_POSITION, dist_guyod_widgets, G_N_ELEMENTS(dist_guyod_widgets)}, - {DIST_TYPE_DOD250, "DOD250", DIST_TYPE, DIST_POSITION, dist_dod250_widgets, G_N_ELEMENTS(dist_dod250_widgets)}, - {DIST_TYPE_RODENT, "Rodent", DIST_TYPE, DIST_POSITION, dist_rodent_widgets, G_N_ELEMENTS(dist_rodent_widgets)}, - {DIST_TYPE_MX, "MX", DIST_TYPE, DIST_POSITION, dist_mx_widgets, G_N_ELEMENTS(dist_mx_widgets)}, - {DIST_TYPE_DS, "DS", DIST_TYPE, DIST_POSITION, dist_ds_widgets, G_N_ELEMENTS(dist_ds_widgets)}, - {DIST_TYPE_GRUNGE, "Grunge", DIST_TYPE, DIST_POSITION, dist_grunge_widgets, G_N_ELEMENTS(dist_grunge_widgets)}, - {DIST_TYPE_ZONE, "Zone", DIST_TYPE, DIST_POSITION, dist_zone_widgets, G_N_ELEMENTS(dist_zone_widgets)}, - {DIST_TYPE_DEATH, "Death", DIST_TYPE, DIST_POSITION, dist_death_widgets, G_N_ELEMENTS(dist_death_widgets)}, - {DIST_TYPE_GONK, "Gonk", DIST_TYPE, DIST_POSITION, dist_gonk_widgets, G_N_ELEMENTS(dist_gonk_widgets)}, - {DIST_TYPE_FUZZY, "Fuzzy", DIST_TYPE, DIST_POSITION, dist_fuzzy_widgets, G_N_ELEMENTS(dist_fuzzy_widgets)}, - {DIST_TYPE_MP, "MP", DIST_TYPE, DIST_POSITION, dist_mp_widgets, G_N_ELEMENTS(dist_mp_widgets)}, +static EffectGroup dist_group[] = { + {DIST_TYPE_SCREAMER, "Screamer", DIST_TYPE, DIST_POSITION, dist_screamer_settings, G_N_ELEMENTS(dist_screamer_settings)}, + {DIST_TYPE_808, "808", DIST_TYPE, DIST_POSITION, dist_808_settings, G_N_ELEMENTS(dist_808_settings)}, + {DIST_TYPE_GUYOD, "GuyOD", DIST_TYPE, DIST_POSITION, dist_guyod_settings, G_N_ELEMENTS(dist_guyod_settings)}, + {DIST_TYPE_DOD250, "DOD250", DIST_TYPE, DIST_POSITION, dist_dod250_settings, G_N_ELEMENTS(dist_dod250_settings)}, + {DIST_TYPE_RODENT, "Rodent", DIST_TYPE, DIST_POSITION, dist_rodent_settings, G_N_ELEMENTS(dist_rodent_settings)}, + {DIST_TYPE_MX, "MX", DIST_TYPE, DIST_POSITION, dist_mx_settings, G_N_ELEMENTS(dist_mx_settings)}, + {DIST_TYPE_DS, "DS", DIST_TYPE, DIST_POSITION, dist_ds_settings, G_N_ELEMENTS(dist_ds_settings)}, + {DIST_TYPE_GRUNGE, "Grunge", DIST_TYPE, DIST_POSITION, dist_grunge_settings, G_N_ELEMENTS(dist_grunge_settings)}, + {DIST_TYPE_ZONE, "Zone", DIST_TYPE, DIST_POSITION, dist_zone_settings, G_N_ELEMENTS(dist_zone_settings)}, + {DIST_TYPE_DEATH, "Death", DIST_TYPE, DIST_POSITION, dist_death_settings, G_N_ELEMENTS(dist_death_settings)}, + {DIST_TYPE_GONK, "Gonk", DIST_TYPE, DIST_POSITION, dist_gonk_settings, G_N_ELEMENTS(dist_gonk_settings)}, + {DIST_TYPE_FUZZY, "Fuzzy", DIST_TYPE, DIST_POSITION, dist_fuzzy_settings, G_N_ELEMENTS(dist_fuzzy_settings)}, + {DIST_TYPE_MP, "MP", DIST_TYPE, DIST_POSITION, dist_mp_settings, G_N_ELEMENTS(dist_mp_settings)}, }; -static WidgetContainer noisegate_container[] = { - {NOISEGATE_GATE, "Gate", NOISEGATE_TYPE, NOISEGATE_POSITION, noisegate_gate_widgets, G_N_ELEMENTS(noisegate_gate_widgets)}, - {NOISEGATE_SWELL, "Swell", NOISEGATE_TYPE, NOISEGATE_POSITION, noisegate_swell_widgets, G_N_ELEMENTS(noisegate_swell_widgets)}, +static EffectGroup noisegate_group[] = { + {NOISEGATE_GATE, "Gate", NOISEGATE_TYPE, NOISEGATE_POSITION, noisegate_gate_settings, G_N_ELEMENTS(noisegate_gate_settings)}, + {NOISEGATE_SWELL, "Swell", NOISEGATE_TYPE, NOISEGATE_POSITION, noisegate_swell_settings, G_N_ELEMENTS(noisegate_swell_settings)}, }; -static WidgetContainer chorusfx_container[] = { - {CHORUS_TYPE_CE, "CE Chorus", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_ce_widgets, G_N_ELEMENTS(chorusfx_ce_widgets)}, - {CHORUS_TYPE_DUAL, "Dual Chorus", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_dual_widgets, G_N_ELEMENTS(chorusfx_dual_widgets)}, - {CHORUS_TYPE_MULTI, "Multi Chorus", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_multi_widgets, G_N_ELEMENTS(chorusfx_multi_widgets)}, - {CHORUS_TYPE_FLANGER, "Flanger", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_flanger_widgets, G_N_ELEMENTS(chorusfx_flanger_widgets)}, - {CHORUS_TYPE_MXR_FLANGER, "MXR FLANGER", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_mxr_flanger_widgets, G_N_ELEMENTS(chorusfx_mxr_flanger_widgets)}, - {CHORUS_TYPE_PHASER, "Phaser", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_phaser_widgets, G_N_ELEMENTS(chorusfx_phaser_widgets)}, - {CHORUS_TYPE_VIBRATO, "Vibrato", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_vibrato_widgets, G_N_ELEMENTS(chorusfx_vibrato_widgets)}, - {CHORUS_TYPE_ROTARY, "Rotary", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_rotary_widgets, G_N_ELEMENTS(chorusfx_rotary_widgets)}, - {CHORUS_TYPE_VIBROPAN, "Vibropan", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_vibropan_widgets, G_N_ELEMENTS(chorusfx_vibropan_widgets)}, - {CHORUS_TYPE_TREMOLO, "Tremolo", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_tremolo_widgets, G_N_ELEMENTS(chorusfx_tremolo_widgets)}, - {CHORUS_TYPE_PANNER, "Panner", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_panner_widgets, G_N_ELEMENTS(chorusfx_panner_widgets)}, - {CHORUS_TYPE_ENVELOPE, "Envelope", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_envelope_widgets, G_N_ELEMENTS(chorusfx_envelope_widgets)}, - {CHORUS_TYPE_AUTOYA, "AutoYa", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_autoya_widgets, G_N_ELEMENTS(chorusfx_autoya_widgets)}, - {CHORUS_TYPE_YAYA, "YaYa", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_yaya_widgets, G_N_ELEMENTS(chorusfx_yaya_widgets)}, - {CHORUS_TYPE_STEP_FILTER, "Step Filter", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_step_filter_widgets, G_N_ELEMENTS(chorusfx_step_filter_widgets)}, - {CHORUS_TYPE_WHAMMY, "Whammy", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_whammy_widgets, G_N_ELEMENTS(chorusfx_whammy_widgets)}, - {CHORUS_TYPE_PITCH_SHIFT, "Pitch Shift", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_pitch_shift_widgets, G_N_ELEMENTS(chorusfx_pitch_shift_widgets)}, - {CHORUS_TYPE_DETUNE, "Detune", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_detune_widgets, G_N_ELEMENTS(chorusfx_detune_widgets)}, - {CHORUS_TYPE_IPS, "IPS", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_ips_widgets, G_N_ELEMENTS(chorusfx_ips_widgets)}, +static EffectGroup chorusfx_group[] = { + {CHORUS_TYPE_CE, "CE Chorus", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_ce_settings, G_N_ELEMENTS(chorusfx_ce_settings)}, + {CHORUS_TYPE_DUAL, "Dual Chorus", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_dual_settings, G_N_ELEMENTS(chorusfx_dual_settings)}, + {CHORUS_TYPE_MULTI, "Multi Chorus", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_multi_settings, G_N_ELEMENTS(chorusfx_multi_settings)}, + {CHORUS_TYPE_FLANGER, "Flanger", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_flanger_settings, G_N_ELEMENTS(chorusfx_flanger_settings)}, + {CHORUS_TYPE_MXR_FLANGER, "MXR FLANGER", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_mxr_flanger_settings, G_N_ELEMENTS(chorusfx_mxr_flanger_settings)}, + {CHORUS_TYPE_PHASER, "Phaser", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_phaser_settings, G_N_ELEMENTS(chorusfx_phaser_settings)}, + {CHORUS_TYPE_VIBRATO, "Vibrato", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_vibrato_settings, G_N_ELEMENTS(chorusfx_vibrato_settings)}, + {CHORUS_TYPE_ROTARY, "Rotary", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_rotary_settings, G_N_ELEMENTS(chorusfx_rotary_settings)}, + {CHORUS_TYPE_VIBROPAN, "Vibropan", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_vibropan_settings, G_N_ELEMENTS(chorusfx_vibropan_settings)}, + {CHORUS_TYPE_TREMOLO, "Tremolo", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_tremolo_settings, G_N_ELEMENTS(chorusfx_tremolo_settings)}, + {CHORUS_TYPE_PANNER, "Panner", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_panner_settings, G_N_ELEMENTS(chorusfx_panner_settings)}, + {CHORUS_TYPE_ENVELOPE, "Envelope", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_envelope_settings, G_N_ELEMENTS(chorusfx_envelope_settings)}, + {CHORUS_TYPE_AUTOYA, "AutoYa", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_autoya_settings, G_N_ELEMENTS(chorusfx_autoya_settings)}, + {CHORUS_TYPE_YAYA, "YaYa", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_yaya_settings, G_N_ELEMENTS(chorusfx_yaya_settings)}, + {CHORUS_TYPE_STEP_FILTER, "Step Filter", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_step_filter_settings, G_N_ELEMENTS(chorusfx_step_filter_settings)}, + {CHORUS_TYPE_WHAMMY, "Whammy", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_whammy_settings, G_N_ELEMENTS(chorusfx_whammy_settings)}, + {CHORUS_TYPE_PITCH_SHIFT, "Pitch Shift", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_pitch_shift_settings, G_N_ELEMENTS(chorusfx_pitch_shift_settings)}, + {CHORUS_TYPE_DETUNE, "Detune", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_detune_settings, G_N_ELEMENTS(chorusfx_detune_settings)}, + {CHORUS_TYPE_IPS, "IPS", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_ips_settings, G_N_ELEMENTS(chorusfx_ips_settings)}, }; -static WidgetContainer delay_container[] = { - {DELAY_TYPE_ANALOG, "Analog", DELAY_TYPE, DELAY_POSITION, delay_analog_widgets, G_N_ELEMENTS(delay_analog_widgets)}, - {DELAY_TYPE_DIGITAL, "Digital", DELAY_TYPE, DELAY_POSITION, delay_digital_widgets, G_N_ELEMENTS(delay_digital_widgets)}, - {DELAY_TYPE_MODULATED, "Modulated", DELAY_TYPE, DELAY_POSITION, delay_modulated_widgets, G_N_ELEMENTS(delay_modulated_widgets)}, - {DELAY_TYPE_PONG, "Pong", DELAY_TYPE, DELAY_POSITION, delay_pong_widgets, G_N_ELEMENTS(delay_pong_widgets)}, - {DELAY_TYPE_TAPE, "Tape", DELAY_TYPE, DELAY_POSITION, delay_tape_widgets, G_N_ELEMENTS(delay_tape_widgets)}, +static EffectGroup delay_group[] = { + {DELAY_TYPE_ANALOG, "Analog", DELAY_TYPE, DELAY_POSITION, delay_analog_settings, G_N_ELEMENTS(delay_analog_settings)}, + {DELAY_TYPE_DIGITAL, "Digital", DELAY_TYPE, DELAY_POSITION, delay_digital_settings, G_N_ELEMENTS(delay_digital_settings)}, + {DELAY_TYPE_MODULATED, "Modulated", DELAY_TYPE, DELAY_POSITION, delay_modulated_settings, G_N_ELEMENTS(delay_modulated_settings)}, + {DELAY_TYPE_PONG, "Pong", DELAY_TYPE, DELAY_POSITION, delay_pong_settings, G_N_ELEMENTS(delay_pong_settings)}, + {DELAY_TYPE_TAPE, "Tape", DELAY_TYPE, DELAY_POSITION, delay_tape_settings, G_N_ELEMENTS(delay_tape_settings)}, }; -static WidgetContainer reverb_container[] = { - {REVERB_TYPE_TWIN, "Twin", REVERB_TYPE, REVERB_POSITION, reverb_twin_widgets, G_N_ELEMENTS(reverb_twin_widgets)}, - {REVERB_TYPE_LEX_AMBIENCE, "Lexicon ambience", REVERB_TYPE, REVERB_POSITION, reverb_lex_ambience_widgets, G_N_ELEMENTS(reverb_lex_ambience_widgets)}, - {REVERB_TYPE_LEX_STUDIO, "Lexicon studio", REVERB_TYPE, REVERB_POSITION, reverb_lex_studio_widgets, G_N_ELEMENTS(reverb_lex_studio_widgets)}, - {REVERB_TYPE_LEX_ROOM, "Lexicon room", REVERB_TYPE, REVERB_POSITION, reverb_lex_room_widgets, G_N_ELEMENTS(reverb_lex_room_widgets)}, - {REVERB_TYPE_LEX_HALL, "Lexicon hall", REVERB_TYPE, REVERB_POSITION, reverb_lex_hall_widgets, G_N_ELEMENTS(reverb_lex_hall_widgets)}, - {REVERB_TYPE_EMT240_PLATE, "EMT240 Plate", REVERB_TYPE, REVERB_POSITION, reverb_emt240_plate_widgets, G_N_ELEMENTS(reverb_emt240_plate_widgets)}, +static EffectGroup reverb_group[] = { + {REVERB_TYPE_TWIN, "Twin", REVERB_TYPE, REVERB_POSITION, reverb_twin_settings, G_N_ELEMENTS(reverb_twin_settings)}, + {REVERB_TYPE_LEX_AMBIENCE, "Lexicon ambience", REVERB_TYPE, REVERB_POSITION, reverb_lex_ambience_settings, G_N_ELEMENTS(reverb_lex_ambience_settings)}, + {REVERB_TYPE_LEX_STUDIO, "Lexicon studio", REVERB_TYPE, REVERB_POSITION, reverb_lex_studio_settings, G_N_ELEMENTS(reverb_lex_studio_settings)}, + {REVERB_TYPE_LEX_ROOM, "Lexicon room", REVERB_TYPE, REVERB_POSITION, reverb_lex_room_settings, G_N_ELEMENTS(reverb_lex_room_settings)}, + {REVERB_TYPE_LEX_HALL, "Lexicon hall", REVERB_TYPE, REVERB_POSITION, reverb_lex_hall_settings, G_N_ELEMENTS(reverb_lex_hall_settings)}, + {REVERB_TYPE_EMT240_PLATE, "EMT240 Plate", REVERB_TYPE, REVERB_POSITION, reverb_emt240_plate_settings, G_N_ELEMENTS(reverb_emt240_plate_settings)}, }; -static WidgetContainer eq_container[] = { - {EQ_TYPE_BRIGHT, "Bright", EQ_TYPE, EQ_POSITION, eq_widgets, G_N_ELEMENTS(eq_widgets)}, - {EQ_TYPE_MIDBOOST, "Mid Boost", EQ_TYPE, EQ_POSITION, eq_widgets, G_N_ELEMENTS(eq_widgets)}, - {EQ_TYPE_SCOOP, "Scoop", EQ_TYPE, EQ_POSITION, eq_widgets, G_N_ELEMENTS(eq_widgets)}, - {EQ_TYPE_WARM, "Warm", EQ_TYPE, EQ_POSITION, eq_widgets, G_N_ELEMENTS(eq_widgets)}, +static EffectGroup eq_group[] = { + {EQ_TYPE_BRIGHT, "Bright", EQ_TYPE, EQ_POSITION, eq_settings, G_N_ELEMENTS(eq_settings)}, + {EQ_TYPE_MIDBOOST, "Mid Boost", EQ_TYPE, EQ_POSITION, eq_settings, G_N_ELEMENTS(eq_settings)}, + {EQ_TYPE_SCOOP, "Scoop", EQ_TYPE, EQ_POSITION, eq_settings, G_N_ELEMENTS(eq_settings)}, + {EQ_TYPE_WARM, "Warm", EQ_TYPE, EQ_POSITION, eq_settings, G_N_ELEMENTS(eq_settings)}, }; -static VBoxWidget wah_vbox[] = { - {"Wah", FALSE, WAH_ON_OFF, WAH_POSITION, wah_container, G_N_ELEMENTS(wah_container)}, +static Effect wah_effect[] = { + {"Wah", WAH_ON_OFF, WAH_POSITION, wah_group, G_N_ELEMENTS(wah_group)}, }; -static VBoxWidget comp_vbox[] = { - {"Compressor", FALSE, COMP_ON_OFF, COMP_POSITION, comp_container, G_N_ELEMENTS(comp_container)}, +static Effect comp_effect[] = { + {"Compressor", COMP_ON_OFF, COMP_POSITION, comp_group, G_N_ELEMENTS(comp_group)}, }; -static VBoxWidget dist_vbox[] = { - {"Distortion", FALSE, DIST_ON_OFF, DIST_POSITION, dist_container, G_N_ELEMENTS(dist_container)}, +static Effect dist_effect[] = { + {"Distortion", DIST_ON_OFF, DIST_POSITION, dist_group, G_N_ELEMENTS(dist_group)}, }; -static VBoxWidget noisegate_vbox[] = { - {"Noisegate", FALSE, NOISEGATE_ON_OFF, NOISEGATE_POSITION, noisegate_container, G_N_ELEMENTS(noisegate_container)}, +static Effect noisegate_effect[] = { + {"Noisegate", NOISEGATE_ON_OFF, NOISEGATE_POSITION, noisegate_group, G_N_ELEMENTS(noisegate_group)}, }; -static VBoxWidget chorusfx_vbox[] = { - {"Chorus/FX", FALSE, CHORUSFX_ON_OFF, CHORUSFX_POSITION, chorusfx_container, G_N_ELEMENTS(chorusfx_container)}, +static Effect chorusfx_effect[] = { + {"Chorus/FX", CHORUSFX_ON_OFF, CHORUSFX_POSITION, chorusfx_group, G_N_ELEMENTS(chorusfx_group)}, }; -static VBoxWidget delay_vbox[] = { - {"Delay", FALSE, DELAY_ON_OFF, DELAY_POSITION, delay_container, G_N_ELEMENTS(delay_container)}, +static Effect delay_effect[] = { + {"Delay", DELAY_ON_OFF, DELAY_POSITION, delay_group, G_N_ELEMENTS(delay_group)}, }; -static VBoxWidget reverb_vbox[] = { - {"Reverb", FALSE, REVERB_ON_OFF, REVERB_POSITION, reverb_container, G_N_ELEMENTS(reverb_container)}, +static Effect reverb_effect[] = { + {"Reverb", REVERB_ON_OFF, REVERB_POSITION, reverb_group, G_N_ELEMENTS(reverb_group)}, }; -static VBoxWidget eq_vbox[] = { - {"EQ", FALSE, EQ_ON_OFF, EQ_POSITION, eq_container, G_N_ELEMENTS(eq_container)}, +static Effect eq_effect[] = { + {"EQ", EQ_ON_OFF, EQ_POSITION, eq_group, G_N_ELEMENTS(eq_group)}, }; -VBoxes vboxes[] = { - {wah_vbox, G_N_ELEMENTS(wah_vbox)}, - {eq_vbox, G_N_ELEMENTS(eq_vbox)}, - {comp_vbox, G_N_ELEMENTS(comp_vbox)}, - {dist_vbox, G_N_ELEMENTS(dist_vbox)}, - {noisegate_vbox, G_N_ELEMENTS(noisegate_vbox)}, - {chorusfx_vbox, G_N_ELEMENTS(chorusfx_vbox)}, - {delay_vbox, G_N_ELEMENTS(delay_vbox)}, - {reverb_vbox, G_N_ELEMENTS(reverb_vbox)}, +EffectList effects[] = { + {wah_effect, G_N_ELEMENTS(wah_effect)}, + {eq_effect, G_N_ELEMENTS(eq_effect)}, + {comp_effect, G_N_ELEMENTS(comp_effect)}, + {dist_effect, G_N_ELEMENTS(dist_effect)}, + {noisegate_effect, G_N_ELEMENTS(noisegate_effect)}, + {chorusfx_effect, G_N_ELEMENTS(chorusfx_effect)}, + {delay_effect, G_N_ELEMENTS(delay_effect)}, + {reverb_effect, G_N_ELEMENTS(reverb_effect)}, }; -int n_vboxes = G_N_ELEMENTS(vboxes); +int n_effects = G_N_ELEMENTS(effects); diff --git a/effects.h b/effects.h index c35905b..f4abb86 100644 --- a/effects.h +++ b/effects.h @@ -17,32 +17,31 @@ #include typedef struct { - char *label; - gdouble min; - gdouble max; - guint option; - guint position; -} SettingsWidget; + char *label; /* Parameter name */ + gdouble min; /* Parameter minumum value */ + gdouble max; /* Parameter maximum value */ + guint option; /* ID (to set parameter) */ + guint position; /* position */ +} EffectSettings; typedef struct { - guint id; - gchar *label; - guint option; - guint position; - SettingsWidget *widgets; - gint widgets_amt; -} WidgetContainer; + guint id; /* value (type) */ + gchar *label; /* Effect name */ + guint option; /* ID (to set effect type) */ + guint position; /* position */ + EffectSettings *settings; /* possible parameters */ + gint settings_amt; /* possible parameters length */ +} EffectGroup; typedef struct { - char *label; - gboolean value; - guint option; - guint position; - WidgetContainer *widgets; - gint widgets_amt; -} VBoxWidget; + char *label; /* Base effect name */ + guint option; /* ID (to set effect on/off) */ + guint position; /* position */ + EffectGroup *group; /* possible effect types */ + gint group_amt; /* possible effect types length */ +} Effect; typedef struct { - VBoxWidget *widget; - gint amt; -} VBoxes; + Effect *effect; /* list of supported effects */ + gint amt; /* list of supported effects length */ +} EffectList; diff --git a/gui.c b/gui.c index 5a52a97..7bd9496 100644 --- a/gui.c +++ b/gui.c @@ -19,10 +19,10 @@ #include "gui.h" #include "effects.h" -extern VBoxes vboxes[]; -extern int n_vboxes; +extern EffectList effects[]; +extern int n_effects; -void value_changed_option_cb(GtkSpinButton *spinbutton, SettingsWidget *setting) +void value_changed_option_cb(GtkSpinButton *spinbutton, EffectSettings *setting) { g_return_if_fail(setting != NULL); @@ -30,15 +30,15 @@ void value_changed_option_cb(GtkSpinButton *spinbutton, SettingsWidget *setting) set_option(setting->option, setting->position, val); } -void toggled_cb(GtkToggleButton *button, VBoxWidget *widget) +void toggled_cb(GtkToggleButton *button, Effect *effect) { - g_return_if_fail(widget != NULL); + g_return_if_fail(effect != NULL); guint val = gtk_toggle_button_get_active(button); - set_option(widget->option, widget->position, val); + set_option(effect->option, effect->position, val); } -GtkWidget *create_table(SettingsWidget *widgets, gint amt) +GtkWidget *create_table(EffectSettings *settings, gint amt) { GtkWidget *table, *label, *widget; GtkObject *adj; @@ -47,10 +47,10 @@ GtkWidget *create_table(SettingsWidget *widgets, gint amt) table = gtk_table_new(2, amt, FALSE); for (x = 0; xlabel); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), widget->value); - g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(toggled_cb), widget); + GtkWidget *button = gtk_toggle_button_new_with_label(effect->label); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); + g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(toggled_cb), effect); return button; } @@ -113,7 +113,7 @@ void combo_box_changed_cb(GtkComboBox *widget, gpointer data) } } -GtkWidget *create_widget_container(WidgetContainer *widgets, gint amt) +GtkWidget *create_widget_container(EffectGroup *group, gint amt) { GtkWidget *vbox; GtkWidget *widget; @@ -126,30 +126,30 @@ GtkWidget *create_widget_container(WidgetContainer *widgets, gint amt) vbox = gtk_vbox_new(FALSE, 0); for (x = 0; xid = widgets[x].id; - settings->option = widgets[x].option; - settings->position = widgets[x].position; + settings->id = group[x].id; + settings->option = group[x].option; + settings->position = group[x].position; settings->child = widget; name = g_strdup_printf("SettingsGroup%d", cmbox_no); g_object_set_data_full(G_OBJECT(combo_box), name, settings, ((GDestroyNotify)effect_settings_group_free)); g_free(name); } else { - widget = create_table(widgets[x].widgets, widgets[x].widgets_amt); + widget = create_table(group[x].settings, group[x].settings_amt); gtk_container_add(GTK_CONTAINER(vbox), widget); } } @@ -157,7 +157,7 @@ GtkWidget *create_widget_container(WidgetContainer *widgets, gint amt) return vbox; }; -GtkWidget *create_vbox(VBoxWidget *widgets, gint amt) +GtkWidget *create_vbox(Effect *widgets, gint amt) { GtkWidget *vbox; GtkWidget *hbox; @@ -174,7 +174,7 @@ GtkWidget *create_vbox(VBoxWidget *widgets, gint amt) widget = create_on_off_button(&widgets[x]); gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 2); - table = create_widget_container(widgets[x].widgets, widgets[x].widgets_amt); + table = create_widget_container(widgets[x].group, widgets[x].group_amt); gtk_box_pack_start(GTK_BOX(hbox), table, TRUE, TRUE, 2); } @@ -195,12 +195,12 @@ void create_window() vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); - for (x = 0; x