summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/audio_clock.cc11
-rw-r--r--gtk2_ardour/audio_clock.h2
2 files changed, 10 insertions, 3 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index ae98f21de5..6a7733ae5f 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -1920,7 +1920,7 @@ AudioClock::current_duration (samplepos_t pos) const
}
bool
-AudioClock::bbt_validate_edit (const string& str)
+AudioClock::bbt_validate_edit (string & str)
{
AnyTime any;
@@ -1937,7 +1937,14 @@ AudioClock::bbt_validate_edit (const string& str)
}
if (!is_duration && any.bbt.beats == 0) {
- return false;
+ /* user could not have mean zero beats because for a
+ * non-duration clock that's impossible. Assume that they
+ * mis-entered things and meant Bar|1|ticks
+ */
+
+ char buf[128];
+ snprintf (buf, sizeof (buf), "%" PRIu32 "|%" PRIu32 "|%" PRIu32, any.bbt.bars, 1, any.bbt.ticks);
+ str = buf;
}
return true;
diff --git a/gtk2_ardour/audio_clock.h b/gtk2_ardour/audio_clock.h
index 6b9c61a7e8..5d8e58be6b 100644
--- a/gtk2_ardour/audio_clock.h
+++ b/gtk2_ardour/audio_clock.h
@@ -223,7 +223,7 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
samplepos_t get_sample_step (Field, samplepos_t pos = 0, int dir = 1);
bool timecode_validate_edit (const std::string&);
- bool bbt_validate_edit (const std::string&);
+ bool bbt_validate_edit (std::string&);
bool minsec_validate_edit (const std::string&);
samplepos_t samples_from_timecode_string (const std::string&) const;