X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Faudio_clock.cc;h=0c7f41f6ebe699b4b48d43a9a631df8ef0753119;hb=9f4a00fa898845ba177955f115fa2f96d62a8643;hp=2eaa4be6090f9f67f714edbe99cf9bbac906e9d2;hpb=72393f101ba2cae980838dd0d857719719ecc3d7;p=ardour.git diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index 2eaa4be609..0c7f41f6eb 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -45,6 +45,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace ARDOUR_UI_UTILS; using namespace PBD; using namespace Gtk; using namespace std; @@ -53,13 +54,14 @@ using Gtkmm2ext::Keyboard; sigc::signal AudioClock::ModeChanged; vector AudioClock::clocks; -const double AudioClock::info_font_scale_factor = 0.5; +const double AudioClock::info_font_scale_factor = 0.50; const double AudioClock::separator_height = 0.0; const double AudioClock::x_leading_padding = 6.0; #define BBT_BAR_CHAR "|" #define BBT_SCANF_FORMAT "%" PRIu32 "%*c%" PRIu32 "%*c%" PRIu32 -#define INFO_FONT_SIZE ((int)round(font_size * info_font_scale_factor)) +#define INFO_FONT_SIZE ((int)lrint(font_size * info_font_scale_factor)) +#define TXTSPAN "" AudioClock::AudioClock (const string& clock_name, bool transient, const string& widget_name, bool allow_edit, bool follows_playhead, bool duration, bool with_info) @@ -178,7 +180,7 @@ AudioClock::set_font () /* now a smaller version of the same font */ delete font_attr; - font.set_size ((int) lrint (font_size * info_font_scale_factor)); + font.set_size (INFO_FONT_SIZE); font.set_weight (Pango::WEIGHT_NORMAL); font_attr = new Pango::AttrFontDesc (Pango::Attribute::create_attr_font_desc (font)); @@ -281,7 +283,7 @@ AudioClock::set_colors () } void -AudioClock::render (cairo_t* cr) +AudioClock::render (cairo_t* cr, cairo_rectangle_t*) { /* main layout: rounded rect, plus the text */ @@ -493,7 +495,7 @@ AudioClock::on_size_request (Gtk::Requisition* req) tmp->set_font_description (font); - font.set_size ((int) lrint (font.get_size() * info_font_scale_factor)); + font.set_size (INFO_FONT_SIZE); font.set_weight (Pango::WEIGHT_NORMAL); tmp->set_font_description (font); @@ -619,6 +621,9 @@ AudioClock::end_edit (bool modify) break; case Frames: + if (edit_string.length() < 1) { + edit_string = pre_edit_string; + } break; } @@ -995,19 +1000,19 @@ AudioClock::set_slave_info () Slave* slave = _session->slave(); switch (sync_src) { - case JACK: - _left_layout->set_markup (string_compose ("%2", + case Engine: + _left_layout->set_markup (string_compose ("" TXTSPAN "%2", 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 ("%2", + _left_layout->set_markup (string_compose ("" TXTSPAN "%2", INFO_FONT_SIZE, sync_source_to_string(sync_src, true))); - _right_layout->set_markup (string_compose ("%2", + _right_layout->set_markup (string_compose ("" TXTSPAN "%2", INFO_FONT_SIZE, slave->approximate_current_delta())); } else { - _left_layout->set_markup (string_compose ("%2", + _left_layout->set_markup (string_compose ("" TXTSPAN "%2", INFO_FONT_SIZE, _("--pending--"))); _right_layout->set_text (""); } @@ -1019,21 +1024,21 @@ AudioClock::set_slave_info () TimecodeSlave* tcslave; if ((tcslave = dynamic_cast(_session->slave())) != 0) { matching = (tcslave->apparent_timecode_format() == _session->config.get_timecode_format()); - _left_layout->set_markup (string_compose ("%2%4", + _left_layout->set_markup (string_compose ("" TXTSPAN "%2%4", INFO_FONT_SIZE, sync_source_to_string(sync_src, true)[0], (matching?"green":"red"), dynamic_cast(slave)->approximate_current_position())); - _right_layout->set_markup (string_compose ("%2", + _right_layout->set_markup (string_compose ("" TXTSPAN "%2", INFO_FONT_SIZE, slave->approximate_current_delta())); } } else { - _left_layout->set_markup (string_compose ("%2", + _left_layout->set_markup (string_compose ("" TXTSPAN "%2", INFO_FONT_SIZE, _("--pending--"))); _right_layout->set_text (""); } break; } } else { - _left_layout->set_markup (string_compose ("INT/%2", + _left_layout->set_markup (string_compose ("" TXTSPAN "INT/%2", INFO_FONT_SIZE, sync_source_to_string(sync_src, true))); _right_layout->set_text (""); } @@ -1046,7 +1051,7 @@ AudioClock::set_frames (framepos_t when, bool /*force*/) bool negative = false; if (_off) { - _layout->set_text ("\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012"); + _layout->set_text (" ----------"); if (_left_layout) { _left_layout->set_text (""); @@ -1078,17 +1083,17 @@ AudioClock::set_frames (framepos_t when, bool /*force*/) sprintf (buf, "%" PRId64 "Hz", rate); } - _left_layout->set_markup (string_compose ("%2 %3", + _left_layout->set_markup (string_compose ("" TXTSPAN "%2 %3", INFO_FONT_SIZE, _("SR"), buf)); float vid_pullup = _session->config.get_video_pullup(); if (vid_pullup == 0.0) { - _right_layout->set_markup (string_compose ("%2 off", + _right_layout->set_markup (string_compose ("" TXTSPAN "%2 off", INFO_FONT_SIZE, _("Pull"))); } else { sprintf (buf, _("%+.4f%%"), vid_pullup); - _right_layout->set_markup (string_compose ("%2 %3", + _right_layout->set_markup (string_compose ("" TXTSPAN "%2 %3", INFO_FONT_SIZE, _("Pull"), buf)); } } @@ -1106,7 +1111,7 @@ AudioClock::set_minsec (framepos_t when, bool /*force*/) bool negative = false; if (_off) { - _layout->set_text ("\u2012\u2012:\u2012\u2012:\u2012\u2012.\u2012\u2012\u2012"); + _layout->set_text (" --:--:--.---"); if (_left_layout) { _left_layout->set_text (""); @@ -1127,7 +1132,7 @@ AudioClock::set_minsec (framepos_t when, bool /*force*/) mins = (int) floor (left / (_session->frame_rate() * 60.0f)); left -= (framecnt_t) floor (mins * _session->frame_rate() * 60.0f); secs = (int) floor (left / (float) _session->frame_rate()); - left -= (framecnt_t) floor (secs * _session->frame_rate()); + left -= (framecnt_t) floor ((double)(secs * _session->frame_rate())); millisecs = floor (left * 1000.0 / (float) _session->frame_rate()); if (negative) { @@ -1147,7 +1152,7 @@ AudioClock::set_timecode (framepos_t when, bool /*force*/) bool negative = false; if (_off) { - _layout->set_text ("\u2012\u2012:\u2012\u2012:\u2012\u2012:\u2012\u2012"); + _layout->set_text (" --:--:--:--"); if (_left_layout) { _left_layout->set_text (""); _right_layout->set_text (""); @@ -1182,7 +1187,7 @@ AudioClock::set_bbt (framepos_t when, bool /*force*/) bool negative = false; if (_off) { - _layout->set_text ("\u2012\u2012\u2012|\u2012\u2012|\u2012\u2012\u2012\u2012"); + _layout->set_text (" ---|--|----"); if (_left_layout) { _left_layout->set_text (""); _right_layout->set_text (""); @@ -1231,12 +1236,12 @@ 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 ("%3 %2", + sprintf (buf, "%-5.1f", m.tempo().beats_per_minute()); + _left_layout->set_markup (string_compose ("" TXTSPAN "%3 %2", INFO_FONT_SIZE, buf, _("Tempo"))); sprintf (buf, "%g/%g", m.meter().divisions_per_bar(), m.meter().note_divisor()); - _right_layout->set_markup (string_compose ("%3 %2", + _right_layout->set_markup (string_compose ("" TXTSPAN "%3 %2", INFO_FONT_SIZE, buf, _("Meter"))); } } @@ -1738,7 +1743,7 @@ AudioClock::on_motion_notify_event (GdkEventMotion *ev) drag_y = ev->y; - if (trunc (drag_accum) != 0) { + if (floor (drag_accum) != 0) { framepos_t frames; framepos_t pos; @@ -2012,7 +2017,7 @@ framepos_t AudioClock::frame_duration_from_bbt_string (framepos_t pos, const string& str) const { if (_session == 0) { - error << "AudioClock::current_time() called with BBT mode but without session!" << endmsg; + error << "AudioClock::frame_duration_from_bbt_string() called with BBT mode but without session!" << endmsg; return 0; } @@ -2104,7 +2109,7 @@ AudioClock::set_mode (Mode m) switch (_mode) { case Timecode: - mode_based_info_ratio = 0.5; + mode_based_info_ratio = 0.6; insert_map.push_back (11); insert_map.push_back (10); insert_map.push_back (8); @@ -2129,7 +2134,7 @@ AudioClock::set_mode (Mode m) break; case MinSec: - mode_based_info_ratio = 0.5; + mode_based_info_ratio = 0.6; insert_map.push_back (12); insert_map.push_back (11); insert_map.push_back (10); @@ -2142,7 +2147,7 @@ AudioClock::set_mode (Mode m) break; case Frames: - mode_based_info_ratio = 0.5; + mode_based_info_ratio = 0.45; break; }