From bbf41757133a29df0d37905f2fdce091878d2ffd Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 30 Jun 2007 18:41:50 +0000 Subject: Another not-quite-there-but-better commit. Brought plugin automation into the fold of new automation system. Fixed plugin automation, broke panner automation :] (pending Panner work). Made AutomationController better at automatically following it's controller value (mimic what gain meter does). Fixed some visible automation track bugs (but still broken WRT serialization). git-svn-id: svn://localhost/ardour2/trunk@2092 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/route_time_axis.h | 59 +++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 28 deletions(-) (limited to 'gtk2_ardour/route_time_axis.h') diff --git a/gtk2_ardour/route_time_axis.h b/gtk2_ardour/route_time_axis.h index 55c7cee983..28296507a6 100644 --- a/gtk2_ardour/route_time_axis.h +++ b/gtk2_ardour/route_time_axis.h @@ -86,7 +86,7 @@ public: bool cut_copy_clear (Selection&, Editing::CutCopyOp); bool paste (nframes_t, float times, Selection&, size_t nth); - list get_child_list(); + TimeAxisView::Children get_child_list(); /* The editor calls these when mapping an operation across multiple tracks */ void use_new_playlist (bool prompt); @@ -106,36 +106,36 @@ protected: friend class StreamView; struct RouteAutomationNode { - ARDOUR::ParamID param; - Gtk::CheckMenuItem* menu_item; - AutomationTimeAxisView* track; + ARDOUR::ParamID param; + Gtk::CheckMenuItem* menu_item; + boost::shared_ptr track; - RouteAutomationNode (ARDOUR::ParamID par, Gtk::CheckMenuItem* mi, AutomationTimeAxisView* tr) + RouteAutomationNode (ARDOUR::ParamID par, Gtk::CheckMenuItem* mi, boost::shared_ptr tr) : param (par), menu_item (mi), track (tr) {} }; - struct InsertAutomationNode { - ARDOUR::ParamID what; - Gtk::CheckMenuItem* menu_item; - AutomationTimeAxisView* view; - RouteTimeAxisView& parent; + struct ProcessorAutomationNode { + ARDOUR::ParamID what; + Gtk::CheckMenuItem* menu_item; + boost::shared_ptr view; + RouteTimeAxisView& parent; - InsertAutomationNode (ARDOUR::ParamID w, Gtk::CheckMenuItem* mitem, RouteTimeAxisView& p) - : what (w), menu_item (mitem), view (0), parent (p) {} + ProcessorAutomationNode (ARDOUR::ParamID w, Gtk::CheckMenuItem* mitem, RouteTimeAxisView& p) + : what (w), menu_item (mitem), parent (p) {} - ~InsertAutomationNode (); + ~ProcessorAutomationNode (); }; - struct InsertAutomationInfo { + struct ProcessorAutomationInfo { boost::shared_ptr processor; bool valid; Gtk::Menu* menu; - vector lines; + vector lines; - InsertAutomationInfo (boost::shared_ptr i) + ProcessorAutomationInfo (boost::shared_ptr i) : processor (i), valid (true), menu (0) {} - ~InsertAutomationInfo (); + ~ProcessorAutomationInfo (); }; @@ -147,12 +147,12 @@ protected: void processors_changed (); void add_processor_to_subplugin_menu (boost::shared_ptr); - void remove_ran (InsertAutomationNode* ran); + void remove_processor_automation_node (ProcessorAutomationNode* pan); - void processor_menu_item_toggled (RouteTimeAxisView::InsertAutomationInfo*, - RouteTimeAxisView::InsertAutomationNode*); + void processor_menu_item_toggled (RouteTimeAxisView::ProcessorAutomationInfo*, + RouteTimeAxisView::ProcessorAutomationNode*); - void processor_automation_track_hidden (InsertAutomationNode*, + void processor_automation_track_hidden (ProcessorAutomationNode*, boost::shared_ptr); void automation_track_hidden (ARDOUR::ParamID param); @@ -160,16 +160,16 @@ protected: RouteAutomationNode* automation_track(ARDOUR::ParamID param); RouteAutomationNode* automation_track(ARDOUR::AutomationType type); - InsertAutomationNode* + ProcessorAutomationNode* find_processor_automation_node (boost::shared_ptr i, ARDOUR::ParamID); - ProcessorAutomationLine* + boost::shared_ptr find_processor_automation_curve (boost::shared_ptr i, ARDOUR::ParamID); void add_processor_automation_curve (boost::shared_ptr r, ARDOUR::ParamID); void add_existing_processor_automation_curves (boost::shared_ptr); - void add_automation_child(ARDOUR::ParamID param, AutomationTimeAxisView* track); + void add_automation_child(ARDOUR::ParamID param, boost::shared_ptr track); void reset_processor_automation_curves (); @@ -221,7 +221,7 @@ protected: void color_handler (); void region_view_added (RegionView*); - void add_ghost_to_processor (RegionView*, AutomationTimeAxisView*); + void add_ghost_to_processor (RegionView*, boost::shared_ptr); StreamView* _view; ArdourCanvas::Canvas& parent_canvas; @@ -256,13 +256,16 @@ protected: void _set_track_mode (ARDOUR::Track* track, ARDOUR::TrackMode mode, Gtk::RadioMenuItem* reset_item); void track_mode_changed (); - list processor_automation; - vector processor_automation_curves; + list processor_automation; + + typedef vector > ProcessorAutomationCurves; + ProcessorAutomationCurves processor_automation_curves; // Set from XML so context menu automation buttons can be correctly initialized set _show_automation; - map _automation_tracks; + typedef map AutomationTracks; + AutomationTracks _automation_tracks; sigc::connection modified_connection; -- cgit v1.2.3