diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h index 6a7d2807da..2dbc6b1232 100644 --- a/libs/ardour/ardour/audioengine.h +++ b/libs/ardour/ardour/audioengine.h @@ -198,6 +198,10 @@ class LIBARDOUR_API AudioEngine : public PortManager, public SessionHandlePtr static AudioEngine* instance() { return _instance; } static void destroy(); + + /* this method is intended only to be used as a "fast" callback from libtemporal */ + static int static_sample_rate () { return _instance->sample_rate(); } + void died (); /* The backend will cause these at the appropriate time(s) */ diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index b870eb765d..d6feaa0fdd 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -288,8 +288,6 @@ AudioEngine::process_callback (pframes_t nframes) thread_init_callback (NULL); } -#warning NUTEMPO session sample rate or backend sample rate? - Temporal::set_thread_sample_rate (sample_rate()); Temporal::TempoMap::fetch (); /* This is for JACK, where the latency callback arrives in sync with @@ -1433,7 +1431,6 @@ AudioEngine::thread_init_callback (void* arg) PBD::notify_event_loops_about_thread_creation (pthread_self(), thread_name, 4096); AsyncMIDIPort::set_process_thread (pthread_self()); - Temporal::set_thread_sample_rate (44100); /* will change later as appropriate */ Temporal::TempoMap::fetch (); if (arg) { diff --git a/libs/ardour/butler.cc b/libs/ardour/butler.cc index 057077ad0d..524e48525d 100644 --- a/libs/ardour/butler.cc +++ b/libs/ardour/butler.cc @@ -211,7 +211,6 @@ Butler::thread_work () } } - Temporal::_thread_sample_rate = _session.sample_rate (); Temporal::TempoMap::fetch (); restart: diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index 86d29e48b2..5d91e08504 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -524,6 +524,8 @@ ARDOUR::init (bool try_optimization, const char* localedir, bool with_gui) return true; } + Temporal::set_sample_rate_callback (AudioEngine::static_sample_rate); + running_from_gui = with_gui; #ifndef NDEBUG diff --git a/libs/ardour/graph.cc b/libs/ardour/graph.cc index 2ed26b0a3e..5c9bc82eb8 100644 --- a/libs/ardour/graph.cc +++ b/libs/ardour/graph.cc @@ -538,7 +538,6 @@ again: void Graph::setup_thread_local_variables () { - Temporal::set_thread_sample_rate (AudioEngine::instance()->sample_rate()); Temporal::TempoMap::fetch (); } diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc index 3631d568fa..1a39c10d7d 100644 --- a/libs/ardour/session_process.cc +++ b/libs/ardour/session_process.cc @@ -35,7 +35,7 @@ #include -#include "temporal/superclock.h" +#include "temporal/tempo.h" #include "ardour/audioengine.h" #include "ardour/auditioner.h" @@ -72,7 +72,7 @@ using namespace std; void Session::setup_thread_local_variables () { - Temporal::set_thread_sample_rate (sample_rate()); + Temporal::TempoMap::fetch (); } /** Called by the audio engine when there is work to be done with JACK. diff --git a/libs/surfaces/control_protocol/control_protocol.cc b/libs/surfaces/control_protocol/control_protocol.cc index 2895c33e9e..4010732918 100644 --- a/libs/surfaces/control_protocol/control_protocol.cc +++ b/libs/surfaces/control_protocol/control_protocol.cc @@ -383,7 +383,6 @@ ControlProtocol::notify_stripable_selection_changed (StripableNotificationListPt void ControlProtocol::event_loop_precall () { - Temporal::set_thread_sample_rate (session->sample_rate()); Temporal::TempoMap::fetch (); }