Signal wish to show inline display in gui by lv2:optionalFeature

... in .ttl file rather than by extension_data() in code. That's more in the
spirit of LV2.
This commit is contained in:
Johannes Mueller 2017-07-23 21:10:07 +02:00 committed by Robin Gareus
parent e75db87bf6
commit 6663a26755
6 changed files with 14 additions and 10 deletions

View File

@ -278,7 +278,7 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
#ifdef LV2_EXTENDED
const LV2_Inline_Display_Interface* _display_interface;
bool _show_display_in_generic_gui;
bool _inline_display_in_gui;
const LV2_Midnam_Interface* _midname_interface;
#endif

View File

@ -190,6 +190,7 @@ public:
LilvNode* auto_automation_control; // atom:supports
LilvNode* auto_automation_controlled; // lv2:portProperty
LilvNode* auto_automation_controller; // lv2:portProperty
LilvNode* inline_display_in_gui; // lv2:optionalFeature
#endif
private:
@ -390,6 +391,7 @@ LV2Plugin::init(const void* c_plugin, framecnt_t rate)
_was_activated = false;
_has_state_interface = false;
_can_write_automation = false;
_inline_display_in_gui = false;
_max_latency = 0;
_current_latency = 0;
_impl->block_length = _session.get_block_size();
@ -547,8 +549,6 @@ LV2Plugin::init(const void* c_plugin, framecnt_t rate)
_display_interface = (const LV2_Inline_Display_Interface*)
extension_data (LV2_INLINEDISPLAY__interface);
_show_display_in_generic_gui = (bool) extension_data (LV2_INLINEDISPLAY__in_gui);
_midname_interface = (const LV2_Midnam_Interface*)
extension_data (LV2_MIDNAM__interface);
if (_midname_interface) {
@ -595,6 +595,9 @@ LV2Plugin::init(const void* c_plugin, framecnt_t rate)
if (lilv_nodes_contains (optional_features, _world.auto_can_write_automatation)) {
_can_write_automation = true;
}
if (lilv_nodes_contains (optional_features, _world.inline_display_in_gui)) {
_inline_display_in_gui = true;
}
lilv_nodes_free(optional_features);
#endif
@ -966,7 +969,7 @@ LV2Plugin::has_inline_display () {
bool
LV2Plugin::inline_display_in_gui () {
return _show_display_in_generic_gui;
return _inline_display_in_gui;
}
Plugin::Display_Image_Surface*
@ -3163,6 +3166,7 @@ LV2World::LV2World()
auto_automation_control = lilv_new_uri(world, LV2_AUTOMATE_URI__control);
auto_automation_controlled = lilv_new_uri(world, LV2_AUTOMATE_URI__controlled);
auto_automation_controller = lilv_new_uri(world, LV2_AUTOMATE_URI__controller);
inline_display_in_gui = lilv_new_uri(world, LV2_INLINEDISPLAY__in_gui);
#endif
#ifdef HAVE_LV2_1_2_0
bufz_powerOf2BlockLength = lilv_new_uri(world, LV2_BUF_SIZE__powerOf2BlockLength);

View File

@ -14,7 +14,8 @@
a lv2:Plugin, doap:Project, lv2:CompressorPlugin ;
lv2:optionalFeature <http://lv2plug.in/ns/lv2core#hardRTCapable> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#queue_draw> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#queue_draw> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#in_gui> ;
lv2:port [
a lv2:InputPort, lv2:ControlPort ;

View File

@ -876,9 +876,6 @@ extension_data(const char* uri)
if (!strcmp(uri, LV2_INLINEDISPLAY__interface)) {
return &display;
}
if (!strcmp(uri, LV2_INLINEDISPLAY__in_gui)) {
return &display;
}
#endif
return NULL;
}

View File

@ -14,7 +14,8 @@
a lv2:Plugin, doap:Project, lv2:CompressorPlugin ;
lv2:optionalFeature <http://lv2plug.in/ns/lv2core#hardRTCapable> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#queue_draw> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#queue_draw> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#in_gui> ;
lv2:port [
a lv2:InputPort, lv2:ControlPort ;

View File

@ -32,7 +32,8 @@ unit:db1
a lv2:Plugin, doap:Project, lv2:FilterPlugin ;
lv2:optionalFeature <http://lv2plug.in/ns/lv2core#hardRTCapable> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#queue_draw> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#queue_draw> ;
lv2:optionalFeature <http://harrisonconsoles.com/lv2/inlinedisplay#in_gui> ;
lv2:requiredFeature <http://lv2plug.in/ns/ext/options#options> ,
<http://lv2plug.in/ns/ext/urid#map> ;