26 #define LXVST_H_FIDDLE 40
39 LXVSTPluginUI::~LXVSTPluginUI ()
41 _screen_update_connection.disconnect();
49 LXVSTPluginUI::start_updating (GdkEventAny*)
51 _screen_update_connection.disconnect();
57 LXVSTPluginUI::stop_updating (GdkEventAny*)
59 _screen_update_connection.disconnect();
65 LXVSTPluginUI::resize_callback ()
71 if (!_vst->state()->want_resize) {
75 int new_height = _vst->state()->height;
76 int new_width = _vst->state()->width;
78 void* gtk_parent_window = _vst->state()->extra_data;
80 if (gtk_parent_window) {
81 ((Gtk::Window*) gtk_parent_window)->resize (new_width, new_height +
LXVST_H_FIDDLE);
84 _vst->state()->want_resize = 0;
88 LXVSTPluginUI::get_preferred_height ()
103 LXVSTPluginUI::package (Gtk::Window& win)
109 win.signal_map_event().connect (mem_fun (*
this, &LXVSTPluginUI::start_updating));
110 win.signal_unmap_event().connect (mem_fun (*
this, &LXVSTPluginUI::stop_updating));
112 _vst->state()->extra_data = (
void*) (&win);
113 _vst->state()->want_resize = 0;
119 LXVSTPluginUI::forward_key_event (GdkEventKey*)
121 std::cerr <<
"LXVSTPluginUI : keypress forwarding to linuxVSTs unsupported" << std::endl;
125 LXVSTPluginUI::get_XID ()
133 pthread_mutex_lock (&(_vst->state()->lock));
143 while (!(_vst->state()->been_activated)) {
147 int const id = _vst->state()->xid;
149 pthread_mutex_unlock (&(_vst->state()->lock));
168 std::cerr <<
"** ERROR ** LXVSTPluginUI : Trapped an X Window System Error" << std::endl;
176 vstfx_error_handler = XSetErrorHandler (NULL);
177 gtk_init (argc, argv);
178 the_gtk_display = gdk_x11_display_get_xdisplay (gdk_display_get_default());
static error_handler_t vstfx_error_handler
LIBARDOUR_API int vstfx_run_editor(VSTState *)
void gui_init(int *argc, char **argv[])
virtual int package(Gtk::Window &)
int(* error_handler_t)(Display *, XErrorEvent *)
static Display * the_gtk_display
static error_handler_t gtk_error_handler
virtual int get_preferred_height()
static int gtk_xerror_handler(Display *, XErrorEvent *)
sigc::connection rapid_connect(const sigc::slot< void > &slot)