Fixed some valgrind errors from using uninitialized variables in
[ardour.git] / gtk2_ardour / automation_time_axis.cc
index dfa0076eaaa1778936548c4ef71cd6c4b0b3395e..670a718736e8c1dfcb7139e379d1419a5c85700a 100644 (file)
@@ -180,7 +180,7 @@ AutomationTimeAxisView::auto_clicked ()
                automation_menu->set_name ("ArdourContextMenu");
                MenuList& items (automation_menu->items());
 
-               items.push_back (MenuElem (_("Isolate"), 
+               items.push_back (MenuElem (_("Manual"), 
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Off)));
                items.push_back (MenuElem (_("Play"),
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Play)));
@@ -209,7 +209,7 @@ AutomationTimeAxisView::automation_state_changed ()
 
        switch (state & (Off|Play|Touch|Write)) {
        case Off:
-               auto_button.set_label (_("Isolate"));
+               auto_button.set_label (_("Manual"));
                if (auto_off_item) {
                        ignore_state_request = true;
                        auto_off_item->set_active (true);
@@ -457,7 +457,7 @@ AutomationTimeAxisView::build_display_menu ()
        auto_state_menu->set_name ("ArdourContextMenu");
        MenuList& as_items = auto_state_menu->items();
        
-       as_items.push_back (CheckMenuElem (_("Isolate"), 
+       as_items.push_back (CheckMenuElem (_("Manual"), 
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Off)));
        auto_off_item = dynamic_cast<CheckMenuItem*>(&as_items.back());
 
@@ -536,6 +536,31 @@ AutomationTimeAxisView::cut_copy_clear_one (AutomationLine& line, Selection& sel
        return ret;
 }
 
+void
+AutomationTimeAxisView::reset_objects (PointSelection& selection)
+{
+       for (vector<AutomationLine*>::iterator i = lines.begin(); i != lines.end(); ++i) {
+               reset_objects_one ((**i), selection);
+       }
+}
+
+void
+AutomationTimeAxisView::reset_objects_one (AutomationLine& line, PointSelection& selection)
+{
+       AutomationList& alist (line.the_list());
+
+       _session.add_undo (alist.get_memento());
+
+       for (PointSelection::iterator i = selection.begin(); i != selection.end(); ++i) {
+
+               if (&(*i).track != this) {
+                       continue;
+               }
+               
+               alist.reset_range ((*i).start, (*i).end);
+       }
+}
+
 bool
 AutomationTimeAxisView::cut_copy_clear_objects (PointSelection& selection, CutCopyOp op)
 {