From 7e467e3a74331b9b32c2f49fb513aa5f5a78027f Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Wed, 13 Feb 2013 15:24:39 +0000 Subject: [PATCH 1/3] Fix crash on plugin close due to free on uninitialised pointer --- drmr_ui.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drmr_ui.c b/drmr_ui.c index b8f7702..ff02f93 100644 --- a/drmr_ui.c +++ b/drmr_ui.c @@ -647,6 +647,7 @@ instantiate(const LV2UI_Descriptor* descriptor, ui->trigger_quark = g_quark_from_string("drmr_trigger_quark"); ui->gain_sliders = NULL; ui->pan_sliders = NULL; + ui->notify_leds = NULL; // store previous gain/pan vals to re-apply to sliders when we // change kits From 190c9f3a36ef791903a86493056ffd2a82431766 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Wed, 13 Feb 2013 15:29:31 +0000 Subject: [PATCH 2/3] Move activity LED next to knobs to save screen estate --- drmr_ui.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drmr_ui.c b/drmr_ui.c index ff02f93..cea4c6d 100644 --- a/drmr_ui.c +++ b/drmr_ui.c @@ -248,7 +248,7 @@ static void fill_sample_table(DrMrUi* ui, int samples, char** names, GtkWidget** gtk_box_pack_start(GTK_BOX(button_box),gtk_label_new(""),true,true,0); - gtk_box_pack_start(GTK_BOX(vbox),button_box,false,false,0); + gtk_box_pack_start(GTK_BOX(hbox),button_box,false,false,0); g_object_set(vbox,"border-width",5,NULL); gtk_container_add(GTK_CONTAINER(frame),vbox); From 79f48b9eee6566fc6a8b929a589babff879b5862 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 15 Feb 2013 22:44:08 +0000 Subject: [PATCH 3/3] Check presence and number of samples before triggering activity LED --- drmr_ui.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drmr_ui.c b/drmr_ui.c index cea4c6d..71c3a64 100644 --- a/drmr_ui.c +++ b/drmr_ui.c @@ -285,8 +285,10 @@ static gboolean unset_bg(gpointer data) { } static void sample_triggered(DrMrUi *ui, int si) { - gtk_image_set_from_pixbuf(GTK_IMAGE(ui->notify_leds[si]),led_on_pixbuf); - g_timeout_add(200,unset_bg,ui->notify_leds[si]); + if (ui->notify_leds && si < ui->samples) { + gtk_image_set_from_pixbuf(GTK_IMAGE(ui->notify_leds[si]),led_on_pixbuf); + g_timeout_add(200,unset_bg,ui->notify_leds[si]); + } } static const char* nstrs = "C C#D D#E F F#G G#A A#B "; @@ -337,6 +339,7 @@ static gboolean kit_callback(gpointer data) { notify_leds = ui->notify_leds; gain_sliders = ui->gain_sliders; pan_sliders = ui->pan_sliders; + ui->samples = 0; ui->notify_leds = NULL; ui->gain_sliders = NULL; ui->pan_sliders = NULL;