summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2012-11-13 23:29:57 +0000
committerRobin Gareus <robin@gareus.org>2012-11-13 23:29:57 +0000
commita5f5572159360b7194d72ce22923fae24723453c (patch)
treee44b8b1d20995377cdbc1fa9bb2ba1f639166efe
parente1581242ca8554660ea68290688e573a9acfca06 (diff)
update BPM and Meter when changed, also change back labels for it.
git-svn-id: svn://localhost/ardour2/branches/3.0@13486 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/audio_clock.cc11
-rw-r--r--gtk2_ardour/audio_clock.h1
2 files changed, 10 insertions, 2 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index 9a9fc6d56e..2a2cee60d3 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -930,6 +930,12 @@ AudioClock::end_edit_relative (bool add)
}
void
+AudioClock::session_property_changed (const PropertyChange& p)
+{
+ set (last_when, true);
+}
+
+void
AudioClock::session_configuration_changed (std::string p)
{
if (_negative_allowed) {
@@ -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"));
diff --git a/gtk2_ardour/audio_clock.h b/gtk2_ardour/audio_clock.h
index 03ed27edbd..dae6bb1ae4 100644
--- a/gtk2_ardour/audio_clock.h
+++ b/gtk2_ardour/audio_clock.h
@@ -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;