Fix slider callbacks (return FALSE so can drag without port event). Zero gain/pan vals. Set size requests on ranges.
This commit is contained in:
parent
7c178e31cc
commit
06c5522d12
13
drmr_ui.c
13
drmr_ui.c
@ -50,18 +50,22 @@ typedef struct {
|
|||||||
kits* kits;
|
kits* kits;
|
||||||
} DrMrUi;
|
} DrMrUi;
|
||||||
|
|
||||||
static void gain_callback(GtkRange* range, GtkScrollType type, gdouble value, gpointer data) {
|
static gboolean gain_callback(GtkRange* range, GtkScrollType type, gdouble value, gpointer data) {
|
||||||
DrMrUi* ui = (DrMrUi*)data;
|
DrMrUi* ui = (DrMrUi*)data;
|
||||||
int gidx = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(range),ui->gain_quark));
|
int gidx = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(range),ui->gain_quark));
|
||||||
float gain = (float)value;
|
float gain = (float)value;
|
||||||
|
ui->gain_vals[gidx] = gain;
|
||||||
ui->write(ui->controller,gidx+DRMR_GAIN_ONE,4,0,&gain);
|
ui->write(ui->controller,gidx+DRMR_GAIN_ONE,4,0,&gain);
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pan_callback(GtkRange* range, GtkScrollType type, gdouble value, gpointer data) {
|
static gboolean pan_callback(GtkRange* range, GtkScrollType type, gdouble value, gpointer data) {
|
||||||
DrMrUi* ui = (DrMrUi*)data;
|
DrMrUi* ui = (DrMrUi*)data;
|
||||||
int pidx = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(range),ui->pan_quark));
|
int pidx = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(range),ui->pan_quark));
|
||||||
float pan = (float)value;
|
float pan = (float)value;
|
||||||
|
ui->pan_vals[pidx] = pan;
|
||||||
ui->write(ui->controller,pidx+DRMR_PAN_ONE,4,0,&pan);
|
ui->write(ui->controller,pidx+DRMR_PAN_ONE,4,0,&pan);
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fill_sample_table(DrMrUi* ui, int samples, GtkWidget** gain_sliders, GtkWidget** pan_sliders) {
|
static void fill_sample_table(DrMrUi* ui, int samples, GtkWidget** gain_sliders, GtkWidget** pan_sliders) {
|
||||||
@ -85,6 +89,7 @@ static void fill_sample_table(DrMrUi* ui, int samples, GtkWidget** gain_sliders,
|
|||||||
hbox = gtk_hbox_new(false,0);
|
hbox = gtk_hbox_new(false,0);
|
||||||
|
|
||||||
gain_slider = gtk_vscale_new_with_range(GAIN_MIN,6.0,1.0);
|
gain_slider = gtk_vscale_new_with_range(GAIN_MIN,6.0,1.0);
|
||||||
|
gtk_widget_set_size_request(gain_slider,-1,50);
|
||||||
g_object_set_qdata (G_OBJECT(gain_slider),ui->gain_quark,GINT_TO_POINTER(si));
|
g_object_set_qdata (G_OBJECT(gain_slider),ui->gain_quark,GINT_TO_POINTER(si));
|
||||||
if (gain_sliders) gain_sliders[si] = gain_slider;
|
if (gain_sliders) gain_sliders[si] = gain_slider;
|
||||||
gtk_range_set_inverted(GTK_RANGE(gain_slider),true);
|
gtk_range_set_inverted(GTK_RANGE(gain_slider),true);
|
||||||
@ -103,6 +108,7 @@ static void fill_sample_table(DrMrUi* ui, int samples, GtkWidget** gain_sliders,
|
|||||||
gain_vbox = gtk_vbox_new(false,0);
|
gain_vbox = gtk_vbox_new(false,0);
|
||||||
|
|
||||||
pan_slider = gtk_hscale_new_with_range(-1.0,1.0,0.1);
|
pan_slider = gtk_hscale_new_with_range(-1.0,1.0,0.1);
|
||||||
|
gtk_widget_set_size_request(pan_slider,50,-1);
|
||||||
if (pan_sliders) pan_sliders[si] = pan_slider;
|
if (pan_sliders) pan_sliders[si] = pan_slider;
|
||||||
if (si < 32)
|
if (si < 32)
|
||||||
gtk_range_set_value(GTK_RANGE(pan_slider),ui->pan_vals[si]);
|
gtk_range_set_value(GTK_RANGE(pan_slider),ui->pan_vals[si]);
|
||||||
@ -133,6 +139,7 @@ static void fill_sample_table(DrMrUi* ui, int samples, GtkWidget** gain_sliders,
|
|||||||
row++;
|
row++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
gtk_widget_queue_resize(GTK_WIDGET(ui->sample_table));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char* nstrs = "C C#D D#E F F#G G#A A#B ";
|
static const char* nstrs = "C C#D D#E F F#G G#A A#B ";
|
||||||
@ -321,7 +328,9 @@ instantiate(const LV2UI_Descriptor* descriptor,
|
|||||||
// store previous gain/pan vals to re-apply to sliders when we
|
// store previous gain/pan vals to re-apply to sliders when we
|
||||||
// change kits
|
// change kits
|
||||||
ui->gain_vals = malloc(32*sizeof(float));
|
ui->gain_vals = malloc(32*sizeof(float));
|
||||||
|
memset(ui->gain_vals,0,32*sizeof(float));
|
||||||
ui->pan_vals = malloc(32*sizeof(float));
|
ui->pan_vals = malloc(32*sizeof(float));
|
||||||
|
memset(ui->pan_vals,0,32*sizeof(float));
|
||||||
ui->cols = 4;
|
ui->cols = 4;
|
||||||
fill_kit_combo(ui->kit_combo, ui->kits);
|
fill_kit_combo(ui->kit_combo, ui->kits);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user