diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-11-21 18:07:42 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-11-21 18:07:42 +0000 |
commit | 2eeb861253f69891412d1fdfaa87b0f842a1b8f6 (patch) | |
tree | acba45c817e2774ec7d00edfb9d11698e7d58ff2 | |
parent | 274a97a4021e342e4aaf66837c3f1d54b8c14e66 (diff) |
audio clocks: validate data for delta edits as well as absolute
git-svn-id: svn://localhost/ardour2/branches/3.0@10741 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/audio_clock.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index 802b0dbbba..3ae2c8bdd6 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -771,6 +771,35 @@ AudioClock::parse_as_distance (const std::string& instr) void AudioClock::end_edit_relative (bool add) { + bool ok = true; + + switch (_mode) { + case Timecode: + ok = timecode_validate_edit (edit_string); + break; + + case BBT: + ok = bbt_validate_edit (edit_string); + break; + + case MinSec: + ok = minsec_validate_edit (edit_string); + break; + + case Frames: + break; + } + + if (!ok) { + edit_string = pre_edit_string; + input_string.clear (); + _layout->set_text (edit_string); + show_edit_status (0); + /* edit attributes remain in use */ + queue_draw (); + return; + } + framecnt_t frames = parse_as_distance (input_string); editing = false; |