@@ -85,26 +85,6 @@ int JackAudioDriver::Open(jack_nframes_t buffer_size, | |||||
monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); | monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); | ||||
} | } | ||||
int JackAudioDriver::Open(bool capturing, | |||||
bool playing, | |||||
int inchannels, | |||||
int outchannels, | |||||
bool monitor, | |||||
const char* capture_driver_name, | |||||
const char* playback_driver_name, | |||||
jack_nframes_t capture_latency, | |||||
jack_nframes_t playback_latency) | |||||
{ | |||||
fCaptureChannels = inchannels; | |||||
fPlaybackChannels = outchannels; | |||||
fWithMonitorPorts = monitor; | |||||
memset(fCapturePortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); | |||||
memset(fPlaybackPortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); | |||||
memset(fMonitorPortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); | |||||
return JackDriver::Open(capturing, playing, inchannels, outchannels, | |||||
monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); | |||||
} | |||||
void JackAudioDriver::UpdateLatencies() | void JackAudioDriver::UpdateLatencies() | ||||
{ | { | ||||
jack_latency_range_t input_range; | jack_latency_range_t input_range; | ||||
@@ -174,7 +154,7 @@ int JackAudioDriver::Attach() | |||||
jack_error("Cannot register monitor port for %s", name); | jack_error("Cannot register monitor port for %s", name); | ||||
return -1; | return -1; | ||||
} else { | } else { | ||||
fMonitorPortList[i] = port_index; | |||||
fMonitorPortList[i] = port_index; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -69,16 +69,6 @@ class SERVER_EXPORT JackAudioDriver : public JackDriver | |||||
jack_nframes_t capture_latency, | jack_nframes_t capture_latency, | ||||
jack_nframes_t playback_latency); | jack_nframes_t playback_latency); | ||||
virtual int Open(bool capturing, | |||||
bool playing, | |||||
int inchannels, | |||||
int outchannels, | |||||
bool monitor, | |||||
const char* capture_driver_name, | |||||
const char* playback_driver_name, | |||||
jack_nframes_t capture_latency, | |||||
jack_nframes_t playback_latency); | |||||
virtual int Process(); | virtual int Process(); | ||||
virtual int Attach(); | virtual int Attach(); | ||||
@@ -41,8 +41,7 @@ JackDriver::JackDriver(const char* name, const char* alias, JackLockedEngine* en | |||||
:fCaptureChannels(0), | :fCaptureChannels(0), | ||||
fPlaybackChannels(0), | fPlaybackChannels(0), | ||||
fClientControl(name), | fClientControl(name), | ||||
fWithMonitorPorts(false) | |||||
{ | |||||
fWithMonitorPorts(false){ | |||||
assert(strlen(name) < JACK_CLIENT_NAME_SIZE); | assert(strlen(name) < JACK_CLIENT_NAME_SIZE); | ||||
fSynchroTable = table; | fSynchroTable = table; | ||||
strcpy(fAliasName, alias); | strcpy(fAliasName, alias); | ||||
@@ -52,20 +51,6 @@ JackDriver::JackDriver(const char* name, const char* alias, JackLockedEngine* en | |||||
fDelayedUsecs = 0.f; | fDelayedUsecs = 0.f; | ||||
fIsMaster = true; | fIsMaster = true; | ||||
fIsRunning = false; | fIsRunning = false; | ||||
} | |||||
JackDriver::JackDriver() | |||||
{ | |||||
fSynchroTable = NULL; | |||||
fEngine = NULL; | |||||
fGraphManager = NULL; | |||||
fBeginDateUst = 0; | |||||
fDelayedUsecs = 0.f; | |||||
fIsMaster = true; | |||||
fIsRunning = false; | |||||
fCaptureChannels = 0; | |||||
fPlaybackChannels = 0; | |||||
fWithMonitorPorts = false; | |||||
} | } | ||||
JackDriver::~JackDriver() | JackDriver::~JackDriver() | ||||
@@ -90,53 +75,6 @@ int JackDriver::Open() | |||||
return 0; | return 0; | ||||
} | } | ||||
int JackDriver::Open(bool capturing, | |||||
bool playing, | |||||
int inchannels, | |||||
int outchannels, | |||||
bool monitor, | |||||
const char* capture_driver_name, | |||||
const char* playback_driver_name, | |||||
jack_nframes_t capture_latency, | |||||
jack_nframes_t playback_latency) | |||||
{ | |||||
jack_log("JackDriver::Open capture_driver_name = %s", capture_driver_name); | |||||
jack_log("JackDriver::Open playback_driver_name = %s", playback_driver_name); | |||||
int refnum = -1; | |||||
char name_res[JACK_CLIENT_NAME_SIZE + 1]; | |||||
int status; | |||||
// Check name and possibly rename | |||||
if (fEngine->ClientCheck(fClientControl.fName, -1, name_res, JACK_PROTOCOL_VERSION, (int)JackNullOption, (int*)&status) < 0) { | |||||
jack_error("Client name = %s conflits with another running client", fClientControl.fName); | |||||
return -1; | |||||
} | |||||
strcpy(fClientControl.fName, name_res); | |||||
if (fEngine->ClientInternalOpen(fClientControl.fName, &refnum, &fEngineControl, &fGraphManager, this, false) != 0) { | |||||
jack_error("Cannot allocate internal client for driver"); | |||||
return -1; | |||||
} | |||||
fClientControl.fRefNum = refnum; | |||||
fClientControl.fActive = true; | |||||
fEngineControl->fDriverNum++; | |||||
fCaptureLatency = capture_latency; | |||||
fPlaybackLatency = playback_latency; | |||||
assert(strlen(capture_driver_name) < JACK_CLIENT_NAME_SIZE); | |||||
assert(strlen(playback_driver_name) < JACK_CLIENT_NAME_SIZE); | |||||
strcpy(fCaptureDriverName, capture_driver_name); | |||||
strcpy(fPlaybackDriverName, playback_driver_name); | |||||
fEngineControl->UpdateTimeOut(); | |||||
fGraphManager->DirectConnect(fClientControl.fRefNum, fClientControl.fRefNum); // Connect driver to itself for "sync" mode | |||||
SetupDriverSync(fClientControl.fRefNum, false); | |||||
return 0; | |||||
} | |||||
int JackDriver::Open(jack_nframes_t buffer_size, | int JackDriver::Open(jack_nframes_t buffer_size, | ||||
jack_nframes_t samplerate, | jack_nframes_t samplerate, | ||||
bool capturing, | bool capturing, | ||||
@@ -170,8 +108,12 @@ int JackDriver::Open(jack_nframes_t buffer_size, | |||||
fClientControl.fRefNum = refnum; | fClientControl.fRefNum = refnum; | ||||
fClientControl.fActive = true; | fClientControl.fActive = true; | ||||
fEngineControl->fDriverNum++; | fEngineControl->fDriverNum++; | ||||
fEngineControl->fBufferSize = buffer_size; | |||||
fEngineControl->fSampleRate = samplerate; | |||||
if (buffer_size > 0) { | |||||
fEngineControl->fBufferSize = buffer_size; | |||||
} | |||||
if (samplerate > 0) { | |||||
fEngineControl->fSampleRate = samplerate; | |||||
} | |||||
fCaptureLatency = capture_latency; | fCaptureLatency = capture_latency; | ||||
fPlaybackLatency = playback_latency; | fPlaybackLatency = playback_latency; | ||||
@@ -52,16 +52,6 @@ class SERVER_EXPORT JackDriverInterface | |||||
virtual int Open() = 0; | virtual int Open() = 0; | ||||
virtual int Open (bool capturing, | |||||
bool playing, | |||||
int inchannels, | |||||
int outchannels, | |||||
bool monitor, | |||||
const char* capture_driver_name, | |||||
const char* playback_driver_name, | |||||
jack_nframes_t capture_latency, | |||||
jack_nframes_t playback_latency) = 0; | |||||
virtual int Open(jack_nframes_t buffer_size, | virtual int Open(jack_nframes_t buffer_size, | ||||
jack_nframes_t samplerate, | jack_nframes_t samplerate, | ||||
bool capturing, | bool capturing, | ||||
@@ -197,7 +187,6 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface | |||||
public: | public: | ||||
JackDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table); | JackDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table); | ||||
JackDriver(); | |||||
virtual ~JackDriver(); | virtual ~JackDriver(); | ||||
void SetMaster(bool onoff); | void SetMaster(bool onoff); | ||||
@@ -213,16 +202,6 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface | |||||
virtual int Open(); | virtual int Open(); | ||||
virtual int Open(bool capturing, | |||||
bool playing, | |||||
int inchannels, | |||||
int outchannels, | |||||
bool monitor, | |||||
const char* capture_driver_name, | |||||
const char* playback_driver_name, | |||||
jack_nframes_t capture_latency, | |||||
jack_nframes_t playback_latency); | |||||
virtual int Open(jack_nframes_t buffer_size, | virtual int Open(jack_nframes_t buffer_size, | ||||
jack_nframes_t samplerate, | jack_nframes_t samplerate, | ||||
bool capturing, | bool capturing, | ||||
@@ -122,7 +122,7 @@ extern "C" | |||||
} | } | ||||
Jack::JackDriverClientInterface* driver = new Jack::JackLoopbackDriver(engine, table); | Jack::JackDriverClientInterface* driver = new Jack::JackLoopbackDriver(engine, table); | ||||
if (driver->Open(1, 1, channels, channels, false, "loopback", "loopback", 0, 0) == 0) { | |||||
if (driver->Open(0, 0, 1, 1, channels, channels, false, "loopback", "loopback", 0, 0) == 0) { | |||||
return driver; | return driver; | ||||
} else { | } else { | ||||
delete driver; | delete driver; | ||||
@@ -51,7 +51,7 @@ int JackMidiDriver::Open(bool capturing, | |||||
{ | { | ||||
fCaptureChannels = inchannels; | fCaptureChannels = inchannels; | ||||
fPlaybackChannels = outchannels; | fPlaybackChannels = outchannels; | ||||
return JackDriver::Open(capturing, playing, inchannels, outchannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); | |||||
return JackDriver::Open(0, 0, capturing, playing, inchannels, outchannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); | |||||
} | } | ||||
int JackMidiDriver::Attach() | int JackMidiDriver::Attach() | ||||
@@ -363,7 +363,7 @@ namespace Jack | |||||
if (active_ports == 0) { | if (active_ports == 0) { | ||||
fSubPeriodSize = fPeriodSize; | fSubPeriodSize = fPeriodSize; | ||||
} else { | } else { | ||||
jack_nframes_t period = (int) powf(2.f, (int)(log(float(fPacketSize) / (active_ports * sizeof(sample_t))) / log(2.))); | |||||
jack_nframes_t period = int(powf(2.f, int(log(float(fPacketSize) / (active_ports * sizeof(sample_t))) / log(2.)))); | |||||
fSubPeriodSize = (period > fPeriodSize) ? fPeriodSize : period; | fSubPeriodSize = (period > fPeriodSize) ? fPeriodSize : period; | ||||
} | } | ||||
@@ -404,7 +404,6 @@ namespace Jack | |||||
return CheckPacket(cycle, sub_cycle); | return CheckPacket(cycle, sub_cycle); | ||||
} | } | ||||
int NetFloatAudioBuffer::RenderToNetwork(int sub_cycle, uint32_t port_num) | int NetFloatAudioBuffer::RenderToNetwork(int sub_cycle, uint32_t port_num) | ||||
{ | { | ||||
int active_ports = 0; | int active_ports = 0; | ||||
@@ -487,9 +486,9 @@ namespace Jack | |||||
NetCeltAudioBuffer::NetCeltAudioBuffer(session_params_t* params, uint32_t nports, char* net_buffer, int kbps) | NetCeltAudioBuffer::NetCeltAudioBuffer(session_params_t* params, uint32_t nports, char* net_buffer, int kbps) | ||||
:NetAudioBuffer(params, nports, net_buffer) | :NetAudioBuffer(params, nports, net_buffer) | ||||
{ | { | ||||
fCeltMode = new CELTMode *[fNPorts]; | |||||
fCeltEncoder = new CELTEncoder *[fNPorts]; | |||||
fCeltDecoder = new CELTDecoder *[fNPorts]; | |||||
fCeltMode = new CELTMode*[fNPorts]; | |||||
fCeltEncoder = new CELTEncoder*[fNPorts]; | |||||
fCeltDecoder = new CELTDecoder*[fNPorts]; | |||||
memset(fCeltMode, 0, fNPorts * sizeof(CELTMode*)); | memset(fCeltMode, 0, fNPorts * sizeof(CELTMode*)); | ||||
memset(fCeltEncoder, 0, fNPorts * sizeof(CELTEncoder*)); | memset(fCeltEncoder, 0, fNPorts * sizeof(CELTEncoder*)); | ||||
@@ -724,9 +723,9 @@ namespace Jack | |||||
NetOpusAudioBuffer::NetOpusAudioBuffer(session_params_t* params, uint32_t nports, char* net_buffer, int kbps) | NetOpusAudioBuffer::NetOpusAudioBuffer(session_params_t* params, uint32_t nports, char* net_buffer, int kbps) | ||||
:NetAudioBuffer(params, nports, net_buffer) | :NetAudioBuffer(params, nports, net_buffer) | ||||
{ | { | ||||
fOpusMode = new OpusCustomMode *[fNPorts]; | |||||
fOpusEncoder = new OpusCustomEncoder *[fNPorts]; | |||||
fOpusDecoder = new OpusCustomDecoder *[fNPorts]; | |||||
fOpusMode = new OpusCustomMode*[fNPorts]; | |||||
fOpusEncoder = new OpusCustomEncoder*[fNPorts]; | |||||
fOpusDecoder = new OpusCustomDecoder*[fNPorts]; | |||||
fCompressedSizesByte = new unsigned short [fNPorts]; | fCompressedSizesByte = new unsigned short [fNPorts]; | ||||
memset(fOpusMode, 0, fNPorts * sizeof(OpusCustomMode*)); | memset(fOpusMode, 0, fNPorts * sizeof(OpusCustomMode*)); | ||||
@@ -816,15 +815,15 @@ namespace Jack | |||||
for (int i = 0; i < fNPorts; i++) { | for (int i = 0; i < fNPorts; i++) { | ||||
if (fOpusEncoder[i]) { | if (fOpusEncoder[i]) { | ||||
opus_custom_encoder_destroy(fOpusEncoder[i]); | opus_custom_encoder_destroy(fOpusEncoder[i]); | ||||
fOpusEncoder[i]=0; | |||||
fOpusEncoder[i] = 0; | |||||
} | } | ||||
if (fOpusDecoder[i]) { | if (fOpusDecoder[i]) { | ||||
opus_custom_decoder_destroy(fOpusDecoder[i]); | opus_custom_decoder_destroy(fOpusDecoder[i]); | ||||
fOpusDecoder[i]=0; | |||||
fOpusDecoder[i] = 0; | |||||
} | } | ||||
if (fOpusMode[i]) { | if (fOpusMode[i]) { | ||||
opus_custom_mode_destroy(fOpusMode[i]); | opus_custom_mode_destroy(fOpusMode[i]); | ||||
fOpusMode[i]=0; | |||||
fOpusMode[i] = 0; | |||||
} | } | ||||
} | } | ||||
@@ -47,19 +47,6 @@ class SERVER_EXPORT JackThreadedDriver : public JackDriverClientInterface, publi | |||||
virtual ~JackThreadedDriver(); | virtual ~JackThreadedDriver(); | ||||
virtual int Open(); | virtual int Open(); | ||||
virtual int Open (bool capturing, | |||||
bool playing, | |||||
int inchannels, | |||||
int outchannels, | |||||
bool monitor, | |||||
const char* capture_driver_name, | |||||
const char* playback_driver_name, | |||||
jack_nframes_t capture_latency, | |||||
jack_nframes_t playback_latency) | |||||
{ | |||||
return -1; | |||||
} | |||||
virtual int Open(jack_nframes_t buffer_size, | virtual int Open(jack_nframes_t buffer_size, | ||||
jack_nframes_t samplerate, | jack_nframes_t samplerate, | ||||
bool capturing, | bool capturing, | ||||
@@ -848,7 +848,7 @@ extern "C" { | |||||
// singleton kind of driver | // singleton kind of driver | ||||
if (!driver) { | if (!driver) { | ||||
driver = new Jack::JackCoreMidiDriver("system_midi", "coremidi", engine, table); | driver = new Jack::JackCoreMidiDriver("system_midi", "coremidi", engine, table); | ||||
if (driver->Open(1, 1, virtual_in, virtual_out, false, "in", "out", 0, 0) == 0) { | |||||
if (driver->Open(0, 0, 1, 1, virtual_in, virtual_out, false, "in", "out", 0, 0) == 0) { | |||||
return driver; | return driver; | ||||
} else { | } else { | ||||
delete driver; | delete driver; | ||||