X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fplugin_ui.h;h=c1d538b3d13e56ae9a4f6cd8015f4103a0a33589;hb=e35621772ee93f7fbadeac5ff636d2c83eb6780f;hp=162c26a4f5483d36818a795cc87e88cb5c90fd29;hpb=fe49c8de182d40528a27b84d5530698f438de51d;p=ardour.git diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index 162c26a4f5..c1d538b3d1 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2000 Paul Davis + Copyright (C) 2000-2006 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -45,14 +45,14 @@ #include namespace ARDOUR { - class AudioEngine; class PluginInsert; class Plugin; class VSTPlugin; class Redirect; + class AUPlugin; } -namespace MIDI { +namespace PBD { class Controllable; } @@ -67,7 +67,7 @@ namespace Gtkmm2ext { class PlugUIBase : public virtual sigc::trackable { public: - PlugUIBase (ARDOUR::PluginInsert&); + PlugUIBase (boost::shared_ptr); virtual ~PlugUIBase() {} virtual gint get_preferred_height () = 0; @@ -75,8 +75,8 @@ class PlugUIBase : public virtual sigc::trackable virtual bool stop_updating(GdkEventAny*) = 0; protected: - ARDOUR::PluginInsert& insert; - ARDOUR::Plugin& plugin; + boost::shared_ptr insert; + boost::shared_ptr plugin; Gtk::ComboBoxText combo; Gtk::Button save_button; Gtk::ToggleButton bypass_button; @@ -86,11 +86,11 @@ class PlugUIBase : public virtual sigc::trackable void bypass_toggled(); }; -class PluginUI : public PlugUIBase, public Gtk::VBox +class LadspaPluginUI : public PlugUIBase, public Gtk::VBox { public: - PluginUI (ARDOUR::AudioEngine &, ARDOUR::PluginInsert& plug, bool scrollable=false); - ~PluginUI (); + LadspaPluginUI (boost::shared_ptr plug, bool scrollable=false); + ~LadspaPluginUI (); gint get_preferred_height () { return prefheight; } @@ -98,7 +98,6 @@ class PluginUI : public PlugUIBase, public Gtk::VBox bool stop_updating(GdkEventAny*); private: - ARDOUR::AudioEngine &engine; Gtk::HBox settings_box; Gtk::HBox hpacker; @@ -173,8 +172,8 @@ class PluginUI : public PlugUIBase, public Gtk::VBox sigc::connection screen_update_connection; void output_update(); - void build (ARDOUR::AudioEngine &); - ControlUI* build_control_ui (ARDOUR::AudioEngine &, guint32 port_index, MIDI::Controllable *); + void build (); + ControlUI* build_control_ui (guint32 port_index, PBD::Controllable *); std::vector setup_scale_values(guint32 port_index, ControlUI* cui); void control_adjustment_changed (ControlUI* cui); void parameter_changed (uint32_t, float, ControlUI* cui); @@ -196,41 +195,43 @@ class PluginUI : public PlugUIBase, public Gtk::VBox class PluginUIWindow : public ArdourDialog { public: - PluginUIWindow (ARDOUR::AudioEngine &, ARDOUR::PluginInsert& insert, bool scrollable=false); + PluginUIWindow (boost::shared_ptr insert, bool scrollable=false); ~PluginUIWindow (); PlugUIBase& pluginui() { return *_pluginui; } void resize_preferred(); + + virtual bool on_key_press_event (GdkEventKey*); + virtual bool on_key_release_event (GdkEventKey*); private: PlugUIBase* _pluginui; - void plugin_going_away (ARDOUR::Redirect*); + void plugin_going_away (); }; - #ifdef VST_SUPPORT class VSTPluginUI : public PlugUIBase, public Gtk::VBox { public: - VSTPluginUI (ARDOUR::PluginInsert&, ARDOUR::VSTPlugin&); + VSTPluginUI (boost::shared_ptr, boost::shared_ptr); ~VSTPluginUI (); gint get_preferred_height (); - bool start_updating(GdkEventAny*) {} - bool stop_updating(GdkEventAny*) {} + bool start_updating(GdkEventAny*) {return false;} + bool stop_updating(GdkEventAny*) {return false;} int package (Gtk::Window&); private: - ARDOUR::VSTPlugin& vst; + boost::shared_ptr vst; Gtk::Socket socket; Gtk::HBox preset_box; Gtk::VBox vpacker; - gboolean configure_handler (GdkEventConfigure*, GtkSocket*); + bool configure_handler (GdkEventConfigure*, Gtk::Socket*); void save_plugin_setting (); }; -#endif +#endif // VST_SUPPORT #endif /* __ardour_plugin_ui_h__ */