/*
- 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
#include "time_axis_view.h"
#include "simplerect.h"
#include "automation_controller.h"
-#include "shared_ptrs.h"
namespace ARDOUR {
class Session;
class AutomationTimeAxisView : public TimeAxisView {
public:
-
- static AutomationTimeAxisViewPtr
- create (ARDOUR::Session&,
- boost::shared_ptr<ARDOUR::Route>,
- boost::shared_ptr<ARDOUR::Automatable>,
- boost::shared_ptr<ARDOUR::AutomationControl>,
- PublicEditor&,
- TimeAxisViewPtr parent,
- bool show_regions,
- ArdourCanvas::Canvas& canvas,
- const std::string & name, /* translatable */
- const std::string & plug_name = "");
+ AutomationTimeAxisView (ARDOUR::Session*,
+ boost::shared_ptr<ARDOUR::Route>,
+ boost::shared_ptr<ARDOUR::Automatable>,
+ boost::shared_ptr<ARDOUR::AutomationControl>,
+ PublicEditor&,
+ TimeAxisView& parent,
+ bool show_regions,
+ ArdourCanvas::Canvas& canvas,
+ const std::string & name, /* translatable */
+ 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;
-
+
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 set_interpolation (ARDOUR::AutomationList::InterpolationStyle);
void interpolation_changed ();
- sigc::connection automation_connection;
+ PBD::ScopedConnection automation_connection;
void update_extra_xml_shown (bool editor_shown);
static Pango::FontDescription* name_font;
static bool have_name_font;
-
-private:
-
- AutomationTimeAxisView (ARDOUR::Session&,
- boost::shared_ptr<ARDOUR::Route>,
- boost::shared_ptr<ARDOUR::Automatable>,
- boost::shared_ptr<ARDOUR::AutomationControl>,
- PublicEditor&,
- TimeAxisViewPtr parent,
- bool show_regions,
- ArdourCanvas::Canvas& canvas,
- const std::string & name, /* translatable */
- const std::string & plug_name = "");
-
- void
- init (ARDOUR::Session&,
- boost::shared_ptr<ARDOUR::Route>,
- boost::shared_ptr<ARDOUR::Automatable>,
- boost::shared_ptr<ARDOUR::AutomationControl>,
- PublicEditor&,
- TimeAxisViewPtr parent,
- bool show_regions,
- ArdourCanvas::Canvas& canvas,
- const std::string & name, /* translatable */
- const std::string & plug_name);
-
};
#endif /* __ardour_gtk_automation_time_axis_h__ */