MIDIClock is not a Timecode slave, fix segfault
authorRobin Gareus <robin@gareus.org>
Sun, 11 Nov 2012 23:11:53 +0000 (23:11 +0000)
committerRobin Gareus <robin@gareus.org>
Sun, 11 Nov 2012 23:11:53 +0000 (23:11 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@13446 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour_ui.cc
gtk2_ardour/audio_clock.cc

index ab2536685511d3926618fd0318b54fbaed61ed9d..a123468aae395c91fb5aa911fe5976a4717aa9e7 100644 (file)
@@ -1077,8 +1077,9 @@ ARDOUR_UI::update_timecode_format ()
        if (_session) {
                bool matching;
                TimecodeSlave* tcslave;
+               SyncSource sync_src = Config->get_sync_source();
 
-               if ((tcslave = dynamic_cast<TimecodeSlave*>(_session->slave())) != 0) {
+               if ((sync_src == LTC || sync_src == MTC) && (tcslave = dynamic_cast<TimecodeSlave*>(_session->slave())) != 0) {
                        matching = (tcslave->apparent_timecode_format() == _session->config.get_timecode_format());
                } else {
                        matching = true;
index c816c46857836dfbd5b6aae99790c18fe3817f9f..a0adb65e7c5f295bd12b72035bf58432c974ddca 100644 (file)
@@ -1028,9 +1028,20 @@ AudioClock::set_slave_info ()
                                                INFO_FONT_SIZE, sync_source_to_string(sync_src, true)));
                        _right_layout->set_text ("");
                        break;
+               case MIDIClock:
+                       if (slave) {
+                               _left_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">%2</span>",
+                                                       INFO_FONT_SIZE, sync_source_to_string(sync_src, true)));
+                               _right_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">%2</span>",
+                                                       INFO_FONT_SIZE, slave->approximate_current_delta()));
+                       } else {
+                               _left_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">%2</span>",
+                                                       INFO_FONT_SIZE, _("--pending--")));
+                               _right_layout->set_text ("");
+                       }
+                       break;
                case LTC:
                case MTC:
-               case MIDIClock:
                        if (slave) {
                                bool matching;
                                TimecodeSlave* tcslave;