/*
- Copyright (C) 2000-2007 Paul Davis
+ Copyright (C) 2000-2007 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
class AutomationTimeAxisView : public TimeAxisView {
public:
- AutomationTimeAxisView (ARDOUR::Session&,
+ AutomationTimeAxisView (ARDOUR::Session*,
boost::shared_ptr<ARDOUR::Route>,
boost::shared_ptr<ARDOUR::Automatable>,
boost::shared_ptr<ARDOUR::AutomationControl>,
const std::string & plug_name = "");
~AutomationTimeAxisView();
-
+
virtual void set_height (uint32_t);
void set_samples_per_unit (double);
+ bool set_visibility (bool yn);
std::string name() const { return _name; }
void add_automation_event (ArdourCanvas::Item *item, GdkEvent *event, nframes_t, double);
void get_selectables (nframes_t start, nframes_t end, double top, double bot, std::list<Selectable *>&);
void get_inverted_selectables (Selection&, std::list<Selectable*>& results);
- void show_timestretch (nframes_t start, nframes_t end) {}
+ void show_timestretch (nframes_t /*start*/, nframes_t /*end*/) {}
void hide_timestretch () {}
/* editing operations */
-
+
bool cut_copy_clear (Selection&, Editing::CutCopyOp);
bool cut_copy_clear_objects (PointSelection&, Editing::CutCopyOp);
bool paste (nframes_t, float times, Selection&, size_t nth);
void reset_objects (PointSelection&);
- int set_state (const XMLNode&);
-
+ int set_state (const XMLNode&, int version);
guint32 show_at (double y, int& nth, Gtk::VBox *parent);
void hide ();
-
+
static const std::string state_node_name;
XMLNode* get_state_node();
-
+
boost::shared_ptr<ARDOUR::AutomationControl> control() { return _control; }
boost::shared_ptr<AutomationController> controller() { return _controller; }
+ ArdourCanvas::Item* base_item () const {
+ return _base_rect;
+ }
+
+ bool has_automation () const;
+
protected:
boost::shared_ptr<ARDOUR::Route> _route; ///< Parent route
boost::shared_ptr<ARDOUR::AutomationControl> _control; ///< Control
boost::shared_ptr<ARDOUR::Automatable> _automatable; ///< Control owner, maybe = _route
-
+
boost::shared_ptr<AutomationController> _controller;
-
+
ArdourCanvas::SimpleRect* _base_rect;
boost::shared_ptr<AutomationLine> _line;
- AutomationStreamView* _view;
-
+ /** AutomationStreamView if we are editing region-based automation (for MIDI), otherwise 0 */
+ AutomationStreamView* _view;
+
std::string _name;
bool ignore_toggle;
bool first_call_to_set_height;
Gtk::Button hide_button;
- Gtk::Button auto_button;
+ Gtk::Button auto_button;
Gtk::Menu* automation_menu;
Gtk::Label* plugname;
bool plugname_packed;
Gtk::CheckMenuItem* mode_line_item;
void add_line (boost::shared_ptr<AutomationLine>);
-
+
void clear_clicked ();
void hide_clicked ();
void auto_clicked ();
void automation_state_changed ();
void set_interpolation (ARDOUR::AutomationList::InterpolationStyle);
- void interpolation_changed ();
+ void interpolation_changed (ARDOUR::AutomationList::InterpolationStyle);
- sigc::connection automation_connection;
+ PBD::ScopedConnectionList _list_connections;
void update_extra_xml_shown (bool editor_shown);