update BPM and Meter when changed, also change back labels for it.
authorRobin Gareus <robin@gareus.org>
Tue, 13 Nov 2012 23:29:57 +0000 (23:29 +0000)
committerRobin Gareus <robin@gareus.org>
Tue, 13 Nov 2012 23:29:57 +0000 (23:29 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@13486 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/audio_clock.cc
gtk2_ardour/audio_clock.h

index 9a9fc6d56e71911e42813b8f5c561c6dc1b51093..2a2cee60d37aad287b199daf728beeac37becba7 100644 (file)
@@ -929,6 +929,12 @@ AudioClock::end_edit_relative (bool add)
        drop_focus ();
 }
 
+void
+AudioClock::session_property_changed (const PropertyChange& p)
+{
+       set (last_when, true);
+}
+
 void
 AudioClock::session_configuration_changed (std::string p)
 {
@@ -1266,11 +1272,11 @@ AudioClock::set_bbt (framepos_t when, bool /*force*/)
                TempoMetric m (_session->tempo_map().metric_at (pos));
 
                sprintf (buf, "%-5.2f", m.tempo().beats_per_minute());
-               _left_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">Tmp <span foreground=\"green\">%2</span></span>",
+               _left_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">Tempo <span foreground=\"green\">%2</span></span>",
                                        INFO_FONT_SIZE, buf));
 
                sprintf (buf, "%g/%g", m.meter().divisions_per_bar(), m.meter().note_divisor());
-               _right_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">Mtr <span foreground=\"green\">%2</span></span>",
+               _right_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">Meter <span foreground=\"green\">%2</span></span>",
                                        INFO_FONT_SIZE, buf));
        }
 }
@@ -1283,6 +1289,7 @@ AudioClock::set_session (Session *s)
        if (_session) {
 
                _session->config.ParameterChanged.connect (_session_connections, invalidator (*this), boost::bind (&AudioClock::session_configuration_changed, this, _1), gui_context());
+               _session->tempo_map().PropertyChanged.connect (_session_connections, invalidator (*this), boost::bind (&AudioClock::session_property_changed, this, _1), gui_context());
 
                const XMLProperty* prop;
                XMLNode* node = _session->extra_xml (X_("ClockModes"));
index 03ed27edbd7692342ee91c4140e1a30c99022803..dae6bb1ae47f2d47570bf8f1e5fd551ee5b655bc 100644 (file)
@@ -205,6 +205,7 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
        framepos_t frames_from_audioframes_string (const std::string&) const;
 
        void session_configuration_changed (std::string);
+       void session_property_changed (const PBD::PropertyChange&);
 
        Field index_to_field () const;