Fix connect/disconnect of meter updating, and keep meters visible for now, to get...
authorDoug McLain <doug@nostar.net>
Mon, 19 Nov 2007 20:56:29 +0000 (20:56 +0000)
committerDoug McLain <doug@nostar.net>
Mon, 19 Nov 2007 20:56:29 +0000 (20:56 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2699 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour_ui_ed.cc
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_audiotrack.cc
gtk2_ardour/gain_meter.cc
gtk2_ardour/gain_meter.h
gtk2_ardour/route_time_axis.cc

index e221d06b92d7b0e9bb4370cf80e8555f0e159850..8eda824329ccf127e851875d3f7f437bcf571edf 100644 (file)
@@ -417,7 +417,7 @@ ARDOUR_UI::install_actions ()
        ActionManager::register_toggle_action (option_actions, X_("RegionEquivalentsOverlap"), _("Region equivalents overlap"), mem_fun (*this, &ARDOUR_UI::toggle_RegionEquivalentsOverlap));
        ActionManager::register_toggle_action (option_actions, X_("PrimaryClockDeltaEditCursor"), _("Primary Clock delta to edit point"), mem_fun (*this, &ARDOUR_UI::toggle_PrimaryClockDeltaEditCursor));
        ActionManager::register_toggle_action (option_actions, X_("SecondaryClockDeltaEditCursor"), _("Secondary Clock delta to edit point"), mem_fun (*this, &ARDOUR_UI::toggle_SecondaryClockDeltaEditCursor));       
-       ActionManager::register_toggle_action (option_actions, X_("ShowTrackMeters"), _("Display Editor Meters"), mem_fun (*this, &ARDOUR_UI::toggle_ShowTrackMeters));
+       ActionManager::register_toggle_action (option_actions, X_("ShowTrackMeters"), _("Enable Editor Meters"), mem_fun (*this, &ARDOUR_UI::toggle_ShowTrackMeters));
        ActionManager::register_toggle_action (option_actions, X_("OnlyCopyImportedFiles"), _("Always copy imported files"), mem_fun (*this, &ARDOUR_UI::toggle_only_copy_imported_files));     
 
        RadioAction::Group denormal_group;
index 6b8432f3247b27e9eed661ec2fe69117a8697834..eb939289ca8398b70e8a97a4609d28084c1a325c 100644 (file)
@@ -184,7 +184,7 @@ Editor::Editor ()
          range_mark_label (_("Range Markers")),
          transport_mark_label (_("Loop/Punch Ranges")),
 
-         edit_packer (3, 3, false),
+         edit_packer (3, 3, true),
 
          /* the values here don't matter: layout widgets
             reset them as needed.
@@ -209,7 +209,8 @@ Editor::Editor ()
 
          /* nudge */
 
-         nudge_clock (X_("nudge"), false, X_("NudgeClock"), true, true)
+         nudge_clock (X_("nudge"), false, X_("NudgeClock"), true, true),
+         meters_running(false)
 
 {
        constructed = false;
index 8588dcd2efa436e02d84656a30958503945cc54b..372b83bf2415cd36b829805ea6a5e9aa683c1036 100644 (file)
@@ -1953,6 +1953,7 @@ class Editor : public PublicEditor
        gint stop_updating ();
        void toggle_meter_updating();
        void fast_update_strips ();
+       bool meters_running;
 
 };
 
index f93da7040f353217f76f4a7df299f16df31d96cf..007b1386a1879371c772d0c8f54120775b5374ae 100644 (file)
@@ -106,17 +106,21 @@ Editor::start_updating ()
                        }
                }
        }
-    fast_screen_update_connection = ARDOUR_UI::instance()->SuperRapidScreenUpdate.connect (mem_fun(*this, &Editor::fast_update_strips));
+
+       if (!meters_running) {
+               fast_screen_update_connection = ARDOUR_UI::SuperRapidScreenUpdate.connect (mem_fun(*this, &Editor::fast_update_strips));
+               meters_running = true;
+       }
     return 0;
 }
 
 gint
 Editor::stop_updating ()
 {
-
-       fast_screen_update_connection.disconnect();
        AudioTimeAxisView* atv;
-
+       
+       meters_running = false;
+       fast_screen_update_connection.disconnect();
        //cerr << "Editor::stop_updating () called" << endl;//DEBUG
        if (is_mapped() && session) {
                for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
index 567469973b6a051eacb6a06978ee5b2b20cf09d0..6c2ddd6ff5af199fc24b339f5c23d44e626cb802 100644 (file)
@@ -977,4 +977,11 @@ void GainMeter::setup_atv_meter (int len)
                show();
        }
 }
-       
+
+void GainMeter::clear_meters ()
+{
+       for (vector<MeterInfo>::iterator i = meters.begin(); i < meters.end(); i++) {
+               (*i).meter->clear();
+       }
+}
+
index e46479d23b48d831252f4ddd0e2b32a6b25956b2..b9ae3ba51d6006a0e8ed0f2bf918412dde680014 100644 (file)
@@ -75,6 +75,7 @@ class GainMeter : public Gtk::VBox
        void set_fader_name (const char * name);
 
        void setup_atv_meter (int);
+       void clear_meters ();
 
   private:
 
index c5cb1a3186e8d98346950738a031c079a22a5890..35ff60857a6a864d76dea6aa6c4b2825f5e02550 100644 (file)
@@ -1793,7 +1793,8 @@ RouteTimeAxisView::fast_update ()
 void
 RouteTimeAxisView::hide_meter ()
 {
-       gpm.hide ();
+       //gpm.hide ();
+       gpm.clear_meters ();
 }
 
 void