#include "tooltips.h"
#include "new_plugin_preset_dialog.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
#ifdef AUDIOUNIT_SUPPORT
class AUPluginUI;
boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (_processor);
if (pi && pi->plugin() && pi->plugin()->has_inline_display()) {
if (pi->plugin()->get_info()->type != ARDOUR::Lua) {
- _plugin_display = new PluginDisplay (pi->plugin(),
+ _plugin_display = new PluginDisplay (*this, pi->plugin(),
std::max (60.f, rintf(112.f * UIConfiguration::instance().get_ui_scale())));
} else {
assert (boost::dynamic_pointer_cast<LuaProc>(pi->plugin()));
- _plugin_display = new LuaPluginDisplay (boost::dynamic_pointer_cast<LuaProc>(pi->plugin()),
+ _plugin_display = new LuaPluginDisplay (*this, boost::dynamic_pointer_cast<LuaProc>(pi->plugin()),
std::max (60.f, rintf(112.f * UIConfiguration::instance().get_ui_scale())));
}
_vbox.pack_start (*_plugin_display);
_vbox.pack_end (output_routing_icon);
_vbox.pack_end (output_icon);
- _button.set_active (_processor->active());
+ _button.set_active (_processor->enabled ());
input_icon.set_no_show_all(true);
routing_icon.set_no_show_all(true);
_parent->all_visible_processors_active(false);
if (_position == Fader) {
- _processor->deactivate ();
+ _processor->enable (false);
}
}
else {
- _processor->deactivate ();
+ _processor->enable (false);
}
} else {
_parent->all_visible_processors_active(true);
if (_position == Fader) {
- _processor->activate ();
+ _processor->enable (true);
}
}
else {
- _processor->activate ();
+ _processor->enable (true);
}
}
}
ProcessorEntry::processor_active_changed ()
{
if (_processor) {
- _button.set_active (_processor->active());
+ _button.set_active (_processor->enabled ());
}
}
}
}
-ProcessorEntry::PluginDisplay::PluginDisplay (boost::shared_ptr<ARDOUR::Plugin> p, uint32_t max_height)
- : _plug (p)
+ProcessorEntry::PluginDisplay::PluginDisplay (ProcessorEntry& e, boost::shared_ptr<ARDOUR::Plugin> p, uint32_t max_height)
+ : _entry (e)
+ , _plug (p)
, _surf (0)
, _max_height (max_height)
, _cur_height (1)
, _scroll (false)
{
set_name ("processor prefader");
+ add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
_plug->QueueDraw.connect (_qdraw_connection, invalidator (*this),
boost::bind (&Gtk::Widget::queue_draw, this), gui_context ());
+
+ std::string postfix = "";
+ if (_plug->has_editor()) {
+ ARDOUR_UI_UTILS::set_tooltip (*this,
+ string_compose (_("<b>%1</b>\nDouble-click to show GUI.\n%2+double-click to show generic GUI.%3"), e.name (Wide), Keyboard::primary_modifier_name (), postfix));
+ } else {
+ ARDOUR_UI_UTILS::set_tooltip (*this,
+ string_compose (_("<b>%1</b>\nDouble-click to show generic GUI.%2"), e.name (Wide), postfix));
+ }
}
ProcessorEntry::PluginDisplay::~PluginDisplay ()
}
}
+bool
+ProcessorEntry::PluginDisplay::on_button_press_event (GdkEventButton *ev)
+{
+ assert (_entry.processor ());
+
+ // consider some tweaks to pass this up to the DnDVBox somehow:
+ // select processor, then call (private)
+ //_entry._parent->processor_button_press_event (ev, &_entry);
+ if (Keyboard::is_edit_event (ev) || (ev->button == 1 && ev->type == GDK_2BUTTON_PRESS)) {
+ if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
+ _entry._parent->generic_edit_processor (_entry.processor ());
+ } else {
+ _entry._parent->edit_processor (_entry.processor ());
+ }
+ return true;
+ }
+ return false;
+}
+
+bool
+ProcessorEntry::PluginDisplay::on_button_release_event (GdkEventButton *ev)
+{
+ return false;
+}
+
void
-ProcessorEntry::PluginDisplay::on_size_request (Gtk::Requisition* req)
+ProcessorEntry::PluginDisplay::on_size_request (Requisition* req)
{
req->width = 56;
req->height = _cur_height;
}
}
+ cairo_surface_flush(_surf);
cairo_surface_mark_dirty(_surf);
const double xc = floor ((width - dis->width) * .5);
cairo_set_source_surface(cr, _surf, xc, 0);
return true;
}
-ProcessorEntry::LuaPluginDisplay::LuaPluginDisplay (boost::shared_ptr<ARDOUR::LuaProc> p, uint32_t max_height)
- : PluginDisplay (p, max_height)
+ProcessorEntry::LuaPluginDisplay::LuaPluginDisplay (ProcessorEntry& e, boost::shared_ptr<ARDOUR::LuaProc> p, uint32_t max_height)
+ : PluginDisplay (e, p, max_height)
, _luaproc (p)
, _lua_render_inline (0)
{
boost::shared_ptr<Processor> processor (new PluginInsert (*_session, p));
if (Config->get_new_plugins_active ()) {
- processor->activate ();
+ processor->enable (true);
}
pl.push_back (processor);
}
}
boost::shared_ptr<Processor> processor (new PluginInsert (*_session, p));
if (Config->get_new_plugins_active ()) {
- processor->activate ();
+ processor->enable (true);
}
pl.push_back (processor);
}
case ProcessorsToggleActive:
for (ProcSelection::iterator i = targets.begin(); i != targets.end(); ++i) {
- if ((*i)->active()) {
- (*i)->deactivate ();
- } else {
- (*i)->activate ();
- }
+ (*i)->enable (!(*i)->enabled ());
}
break;
) {
/* button2-click with no/appropriate modifiers */
-
- if (processor->active()) {
- processor->deactivate ();
- } else {
- processor->activate ();
- }
+ processor->enable (!processor->enabled ());
}
return false;
boost::shared_ptr<Send> send (new Send (*_session, _route->pannable (), _route->mute_master()));
/* make an educated guess at the initial number of outputs for the send */
- ChanCount outs = (_session->master_out())
+ ChanCount outs = (_route->n_outputs().n_audio() && _session->master_out())
? _session->master_out()->n_outputs()
: _route->n_outputs();
if (edit_aux_send (processor)) {
return;
}
+ if (!_session->engine().connected()) {
+ return;
+ }
ProcessorWindowProxy* proxy = find_window_proxy (processor);
if (edit_aux_send (processor)) {
return;
}
+ if (!_session->engine().connected()) {
+ return;
+ }
ProcessorWindowProxy* proxy = find_window_proxy (processor);
if (_window && (is_custom != want_custom)) {
/* drop existing window - wrong type */
drop_window ();
- get (true);
- setup ();
- assert (_window);
- is_custom = want_custom;
}
-
toggle ();
}