summaryrefslogtreecommitdiff
path: root/gtk2_ardour/audio_clock.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-10-16 03:26:30 +1100
committernick_m <mainsbridge@gmail.com>2016-10-16 03:26:30 +1100
commit50963a03c232a062280dac7c588c18344b75736e (patch)
tree769d9caa7693006b78b451b4ca6279342103095b /gtk2_ardour/audio_clock.cc
parent169296862737c16107e2d4855234946869c75739 (diff)
AudioClock: remove duplicated code. amends 3a0a628a7
Diffstat (limited to 'gtk2_ardour/audio_clock.cc')
-rw-r--r--gtk2_ardour/audio_clock.cc58
1 files changed, 19 insertions, 39 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index 7e490b4fdc..57800b6b23 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -1255,55 +1255,35 @@ AudioClock::set_bbt (framepos_t when, framecnt_t offset, bool /*force*/)
} else {
TempoMap& tmap (_session->tempo_map());
const double divisions = tmap.meter_section_at_frame (offset).divisions_per_bar();
+ Timecode::BBT_Time sub_bbt;
if (negative) {
BBT = tmap.bbt_at_beat (tmap.beat_at_frame (offset));
- Timecode::BBT_Time when_bbt = tmap.bbt_at_frame (offset - when);
-
- BBT.bars -= when_bbt.bars;
-
- if (BBT.ticks < when_bbt.ticks) {
- if (BBT.beats == 1) {
- BBT.bars--;
- BBT.beats = divisions;
- } else {
- BBT.beats--;
- }
- BBT.ticks = Timecode::BBT_Time::ticks_per_beat - (when_bbt.ticks - BBT.ticks);
- } else {
- BBT.ticks -= when_bbt.ticks;
- }
-
- if (BBT.beats < when_bbt.beats) {
- BBT.bars--;
- BBT.beats = divisions - (when_bbt.beats - BBT.beats);
- } else {
- BBT.beats -= when_bbt.beats;
- }
+ sub_bbt = tmap.bbt_at_frame (offset - when);
} else {
BBT = tmap.bbt_at_beat (tmap.beat_at_frame (when + offset));
- Timecode::BBT_Time when_bbt = tmap.bbt_at_frame (offset);
-
- BBT.bars -= when_bbt.bars;
+ sub_bbt = tmap.bbt_at_frame (offset);
+ }
- if (BBT.ticks < when_bbt.ticks) {
- if (BBT.beats == 1) {
- BBT.bars--;
- BBT.beats = divisions;
- } else {
- BBT.beats--;
- }
- BBT.ticks = Timecode::BBT_Time::ticks_per_beat - (when_bbt.ticks - BBT.ticks);
- } else {
- BBT.ticks -= when_bbt.ticks;
- }
+ BBT.bars -= sub_bbt.bars;
- if (BBT.beats < when_bbt.beats) {
+ if (BBT.ticks < sub_bbt.ticks) {
+ if (BBT.beats == 1) {
BBT.bars--;
- BBT.beats = divisions - (when_bbt.beats - BBT.beats);
+ BBT.beats = divisions;
} else {
- BBT.beats -= when_bbt.beats;
+ BBT.beats--;
}
+ BBT.ticks = Timecode::BBT_Time::ticks_per_beat - (sub_bbt.ticks - BBT.ticks);
+ } else {
+ BBT.ticks -= sub_bbt.ticks;
+ }
+
+ if (BBT.beats < sub_bbt.beats) {
+ BBT.bars--;
+ BBT.beats = divisions - (sub_bbt.beats - BBT.beats);
+ } else {
+ BBT.beats -= sub_bbt.beats;
}
}
} else {