Skip to content

Commit

Permalink
ASE: lv2device.cc: support LV2 plugins without display
Browse files Browse the repository at this point in the history
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
  • Loading branch information
swesterfeld committed Jan 28, 2024
1 parent e7098a4 commit d2653b1
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions ase/lv2device.cc
Original file line number Diff line number Diff line change
Expand Up @@ -782,8 +782,11 @@ class PluginHost
x11wrapper = get_x11wrapper();
if (x11wrapper)
{
suil_host = x11wrapper->create_suil_host (PluginInstance::host_ui_write, PluginInstance::host_ui_index);
// TODO: free suil_host when done
if (x11wrapper->have_display())
{
suil_host = x11wrapper->create_suil_host (PluginInstance::host_ui_write, PluginInstance::host_ui_index);
// TODO: free suil_host when done
}
}

world = lilv_world_new();
Expand All @@ -798,6 +801,7 @@ class PluginHost
static PluginHost host;
return host;
}
bool have_display() { return suil_host != nullptr; }
PluginInstance *instantiate (const char *plugin_uri, uint sample_rate, PortRestoreHelper *port_restore_helper, const ControlChangedCallback& callback);

private:
Expand Down Expand Up @@ -956,6 +960,7 @@ PluginUI::PluginUI (PluginHost &plugin_host, PluginInstance *plugin_instance, co
plugin_host_ (plugin_host)
{
assert_return (this_thread_is_gtk());
assert_return (PluginHost::the().have_display());

plugin_instance_ = plugin_instance;

Expand Down Expand Up @@ -2291,12 +2296,13 @@ class LV2Processor : public AudioProcessor {
bool
gui_supported()
{
return plugin_instance_->gui_supported();
return plugin_host_.have_display() && plugin_instance_->gui_supported();
}
void
gui_toggle()
{
gtk_thread ([&] { plugin_instance_->toggle_ui(); });
if (plugin_host_.have_display())
gtk_thread ([&] { plugin_instance_->toggle_ui(); });
}
void
save_state (WritNode &xs, const string& device_path, ProjectImpl *project)
Expand Down

0 comments on commit d2653b1

Please sign in to comment.