From 22aeaf8ffa1e8c9665f4d1a74acc133c1858d467 Mon Sep 17 00:00:00 2001 From: Tim LaBerge Date: Mon, 17 Dec 2012 06:58:44 -0800 Subject: [PATCH] Enable tone/effects library for rp355. Implement the recent addition of the tone/effects library for the rp355. Get rid of USB_POSITION. Add tone lib A for rp355. Minor comment changes. Remove a couple of commented out lines. --- effects.c | 35 ++++++++++++++++++++++++++--------- gdigi.h | 1 - gdigi_xml.h | 1 - 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/effects.c b/effects.c index 872898c..c8654c0 100644 --- a/effects.c +++ b/effects.c @@ -725,7 +725,7 @@ static EffectSettings global_settings[] = { {"USB Level", USB_AUDIO_LEVEL, GLOBAL_POSITION, &values_m12_to_24}, {"GUI Mode", GUI_MODE_ON_OFF, GLOBAL_POSITION, &values_on_off}, {"Tuning Reference", TUNING_REFERENCE, GLOBAL_POSITION, &values_0_to_29}, - {"Pedal Position", EXP_PEDAL_LEVEL, USB_POSITION, &values_0_to_255}, + {"Pedal Position", EXP_PEDAL_LEVEL, GLOBAL_POSITION, &values_0_to_255}, {"Stomp", STOMP_MODE, GLOBAL_POSITION, &values_on_off}, {"Wah Pedal Position", WAH_PEDAL_POSITION, WAH_POSITION, &values_0_to_99}, }; @@ -1599,6 +1599,13 @@ static EffectSettings reverb_lex_settings[] = { {"Level", REVERB_LEVEL, REVERB_POSITION, &values_0_to_99}, }; +static EffectSettings tone_lib_level_a_settings[] = { + {"Tone Effect Level", FX_LIB_LEVEL, LIB_POSITION_A, &values_0_to_99}, + {"Tone Level 1", FX_LIB_LEVEL_MAX1, LIB_POSITION_A, &values_0_to_99}, + {"Tone Level 2", FX_LIB_LEVEL_MAX2, LIB_POSITION_A, &values_0_to_99}, + {"Tone Level 3", FX_LIB_LEVEL_MAX3, LIB_POSITION_A, &values_0_to_99}, +}; + static EffectSettings tone_lib_level_b_settings[] = { {"Tone Effect Level", FX_LIB_LEVEL, LIB_POSITION_B, &values_0_to_99}, {"Tone Level 1", FX_LIB_LEVEL_MAX1, LIB_POSITION_B, &values_0_to_99}, @@ -1958,6 +1965,12 @@ static EffectGroup rp355_chorusfx_group[] = { {CHORUS_TYPE_OCTAVER, "Octaver", chorusfx_octaver_settings, G_N_ELEMENTS(chorusfx_octaver_settings)}, }; +/* + * The combo boxes for the pedal assign and lfo groups are populated dynamically + * from the RECEIVE_MODIFIER_LINKABLE_LIST. We request this message at startup + * and are sent this message asynchronously whenever the selected chorus/FX + * effect changes. + */ static EffectGroup rp355_pedal1_assign_group[] = { { 0, NULL, pedal1_assign_settings, G_N_ELEMENTS(pedal1_assign_settings)}, { 0, "None", NULL, 0}, @@ -2727,11 +2740,14 @@ static EffectGroup effects_lib_group[] = { {EFFECTS_LIB_ROTARY_TAPE, "Rotary + Tape Delay", NULL, -1}, }; +static EffectGroup tone_lib_level_a_group[] = { + {-1, NULL, tone_lib_level_a_settings, G_N_ELEMENTS(tone_lib_level_a_settings)}, +}; + static EffectGroup tone_lib_level_b_group[] = { {-1, NULL, tone_lib_level_b_settings, G_N_ELEMENTS(tone_lib_level_b_settings)}, }; - static EffectGroup pickup_group[] = { {PICKUP_TYPE_HB_SC, "HB>SC", NULL, -1}, {PICKUP_TYPE_SC_HB, "SC>HB", NULL, -1}, @@ -2855,10 +2871,6 @@ static Effect rp355_lfo2_effect[] = { {NULL, -1, LFO_TYPE, LFO2_POSITION, rp355_lfo2_group, G_N_ELEMENTS(rp355_lfo2_group)}, }; -/* - * The elements of this group are discovered dynamically from the - * MODIFIER_LINKABLE_LIST message. - */ static Effect rp355_pedal1_assign_effect[] = { {NULL, -1, EXP_TYPE, EXP_POSITION, rp355_pedal1_assign_group, G_N_ELEMENTS(rp355_pedal1_assign_group)}, }; @@ -2979,7 +2991,7 @@ static Effect rp500_eq_effect[] = { }; static Effect global_effect[] = { - {NULL, -1, USB_AUDIO_LEVEL, USB_POSITION, global_group, G_N_ELEMENTS(global_group)}, + {NULL, -1, 0, GLOBAL_POSITION, global_group, G_N_ELEMENTS(global_group)}, }; static Effect pickup_misc_effect[] = { @@ -2997,6 +3009,12 @@ static Effect gnx3k_amp_channel_effect[] = { {NULL, -1, -1, -1, gnx3k_amp_channel_group, G_N_ELEMENTS(gnx3k_amp_channel_group)}, }; +static Effect tone_lib_effect_a[] = { + {NULL, -1, TONE_LIB_TYPE, LIB_POSITION_A, tone_lib_group, G_N_ELEMENTS(tone_lib_group)}, + {NULL, -1, FX_LIB_TYPE, LIB_POSITION_A, effects_lib_group, G_N_ELEMENTS(effects_lib_group)}, + {NULL, -1, FX_LIB_LEVEL, LIB_POSITION_A, tone_lib_level_a_group, G_N_ELEMENTS(tone_lib_level_a_group)}, +}; + static Effect tone_lib_effect_b[] = { {NULL, -1, TONE_LIB_TYPE, LIB_POSITION_B, tone_lib_group, G_N_ELEMENTS(tone_lib_group)}, {NULL, -1, FX_LIB_TYPE, LIB_POSITION_B, effects_lib_group, G_N_ELEMENTS(effects_lib_group)}, @@ -3076,6 +3094,7 @@ static EffectList rp355_effects[] = { {"LFO1", rp355_lfo1_effect, G_N_ELEMENTS(rp355_lfo1_effect)}, {"LFO2", rp355_lfo2_effect, G_N_ELEMENTS(rp355_lfo2_effect)}, {"Global Settings", global_effect, G_N_ELEMENTS(global_effect)}, + {"Tone Library", tone_lib_effect_a, G_N_ELEMENTS(tone_lib_effect_a)}, }; static EffectList rp500_effects[] = { @@ -4300,8 +4319,6 @@ ModifierGroup *modifier_linkable_list(GString *msg) guint count; guint i; - //send_message(REQUEST_MODIFIER_LINKABLE_LIST, "\x00\x01", 2); - unsigned char *str = (unsigned char*)msg->str; group_id = (str[8] << 8) | str[9]; diff --git a/gdigi.h b/gdigi.h index 3b9257a..92e81d9 100644 --- a/gdigi.h +++ b/gdigi.h @@ -976,7 +976,6 @@ enum { EFFECTS_LIB_CUSTOM = 1856 }; -#define USB_POSITION 0 #define GLOBAL_POSITION 0 #define TUNING_REFERENCE 12288 diff --git a/gdigi_xml.h b/gdigi_xml.h index b5f73b9..db06b2e 100644 --- a/gdigi_xml.h +++ b/gdigi_xml.h @@ -36,6 +36,5 @@ typedef struct { XmlSettings *get_xml_settings(guint id, guint position); gboolean value_is_extra(EffectValues *val, int value); gchar * map_xml_value(XmlSettings *xml, EffectValues *values, gint value); -// gchar *get_xml_label(guint id, guint position, gint type); #endif /* GDIGI_XML_H */