From f95aa76f4a16a3f2bfd427b1e454023c3b886e5f Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 28 Jun 2007 19:35:48 +0000 Subject: add basic support for the griffin powermate (a control surface) (from ben loftis) git-svn-id: svn://localhost/ardour2/trunk@2078 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ladspa_pluginui.cc | 10 +++++++--- gtk2_ardour/latency_gui.h | 5 +++++ gtk2_ardour/plugin_ui.cc | 11 ++++++----- gtk2_ardour/plugin_ui.h | 11 +++++++---- gtk2_ardour/processor_box.cc | 4 ++-- gtk2_ardour/route_params_ui.cc | 2 +- 6 files changed, 28 insertions(+), 15 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/ladspa_pluginui.cc b/gtk2_ardour/ladspa_pluginui.cc index 3d516d3056..721e50753a 100644 --- a/gtk2_ardour/ladspa_pluginui.cc +++ b/gtk2_ardour/ladspa_pluginui.cc @@ -56,8 +56,8 @@ using namespace Gtkmm2ext; using namespace Gtk; using namespace sigc; -LadspaPluginUI::LadspaPluginUI (boost::shared_ptr pi, bool scrollable) - : PlugUIBase (pi), +LadspaPluginUI::LadspaPluginUI (boost::shared_ptr pi, nframes64_t sample_rate, nframes64_t period_size, bool scrollable) + : PlugUIBase (pi, sample_rate, period_size), button_table (initial_button_rows, initial_button_cols), output_table (initial_output_rows, initial_output_cols), hAdjustment(0.0, 0.0, 0.0), @@ -77,7 +77,11 @@ LadspaPluginUI::LadspaPluginUI (boost::shared_ptr pi, bool scrolla Label* combo_label = manage (new Label (_("Presets"))); combo_label->set_use_markup (true); - smaller_hbox->pack_start (*combo_label, false, false, 10); + Label* latency_label = manage (new Label (_("Latency"))); + latency_label->set_use_markup (true); + + smaller_hbox->pack_start (*latency_label, false, false, 10); + smaller_hbox->pack_start (latency_gui, false, false, 10); smaller_hbox->pack_start (combo, false, false); smaller_hbox->pack_start (save_button, false, false); diff --git a/gtk2_ardour/latency_gui.h b/gtk2_ardour/latency_gui.h index 49f22fa266..0be7fdbf4c 100644 --- a/gtk2_ardour/latency_gui.h +++ b/gtk2_ardour/latency_gui.h @@ -1,3 +1,6 @@ +#ifndef __gtk2_ardour_latency_gui_h__ +#define __gtk2_ardour_latency_gui_h__ + #include #include @@ -59,3 +62,5 @@ class LatencyDialog : public ArdourDialog private: LatencyGUI lwidget; }; + +#endif /* __gtk2_ardour_latency_gui_h__ */ diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index 80bd9ba6f3..935fc6000d 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -61,7 +61,7 @@ using namespace Gtkmm2ext; using namespace Gtk; using namespace sigc; -PluginUIWindow::PluginUIWindow (boost::shared_ptr insert, bool scrollable) +PluginUIWindow::PluginUIWindow (boost::shared_ptr insert, nframes64_t sr, nframes64_t period, bool scrollable) : ArdourDialog ("plugin ui") { if (insert->plugin()->has_editor()) { @@ -73,7 +73,7 @@ PluginUIWindow::PluginUIWindow (boost::shared_ptr insert, bool scr if ((vp = boost::dynamic_pointer_cast (insert->plugin())) != 0) { - VSTPluginUI* vpu = new VSTPluginUI (insert, vp); + VSTPluginUI* vpu = new VSTPluginUI (insert, vp, session.frame_rate(), session.engine().frames_per_cycle()); _pluginui = vpu; get_vbox()->add (*vpu); @@ -90,7 +90,7 @@ PluginUIWindow::PluginUIWindow (boost::shared_ptr insert, bool scr } else { - LadspaPluginUI* pu = new LadspaPluginUI (insert, scrollable); + LadspaPluginUI* pu = new LadspaPluginUI (insert, sr, period, scrollable); _pluginui = pu; get_vbox()->add (*pu); @@ -145,11 +145,12 @@ PluginUIWindow::plugin_going_away () delete_when_idle (this); } -PlugUIBase::PlugUIBase (boost::shared_ptr pi) +PlugUIBase::PlugUIBase (boost::shared_ptr pi, nframes64_t sr, nframes64_t period) : insert (pi), plugin (insert->plugin()), save_button(_("Add")), - bypass_button (_("Bypass")) + bypass_button (_("Bypass")), + latency_gui (*pi, sr, period) { //combo.set_use_arrows_always(true); set_popdown_strings (combo, plugin->get_presets()); diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index 83fdf05444..ef899af6e7 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -43,6 +43,8 @@ #include #include +#include "latency_gui.h" + namespace ARDOUR { class PluginInsert; class Plugin; @@ -66,7 +68,7 @@ namespace Gtkmm2ext { class PlugUIBase : public virtual sigc::trackable { public: - PlugUIBase (boost::shared_ptr); + PlugUIBase (boost::shared_ptr, nframes64_t sample_rate, nframes64_t period_size); virtual ~PlugUIBase() {} virtual gint get_preferred_height () = 0; @@ -79,6 +81,7 @@ class PlugUIBase : public virtual sigc::trackable Gtk::ComboBoxText combo; Gtk::Button save_button; Gtk::ToggleButton bypass_button; + LatencyGUI latency_gui; void setting_selected(); void save_plugin_setting (void); @@ -88,7 +91,7 @@ class PlugUIBase : public virtual sigc::trackable class LadspaPluginUI : public PlugUIBase, public Gtk::VBox { public: - LadspaPluginUI (boost::shared_ptr plug, bool scrollable=false); + LadspaPluginUI (boost::shared_ptr plug, nframes64_t sample_rate, nframes64_t period_size, bool scrollable = false); ~LadspaPluginUI (); gint get_preferred_height () { return prefheight; } @@ -198,7 +201,7 @@ class LadspaPluginUI : public PlugUIBase, public Gtk::VBox class PluginUIWindow : public ArdourDialog { public: - PluginUIWindow (boost::shared_ptr insert, bool scrollable=false); + PluginUIWindow (boost::shared_ptr insert, nframes64_t sample_rate, nframes64_t period_size, bool scrollable = false); ~PluginUIWindow (); PlugUIBase& pluginui() { return *_pluginui; } @@ -217,7 +220,7 @@ class PluginUIWindow : public ArdourDialog class VSTPluginUI : public PlugUIBase, public Gtk::VBox { public: - VSTPluginUI (boost::shared_ptr, boost::shared_ptr); + VSTPluginUI (boost::shared_ptr, boost::shared_ptr, nframes64_t sample_rate, nframes64_t period_size); ~VSTPluginUI (); gint get_preferred_height (); diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index d9b0dbd845..51257e18c0 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -1088,7 +1088,7 @@ ProcessorBox::edit_processor (boost::shared_ptr processor) if (plugin_processor->get_gui() == 0) { - plugin_ui = new PluginUIWindow (plugin_processor); + plugin_ui = new PluginUIWindow (plugin_processor, _session.frame_rate(), _session.engine().frames_per_cycle()); if (_owner_is_mixer) { ARDOUR_UI::instance()->the_mixer()->ensure_float (*plugin_ui); @@ -1190,7 +1190,7 @@ ProcessorBox::register_actions () /* new stuff */ ActionManager::register_action (popup_act_grp, X_("newplugin"), _("New Plugin ..."), sigc::ptr_fun (ProcessorBox::rb_choose_plugin)); - act = ActionManager::register_action (popup_act_grp, X_("newprocessor"), _("New Insert"), sigc::ptr_fun (ProcessorBox::rb_choose_processor)); + act = ActionManager::register_action (popup_act_grp, X_("newinsert"), _("New Insert"), sigc::ptr_fun (ProcessorBox::rb_choose_processor)); ActionManager::jack_sensitive_actions.push_back (act); act = ActionManager::register_action (popup_act_grp, X_("newsend"), _("New Send ..."), sigc::ptr_fun (ProcessorBox::rb_choose_send)); ActionManager::jack_sensitive_actions.push_back (act); diff --git a/gtk2_ardour/route_params_ui.cc b/gtk2_ardour/route_params_ui.cc index 7807cd4a84..fb63ae8bd6 100644 --- a/gtk2_ardour/route_params_ui.cc +++ b/gtk2_ardour/route_params_ui.cc @@ -581,7 +581,7 @@ RouteParams_UI::redirect_selected (boost::shared_ptr insert, } } else if ((plugin_insert = boost::dynamic_pointer_cast (insert)) != 0) { - LadspaPluginUI *plugin_ui = new LadspaPluginUI (plugin_insert, true); + LadspaPluginUI *plugin_ui = new LadspaPluginUI (plugin_insert, session->frame_rate(), session->engine().frames_per_cycle(), true); if (place == PreFader) { cleanup_pre_view(); -- cgit v1.2.3