revise WidgetContainer

This commit is contained in:
Tomasz Moń
2009-02-25 21:31:06 +01:00
parent c0ac97d4e2
commit 0cfcd806b1
7 changed files with 125 additions and 194 deletions

1
TODO
View File

@@ -7,3 +7,4 @@
-handling presets (loading, saving, exporting/importing to/from xml patches)
-buildsystem
-figure out how to get current device settings, start gui with proper values
-fix expression pedal settings (possible types depend on active preset)

108
effects.c
View File

@@ -362,81 +362,81 @@ static SettingsWidget reverb_emt240_plate_widgets[] = {
};
static WidgetContainer wah_container[] = {
{WAH_TYPE_CRY, "Cry wah", set_wah_type, wah_widgets, G_N_ELEMENTS(wah_widgets)},
{WAH_TYPE_FULLRANGE, "Fullrange wah", set_wah_type, wah_widgets, G_N_ELEMENTS(wah_widgets)},
{WAH_TYPE_CLYDE, "Clyde wah", set_wah_type, wah_widgets, G_N_ELEMENTS(wah_widgets)},
{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 WidgetContainer comp_container[] = {
{COMP_TYPE_DIGI, "Digital compressor", set_comp_type, comp_digi_widgets, G_N_ELEMENTS(comp_digi_widgets)},
{COMP_TYPE_CS, "CS compressor", set_comp_type, comp_cs_widgets, G_N_ELEMENTS(comp_cs_widgets)},
{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 WidgetContainer dist_container[] = {
{DIST_TYPE_SCREAMER, "Screamer", set_dist_type, dist_screamer_widgets, G_N_ELEMENTS(dist_screamer_widgets)},
{DIST_TYPE_808, "808", set_dist_type, dist_808_widgets, G_N_ELEMENTS(dist_808_widgets)},
{DIST_TYPE_GUYOD, "GuyOD", set_dist_type, dist_guyod_widgets, G_N_ELEMENTS(dist_guyod_widgets)},
{DIST_TYPE_DOD250, "DOD250", set_dist_type, dist_dod250_widgets, G_N_ELEMENTS(dist_dod250_widgets)},
{DIST_TYPE_RODENT, "Rodent", set_dist_type, dist_rodent_widgets, G_N_ELEMENTS(dist_rodent_widgets)},
{DIST_TYPE_MX, "MX", set_dist_type, dist_mx_widgets, G_N_ELEMENTS(dist_mx_widgets)},
{DIST_TYPE_DS, "DS", set_dist_type, dist_ds_widgets, G_N_ELEMENTS(dist_ds_widgets)},
{DIST_TYPE_GRUNGE, "Grunge", set_dist_type, dist_grunge_widgets, G_N_ELEMENTS(dist_grunge_widgets)},
{DIST_TYPE_ZONE, "Zone", set_dist_type, dist_zone_widgets, G_N_ELEMENTS(dist_zone_widgets)},
{DIST_TYPE_DEATH, "Death", set_dist_type, dist_death_widgets, G_N_ELEMENTS(dist_death_widgets)},
{DIST_TYPE_GONK, "Gonk", set_dist_type, dist_gonk_widgets, G_N_ELEMENTS(dist_gonk_widgets)},
{DIST_TYPE_FUZZY, "Fuzzy", set_dist_type, dist_fuzzy_widgets, G_N_ELEMENTS(dist_fuzzy_widgets)},
{DIST_TYPE_MP, "MP", set_dist_type, dist_mp_widgets, G_N_ELEMENTS(dist_mp_widgets)},
{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 WidgetContainer noisegate_container[] = {
{NOISEGATE_GATE, "Gate", set_noisegate_type, noisegate_gate_widgets, G_N_ELEMENTS(noisegate_gate_widgets)},
{NOISEGATE_SWELL, "Swell", set_noisegate_type, noisegate_swell_widgets, G_N_ELEMENTS(noisegate_swell_widgets)},
{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 WidgetContainer chorusfx_container[] = {
{CHORUS_TYPE_CE, "CE Chorus", set_chorusfx_type, chorusfx_ce_widgets, G_N_ELEMENTS(chorusfx_ce_widgets)},
{CHORUS_TYPE_DUAL, "Dual Chorus", set_chorusfx_type, chorusfx_dual_widgets, G_N_ELEMENTS(chorusfx_dual_widgets)},
{CHORUS_TYPE_MULTI, "Multi Chorus", set_chorusfx_type, chorusfx_multi_widgets, G_N_ELEMENTS(chorusfx_multi_widgets)},
{CHORUS_TYPE_FLANGER, "Flanger", set_chorusfx_type, chorusfx_flanger_widgets, G_N_ELEMENTS(chorusfx_flanger_widgets)},
{CHORUS_TYPE_MXR_FLANGER, "MXR FLANGER", set_chorusfx_type, chorusfx_mxr_flanger_widgets, G_N_ELEMENTS(chorusfx_mxr_flanger_widgets)},
{CHORUS_TYPE_PHASER, "Phaser", set_chorusfx_type, chorusfx_phaser_widgets, G_N_ELEMENTS(chorusfx_phaser_widgets)},
{CHORUS_TYPE_VIBRATO, "Vibrato", set_chorusfx_type, chorusfx_vibrato_widgets, G_N_ELEMENTS(chorusfx_vibrato_widgets)},
{CHORUS_TYPE_ROTARY, "Rotary", set_chorusfx_type, chorusfx_rotary_widgets, G_N_ELEMENTS(chorusfx_rotary_widgets)},
{CHORUS_TYPE_VIBROPAN, "Vibropan", set_chorusfx_type, chorusfx_vibropan_widgets, G_N_ELEMENTS(chorusfx_vibropan_widgets)},
{CHORUS_TYPE_TREMOLO, "Tremolo", set_chorusfx_type, chorusfx_tremolo_widgets, G_N_ELEMENTS(chorusfx_tremolo_widgets)},
{CHORUS_TYPE_PANNER, "Panner", set_chorusfx_type, chorusfx_panner_widgets, G_N_ELEMENTS(chorusfx_panner_widgets)},
{CHORUS_TYPE_ENVELOPE, "Envelope", set_chorusfx_type, chorusfx_envelope_widgets, G_N_ELEMENTS(chorusfx_envelope_widgets)},
{CHORUS_TYPE_AUTOYA, "AutoYa", set_chorusfx_type, chorusfx_autoya_widgets, G_N_ELEMENTS(chorusfx_autoya_widgets)},
{CHORUS_TYPE_YAYA, "YaYa", set_chorusfx_type, chorusfx_yaya_widgets, G_N_ELEMENTS(chorusfx_yaya_widgets)},
{CHORUS_TYPE_STEP_FILTER, "Step Filter", set_chorusfx_type, chorusfx_step_filter_widgets, G_N_ELEMENTS(chorusfx_step_filter_widgets)},
{CHORUS_TYPE_WHAMMY, "Whammy", set_chorusfx_type, chorusfx_whammy_widgets, G_N_ELEMENTS(chorusfx_whammy_widgets)},
{CHORUS_TYPE_PITCH_SHIFT, "Pitch Shift", set_chorusfx_type, chorusfx_pitch_shift_widgets, G_N_ELEMENTS(chorusfx_pitch_shift_widgets)},
{CHORUS_TYPE_DETUNE, "Detune", set_chorusfx_type, chorusfx_detune_widgets, G_N_ELEMENTS(chorusfx_detune_widgets)},
{CHORUS_TYPE_IPS, "IPS", set_chorusfx_type, chorusfx_ips_widgets, G_N_ELEMENTS(chorusfx_ips_widgets)},
{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 WidgetContainer delay_container[] = {
{DELAY_TYPE_ANALOG, "Analog", set_delay_type, delay_analog_widgets, G_N_ELEMENTS(delay_analog_widgets)},
{DELAY_TYPE_DIGITAL, "Digital", set_delay_type, delay_digital_widgets, G_N_ELEMENTS(delay_digital_widgets)},
{DELAY_TYPE_MODULATED, "Modulated", set_delay_type, delay_modulated_widgets, G_N_ELEMENTS(delay_modulated_widgets)},
{DELAY_TYPE_PONG, "Pong", set_delay_type, delay_pong_widgets, G_N_ELEMENTS(delay_pong_widgets)},
{DELAY_TYPE_TAPE, "Tape", set_delay_type, delay_tape_widgets, G_N_ELEMENTS(delay_tape_widgets)},
{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 WidgetContainer reverb_container[] = {
{REVERB_TYPE_TWIN, "Twin", set_reverb_type, reverb_twin_widgets, G_N_ELEMENTS(reverb_twin_widgets)},
{REVERB_TYPE_LEX_AMBIENCE, "Lexicon ambience", set_reverb_type, reverb_lex_ambience_widgets, G_N_ELEMENTS(reverb_lex_ambience_widgets)},
{REVERB_TYPE_LEX_STUDIO, "Lexicon studio", set_reverb_type, reverb_lex_studio_widgets, G_N_ELEMENTS(reverb_lex_studio_widgets)},
{REVERB_TYPE_LEX_ROOM, "Lexicon room", set_reverb_type, reverb_lex_room_widgets, G_N_ELEMENTS(reverb_lex_room_widgets)},
{REVERB_TYPE_LEX_HALL, "Lexicon hall", set_reverb_type, reverb_lex_hall_widgets, G_N_ELEMENTS(reverb_lex_hall_widgets)},
{REVERB_TYPE_EMT240_PLATE, "EMT240 Plate", set_reverb_type, reverb_emt240_plate_widgets, G_N_ELEMENTS(reverb_emt240_plate_widgets)},
{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 WidgetContainer eq_container[] = {
{EQ_TYPE_BRIGHT, "Bright", set_eq_type, eq_widgets, G_N_ELEMENTS(eq_widgets)},
{EQ_TYPE_MIDBOOST, "Mid Boost", set_eq_type, eq_widgets, G_N_ELEMENTS(eq_widgets)},
{EQ_TYPE_SCOOP, "Scoop", set_eq_type, eq_widgets, G_N_ELEMENTS(eq_widgets)},
{EQ_TYPE_WARM, "Warm", set_eq_type, eq_widgets, G_N_ELEMENTS(eq_widgets)},
{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 VBoxWidget wah_vbox[] = {

View File

@@ -25,9 +25,10 @@ typedef struct {
} SettingsWidget;
typedef struct {
gint id;
guint id;
gchar *label;
void (*callback)(int);
guint option;
guint position;
SettingsWidget *widgets;
gint widgets_amt;
} WidgetContainer;

50
gdigi.c
View File

@@ -95,12 +95,12 @@ gboolean open_device()
return FALSE;
}
void send_data(char *data, int lenght)
void send_data(char *data, int length)
{
if (output == NULL)
open_device();
snd_rawmidi_write(output, data, lenght);
snd_rawmidi_write(output, data, length);
}
void check_preset(struct usb_dev_handle *handle)
@@ -154,6 +154,7 @@ void check_preset(struct usb_dev_handle *handle)
*/
void set_option(guint id, guint position, guint value)
{
sleep(3);
static char option[] = {0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x00, 0x00, 0x00, /* ID */
0x00, /* position */
@@ -221,21 +222,11 @@ void set_option(guint id, guint position, guint value)
}
}
void set_wah_type(int type)
{
set_option(WAH_TYPE, WAH_POSITION, type);
}
void set_wah_on_off(gboolean val)
{
set_option(WAH_ON_OFF, WAH_POSITION, (val == TRUE) ? 1 : 0);
}
void set_comp_type(int type)
{
set_option(COMP_TYPE, COMP_POSITION, type);
}
void set_comp_on_off(gboolean val)
{
set_option(COMP_ON_OFF, COMP_POSITION, (val == TRUE) ? 1 : 0);
@@ -263,21 +254,11 @@ void switch_system_preset(int x)
send_data(switch_preset, sizeof(switch_preset));
}
void set_pickup_type(int type)
{
set_option(PICKUP_TYPE, PICKUP_POSITION, type);
}
void set_pickup_on_off(gboolean val)
{
set_option(PICKUP_ON_OFF, PICKUP_POSITION, (val == TRUE) ? 1 : 0);
}
void set_dist_type(int type)
{
set_option(DIST_TYPE, DIST_POSITION, type);
}
void set_dist_on_off(gboolean val)
{
set_option(DIST_ON_OFF, DIST_POSITION, (val == TRUE) ? 1 : 0);
@@ -289,51 +270,26 @@ void set_preset_level(int level)
set_option(PRESET_LEVEL, PRESET_POSITION, level);
}
void set_eq_type(int type)
{
set_option(EQ_TYPE, EQ_POSITION, type);
}
void set_eq_on_off(gboolean val)
{
set_option(EQ_ON_OFF, EQ_POSITION, (val == TRUE) ? 1 : 0);
}
void set_noisegate_type(int type)
{
set_option(NOISEGATE_TYPE, NOISEGATE_POSITION, type);
}
void set_noisegate_on_off(gboolean val)
{
set_option(NOISEGATE_ON_OFF, NOISEGATE_POSITION, (val == TRUE) ? 1 : 0);
}
void set_chorusfx_type(int type)
{
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, type);
}
void set_chorusfx_on_off(gboolean val)
{
set_option(CHORUSFX_ON_OFF, CHORUSFX_POSITION, (val == TRUE) ? 1 : 0);
}
void set_delay_type(int type)
{
set_option(DELAY_TYPE, DELAY_POSITION, type);
}
void set_delay_on_off(gboolean val)
{
set_option(DELAY_ON_OFF, DELAY_POSITION, (val == TRUE) ? 1 : 0);
}
void set_reverb_type(int type)
{
set_option(REVERB_TYPE, REVERB_POSITION, type);
}
void set_reverb_on_off(gboolean val)
{
set_option(REVERB_ON_OFF, REVERB_POSITION, (val == TRUE) ? 1 : 0);

29
gdigi.h
View File

@@ -460,44 +460,15 @@ enum {
#define USB_AUDIO_LEVEL 12307
void set_option(guint id, guint position, guint value);
void set_wah_min(int level);
void set_wah_max(int level);
void set_wah_level(int level);
void set_wah_type(int type);
void set_wah_on_off(gboolean val);
void set_comp_sustain(int level);
void set_comp_tone(int level);
void set_comp_attack(int level);
void set_comp_level(int level);
void set_comp_type(int type);
void set_comp_on_off(gboolean val);
void switch_user_preset(int x);
void switch_system_preset(int x);
void set_pickup_type(int type);
void set_pickup_on_off(gboolean val);
void set_dist_type(int type);
void set_dist_option(guint32 option, int value);
void set_dist_on_off(gboolean val);
void set_preset_level(int level);
void set_eq_type(int type);
void set_eq_gain(int x);
void set_eq_level(int x);
void set_eq_bass(int x);
void set_eq_mid(int x);
void set_eq_mid_hz(int x);
void set_eq_treble(int x);
void set_eq_treb_hz(int x);
void set_eq_on_off(gboolean val);
void set_noisegate_type(int type);
void set_gate_option(guint32 option, int x);
void set_noisegate_on_off(gboolean val);
void set_chorusfx_option(guint32 option, int x);
void set_chorusfx_type(int type);
void set_chorusfx_on_off(gboolean val);
void set_delay_time(int x);
void set_delay_type(int type);
void set_delay_option(guint32 option, int x);
void set_delay_on_off(gboolean val);
void set_reverb_option(guint32 option, int x);
void set_reverb_type(int type);
void set_reverb_on_off(gboolean val);

14
gui.c
View File

@@ -66,8 +66,9 @@ GtkWidget *create_on_off_button(const gchar *label, gboolean state, void (*callb
}
typedef struct {
gint id; /* effect group ID */
void (*callback)(int); /* callback to call when switching to this effect group */
gint id; /* effect group ID (value) */
gint option; /* option ID */
gint position; /* position */
GtkWidget *child; /* child widget */
} EffectSettingsGroup;
@@ -97,8 +98,8 @@ void combo_box_changed_cb(GtkComboBox *widget, gpointer data)
settings = g_object_get_data(G_OBJECT(widget), name);
g_free(name);
if (settings->callback != NULL)
settings->callback(settings->id);
if (settings != NULL)
set_option(settings->option, settings->position, settings->id);
child = g_object_get_data(G_OBJECT(widget), "active_child");
if (child != NULL) {
@@ -138,13 +139,14 @@ GtkWidget *create_widget_container(WidgetContainer *widgets, gint amt)
settings = g_malloc(sizeof(EffectSettingsGroup));
settings->id = widgets[x].id;
settings->callback = widgets[x].callback;
settings->option = widgets[x].option;
settings->position = widgets[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 if (widgets[x].id == -1) {
} else {
widget = create_table(widgets[x].widgets, widgets[x].widgets_amt);
gtk_container_add(GTK_CONTAINER(vbox), widget);
}

112
tests.c
View File

@@ -20,7 +20,7 @@ void test_wah()
{
int x;
set_wah_type(WAH_TYPE_CRY);
set_option(WAH_TYPE, WAH_POSITION, WAH_TYPE_CRY);
for (x=0; x<=99; x++)
set_option(WAH_MIN, WAH_POSITION_MIN_MAX, x);
@@ -30,7 +30,7 @@ void test_wah()
for (x=0; x<=12; x++)
set_option(WAH_LEVEL, WAH_POSITION, x);
set_wah_type(WAH_TYPE_FULLRANGE);
set_option(WAH_TYPE, WAH_POSITION, WAH_TYPE_FULLRANGE);
for (x=0; x<=99; x++)
set_option(WAH_MIN, WAH_POSITION_MIN_MAX, x);
@@ -40,7 +40,7 @@ void test_wah()
for (x=0; x<=12; x++)
set_option(WAH_LEVEL, WAH_POSITION, x);
set_wah_type(WAH_TYPE_CLYDE);
set_option(WAH_TYPE, WAH_POSITION, WAH_TYPE_CLYDE);
for (x=0; x<=99; x++)
set_option(WAH_MIN, WAH_POSITION_MIN_MAX, x);
@@ -58,7 +58,7 @@ void test_compressor()
{
int x;
set_comp_type(COMP_TYPE_DIGI);
set_option(COMP_TYPE, COMP_POSITION, COMP_TYPE_DIGI);
for (x=0; x<=99; x++)
set_option(COMP_SUSTAIN, COMP_POSITION, x);
@@ -71,7 +71,7 @@ void test_compressor()
for (x=0; x<=99; x++)
set_option(COMP_LEVEL, COMP_POSITION, x);
set_comp_type(COMP_TYPE_CS);
set_option(COMP_TYPE, COMP_POSITION, COMP_TYPE_CS);
for (x=0; x<=99; x++)
set_option(COMP_SUSTAIN, COMP_POSITION, x);
@@ -89,7 +89,7 @@ void test_dist()
{
int x;
set_dist_type(DIST_TYPE_SCREAMER);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_SCREAMER);
for (x=0; x<=99; x++)
set_option(DIST_SCREAMER_DRIVE, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -97,7 +97,7 @@ void test_dist()
for (x=0; x<=99; x++)
set_option(DIST_SCREAMER_LVL, DIST_POSITION, x);
set_dist_type(DIST_TYPE_808);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_808);
for (x=0; x<=99; x++)
set_option(DIST_808_OVERDRIVE, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -105,19 +105,19 @@ void test_dist()
for (x=0; x<=99; x++)
set_option(DIST_808_LVL, DIST_POSITION, x);
set_dist_type(DIST_TYPE_GUYOD);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_GUYOD);
for (x=0; x<=99; x++)
set_option(DIST_GUYOD_DRIVE, DIST_POSITION, x);
for (x=0; x<=99; x++)
set_option(DIST_GUYOD_LVL, DIST_POSITION, x);
set_dist_type(DIST_TYPE_DOD250);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_DOD250);
for (x=0; x<=99; x++)
set_option(DIST_DOD250_GAIN, DIST_POSITION, x);
for (x=0; x<=99; x++)
set_option(DIST_DOD250_LVL, DIST_POSITION, x);
set_dist_type(DIST_TYPE_RODENT);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_RODENT);
for (x=0; x<=99; x++)
set_option(DIST_RODENT_DIST, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -125,13 +125,13 @@ void test_dist()
for (x=0; x<=99; x++)
set_option(DIST_RODENT_LVL, DIST_POSITION, x);
set_dist_type(DIST_TYPE_MX);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_MX);
for (x=0; x<=99; x++)
set_option(DIST_MX_DIST, DIST_POSITION, x);
for (x=0; x<=99; x++)
set_option(DIST_MX_OUTPUT, DIST_POSITION, x);
set_dist_type(DIST_TYPE_DS);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_DS);
for (x=0; x<=99; x++)
set_option(DIST_DS_GAIN, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -139,7 +139,7 @@ void test_dist()
for (x=0; x<=99; x++)
set_option(DIST_DS_LVL, DIST_POSITION, x);
set_dist_type(DIST_TYPE_GRUNGE);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_GRUNGE);
for (x=0; x<=99; x++)
set_option(DIST_GRUNGE_GRUNGE, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -149,7 +149,7 @@ void test_dist()
for (x=0; x<=99; x++)
set_option(DIST_GRUNGE_BUTT, DIST_POSITION, x);
set_dist_type(DIST_TYPE_ZONE);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_ZONE);
for (x=0; x<=99; x++)
set_option(DIST_ZONE_GAIN, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -163,7 +163,7 @@ void test_dist()
for (x=0; x<=99; x++)
set_option(DIST_ZONE_LEVEL, DIST_POSITION, x);
set_dist_type(DIST_TYPE_DEATH);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_DEATH);
for (x=0; x<=99; x++)
set_option(DIST_DEATH_LOW, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -173,7 +173,7 @@ void test_dist()
for (x=0; x<=99; x++)
set_option(DIST_DEATH_LVL, DIST_POSITION, x);
set_dist_type(DIST_TYPE_GONK);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_GONK);
for (x=0; x<=99; x++)
set_option(DIST_GONK_GONK, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -183,13 +183,13 @@ void test_dist()
for (x=0; x<=99; x++)
set_option(DIST_GONK_HEAVE, DIST_POSITION, x);
set_dist_type(DIST_TYPE_FUZZY);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_FUZZY);
for (x=0; x<=99; x++)
set_option(DIST_FUZZY_FUZZ, DIST_POSITION, x);
for (x=0; x<=99; x++)
set_option(DIST_FUZZY_VOLUME, DIST_POSITION, x);
set_dist_type(DIST_TYPE_MP);
set_option(DIST_TYPE, DIST_POSITION, DIST_TYPE_MP);
for (x=0; x<=99; x++)
set_option(DIST_MP_SUSTAIN, DIST_POSITION, x);
for (x=0; x<=99; x++)
@@ -217,8 +217,8 @@ void test_presets()
void test_pickups()
{
set_pickup_type(PICKUP_TYPE_HB_SC);
set_pickup_type(PICKUP_TYPE_SC_HB);
set_option(PICKUP_TYPE, PICKUP_POSITION, PICKUP_TYPE_HB_SC);
set_option(PICKUP_TYPE, PICKUP_POSITION, PICKUP_TYPE_SC_HB);
set_pickup_on_off(TRUE);
set_pickup_on_off(FALSE);
@@ -228,10 +228,10 @@ void test_eq()
{
int x;
set_eq_type(EQ_TYPE_BRIGHT);
set_eq_type(EQ_TYPE_MIDBOOST);
set_eq_type(EQ_TYPE_SCOOP);
set_eq_type(EQ_TYPE_WARM);
set_option(EQ_TYPE, EQ_POSITION, EQ_TYPE_BRIGHT);
set_option(EQ_TYPE, EQ_POSITION, EQ_TYPE_MIDBOOST);
set_option(EQ_TYPE, EQ_POSITION, EQ_TYPE_SCOOP);
set_option(EQ_TYPE, EQ_POSITION, EQ_TYPE_WARM);
for (x=0; x<=99; x++)
set_option(AMP_GAIN, AMP_POSITION, x);
@@ -257,7 +257,7 @@ void test_noisegate()
{
int x;
set_noisegate_type(NOISEGATE_GATE);
set_option(NOISEGATE_TYPE, NOISEGATE_POSITION, NOISEGATE_GATE);
for (x=0; x<=99; x++)
set_option(NOISEGATE_GATE_TRESHOLD, NOISEGATE_POSITION, x);
for (x=0; x<=99; x++)
@@ -267,7 +267,7 @@ void test_noisegate()
for (x=0; x<=99; x++)
set_option(NOISEGATE_ATTN, NOISEGATE_POSITION, x);
set_noisegate_type(NOISEGATE_SWELL);
set_option(NOISEGATE_TYPE, NOISEGATE_POSITION, NOISEGATE_SWELL);
for (x=0; x<=99; x++)
set_option(NOISEGATE_SWELL_SENS, NOISEGATE_POSITION, x);
for (x=0; x<=99; x++)
@@ -285,13 +285,13 @@ void test_chorusfx()
{
int x;
set_chorusfx_type(CHORUS_TYPE_CE);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_CE);
for (x=0; x<=99; x++)
set_option(CE_CHORUS_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
set_option(CE_CHORUS_DEPTH, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_DUAL);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_DUAL);
for (x=0; x<=99; x++)
set_option(DUAL_CHORUS_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -302,7 +302,7 @@ void test_chorusfx()
set_option(DUAL_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_SINE);
set_option(DUAL_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_SQUARE);
set_chorusfx_type(CHORUS_TYPE_MULTI);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_MULTI);
for (x=0; x<=99; x++)
set_option(MULTI_CHORUS_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -313,7 +313,7 @@ void test_chorusfx()
set_option(MULTI_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_SINE);
set_option(MULTI_CHORUS_WAVE, CHORUSFX_POSITION, WAVE_SQUARE);
set_chorusfx_type(CHORUS_TYPE_FLANGER);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_FLANGER);
for (x=0; x<=99; x++)
set_option(FLANGER_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -326,7 +326,7 @@ void test_chorusfx()
set_option(FLANGER_WAVE, CHORUSFX_POSITION, WAVE_SINE);
set_option(FLANGER_WAVE, CHORUSFX_POSITION, WAVE_SQUARE);
set_chorusfx_type(CHORUS_TYPE_MXR_FLANGER);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_MXR_FLANGER);
for (x=0; x<=99; x++)
set_option(MXR_FLANGER_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -336,7 +336,7 @@ void test_chorusfx()
for (x=0; x<=99; x++)
set_option(MXR_FLANGER_MANUAL, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_PHASER);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_PHASER);
for (x=0; x<=99; x++)
set_option(PHASER_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -349,13 +349,13 @@ void test_chorusfx()
set_option(PHASER_WAVE, CHORUSFX_POSITION, WAVE_SINE);
set_option(PHASER_WAVE, CHORUSFX_POSITION, WAVE_SQUARE);
set_chorusfx_type(CHORUS_TYPE_VIBRATO);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_VIBRATO);
for (x=0; x<=99; x++)
set_option(VIBRATO_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
set_option(VIBRATO_DEPTH, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_ROTARY);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_ROTARY);
for (x=0; x<=99; x++)
set_option(ROTARY_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -365,7 +365,7 @@ void test_chorusfx()
for (x=0; x<=99; x++)
set_option(ROTARY_CROSSOVER, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_VIBROPAN);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_VIBROPAN);
for (x=0; x<=99; x++)
set_option(VIBROPAN_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -376,7 +376,7 @@ void test_chorusfx()
set_option(VIBROPAN_WAVE, CHORUSFX_POSITION, WAVE_SINE);
set_option(VIBROPAN_WAVE, CHORUSFX_POSITION, WAVE_SQUARE);
set_chorusfx_type(CHORUS_TYPE_TREMOLO);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_TREMOLO);
for (x=0; x<=99; x++)
set_option(TREMOLO_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -385,7 +385,7 @@ void test_chorusfx()
set_option(TREMOLO_WAVE, CHORUSFX_POSITION, WAVE_SINE);
set_option(TREMOLO_WAVE, CHORUSFX_POSITION, WAVE_SQUARE);
set_chorusfx_type(CHORUS_TYPE_PANNER);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_PANNER);
for (x=0; x<=99; x++)
set_option(PANNER_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -394,13 +394,13 @@ void test_chorusfx()
set_option(PANNER_WAVE, CHORUSFX_POSITION, WAVE_SINE);
set_option(PANNER_WAVE, CHORUSFX_POSITION, WAVE_SQUARE);
set_chorusfx_type(CHORUS_TYPE_ENVELOPE);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_ENVELOPE);
for (x=0; x<=99; x++)
set_option(ENVELOPE_SENSITIVITY, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
set_option(ENVELOPE_RANGE, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_AUTOYA);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_AUTOYA);
for (x=0; x<=99; x++)
set_option(AUTOYA_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -408,7 +408,7 @@ void test_chorusfx()
for (x=0; x<=0x31; x++)
set_option(AUTOYA_RANGE, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_YAYA);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_YAYA);
for (x=0; x<=99; x++)
set_option(YAYA_PEDAL, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
@@ -416,13 +416,13 @@ void test_chorusfx()
for (x=0; x<=0x31; x++)
set_option(YAYA_RANGE, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_STEP_FILTER);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_STEP_FILTER);
for (x=0; x<=99; x++)
set_option(STEP_FILTER_SPEED, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
set_option(STEP_FILTER_INTENSITY, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_WHAMMY);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_WHAMMY);
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);
@@ -444,19 +444,19 @@ void test_chorusfx()
for (x=0; x<=99; x++)
set_option(WHAMMY_MIX, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_PITCH_SHIFT);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_PITCH_SHIFT);
for (x=0; x<=0x30; x++)
set_option(PITCH_AMOUNT, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
set_option(PITCH_MIX, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_DETUNE);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_DETUNE);
for (x=0; x<=0x30; x++)
set_option(DETUNE_AMOUNT, CHORUSFX_POSITION, x);
for (x=0; x<=99; x++)
set_option(DETUNE_LEVEL, CHORUSFX_POSITION, x);
set_chorusfx_type(CHORUS_TYPE_IPS);
set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, CHORUS_TYPE_IPS);
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);
@@ -500,7 +500,7 @@ void test_delay()
{
int x;
set_delay_type(DELAY_TYPE_ANALOG);
set_option(DELAY_TYPE, DELAY_POSITION, DELAY_TYPE_ANALOG);
for (x=0; x<=139; x++)
set_option(DELAY_TIME, DELAY_POSITION, x);
for (x=0; x<=99; x++)
@@ -508,7 +508,7 @@ void test_delay()
for (x=0; x<=100; x++)
set_option(ANALOG_REPEATS, DELAY_POSITION, x);
set_delay_type(DELAY_TYPE_DIGITAL);
set_option(DELAY_TYPE, DELAY_POSITION, DELAY_TYPE_DIGITAL);
for (x=0; x<=139; x++)
set_option(DELAY_TIME, DELAY_POSITION, x);
for (x=0; x<=99; x++)
@@ -520,7 +520,7 @@ void test_delay()
for (x=0; x<=99; x++)
set_option(DIGITAL_DUCKER_LEVEL, DELAY_POSITION, x);
set_delay_type(DELAY_TYPE_MODULATED);
set_option(DELAY_TYPE, DELAY_POSITION, DELAY_TYPE_MODULATED);
for (x=0; x<=139; x++)
set_option(DELAY_TIME, DELAY_POSITION, x);
for (x=0; x<=99; x++)
@@ -530,7 +530,7 @@ void test_delay()
for (x=0; x<=99; x++)
set_option(MODULATED_DEPTH, DELAY_POSITION, x);
set_delay_type(DELAY_TYPE_PONG);
set_option(DELAY_TYPE, DELAY_POSITION, DELAY_TYPE_PONG);
for (x=0; x<=139; x++)
set_option(DELAY_TIME, DELAY_POSITION, x);
for (x=0; x<=99; x++)
@@ -542,7 +542,7 @@ void test_delay()
for (x=0; x<=99; x++)
set_option(PONG_DUCKER_LEVEL, DELAY_POSITION, x);
set_delay_type(DELAY_TYPE_TAPE);
set_option(DELAY_TYPE, DELAY_POSITION, DELAY_TYPE_TAPE);
for (x=0; x<=139; x++)
set_option(DELAY_TIME, DELAY_POSITION, x);
for (x=0; x<=99; x++)
@@ -562,11 +562,11 @@ void test_reverb()
{
int x;
set_reverb_type(REVERB_TYPE_TWIN);
set_option(REVERB_TYPE, REVERB_POSITION, REVERB_TYPE_TWIN);
for (x=0; x<=99; x++)
set_option(TWIN_REVERB, REVERB_POSITION, x);
set_reverb_type(REVERB_TYPE_LEX_AMBIENCE);
set_option(REVERB_TYPE, REVERB_POSITION, REVERB_TYPE_LEX_AMBIENCE);
for (x=0; x<=15; x++)
set_option(LEX_AMBIENCE_PREDELAY, REVERB_POSITION, x);
for (x=0; x<=99; x++)
@@ -576,7 +576,7 @@ void test_reverb()
for (x=0; x<=99; x++)
set_option(LEX_AMBIENCE_LEVEL, REVERB_POSITION, x);
set_reverb_type(REVERB_TYPE_LEX_STUDIO);
set_option(REVERB_TYPE, REVERB_POSITION, REVERB_TYPE_LEX_STUDIO);
for (x=0; x<=15; x++)
set_option(LEX_STUDIO_PREDELAY, REVERB_POSITION, x);
for (x=0; x<=99; x++)
@@ -586,7 +586,7 @@ void test_reverb()
for (x=0; x<=99; x++)
set_option(LEX_STUDIO_LEVEL, REVERB_POSITION, x);
set_reverb_type(REVERB_TYPE_LEX_ROOM);
set_option(REVERB_TYPE, REVERB_POSITION, REVERB_TYPE_LEX_ROOM);
for (x=0; x<=15; x++)
set_option(LEX_ROOM_PREDELAY, REVERB_POSITION, x);
for (x=0; x<=99; x++)
@@ -596,7 +596,7 @@ void test_reverb()
for (x=0; x<=99; x++)
set_option(LEX_ROOM_LEVEL, REVERB_POSITION, x);
set_reverb_type(REVERB_TYPE_LEX_HALL);
set_option(REVERB_TYPE, REVERB_POSITION, REVERB_TYPE_LEX_HALL);
for (x=0; x<=15; x++)
set_option(LEX_HALL_PREDELAY, REVERB_POSITION, x);
for (x=0; x<=99; x++)
@@ -606,7 +606,7 @@ void test_reverb()
for (x=0; x<=99; x++)
set_option(LEX_HALL_LEVEL, REVERB_POSITION, x);
set_reverb_type(REVERB_TYPE_EMT240_PLATE);
set_option(REVERB_TYPE, REVERB_POSITION, REVERB_TYPE_EMT240_PLATE);
for (x=0; x<=15; x++)
set_option(EMT240_PLATE_PREDELAY, REVERB_POSITION, x);
for (x=0; x<=99; x++)