display GNX3000 settings in tabs
This commit is contained in:
42
effects.c
42
effects.c
@@ -1956,9 +1956,6 @@ static EffectList gnx4_effects[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static EffectList gnx3000_effects[] = {
|
static EffectList gnx3000_effects[] = {
|
||||||
{"Channel 1", gnx3k_channel_1_effect, G_N_ELEMENTS(gnx3k_channel_1_effect)},
|
|
||||||
{"Channel 2", gnx3k_channel_2_effect, G_N_ELEMENTS(gnx3k_channel_2_effect)},
|
|
||||||
{"Amp Channel", gnx3k_amp_channel_effect, G_N_ELEMENTS(gnx3k_amp_channel_effect)},
|
|
||||||
{"Pickup", pickup_effect, G_N_ELEMENTS(pickup_effect)},
|
{"Pickup", pickup_effect, G_N_ELEMENTS(pickup_effect)},
|
||||||
{"Wah", gnx3k_wah_effect, G_N_ELEMENTS(gnx3k_wah_effect)},
|
{"Wah", gnx3k_wah_effect, G_N_ELEMENTS(gnx3k_wah_effect)},
|
||||||
{"Whammy/IPS", gnx3k_whammy_effect, G_N_ELEMENTS(gnx3k_whammy_effect)},
|
{"Whammy/IPS", gnx3k_whammy_effect, G_N_ELEMENTS(gnx3k_whammy_effect)},
|
||||||
@@ -1971,6 +1968,12 @@ static EffectList gnx3000_effects[] = {
|
|||||||
{"Reverb", gnx3k_reverb_effect, G_N_ELEMENTS(gnx3k_reverb_effect)},
|
{"Reverb", gnx3k_reverb_effect, G_N_ELEMENTS(gnx3k_reverb_effect)},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static EffectList gnx3000_genetx[] = {
|
||||||
|
{"Channel 1", gnx3k_channel_1_effect, G_N_ELEMENTS(gnx3k_channel_1_effect)},
|
||||||
|
{"Channel 2", gnx3k_channel_2_effect, G_N_ELEMENTS(gnx3k_channel_2_effect)},
|
||||||
|
{"Amp Channel", gnx3k_amp_channel_effect, G_N_ELEMENTS(gnx3k_amp_channel_effect)},
|
||||||
|
};
|
||||||
|
|
||||||
static Banks rp_banks[] = {
|
static Banks rp_banks[] = {
|
||||||
{"User Presets", PRESETS_USER},
|
{"User Presets", PRESETS_USER},
|
||||||
{"System Presets", PRESETS_SYSTEM},
|
{"System Presets", PRESETS_SYSTEM},
|
||||||
@@ -1988,12 +1991,29 @@ static Banks gnx3k_banks[] = {
|
|||||||
{"Factory 2", PRESETS_FACTORY2},
|
{"Factory 2", PRESETS_FACTORY2},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static EffectPage rp250_pages[] = {
|
||||||
|
{"Effects", rp250_effects, G_N_ELEMENTS(rp250_effects), 2},
|
||||||
|
};
|
||||||
|
|
||||||
|
static EffectPage rp500_pages[] = {
|
||||||
|
{"Effects", rp500_effects, G_N_ELEMENTS(rp500_effects), 2},
|
||||||
|
};
|
||||||
|
|
||||||
|
static EffectPage gnx4_pages[] = {
|
||||||
|
{"Effects", gnx4_effects, G_N_ELEMENTS(gnx4_effects), 2},
|
||||||
|
};
|
||||||
|
|
||||||
|
static EffectPage gnx3000_pages[] = {
|
||||||
|
{"Effects", gnx3000_effects, G_N_ELEMENTS(gnx3000_effects), 2},
|
||||||
|
{"Amp/GeNetX", gnx3000_genetx, G_N_ELEMENTS(gnx3000_genetx), 1},
|
||||||
|
};
|
||||||
|
|
||||||
static Device rp250 = {
|
static Device rp250 = {
|
||||||
.name = "DigiTech RP250",
|
.name = "DigiTech RP250",
|
||||||
.family_id = 0x5E,
|
.family_id = 0x5E,
|
||||||
.product_id = 0x02,
|
.product_id = 0x02,
|
||||||
.effects = rp250_effects,
|
.pages = rp250_pages,
|
||||||
.n_effects = G_N_ELEMENTS(rp250_effects),
|
.n_pages = G_N_ELEMENTS(rp250_pages),
|
||||||
.banks = rp_banks,
|
.banks = rp_banks,
|
||||||
.n_banks = G_N_ELEMENTS(rp_banks),
|
.n_banks = G_N_ELEMENTS(rp_banks),
|
||||||
};
|
};
|
||||||
@@ -2002,8 +2022,8 @@ static Device rp500 = {
|
|||||||
.name = "DigiTech RP500",
|
.name = "DigiTech RP500",
|
||||||
.family_id = 0x5E,
|
.family_id = 0x5E,
|
||||||
.product_id = 0x05,
|
.product_id = 0x05,
|
||||||
.effects = rp500_effects,
|
.pages = rp500_pages,
|
||||||
.n_effects = G_N_ELEMENTS(rp500_effects),
|
.n_pages = G_N_ELEMENTS(rp500_pages),
|
||||||
.banks = rp_banks,
|
.banks = rp_banks,
|
||||||
.n_banks = G_N_ELEMENTS(rp_banks),
|
.n_banks = G_N_ELEMENTS(rp_banks),
|
||||||
};
|
};
|
||||||
@@ -2012,8 +2032,8 @@ static Device gnx4 = {
|
|||||||
.name = "DigiTech GNX4",
|
.name = "DigiTech GNX4",
|
||||||
.family_id = 0x5C,
|
.family_id = 0x5C,
|
||||||
.product_id = 0x03,
|
.product_id = 0x03,
|
||||||
.effects = gnx4_effects,
|
.pages = gnx4_pages,
|
||||||
.n_effects = G_N_ELEMENTS(gnx4_effects),
|
.n_pages = G_N_ELEMENTS(gnx4_pages),
|
||||||
.banks = gnx4_banks,
|
.banks = gnx4_banks,
|
||||||
.n_banks = G_N_ELEMENTS(gnx4_banks),
|
.n_banks = G_N_ELEMENTS(gnx4_banks),
|
||||||
};
|
};
|
||||||
@@ -2022,8 +2042,8 @@ static Device gnx3000 = {
|
|||||||
.name = "DigiTech GNX3000",
|
.name = "DigiTech GNX3000",
|
||||||
.family_id = 0x5C,
|
.family_id = 0x5C,
|
||||||
.product_id = 0x04,
|
.product_id = 0x04,
|
||||||
.effects = gnx3000_effects,
|
.pages = gnx3000_pages,
|
||||||
.n_effects = G_N_ELEMENTS(gnx3000_effects),
|
.n_pages = G_N_ELEMENTS(gnx3000_pages),
|
||||||
.banks = gnx3k_banks,
|
.banks = gnx3k_banks,
|
||||||
.n_banks = G_N_ELEMENTS(gnx3k_banks),
|
.n_banks = G_N_ELEMENTS(gnx3k_banks),
|
||||||
};
|
};
|
||||||
|
|||||||
11
effects.h
11
effects.h
@@ -61,6 +61,13 @@ typedef struct {
|
|||||||
gint group_amt;
|
gint group_amt;
|
||||||
} ModifierGroup;
|
} ModifierGroup;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
gchar *name;
|
||||||
|
EffectList *effects;
|
||||||
|
gint n_effects;
|
||||||
|
gint n_rows;
|
||||||
|
} EffectPage;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
gchar *name;
|
gchar *name;
|
||||||
PresetBank bank;
|
PresetBank bank;
|
||||||
@@ -70,8 +77,8 @@ typedef struct {
|
|||||||
gchar *name;
|
gchar *name;
|
||||||
unsigned char family_id;
|
unsigned char family_id;
|
||||||
unsigned char product_id;
|
unsigned char product_id;
|
||||||
EffectList *effects;
|
EffectPage *pages;
|
||||||
gint n_effects;
|
gint n_pages;
|
||||||
Banks *banks;
|
Banks *banks;
|
||||||
gint n_banks;
|
gint n_banks;
|
||||||
} Device;
|
} Device;
|
||||||
|
|||||||
28
gui.c
28
gui.c
@@ -940,8 +940,10 @@ void gui_create(Device *device)
|
|||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
GtkWidget *hbox;
|
GtkWidget *hbox;
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
|
GtkWidget *notebook;
|
||||||
GtkWidget *sw; /* scrolled window to carry preset treeview */
|
GtkWidget *sw; /* scrolled window to carry preset treeview */
|
||||||
gint x;
|
gint x;
|
||||||
|
gint i;
|
||||||
|
|
||||||
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||||
gtk_window_set_title(GTK_WINDOW(window), "gdigi");
|
gtk_window_set_title(GTK_WINDOW(window), "gdigi");
|
||||||
@@ -961,8 +963,8 @@ void gui_create(Device *device)
|
|||||||
widget = create_preset_tree(device);
|
widget = create_preset_tree(device);
|
||||||
gtk_container_add(GTK_CONTAINER(sw), widget);
|
gtk_container_add(GTK_CONTAINER(sw), widget);
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
notebook = gtk_notebook_new();
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 2);
|
gtk_box_pack_start(GTK_BOX(hbox), notebook, TRUE, TRUE, 2);
|
||||||
|
|
||||||
knob_anim = gtk_knob_animation_new_from_inline(knob_pixbuf);
|
knob_anim = gtk_knob_animation_new_from_inline(knob_pixbuf);
|
||||||
|
|
||||||
@@ -971,13 +973,23 @@ void gui_create(Device *device)
|
|||||||
NULL, /* key destroy func */
|
NULL, /* key destroy func */
|
||||||
(GDestroyNotify) widget_tree_elem_free);
|
(GDestroyNotify) widget_tree_elem_free);
|
||||||
|
|
||||||
for (x = 0; x<device->n_effects; x++) {
|
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), device->n_pages > 1 ? TRUE : FALSE);
|
||||||
if ((x % ((device->n_effects+1)/2)) == 0) {
|
|
||||||
hbox = gtk_hbox_new(FALSE, 0);
|
for (i = 0; i<device->n_pages; i++) {
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 2);
|
GtkWidget *label = NULL;
|
||||||
|
vbox = gtk_vbox_new(FALSE, 0);
|
||||||
|
label = gtk_label_new(device->pages[i].name);
|
||||||
|
|
||||||
|
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
|
||||||
|
|
||||||
|
for (x = 0; x<device->pages[i].n_effects; x++) {
|
||||||
|
if ((x % ((device->pages[i].n_effects+1)/device->pages[i].n_rows)) == 0) {
|
||||||
|
hbox = gtk_hbox_new(FALSE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 2);
|
||||||
|
}
|
||||||
|
widget = create_vbox(device->pages[i].effects[x].effect, device->pages[i].effects[x].amt, device->pages[i].effects[x].label);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 2);
|
||||||
}
|
}
|
||||||
widget = create_vbox(device->effects[x].effect, device->effects[x].amt, device->effects[x].label);
|
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
apply_current_preset();
|
apply_current_preset();
|
||||||
|
|||||||
Reference in New Issue
Block a user