mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-25 07:57:43 +01:00
don't double-call JackStartFreewheeling if we're already freewheeling
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3434 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
4def7ed222
commit
66016dfef7
2 changed files with 30 additions and 25 deletions
|
|
@ -202,24 +202,25 @@ class AudioEngine : public sigc::trackable
|
|||
std::string make_port_name_non_relative (std::string);
|
||||
|
||||
private:
|
||||
ARDOUR::Session *session;
|
||||
jack_client_t *_jack;
|
||||
std::string jack_client_name;
|
||||
Glib::Mutex _process_lock;
|
||||
Glib::Cond session_removed;
|
||||
bool session_remove_pending;
|
||||
bool _running;
|
||||
bool _has_run;
|
||||
nframes_t _buffer_size;
|
||||
nframes_t _frame_rate;
|
||||
nframes_t monitor_check_interval;
|
||||
nframes_t last_monitor_check;
|
||||
nframes_t _processed_frames;
|
||||
bool _freewheeling;
|
||||
bool _freewheel_thread_registered;
|
||||
ARDOUR::Session* session;
|
||||
jack_client_t* _jack;
|
||||
std::string jack_client_name;
|
||||
Glib::Mutex _process_lock;
|
||||
Glib::Cond session_removed;
|
||||
bool session_remove_pending;
|
||||
bool _running;
|
||||
bool _has_run;
|
||||
nframes_t _buffer_size;
|
||||
nframes_t _frame_rate;
|
||||
nframes_t monitor_check_interval;
|
||||
nframes_t last_monitor_check;
|
||||
nframes_t _processed_frames;
|
||||
bool _freewheeling;
|
||||
bool _freewheel_pending;
|
||||
bool _freewheel_thread_registered;
|
||||
sigc::slot<int,nframes_t> freewheel_action;
|
||||
bool reconnect_on_halt;
|
||||
int _usecs_per_cycle;
|
||||
bool reconnect_on_halt;
|
||||
int _usecs_per_cycle;
|
||||
|
||||
typedef std::set<Port*> Ports;
|
||||
SerializedRCUManager<Ports> ports;
|
||||
|
|
|
|||
|
|
@ -63,13 +63,12 @@ AudioEngine::AudioEngine (string client_name)
|
|||
last_monitor_check = 0;
|
||||
monitor_check_interval = max_frames;
|
||||
_processed_frames = 0;
|
||||
_freewheeling = false;
|
||||
_usecs_per_cycle = 0;
|
||||
_jack = 0;
|
||||
_frame_rate = 0;
|
||||
_buffer_size = 0;
|
||||
_freewheeling = false;
|
||||
_freewheel_thread_registered = false;
|
||||
_freewheeling = false;
|
||||
|
||||
m_meter_thread = 0;
|
||||
g_atomic_int_set (&m_meter_exit, 0);
|
||||
|
|
@ -295,8 +294,6 @@ AudioEngine::process_callback (nframes_t nframes)
|
|||
|
||||
if (_freewheeling) {
|
||||
if (Freewheel (nframes)) {
|
||||
cerr << "Freewheeling returned non-zero!\n";
|
||||
_freewheeling = false;
|
||||
jack_set_freewheel (_jack, false);
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -1025,11 +1022,18 @@ AudioEngine::freewheel (bool onoff)
|
|||
{
|
||||
if (_jack) {
|
||||
|
||||
if (onoff) {
|
||||
_freewheel_thread_registered = false;
|
||||
}
|
||||
if (onoff != _freewheeling) {
|
||||
|
||||
return jack_set_freewheel (_jack, onoff);
|
||||
if (onoff) {
|
||||
_freewheel_thread_registered = false;
|
||||
}
|
||||
|
||||
return jack_set_freewheel (_jack, onoff);
|
||||
|
||||
} else {
|
||||
/* already doing what has been asked for */
|
||||
return 0;
|
||||
}
|
||||
|
||||
} else {
|
||||
return -1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue