_marker->set_position (pf);
if (_marker->meter().position_lock_style() == MusicTime) {
double const baf = _editor->session()->tempo_map().beat_at_frame (_editor->session()->tempo_map().round_to_bar (pf, (RoundMode) 0));
- _editor->session()->tempo_map().gui_move_meter (_real_section, _marker->meter(), baf);
+ _editor->session()->tempo_map().gui_move_meter (_real_section, baf);
} else {
- _editor->session()->tempo_map().gui_move_meter (_real_section, _marker->meter(), pf);
+ _editor->session()->tempo_map().gui_move_meter (_real_section, pf);
}
show_verbose_cursor_time (pf);
}
if (_real_section->position_lock_style() == MusicTime) {
- const double pulse = map.predict_tempo_pulse (_real_section, Tempo (_real_section->beats_per_minute(), _real_section->note_type()), pf);
+ const double pulse = map.predict_tempo_pulse (_real_section, pf);
when = map.pulse_to_bbt (pulse);
if (use_snap && _editor->snap_type() == SnapToBar) {
map.round_bbt (when, -1);
map.round_bbt (when, _editor->get_grid_beat_divisions (0));
}
const double beat = map.bbt_to_beats (when);
- map.gui_move_tempo_beat (_real_section, tp, beat);
+ map.gui_move_tempo_beat (_real_section, beat);
} else {
if (use_snap && _editor->snap_type() == SnapToBar) {
map.round_bbt (when, -1);
} else if (use_snap) {
map.round_bbt (when, _editor->get_grid_beat_divisions (0));
}
- pf = map.predict_tempo_frame (_real_section, Tempo (_real_section->beats_per_minute(), _real_section->note_type()), when);
- map.gui_move_tempo_frame (_real_section, tp, pf);
+ pf = map.predict_tempo_frame (_real_section, when);
+ map.gui_move_tempo_frame (_real_section, pf);
}
}
XMLNode &before = map.get_state();
if (_marker->tempo().position_lock_style() == MusicTime) {
- double const pulse = map.predict_tempo_pulse (_real_section, _marker->tempo(), _real_section->frame());
+ double const pulse = map.predict_tempo_pulse (_real_section, _real_section->frame());
map.add_tempo (_marker->tempo(), pulse, _marker->tempo().type());
} else {
map.add_tempo (_marker->tempo(), _real_section->frame(), _marker->tempo().type());
} else {
if (_marker->tempo().position_lock_style() == MusicTime) {
- double const pulse = map.predict_tempo_pulse (_real_section, Tempo (_real_section->beats_per_minute(), _real_section->note_type()), _real_section->frame());
+ double const pulse = map.predict_tempo_pulse (_real_section, _real_section->frame());
map.replace_tempo (*_real_section, Tempo (_real_section->beats_per_minute(), _real_section->note_type())
, pulse, _marker->tempo().type());
} else {
void remove_tempo (const TempoSection&, bool send_signal);
void remove_meter (const MeterSection&, bool send_signal);
- framepos_t predict_tempo_frame (TempoSection* section, const Tempo& bpm, const Timecode::BBT_Time& bbt);
- double predict_tempo_pulse (TempoSection* section, const Tempo& bpm, const framepos_t& frame);
+ framepos_t predict_tempo_frame (TempoSection* section, const Timecode::BBT_Time& bbt);
+ double predict_tempo_pulse (TempoSection* section, const framepos_t& frame);
void replace_tempo (const TempoSection&, const Tempo&, const double& where, TempoSection::Type type);
void replace_tempo (const TempoSection&, const Tempo&, const framepos_t& frame, TempoSection::Type type);
- void gui_move_tempo_frame (TempoSection*, const Tempo& bpm, const framepos_t& frame);
- void gui_move_tempo_beat (TempoSection*, const Tempo& bpm, const double& frame);
- void gui_move_meter (MeterSection*, const Meter& mt, const framepos_t& frame);
- void gui_move_meter (MeterSection*, const Meter& mt, const double& beat);
+ void gui_move_tempo_frame (TempoSection*, const framepos_t& frame);
+ void gui_move_tempo_beat (TempoSection*, const double& frame);
+ void gui_move_meter (MeterSection*, const framepos_t& frame);
+ void gui_move_meter (MeterSection*, const double& beat);
bool gui_change_tempo (TempoSection*, const Tempo& bpm);
- bool can_solve_bbt (TempoSection* section, const Tempo& bpm, const Timecode::BBT_Time& bbt);
+ bool can_solve_bbt (TempoSection* section, const Timecode::BBT_Time& bbt);
void replace_meter (const MeterSection&, const Meter&, const Timecode::BBT_Time& where);
void replace_meter (const MeterSection&, const Meter&, const framepos_t& frame);
bool check_solved (Metrics& metrics, bool by_frame);
bool set_active_tempos (const Metrics& metrics, const framepos_t& frame);
- bool solve_map (Metrics& metrics, TempoSection* section, const Tempo& bpm, const framepos_t& frame);
- bool solve_map (Metrics& metrics, TempoSection* section, const Tempo& bpm, const double& pulse);
- void solve_map (Metrics& metrics, MeterSection* section, const Meter& mt, const framepos_t& frame);
- void solve_map (Metrics& metrics, MeterSection* section, const Meter& mt, const double& pulse);
+ bool solve_map (Metrics& metrics, TempoSection* section, const framepos_t& frame);
+ bool solve_map (Metrics& metrics, TempoSection* section, const double& pulse);
+ void solve_map (Metrics& metrics, MeterSection* section, const framepos_t& frame);
+ void solve_map (Metrics& metrics, MeterSection* section, const double& pulse);
friend class ::BBTTest;
friend class ::FrameposPlusBeatsTest;
do_insert (ts);
if (recompute) {
- solve_map (_metrics, ts, Tempo (ts->beats_per_minute(), ts->note_type()), ts->pulse());
+ solve_map (_metrics, ts, ts->pulse());
}
}
do_insert (ts);
if (recompute) {
- solve_map (_metrics, ts, Tempo (ts->beats_per_minute(), ts->note_type()), ts->frame());
+ solve_map (_metrics, ts, ts->frame());
}
}
do_insert (new_meter);
if (recompute) {
- solve_map (_metrics, new_meter, Meter (meter.divisions_per_bar(), meter.note_divisor()), pulse);
+ solve_map (_metrics, new_meter, pulse);
}
}
do_insert (new_meter);
if (recompute) {
- solve_map (_metrics, new_meter, Meter (new_meter->divisions_per_bar(), new_meter->note_divisor()), frame);
+ solve_map (_metrics, new_meter, frame);
}
}
}
bool
-TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const Tempo& bpm, const framepos_t& frame)
+TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const framepos_t& frame)
{
TempoSection* prev_t = 0;
TempoSection* section_prev = 0;
}
bool
-TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const Tempo& bpm, const double& pulse)
+TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const double& pulse)
{
TempoSection* prev_t = 0;
TempoSection* section_prev = 0;
}
void
-TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, const framepos_t& frame)
+TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const framepos_t& frame)
{
MeterSection* prev_m = 0;
new_section->set_pulse (0.0);
new_section->set_active (true);
- if (solve_map (future_map, new_section, Tempo (new_section->beats_per_minute(), new_section->note_type()), frame)) {
+ if (solve_map (future_map, new_section, frame)) {
first_t->set_frame (frame);
first_t->set_pulse (0.0);
first_t->set_active (true);
- solve_map (imaginary, first_t, Tempo (first_t->beats_per_minute(), first_t->note_type()), frame);
+ solve_map (imaginary, first_t, frame);
} else {
return;
}
}
void
-TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, const double& pulse)
+TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const double& pulse)
{
MeterSection* prev_m = 0;
}
bool
-TempoMap::can_solve_bbt (TempoSection* ts, const Tempo& bpm, const BBT_Time& bbt)
+TempoMap::can_solve_bbt (TempoSection* ts, const BBT_Time& bbt)
{
Metrics copy;
TempoSection* new_section = 0;
}
double const beat = bbt_to_beats_locked (copy, bbt);
- bool ret = solve_map (copy, new_section, bpm, pulse_at_beat_locked (copy, beat));
+ bool ret = solve_map (copy, new_section, pulse_at_beat_locked (copy, beat));
Metrics::const_iterator d = copy.begin();
while (d != copy.end()) {
* @return returns - the position in frames where the new tempo section will lie.
*/
framepos_t
-TempoMap::predict_tempo_frame (TempoSection* section, const Tempo& bpm, const BBT_Time& bbt)
+TempoMap::predict_tempo_frame (TempoSection* section, const BBT_Time& bbt)
{
Glib::Threads::RWLock::ReaderLock lm (lock);
Metrics future_map;
TempoSection* new_section = copy_metrics_and_point (future_map, section);
const double beat = bbt_to_beats_locked (future_map, bbt);
- if (solve_map (future_map, new_section, bpm, pulse_at_beat_locked (future_map, beat))) {
+ if (solve_map (future_map, new_section, pulse_at_beat_locked (future_map, beat))) {
ret = new_section->frame();
} else {
ret = frame_at_beat_locked (_metrics, beat);
}
double
-TempoMap::predict_tempo_pulse (TempoSection* section, const Tempo& bpm, const framepos_t& frame)
+TempoMap::predict_tempo_pulse (TempoSection* section, const framepos_t& frame)
{
Glib::Threads::RWLock::ReaderLock lm (lock);
Metrics future_map;
double ret = 0.0;
TempoSection* new_section = copy_metrics_and_point (future_map, section);
- if (solve_map (future_map, new_section, bpm, frame)) {
+ if (solve_map (future_map, new_section, frame)) {
ret = new_section->pulse();
} else {
ret = pulse_at_frame_locked (_metrics, frame);
}
void
-TempoMap::gui_move_tempo_frame (TempoSection* ts, const Tempo& bpm, const framepos_t& frame)
+TempoMap::gui_move_tempo_frame (TempoSection* ts, const framepos_t& frame)
{
Metrics future_map;
{
Glib::Threads::RWLock::WriterLock lm (lock);
TempoSection* new_section = copy_metrics_and_point (future_map, ts);
- if (solve_map (future_map, new_section, bpm, frame)) {
- solve_map (_metrics, ts, bpm, frame);
+ if (solve_map (future_map, new_section, frame)) {
+ solve_map (_metrics, ts, frame);
}
}
}
void
-TempoMap::gui_move_tempo_beat (TempoSection* ts, const Tempo& bpm, const double& beat)
+TempoMap::gui_move_tempo_beat (TempoSection* ts, const double& beat)
{
Metrics future_map;
{
Glib::Threads::RWLock::WriterLock lm (lock);
TempoSection* new_section = copy_metrics_and_point (future_map, ts);
- if (solve_map (future_map, new_section, bpm, pulse_at_beat_locked (future_map, beat))) {
- solve_map (_metrics, ts, bpm, pulse_at_beat_locked (_metrics, beat));
+ if (solve_map (future_map, new_section, pulse_at_beat_locked (future_map, beat))) {
+ solve_map (_metrics, ts, pulse_at_beat_locked (_metrics, beat));
}
}
}
void
-TempoMap::gui_move_meter (MeterSection* ms, const Meter& mt, const framepos_t& frame)
+TempoMap::gui_move_meter (MeterSection* ms, const framepos_t& frame)
{
{
Glib::Threads::RWLock::WriterLock lm (lock);
- solve_map (_metrics, ms, mt, frame);
+ solve_map (_metrics, ms, frame);
}
MetricPositionChanged (); // Emit Signal
}
void
-TempoMap::gui_move_meter (MeterSection* ms, const Meter& mt, const double& beat)
+TempoMap::gui_move_meter (MeterSection* ms, const double& beat)
{
{
Glib::Threads::RWLock::WriterLock lm (lock);
- solve_map (_metrics, ms, mt, pulse_at_beat_locked (_metrics, beat));
+ solve_map (_metrics, ms, pulse_at_beat_locked (_metrics, beat));
}
MetricPositionChanged (); // Emit Signal
}
bool
-TempoMap::gui_change_tempo (TempoSection* ts, const Tempo& bpm)
+TempoMap::gui_change_tempo (TempoSection* ts, const Tempo& bpm)
{
Metrics future_map;
bool can_solve = false;