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[] = {
|
||||
{"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)},
|
||||
{"Wah", gnx3k_wah_effect, G_N_ELEMENTS(gnx3k_wah_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)},
|
||||
};
|
||||
|
||||
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[] = {
|
||||
{"User Presets", PRESETS_USER},
|
||||
{"System Presets", PRESETS_SYSTEM},
|
||||
@@ -1988,12 +1991,29 @@ static Banks gnx3k_banks[] = {
|
||||
{"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 = {
|
||||
.name = "DigiTech RP250",
|
||||
.family_id = 0x5E,
|
||||
.product_id = 0x02,
|
||||
.effects = rp250_effects,
|
||||
.n_effects = G_N_ELEMENTS(rp250_effects),
|
||||
.pages = rp250_pages,
|
||||
.n_pages = G_N_ELEMENTS(rp250_pages),
|
||||
.banks = rp_banks,
|
||||
.n_banks = G_N_ELEMENTS(rp_banks),
|
||||
};
|
||||
@@ -2002,8 +2022,8 @@ static Device rp500 = {
|
||||
.name = "DigiTech RP500",
|
||||
.family_id = 0x5E,
|
||||
.product_id = 0x05,
|
||||
.effects = rp500_effects,
|
||||
.n_effects = G_N_ELEMENTS(rp500_effects),
|
||||
.pages = rp500_pages,
|
||||
.n_pages = G_N_ELEMENTS(rp500_pages),
|
||||
.banks = rp_banks,
|
||||
.n_banks = G_N_ELEMENTS(rp_banks),
|
||||
};
|
||||
@@ -2012,8 +2032,8 @@ static Device gnx4 = {
|
||||
.name = "DigiTech GNX4",
|
||||
.family_id = 0x5C,
|
||||
.product_id = 0x03,
|
||||
.effects = gnx4_effects,
|
||||
.n_effects = G_N_ELEMENTS(gnx4_effects),
|
||||
.pages = gnx4_pages,
|
||||
.n_pages = G_N_ELEMENTS(gnx4_pages),
|
||||
.banks = gnx4_banks,
|
||||
.n_banks = G_N_ELEMENTS(gnx4_banks),
|
||||
};
|
||||
@@ -2022,8 +2042,8 @@ static Device gnx3000 = {
|
||||
.name = "DigiTech GNX3000",
|
||||
.family_id = 0x5C,
|
||||
.product_id = 0x04,
|
||||
.effects = gnx3000_effects,
|
||||
.n_effects = G_N_ELEMENTS(gnx3000_effects),
|
||||
.pages = gnx3000_pages,
|
||||
.n_pages = G_N_ELEMENTS(gnx3000_pages),
|
||||
.banks = gnx3k_banks,
|
||||
.n_banks = G_N_ELEMENTS(gnx3k_banks),
|
||||
};
|
||||
|
||||
11
effects.h
11
effects.h
@@ -61,6 +61,13 @@ typedef struct {
|
||||
gint group_amt;
|
||||
} ModifierGroup;
|
||||
|
||||
typedef struct {
|
||||
gchar *name;
|
||||
EffectList *effects;
|
||||
gint n_effects;
|
||||
gint n_rows;
|
||||
} EffectPage;
|
||||
|
||||
typedef struct {
|
||||
gchar *name;
|
||||
PresetBank bank;
|
||||
@@ -70,8 +77,8 @@ typedef struct {
|
||||
gchar *name;
|
||||
unsigned char family_id;
|
||||
unsigned char product_id;
|
||||
EffectList *effects;
|
||||
gint n_effects;
|
||||
EffectPage *pages;
|
||||
gint n_pages;
|
||||
Banks *banks;
|
||||
gint n_banks;
|
||||
} Device;
|
||||
|
||||
28
gui.c
28
gui.c
@@ -940,8 +940,10 @@ void gui_create(Device *device)
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *widget;
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *sw; /* scrolled window to carry preset treeview */
|
||||
gint x;
|
||||
gint i;
|
||||
|
||||
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title(GTK_WINDOW(window), "gdigi");
|
||||
@@ -961,8 +963,8 @@ void gui_create(Device *device)
|
||||
widget = create_preset_tree(device);
|
||||
gtk_container_add(GTK_CONTAINER(sw), widget);
|
||||
|
||||
vbox = gtk_vbox_new(FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 2);
|
||||
notebook = gtk_notebook_new();
|
||||
gtk_box_pack_start(GTK_BOX(hbox), notebook, TRUE, TRUE, 2);
|
||||
|
||||
knob_anim = gtk_knob_animation_new_from_inline(knob_pixbuf);
|
||||
|
||||
@@ -971,13 +973,23 @@ void gui_create(Device *device)
|
||||
NULL, /* key destroy func */
|
||||
(GDestroyNotify) widget_tree_elem_free);
|
||||
|
||||
for (x = 0; x<device->n_effects; x++) {
|
||||
if ((x % ((device->n_effects+1)/2)) == 0) {
|
||||
hbox = gtk_hbox_new(FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 2);
|
||||
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), device->n_pages > 1 ? TRUE : FALSE);
|
||||
|
||||
for (i = 0; i<device->n_pages; i++) {
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user