summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-11-22 20:01:32 +0100
committerRobin Gareus <robin@gareus.org>2019-11-22 20:01:32 +0100
commitc2d44c0f05a0740a4a26c35849d6bf62998d0023 (patch)
tree5fb16615164bb06b3f32643d1d50335224a1ed38
parent512c27d27770f6d27b8e10ac606302d784919c35 (diff)
Add support for LV2/KX transient-ID option
-rw-r--r--libs/ardour/ardour/lv2_plugin.h12
-rw-r--r--libs/ardour/lv2_plugin.cc12
2 files changed, 16 insertions, 8 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h
index 247b7b603a..6682eed252 100644
--- a/libs/ardour/ardour/lv2_plugin.h
+++ b/libs/ardour/ardour/lv2_plugin.h
@@ -185,6 +185,9 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
static void set_global_ui_scale_factor (float s) {
_ui_scale_factor = s;
}
+ static void set_main_window_id (unsigned long id) {
+ _ui_transient_win_id = id;
+ }
private:
struct Impl;
@@ -332,10 +335,11 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
#endif
// Options passed to plugin
- int32_t _seq_size;
- static uint32_t _ui_background_color;
- static uint32_t _ui_foreground_color;
- static float _ui_scale_factor;
+ int32_t _seq_size;
+ static uint32_t _ui_background_color;
+ static uint32_t _ui_foreground_color;
+ static float _ui_scale_factor;
+ static unsigned long _ui_transient_win_id;
mutable unsigned _state_version;
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index bf30353b6b..c3ce6026ed 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -128,10 +128,11 @@ using namespace std;
using namespace ARDOUR;
using namespace PBD;
-bool LV2Plugin::force_state_save = false;
-uint32_t LV2Plugin::_ui_background_color = 0x000000ff; // RGBA
-uint32_t LV2Plugin::_ui_foreground_color = 0xffffffff; // RGBA
-float LV2Plugin::_ui_scale_factor = 1.0;
+bool LV2Plugin::force_state_save = false;
+uint32_t LV2Plugin::_ui_background_color = 0x000000ff; // RGBA
+uint32_t LV2Plugin::_ui_foreground_color = 0xffffffff; // RGBA
+float LV2Plugin::_ui_scale_factor = 1.0;
+unsigned long LV2Plugin::_ui_transient_win_id = 0;
class LV2World : boost::noncopyable {
public:
@@ -531,6 +532,7 @@ LV2Plugin::init(const void* c_plugin, samplecnt_t rate)
#endif
LV2_URID atom_Int = _uri_map.uri_to_id(LV2_ATOM__Int);
+ LV2_URID atom_Long = _uri_map.uri_to_id(LV2_ATOM__Long);
LV2_URID atom_Float = _uri_map.uri_to_id(LV2_ATOM__Float);
static const int32_t _min_block_length = 1; // may happen during split-cycles
@@ -565,6 +567,8 @@ LV2Plugin::init(const void* c_plugin, samplecnt_t rate)
sizeof(int32_t), atom_Int, &_ui_foreground_color },
{ LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id("http://lv2plug.in/ns/extensions/ui#scaleFactor"),
sizeof(float), atom_Float, &_ui_scale_factor },
+ { LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id("http://kxstudio.sf.net/ns/lv2ext/props#TransientWindowId"),
+ sizeof(int32_t), atom_Long, &_ui_transient_win_id },
{ LV2_OPTIONS_INSTANCE, 0, 0, 0, 0, NULL }
};