framecnt_t frame_at_beat_locked (const Metrics& metrics, double beat) const;
double tick_at_frame_locked (const Metrics& metrics, framecnt_t frame) const;
- double tick_offset_at (const Metrics& metrics, double tick) const;
+ double beat_offset_at (const Metrics& metrics, double beat) const;
frameoffset_t frame_offset_at (const Metrics& metrics, framepos_t frame) const;
framecnt_t frame_at_tick_locked (const Metrics& metrics, double tick) const;
return;
}
Glib::Threads::RWLock::ReaderLock lm (lock);
- framepos_t const frame_off = frame_offset_at (_metrics, frame);
+ frameoffset_t const frame_off = frame_offset_at (_metrics, frame);
double const beats = beat_at_frame_locked (_metrics, frame + frame_off);
bbt = beats_to_bbt_locked (_metrics, beats);
}
double
-TempoMap::tick_offset_at (const Metrics& metrics, double tick) const
+TempoMap::beat_offset_at (const Metrics& metrics, double beat) const
{
MeterSection* prev_m = 0;
double beat_off = 0.0;
for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) {
MeterSection* m = 0;
if ((m = dynamic_cast<MeterSection*> (*i)) != 0) {
- if (m->tick() > tick) {
+ if (m->beat() > beat) {
break;
}
{
Glib::Threads::RWLock::ReaderLock lm (lock);
framecnt_t const frame = frame_at_beat_locked (_metrics, beat);
- framecnt_t const frame_off = frame_offset_at (_metrics, frame);
+ frameoffset_t const frame_off = frame_offset_at (_metrics, frame);
return frame - frame_off;
}
Glib::Threads::RWLock::ReaderLock lm (lock);
framecnt_t const frame = frame_at_beat_locked (_metrics, bbt_to_beats_locked (_metrics, bbt));
- framecnt_t const frame_off = frame_offset_at (_metrics, frame);
+ frameoffset_t const frame_off = frame_offset_at (_metrics, frame);
return frame - frame_off;
}
while (cnt <= upper_beat) {
framecnt_t pos = frame_at_beat_locked (_metrics, cnt);
Tempo const tempo = tempo_at (pos);
+ MeterSection const meter = meter_section_at (pos);
frameoffset_t const frame_offset = frame_offset_at (_metrics, pos);
pos -= frame_offset;
- MeterSection const meter = meter_section_at (pos);
BBT_Time const bbt = beats_to_bbt_locked (_metrics, (double) cnt);
for (i = _metrics.begin(); i != _metrics.end(); ++i) {
TempoSection* t;
if ((t = dynamic_cast<TempoSection*> (*i)) != 0) {
- if ((prev_ts) && t->frame() > frame_off) {
+ if ((prev_ts) && t->frame() > frame) {
/* this is the one past frame */
- double const ret = prev_ts->tempo_at_frame (frame_off, _frame_rate);
+ double const ret = prev_ts->tempo_at_frame (frame, _frame_rate);
Tempo const ret_tempo (ret, prev_ts->note_type());
return ret_tempo;
}