fix 0dbFS meter color transition
[ardour.git] / gtk2_ardour / tempo_dialog.cc
index 02686b62ff5a6833fb5212eadedf499067371edc..a458c4220ad1869978bb032d794f911591352d90 100644 (file)
@@ -72,6 +72,7 @@ TempoDialog::init (const Timecode::BBT_Time& when, double bpm, double note_type,
        bpm_spinner.set_digits (2);
        bpm_spinner.set_wrap (true);
        bpm_spinner.set_value (bpm);
+       bpm_spinner.set_alignment (1.0);
 
        note_types.insert (make_pair (_("whole"), 1.0));
        strings.push_back (_("whole"));
@@ -139,6 +140,8 @@ TempoDialog::init (const Timecode::BBT_Time& when, double bpm, double note_type,
        if (movable) {
                when_bar_entry.set_width_chars(4);
                when_beat_entry.set_width_chars (4);
+               when_bar_entry.set_alignment (1.0);
+               when_beat_entry.set_alignment (1.0);
 
                when_bar_label.set_name ("MetricLabel");
                when_beat_label.set_name ("MetricLabel");
@@ -274,15 +277,21 @@ TempoDialog::tap_tempo_button_press (GdkEventButton *ev)
                interval = (now - last_tap) * 1.0e-6;
                if (interval <= 6.0) {
                        // <= 6 seconds (say): >= 10 bpm
-                       if (average_interval > 0 && average_interval > interval / 1.2 && average_interval < interval * 1.2) {
+                       if (average_interval > 0) {
+                               if (average_interval > interval / 1.2 && average_interval < interval * 1.2) {
                                average_interval = interval * decay
                                        + average_interval * (1.0-decay);
+                               } else {
+                                       average_interval = 0;
+                               }
                        } else {
                                average_interval = interval;
                        }
 
-                       bpm = 60.0 / average_interval;
-                       bpm_spinner.set_value (bpm);
+                       if (average_interval > 0) {
+                               bpm = 60.0 / average_interval;
+                               bpm_spinner.set_value (bpm);
+                       }
                } else {
                        average_interval = 0;
                }
@@ -291,6 +300,8 @@ TempoDialog::tap_tempo_button_press (GdkEventButton *ev)
                tapped = true;
        }
        last_tap = now;
+
+       return true;
 }
 
 bool
@@ -327,6 +338,7 @@ MeterDialog::init (const Timecode::BBT_Time& when, double bpb, double divisor, b
        snprintf (buf, sizeof (buf), "%.2f", bpb);
        bpb_entry.set_text (buf);
        bpb_entry.select_region (0, -1);
+       bpb_entry.set_alignment (1.0);
 
        note_types.insert (make_pair (_("whole"), 1.0));
        strings.push_back (_("whole"));
@@ -372,6 +384,7 @@ MeterDialog::init (const Timecode::BBT_Time& when, double bpb, double divisor, b
 
        snprintf (buf, sizeof (buf), "%" PRIu32, when.bars);
        when_bar_entry.set_text (buf);
+       when_bar_entry.set_alignment (1.0);
 
        if (movable) {
                Label* when_label = manage (new Label(_("Meter begins at bar:"), ALIGN_LEFT, ALIGN_CENTER));