diff options
-rw-r--r-- | gtk2_ardour/audio_clock.cc | 85 | ||||
-rw-r--r-- | gtk2_ardour/audio_clock.h | 1 |
2 files changed, 49 insertions, 37 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index 62e872f7d4..2b65b2ef6d 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -963,8 +963,8 @@ AudioClock::set (framepos_t when, bool force, framecnt_t offset) } if (when == last_when && !force) { - if (_mode != Timecode) { - /* timecode may need to force display of TC source + if (_mode != Timecode && _mode != MinSec) { + /* may need to force display of TC source * time, so don't return early. */ return; @@ -989,6 +989,9 @@ AudioClock::set (framepos_t when, bool force, framecnt_t offset) break; case MinSec: + if (_right_layout) { + _right_layout->set_alignment(Pango::ALIGN_RIGHT); + } set_minsec (when, force); break; @@ -1003,6 +1006,46 @@ AudioClock::set (framepos_t when, bool force, framecnt_t offset) } void +AudioClock::set_slave_info () +{ + if (!_left_layout || !_right_layout) { + return; + } + + SyncSource sync_src = Config->get_sync_source(); + + if (_session->config.get_external_sync()) { + Slave* slave = _session->slave(); + + switch (sync_src) { + case JACK: + _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_text (""); + break; + case LTC: + case MTC: + case MIDIClock: + if (slave) { + _left_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"green\">%2</span>", + INFO_FONT_SIZE, dynamic_cast<TimecodeSlave*>(slave)->approximate_current_position())); + _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; + } + } else { + _left_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">INT/%2</span>", + INFO_FONT_SIZE, sync_source_to_string(sync_src, true))); + _right_layout->set_text (""); + } +} + +void AudioClock::set_frames (framepos_t when, bool /*force*/) { char buf[32]; @@ -1100,6 +1143,7 @@ AudioClock::set_minsec (framepos_t when, bool /*force*/) } _layout->set_text (buf); + set_slave_info(); } void @@ -1133,40 +1177,7 @@ AudioClock::set_timecode (framepos_t when, bool /*force*/) _layout->set_text (Timecode::timecode_format_time(TC)); - if (_left_layout && _right_layout) { - - SyncSource sync_src = Config->get_sync_source(); - - if (_session->config.get_external_sync()) { - Slave* slave = _session->slave(); - - switch (sync_src) { - case JACK: - _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_text (""); - break; - case LTC: - case MTC: - case MIDIClock: - if (slave) { - _left_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"green\">%2</span>", - INFO_FONT_SIZE, dynamic_cast<TimecodeSlave*>(slave)->approximate_current_position())); - _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; - } - } else { - _left_layout->set_markup (string_compose ("<span size=\"%1\" foreground=\"white\">INT/%2</span>", - INFO_FONT_SIZE, sync_source_to_string(sync_src, true))); - _right_layout->set_text (""); - } - } + set_slave_info(); } void @@ -2086,7 +2097,7 @@ AudioClock::set_mode (Mode m) break; case MinSec: - mode_based_info_ratio = 1.0; + mode_based_info_ratio = 0.5; insert_map.push_back (12); insert_map.push_back (11); insert_map.push_back (10); diff --git a/gtk2_ardour/audio_clock.h b/gtk2_ardour/audio_clock.h index db0db12760..4a077da7d8 100644 --- a/gtk2_ardour/audio_clock.h +++ b/gtk2_ardour/audio_clock.h @@ -183,6 +183,7 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr void on_size_allocate (Gtk::Allocation&); bool on_focus_out_event (GdkEventFocus*); + void set_slave_info (); void set_timecode (framepos_t, bool); void set_bbt (framepos_t, bool); void set_minsec (framepos_t, bool); |