From 50963a03c232a062280dac7c588c18344b75736e Mon Sep 17 00:00:00 2001 From: nick_m Date: Sun, 16 Oct 2016 03:26:30 +1100 Subject: AudioClock: remove duplicated code. amends 3a0a628a7 --- gtk2_ardour/audio_clock.cc | 58 +++++++++++++++------------------------------- 1 file changed, 19 insertions(+), 39 deletions(-) (limited to 'gtk2_ardour/audio_clock.cc') 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 { -- cgit v1.2.3