use syntactic sugar
[ardour.git] / gtk2_ardour / audio_clock.cc
index 6a7733ae5f9bd7bc3f9b52116e900a26b2600e5f..2656c2b445f128cf31d0217d09fe392f17ae7a0a 100644 (file)
@@ -34,8 +34,9 @@
 #include "ardour/profile.h"
 #include "ardour/lmath.h"
 #include "ardour/session.h"
-#include "ardour/slave.h"
+#include "ardour/transport_master.h"
 #include "ardour/tempo.h"
+#include "ardour/transport_master_manager.h"
 #include "ardour/types.h"
 
 #include "ardour_ui.h"
@@ -509,7 +510,7 @@ AudioClock::end_edit (bool modify)
                        break;
 
                case Seconds:
-                       // no break
+                       /* fall through */
                case Samples:
                        if (edit_string.length() < 1) {
                                edit_string = pre_edit_string;
@@ -938,20 +939,19 @@ AudioClock::set_slave_info ()
                return;
        }
 
-       SyncSource sync_src = Config->get_sync_source();
+       boost::shared_ptr<TransportMaster> tm = TransportMasterManager::instance().current();
 
-       if (_session->config.get_external_sync()) {
-               Slave* slave = _session->slave();
+       if (_session->transport_master_is_external()) {
 
-               switch (sync_src) {
+               switch (tm->type()) {
                case Engine:
-                       _left_btn.set_text (sync_source_to_string (sync_src, true), true);
+                       _left_btn.set_text (tm->name(), true);
                        _right_btn.set_text ("", true);
                        break;
                case MIDIClock:
-                       if (slave) {
-                               _left_btn.set_text (sync_source_to_string (sync_src, true), true);
-                               _right_btn.set_text (slave->approximate_current_delta (), true);
+                       if (tm) {
+                               _left_btn.set_text (tm->display_name(), true);
+                               _right_btn.set_text (tm->delta_string (), true);
                        } else {
                                _left_btn.set_text (_("--pending--"), true);
                                _right_btn.set_text ("", true);
@@ -959,17 +959,17 @@ AudioClock::set_slave_info ()
                        break;
                case LTC:
                case MTC:
-                       if (slave) {
+                       if (tm) {
                                bool matching;
-                               TimecodeSlave* tcslave;
-                               if ((tcslave = dynamic_cast<TimecodeSlave*>(_session->slave())) != 0) {
-                                       matching = (tcslave->apparent_timecode_format() == _session->config.get_timecode_format());
+                               boost::shared_ptr<TimecodeTransportMaster> tcmaster;
+                               if ((tcmaster = boost::dynamic_pointer_cast<TimecodeTransportMaster>(tm)) != 0) {
+                                       matching = (tcmaster->apparent_timecode_format() == _session->config.get_timecode_format());
                                        _left_btn.set_text (string_compose ("%1<span face=\"monospace\" foreground=\"%3\">%2</span>",
-                                                               sync_source_to_string(sync_src, true)[0],
-                                                               dynamic_cast<TimecodeSlave*>(slave)->approximate_current_position (),
-                                                               matching ? "#66ff66" : "#ff3333"
+                                                                           tm->display_name()[0],
+                                                                           tcmaster->position_string (),
+                                                                           matching ? "#66ff66" : "#ff3333"
                                                                ), true);
-                                       _right_btn.set_text (slave->approximate_current_delta (), true);
+                                       _right_btn.set_text (tm->delta_string (), true);
                                }
                        } else {
                                _left_btn.set_text (_("--pending--"), true);
@@ -978,8 +978,7 @@ AudioClock::set_slave_info ()
                        break;
                }
        } else {
-               _left_btn.set_text (string_compose ("%1/%2",
-                                       _("INT"), sync_source_to_string(sync_src, true)), true);
+               _left_btn.set_text (string_compose ("%1/%2", _("INT"), tm->display_name()), true);
                _right_btn.set_text ("", true);
        }
 }