ensure that Session handles tempo map changes synchronously in the main RT process thread
This commit is contained in:
parent
10dc09fcd4
commit
22b50c1716
@ -1384,6 +1384,7 @@ protected:
|
||||
void set_transport_speed (double speed);
|
||||
void set_default_play_speed (double spd);
|
||||
bool need_declick_before_locate () const;
|
||||
void tempo_map_changed ();
|
||||
|
||||
private:
|
||||
int create (const std::string& mix_template, BusProfile const *, bool unnamed);
|
||||
@ -1892,8 +1893,6 @@ private:
|
||||
int send_full_time_code (samplepos_t, pframes_t nframes);
|
||||
void send_song_position_pointer (samplepos_t);
|
||||
|
||||
void tempo_map_changed ();
|
||||
|
||||
/* edit/mix groups */
|
||||
|
||||
int load_route_groups (const XMLNode&, int);
|
||||
|
@ -289,7 +289,13 @@ AudioEngine::process_callback (pframes_t nframes)
|
||||
thread_init_callback (NULL);
|
||||
}
|
||||
|
||||
Temporal::TempoMap::fetch ();
|
||||
Temporal::TempoMap::SharedPtr current_map = Temporal::TempoMap::read ();
|
||||
if (current_map != Temporal::TempoMap::use()) {
|
||||
Temporal::TempoMap::set (current_map);
|
||||
if (_session) {
|
||||
_session->tempo_map_changed ();
|
||||
}
|
||||
}
|
||||
|
||||
/* This is for JACK, where the latency callback arrives in sync with
|
||||
* port registration (usually while ardour holds the process-lock
|
||||
|
@ -476,8 +476,6 @@ Session::Session (AudioEngine &eng,
|
||||
Config->ParameterChanged.connect_same_thread (*this, boost::bind (&Session::config_changed, this, _1, false));
|
||||
config.ParameterChanged.connect_same_thread (*this, boost::bind (&Session::config_changed, this, _1, true));
|
||||
|
||||
TempoMap::MapChanged.connect_same_thread (*this, boost::bind (&Session::tempo_map_changed, this));
|
||||
|
||||
if (was_dirty) {
|
||||
DirtyChanged (); /* EMIT SIGNAL */
|
||||
}
|
||||
|
@ -1628,10 +1628,7 @@ Session::implement_master_strategy ()
|
||||
void
|
||||
Session::sync_cues ()
|
||||
{
|
||||
std::cerr << "Need to sync cues!\n";
|
||||
|
||||
_locations->apply (*this, &Session::sync_cues_from_list);
|
||||
|
||||
}
|
||||
|
||||
struct LocationByTime
|
||||
|
Loading…
Reference in New Issue
Block a user