Merge branch 'master' into windows
This commit is contained in:
commit
d63e8ba0e8
@ -282,17 +282,7 @@ class AudioBackend : public PortEngine {
|
||||
virtual std::string midi_option () const = 0;
|
||||
|
||||
/* State Control */
|
||||
|
||||
/* non-virtual method to avoid possible overrides of default
|
||||
* parameters. See Scott Meyers or other books on C++ to
|
||||
* understand this pattern, or possibly just this:
|
||||
*
|
||||
* http://stackoverflow.com/questions/12139786/good-pratice-default-arguments-for-pure-virtual-method
|
||||
*/
|
||||
int start (bool for_latency_measurement=false) {
|
||||
return _start (for_latency_measurement);
|
||||
}
|
||||
|
||||
|
||||
/** Start using the device named in the most recent call
|
||||
* to set_device(), with the parameters set by various
|
||||
* the most recent calls to set_sample_rate() etc. etc.
|
||||
@ -308,8 +298,24 @@ class AudioBackend : public PortEngine {
|
||||
* any existing systemic latency settings.
|
||||
*
|
||||
* Return zero if successful, negative values otherwise.
|
||||
*/
|
||||
virtual int _start (bool for_latency_measurement) = 0;
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* Why is this non-virtual but ::_start() is virtual ?
|
||||
* Virtual methods with default parameters create possible ambiguity
|
||||
* because a derived class may implement the same method with a different
|
||||
* type or value of default parameter.
|
||||
*
|
||||
* So we make this non-virtual method to avoid possible overrides of
|
||||
* default parameters. See Scott Meyers or other books on C++ to understand
|
||||
* this pattern, or possibly just this:
|
||||
*
|
||||
* http://stackoverflow.com/questions/12139786/good-pratice-default-arguments-for-pure-virtual-method
|
||||
*/
|
||||
int start (bool for_latency_measurement=false) {
|
||||
return _start (for_latency_measurement);
|
||||
}
|
||||
|
||||
/** Stop using the device currently in use.
|
||||
*
|
||||
@ -481,6 +487,8 @@ class AudioBackend : public PortEngine {
|
||||
|
||||
protected:
|
||||
AudioEngine& engine;
|
||||
|
||||
virtual int _start (bool for_latency_measurement) = 0;
|
||||
};
|
||||
|
||||
struct AudioBackendInfo {
|
||||
|
@ -547,8 +547,11 @@ JACKAudioBackend::_start (bool for_latency_measurement)
|
||||
/* Now that we have buffer size and sample rate established, the engine
|
||||
can go ahead and do its stuff
|
||||
*/
|
||||
|
||||
engine.reestablish_ports ();
|
||||
|
||||
if (engine.reestablish_ports ()) {
|
||||
error << _("Could not re-establish ports after connecting to JACK") << endmsg;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!jack_port_type_get_buffer_size) {
|
||||
warning << _("This version of JACK is old - you should upgrade to a newer version that supports jack_port_type_get_buffer_size()") << endmsg;
|
||||
|
@ -89,7 +89,6 @@ class JACKAudioBackend : public AudioBackend {
|
||||
std::string control_app_name () const;
|
||||
void launch_control_app ();
|
||||
|
||||
int _start (bool for_latency_measurement);
|
||||
int stop ();
|
||||
int freewheel (bool);
|
||||
|
||||
@ -272,6 +271,9 @@ class JACKAudioBackend : public AudioBackend {
|
||||
*/
|
||||
|
||||
JACKSession* _session;
|
||||
|
||||
protected:
|
||||
int _start (bool for_latency_measurement);
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
@ -143,7 +143,12 @@ JackConnection::close ()
|
||||
if (_priv_jack) {
|
||||
int ret = jack_client_close (_priv_jack);
|
||||
_jack = 0;
|
||||
|
||||
/* If we started JACK, it will be closing down */
|
||||
usleep (500000);
|
||||
|
||||
Disconnected (""); /* EMIT SIGNAL */
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -44,9 +44,6 @@ typedef int socklen_t;
|
||||
inline void closesocket(int s) { ::close(s); }
|
||||
#endif
|
||||
|
||||
#include <jack/jack.h>
|
||||
#include <jack/midiport.h>
|
||||
|
||||
#include "pbd/xml++.h"
|
||||
#include "pbd/error.h"
|
||||
#include "pbd/failed_constructor.h"
|
||||
|
@ -20,7 +20,6 @@
|
||||
#ifndef __midipp_mmc_h_h__
|
||||
#define __midipp_mmc_h_h__
|
||||
|
||||
#include <jack/types.h>
|
||||
#include "timecode/time.h"
|
||||
|
||||
#include "pbd/signals.h"
|
||||
|
@ -22,7 +22,9 @@
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
#include <jack/types.h>
|
||||
#include <jack/types.h> /* XXX ... desirable to get rid of this but needed for
|
||||
* now due to use of JackPortIsXXXX
|
||||
*/
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user