Fixed some valgrind errors from using uninitialized variables in
[ardour.git] / gtk2_ardour / automation_time_axis.cc
index 3831e253b4029d3104c98bca900baef7e9b53bba..670a718736e8c1dfcb7139e379d1419a5c85700a 100644 (file)
@@ -180,13 +180,13 @@ AutomationTimeAxisView::auto_clicked ()
                automation_menu->set_name ("ArdourContextMenu");
                MenuList& items (automation_menu->items());
 
-               items.push_back (MenuElem (_("off"), 
+               items.push_back (MenuElem (_("Manual"), 
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Off)));
-               items.push_back (MenuElem (_("play"),
+               items.push_back (MenuElem (_("Play"),
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Play)));
-               items.push_back (MenuElem (_("write"),
+               items.push_back (MenuElem (_("Write"),
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Write)));
-               items.push_back (MenuElem (_("touch"),
+               items.push_back (MenuElem (_("Touch"),
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Touch)));
        }
 
@@ -209,7 +209,7 @@ AutomationTimeAxisView::automation_state_changed ()
 
        switch (state & (Off|Play|Touch|Write)) {
        case Off:
-               auto_button.set_label (_("off"));
+               auto_button.set_label (_("Manual"));
                if (auto_off_item) {
                        ignore_state_request = true;
                        auto_off_item->set_active (true);
@@ -220,7 +220,7 @@ AutomationTimeAxisView::automation_state_changed ()
                }
                break;
        case Play:
-               auto_button.set_label (_("play"));
+               auto_button.set_label (_("Play"));
                if (auto_play_item) {
                        ignore_state_request = true;
                        auto_play_item->set_active (true);
@@ -231,7 +231,7 @@ AutomationTimeAxisView::automation_state_changed ()
                }
                break;
        case Write:
-               auto_button.set_label (_("write"));
+               auto_button.set_label (_("Write"));
                if (auto_write_item) {
                        ignore_state_request = true;
                        auto_write_item->set_active (true);
@@ -242,7 +242,7 @@ AutomationTimeAxisView::automation_state_changed ()
                }
                break;
        case Touch:
-               auto_button.set_label (_("touch"));
+               auto_button.set_label (_("Touch"));
                if (auto_touch_item) {
                        ignore_state_request = true;
                        auto_touch_item->set_active (true);
@@ -275,8 +275,9 @@ AutomationTimeAxisView::clear_clicked ()
 }
 
 void
-AutomationTimeAxisView::set_height (TrackHeight h)
+AutomationTimeAxisView::set_height (TrackHeight ht)
 {
+       uint32_t h = height_to_pixels (ht);
        bool changed = (height != (uint32_t) h);
 
        TimeAxisView* state_parent = get_parent_with_state ();
@@ -284,7 +285,7 @@ AutomationTimeAxisView::set_height (TrackHeight h)
 
        controls_table.show_all ();
 
-       TimeAxisView::set_height (h);
+       TimeAxisView::set_height (ht);
        base_rect->property_y2() = h;
 
        for (vector<AutomationLine*>::iterator i = lines.begin(); i != lines.end(); ++i) {
@@ -456,19 +457,19 @@ AutomationTimeAxisView::build_display_menu ()
        auto_state_menu->set_name ("ArdourContextMenu");
        MenuList& as_items = auto_state_menu->items();
        
-       as_items.push_back (CheckMenuElem (_("off"), 
+       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());
 
-       as_items.push_back (CheckMenuElem (_("play"),
+       as_items.push_back (CheckMenuElem (_("Play"),
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Play)));
        auto_play_item = dynamic_cast<CheckMenuItem*>(&as_items.back());
 
-       as_items.push_back (CheckMenuElem (_("write"),
+       as_items.push_back (CheckMenuElem (_("Write"),
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Write)));
        auto_write_item = dynamic_cast<CheckMenuItem*>(&as_items.back());
 
-       as_items.push_back (CheckMenuElem (_("touch"),
+       as_items.push_back (CheckMenuElem (_("Touch"),
                                           bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Touch)));
        auto_touch_item = dynamic_cast<CheckMenuItem*>(&as_items.back());
 
@@ -535,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)
 {