diff options
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | src/jalv.c | 11 | ||||
-rw-r--r-- | src/jalv_internal.h | 3 |
3 files changed, 16 insertions, 2 deletions
@@ -2,8 +2,10 @@ jalv (1.4.3) unstable; * Hide controls for ports with notOnGUI property in generic UI (based on patch from Robin Gareus) + * Support ui:portMap feature to allow UIs to avoid hard-coded port indices + (useful for compatibility and separately distributed UIs) - -- David Robillard <d@drobilla.net> Thu, 31 Oct 2013 22:38:42 -0400 + -- David Robillard <d@drobilla.net> Fri, 01 Nov 2013 18:20:19 -0400 jalv (1.4.2) stable; @@ -644,7 +644,7 @@ jack_session_cb(jack_session_event_t* event, void* arg) void jalv_ui_instantiate(Jalv* jalv, const char* native_ui_type, void* parent) { - jalv->ui_host = suil_host_new(jalv_ui_write, NULL, NULL, NULL); + jalv->ui_host = suil_host_new(jalv_ui_write, jalv_ui_port_index, NULL, NULL); const LV2_Feature parent_feature = { LV2_UI__parent, parent @@ -747,6 +747,15 @@ jalv_ui_write(SuilController controller, jack_ringbuffer_write(jalv->ui_events, buf, sizeof(buf)); } +uint32_t +jalv_ui_port_index(SuilController controller, const char* symbol) +{ + Jalv* const jalv = (Jalv*)controller; + struct Port* port = jalv_port_by_symbol(jalv, symbol); + + return port ? port->index : LV2UI_INVALID_PORT_INDEX; +} + bool jalv_emit_ui_events(Jalv* jalv) { diff --git a/src/jalv_internal.h b/src/jalv_internal.h index 8ea45df..5bcb175 100644 --- a/src/jalv_internal.h +++ b/src/jalv_internal.h @@ -237,6 +237,9 @@ jalv_ui_write(SuilController controller, uint32_t protocol, const void* buffer); +uint32_t +jalv_ui_port_index(SuilController controller, const char* port_symbol); + void jalv_ui_port_event(Jalv* jalv, uint32_t port_index, |