summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/tempo_dialog.cc2
-rw-r--r--libs/ardour/ardour/tempo.h7
-rw-r--r--libs/ardour/tempo.cc34
3 files changed, 26 insertions, 17 deletions
diff --git a/gtk2_ardour/tempo_dialog.cc b/gtk2_ardour/tempo_dialog.cc
index 206302999e..5d06f5ca3c 100644
--- a/gtk2_ardour/tempo_dialog.cc
+++ b/gtk2_ardour/tempo_dialog.cc
@@ -466,7 +466,7 @@ MeterDialog::init (const Timecode::BBT_Time& when, double bpb, double divisor, b
lock_styles.insert (make_pair (_("music"), PositionLockStyle::MusicTime));
strings.push_back (_("music"));
lock_styles.insert (make_pair (_("audio"), PositionLockStyle::AudioTime));
- strings.push_back (_("audio ur brane wul xplod"));
+ strings.push_back (_("audio"));
set_popdown_strings (lock_style, strings);
LockStyles::iterator ls;
for (ls = lock_styles.begin(); ls != lock_styles.end(); ++ls) {
diff --git a/libs/ardour/ardour/tempo.h b/libs/ardour/ardour/tempo.h
index 1842e1a902..4396cb8f99 100644
--- a/libs/ardour/ardour/tempo.h
+++ b/libs/ardour/ardour/tempo.h
@@ -327,9 +327,6 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
void bbt_time (framepos_t when, Timecode::BBT_Time&);
- double tick_at_frame (framecnt_t frame) const;
- framecnt_t frame_at_tick (double tick) const;
-
double beat_at_frame (framecnt_t frame) const;
framecnt_t frame_at_beat (double beat) const;
@@ -421,6 +418,10 @@ private:
Timecode::BBT_Time beats_to_bbt_locked (double beats);
double beat_at_frame_locked (framecnt_t frame) const;
framecnt_t frame_at_beat_locked (double beat) const;
+ double tick_at_frame_locked (framecnt_t frame) const;
+ framecnt_t frame_at_tick_locked (double tick) const;
+ framepos_t frame_time_locked (const Timecode::BBT_Time&);
+
friend class ::BBTTest;
friend class ::FrameposPlusBeatsTest;
friend class ::TempoTest;
diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc
index 0a3406c80f..e2a2efd91e 100644
--- a/libs/ardour/tempo.cc
+++ b/libs/ardour/tempo.cc
@@ -1405,7 +1405,7 @@ TempoMap::recompute_map (bool reassign_tempo_bbt, framepos_t end)
pr.second = where;
meter->set_beat (pr);
} else {
- meter->set_frame (frame_at_tick (meter->tick()));
+ meter->set_frame (frame_at_tick_locked (meter->tick()));
}
}
}
@@ -1589,7 +1589,7 @@ TempoMap::beats_to_bbt_locked (double beats)
}
double
-TempoMap::tick_at_frame (framecnt_t frame) const
+TempoMap::tick_at_frame_locked (framecnt_t frame) const
{
/* HOLD (at least) THE READER LOCK */
@@ -1617,7 +1617,7 @@ TempoMap::tick_at_frame (framecnt_t frame) const
}
framecnt_t
-TempoMap::frame_at_tick (double tick) const
+TempoMap::frame_at_tick_locked (double tick) const
{
/* HOLD THE READER LOCK */
@@ -1649,27 +1649,27 @@ double
TempoMap::beat_at_frame (framecnt_t frame) const
{
Glib::Threads::RWLock::ReaderLock lm (lock);
- return tick_at_frame (frame) / BBT_Time::ticks_per_beat;
+ return tick_at_frame_locked (frame) / BBT_Time::ticks_per_beat;
}
double
TempoMap::beat_at_frame_locked (framecnt_t frame) const
{
- return tick_at_frame (frame) / BBT_Time::ticks_per_beat;
+ return tick_at_frame_locked (frame) / BBT_Time::ticks_per_beat;
}
framecnt_t
TempoMap::frame_at_beat (double beat) const
{
Glib::Threads::RWLock::ReaderLock lm (lock);
- return frame_at_tick (beat * BBT_Time::ticks_per_beat);
+ return frame_at_tick_locked (beat * BBT_Time::ticks_per_beat);
}
framecnt_t
TempoMap::frame_at_beat_locked (double beat) const
{
- return frame_at_tick (beat * BBT_Time::ticks_per_beat);
+ return frame_at_tick_locked (beat * BBT_Time::ticks_per_beat);
}
framepos_t
@@ -1685,7 +1685,15 @@ TempoMap::frame_time (const BBT_Time& bbt)
}
Glib::Threads::RWLock::ReaderLock lm (lock);
- framepos_t const ret = frame_at_beat (bbt_to_beats_locked (bbt));
+ return frame_time_locked (bbt);;
+}
+
+framepos_t
+TempoMap::frame_time_locked (const BBT_Time& bbt)
+{
+ /* HOLD THE READER LOCK */
+
+ framepos_t const ret = frame_at_beat_locked (bbt_to_beats_locked (bbt));
return ret;
}
@@ -1742,7 +1750,7 @@ TempoMap::round_to_beat_subdivision (framepos_t fr, int sub_num, RoundMode dir)
{
Glib::Threads::RWLock::ReaderLock lm (lock);
- uint32_t ticks = (uint32_t) floor (tick_at_frame (fr) + 0.5);
+ uint32_t ticks = (uint32_t) floor (tick_at_frame_locked (fr) + 0.5);
uint32_t beats = (uint32_t) floor (ticks / BBT_Time::ticks_per_beat);
uint32_t ticks_one_subdivisions_worth = (uint32_t)BBT_Time::ticks_per_beat / sub_num;
@@ -1828,7 +1836,7 @@ TempoMap::round_to_beat_subdivision (framepos_t fr, int sub_num, RoundMode dir)
/* on the subdivision, do nothing */
}
}
- return frame_at_tick ((beats * BBT_Time::ticks_per_beat) + ticks);
+ return frame_at_tick_locked ((beats * BBT_Time::ticks_per_beat) + ticks);
}
framepos_t
@@ -1874,11 +1882,11 @@ TempoMap::round_to_type (framepos_t frame, RoundMode dir, BBTPointType type)
case Beat:
if (dir < 0) {
- return frame_at_beat (floor (beat_at_framepos));
+ return frame_at_beat_locked (floor (beat_at_framepos));
} else if (dir > 0) {
- return frame_at_beat (ceil (beat_at_framepos));
+ return frame_at_beat_locked (ceil (beat_at_framepos));
} else {
- return frame_at_beat (floor (beat_at_framepos + 0.5));
+ return frame_at_beat_locked (floor (beat_at_framepos + 0.5));
}
break;
}