Add support for LV2/KX transient-ID option

This commit is contained in:
Robin Gareus 2019-11-22 20:01:32 +01:00
parent 512c27d277
commit c2d44c0f05
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 16 additions and 8 deletions

View File

@ -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;

View File

@ -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 }
};