aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2016-10-05 18:59:34 -0400
committerDavid Robillard <d@drobilla.net>2016-10-05 18:59:34 -0400
commitb5d63916aec46ffd71d982bd39f902a71f972c96 (patch)
tree13e1363576bdc10ba46e9cfc6c4120102af170b5
parent741586ae2aa4f928296a2b4c2dc03830ffaff833 (diff)
downloadlv2-b5d63916aec46ffd71d982bd39f902a71f972c96.tar.xz
Avoid repeatedly requesting the same peaks
-rw-r--r--plugins/eg-sampler.lv2/sampler_ui.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/plugins/eg-sampler.lv2/sampler_ui.c b/plugins/eg-sampler.lv2/sampler_ui.c
index 9ea662c..ac4601a 100644
--- a/plugins/eg-sampler.lv2/sampler_ui.c
+++ b/plugins/eg-sampler.lv2/sampler_ui.c
@@ -102,6 +102,10 @@ on_play_clicked(GtkFileChooserButton* widget, void* handle)
static void
request_peaks(SamplerUI* ui, uint32_t n_peaks)
{
+ if (n_peaks == ui->requested_n_peaks) {
+ return;
+ }
+
lv2_atom_forge_set_buffer(&ui->forge, ui->forge_buf, sizeof(ui->forge_buf));
LV2_Atom_Forge_Frame frame;
@@ -292,6 +296,7 @@ port_event(LV2UI_Handle handle,
gtk_file_chooser_set_filename(
GTK_FILE_CHOOSER(ui->file_button), path);
peaks_receiver_clear(&ui->precv);
+ ui->requested_n_peaks = 0;
request_peaks(ui, ui->width / 2 * 2);
} else if (!path) {
lv2_log_warning(&ui->logger, "Set message has no path\n");