From ccdbd4a61a97744197f37b4e4aa3fa7a1511db18 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Mon, 5 Apr 2021 02:36:18 +0200 Subject: [PATCH] Instantiate ccmap on UI side --- plugins/lv2/sfizz_lv2.h | 4 ++++ plugins/lv2/sfizz_ui.cpp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/plugins/lv2/sfizz_lv2.h b/plugins/lv2/sfizz_lv2.h index 5d82be52..06c078a7 100644 --- a/plugins/lv2/sfizz_lv2.h +++ b/plugins/lv2/sfizz_lv2.h @@ -92,3 +92,7 @@ sfizz_lv2_ccmap *sfizz_lv2_ccmap_create(LV2_URID_Map* map); void sfizz_lv2_ccmap_free(sfizz_lv2_ccmap *ccmap); LV2_URID sfizz_lv2_ccmap_map(const sfizz_lv2_ccmap *ccmap, int cc); int sfizz_lv2_ccmap_unmap(const sfizz_lv2_ccmap *ccmap, LV2_URID urid); + +struct sfizz_lv2_ccmap_delete { + void operator()(sfizz_lv2_ccmap* ccmap) const noexcept { sfizz_lv2_ccmap_free(ccmap); } +}; diff --git a/plugins/lv2/sfizz_ui.cpp b/plugins/lv2/sfizz_ui.cpp index d6073939..3986b41a 100644 --- a/plugins/lv2/sfizz_ui.cpp +++ b/plugins/lv2/sfizz_ui.cpp @@ -112,6 +112,7 @@ struct sfizz_ui_t : EditorController, VSTGUIEditorInterface { LV2_URID sfizz_sfz_file_uri; LV2_URID sfizz_scala_file_uri; LV2_URID sfizz_osc_blob_uri; + std::unique_ptr ccmap; uint8_t osc_temp[OSC_TEMP_SIZE]; alignas(LV2_Atom) uint8_t atom_temp[ATOM_TEMP_SIZE]; @@ -211,6 +212,7 @@ instantiate(const LV2UI_Descriptor *descriptor, self->sfizz_sfz_file_uri = map->map(map->handle, SFIZZ__sfzFile); self->sfizz_scala_file_uri = map->map(map->handle, SFIZZ__tuningfile); self->sfizz_osc_blob_uri = map->map(map->handle, SFIZZ__OSCBlob); + self->ccmap.reset(sfizz_lv2_ccmap_create(map)); // set up the resource path // * on Linux, this is determined by going 2 folders back from the SO path