class ProcessorBox;
-class ProcessorWindowProxy : public WM::ProxyBase
+class ProcessorWindowProxy : public WM::ProxyBase
{
public:
- ProcessorWindowProxy (std::string const &, ProcessorBox *, boost::weak_ptr<ARDOUR::Processor>);
- ~ProcessorWindowProxy();
-
- Gtk::Window* get (bool create = false);
-
- boost::weak_ptr<ARDOUR::Processor> processor () const {
- return _processor;
- }
-
- ARDOUR::SessionHandlePtr* session_handle();
- void toggle();
- void set_custom_ui_mode(bool use_custom) { want_custom = use_custom; }
-
- bool marked;
- bool valid () const;
-
- void set_state (const XMLNode&);
- XMLNode& get_state () const;
-
+ ProcessorWindowProxy (std::string const &, ProcessorBox *, boost::weak_ptr<ARDOUR::Processor>);
+ ~ProcessorWindowProxy();
+
+ Gtk::Window* get (bool create = false);
+
+ boost::weak_ptr<ARDOUR::Processor> processor () const {
+ return _processor;
+ }
+
+ ARDOUR::SessionHandlePtr* session_handle();
+ void toggle();
+ void set_custom_ui_mode(bool use_custom) { want_custom = use_custom; }
+
+ int set_state (const XMLNode&, int);
+ XMLNode& get_state ();
+
private:
- ProcessorBox* _processor_box;
- boost::weak_ptr<ARDOUR::Processor> _processor;
- bool is_custom;
- bool want_custom;
- bool _valid;
-
- void processor_going_away ();
- PBD::ScopedConnection going_away_connection;
+ ProcessorBox* _processor_box;
+ boost::weak_ptr<ARDOUR::Processor> _processor;
+ bool is_custom;
+ bool want_custom;
+ bool _valid;
+
+ void processor_going_away ();
+ PBD::ScopedConnection going_away_connection;
};
class ProcessorEntry : public Gtkmm2ext::DnDVBoxChild, public sigc::trackable
std::string drag_text () const;
void set_visual_state (Gtkmm2ext::VisualState, bool);
+ bool is_selectable() const {return _selectable;}
+ void set_selectable(bool s) { _selectable = s; }
+
+ bool drag_data_get (Glib::RefPtr<Gdk::DragContext> const, Gtk::SelectionData &);
+
enum Position {
PreFader,
Fader,
};
void set_position (Position, uint32_t);
+ bool unknown_processor () const { return _unknown_processor; } ;
boost::shared_ptr<ARDOUR::Processor> processor () const;
void set_enum_width (Width);
virtual void setup_visuals ();
private:
- void led_clicked();
+ bool _selectable;
+ bool _unknown_processor;
+ void led_clicked(GdkEventButton *);
void processor_active_changed ();
void processor_property_changed (const PBD::PropertyChange&);
void processor_configuration_changed (const ARDOUR::ChanCount in, const ARDOUR::ChanCount out);
ProcessorBox* _parent;
boost::shared_ptr<ARDOUR::Processor> _processor;
Width _width;
- Gtk::StateType _visual_state;
PBD::ScopedConnection active_connection;
PBD::ScopedConnection name_connection;
PBD::ScopedConnection config_connection;
+ ARDOUR::PluginPresetPtr _plugin_preset_pointer;
class Control : public sigc::trackable {
public:
Control (boost::shared_ptr<ARDOUR::AutomationControl>, std::string const &);
+ ~Control ();
void set_visible (bool);
void add_state (XMLNode *) const;
std::string name () const {
return _name;
}
-
+
Gtk::Alignment box;
private:
void slider_adjusted ();
void button_clicked ();
+ void button_clicked_event (GdkEventButton *);
void control_changed ();
std::string state_id () const;
void set_tooltip ();
PBD::ScopedConnection _connection;
bool _visible;
std::string _name;
+ sigc::connection timer_connection;
};
std::list<Control*> _controls;
class PortIcon : public Gtk::DrawingArea {
public:
- PortIcon(bool input) {
- _input = input;
- _ports = ARDOUR::ChanCount(ARDOUR::DataType::AUDIO, 1);
- set_size_request (-1, 2);
- }
+ PortIcon(bool input);
void set_ports(ARDOUR::ChanCount const ports) { _ports = ports; }
private:
bool on_expose_event (GdkEventExpose *);
void set_splitting(const bool splitting) { _splitting = splitting; }
private:
bool on_expose_event (GdkEventExpose *);
- ARDOUR::ChanCount _sources; // signals available to feed into the processor(s)
- ARDOUR::ChanCount _sinks; // combined number of outputs of the processor
+ /* the wire icon sits on top of every processor if needed */
+ ARDOUR::ChanCount _sources; // signals available (valid outputs from prev. processor)
+ ARDOUR::ChanCount _sinks; // actual inputs of this processor
bool _splitting;
};
void select_all_inserts ();
void select_all_sends ();
+ void all_visible_processors_active(bool state);
+
void hide_things ();
bool edit_aux_send(boost::shared_ptr<ARDOUR::Processor>);
void generic_edit_processor (boost::shared_ptr<ARDOUR::Processor>);
void update_gui_object_state (ProcessorEntry *);
-
+
sigc::signal<void,boost::shared_ptr<ARDOUR::Processor> > ProcessorSelected;
sigc::signal<void,boost::shared_ptr<ARDOUR::Processor> > ProcessorUnselected;
static void register_actions();
+#ifndef NDEBUG
+ static bool show_all_processors;
+#endif
private:
Gtkmm2ext::DnDVBox<ProcessorEntry> processor_display;
Gtk::ScrolledWindow processor_scroller;
+ boost::shared_ptr<ARDOUR::Processor> find_drop_position (ProcessorEntry* position);
+
+ void _drop_plugin_preset (Gtk::SelectionData const &, ARDOUR::Route::ProcessorList &);
+ void _drop_plugin (Gtk::SelectionData const &, ARDOUR::Route::ProcessorList &);
+
+ void plugin_drop (Gtk::SelectionData const &, ProcessorEntry* position, Glib::RefPtr<Gdk::DragContext> const & context);
void object_drop (Gtkmm2ext::DnDVBox<ProcessorEntry> *, ProcessorEntry *, Glib::RefPtr<Gdk::DragContext> const &);
Width _width;
void processors_reordered (const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator&, int*);
void compute_processor_sort_keys ();
- void all_visible_processors_active(bool state);
void ab_plugins ();
typedef std::vector<boost::shared_ptr<ARDOUR::Processor> > ProcSelection;
void get_selected_processors (ProcSelection&) const;
bool can_cut() const;
+ bool stub_processor_selected() const;
static Glib::RefPtr<Gtk::Action> cut_action;
+ static Glib::RefPtr<Gtk::Action> copy_action;
static Glib::RefPtr<Gtk::Action> paste_action;
static Glib::RefPtr<Gtk::Action> rename_action;
+ static Glib::RefPtr<Gtk::Action> delete_action;
static Glib::RefPtr<Gtk::Action> edit_action;
static Glib::RefPtr<Gtk::Action> edit_generic_action;
void paste_processor_state (const XMLNodeList&, boost::shared_ptr<ARDOUR::Processor>);
void route_property_changed (const PBD::PropertyChange&);
std::string generate_processor_title (boost::shared_ptr<ARDOUR::PluginInsert> pi);
- typedef std::list<ProcessorWindowProxy*> ProcessorWindowProxies;
- ProcessorWindowProxies _processor_window_info;
+ //typedef std::list<ProcessorWindowProxy*> ProcessorWindowProxies;
+ //ProcessorWindowProxies _processor_window_info;
ProcessorWindowProxy* find_window_proxy (boost::shared_ptr<ARDOUR::Processor>) const;