Cleanup backend class structure.

This commit is contained in:
Stephane Letz 2013-10-16 13:30:33 +02:00
parent f4a158afbc
commit f60fde8a2d
9 changed files with 21 additions and 144 deletions

View File

@ -85,26 +85,6 @@ int JackAudioDriver::Open(jack_nframes_t buffer_size,
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()
{
jack_latency_range_t input_range;
@ -174,7 +154,7 @@ int JackAudioDriver::Attach()
jack_error("Cannot register monitor port for %s", name);
return -1;
} else {
fMonitorPortList[i] = port_index;
fMonitorPortList[i] = port_index;
}
}
}

View File

@ -69,16 +69,6 @@ class SERVER_EXPORT JackAudioDriver : public JackDriver
jack_nframes_t capture_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 Attach();

View File

@ -41,8 +41,7 @@ JackDriver::JackDriver(const char* name, const char* alias, JackLockedEngine* en
:fCaptureChannels(0),
fPlaybackChannels(0),
fClientControl(name),
fWithMonitorPorts(false)
{
fWithMonitorPorts(false){
assert(strlen(name) < JACK_CLIENT_NAME_SIZE);
fSynchroTable = table;
strcpy(fAliasName, alias);
@ -52,20 +51,6 @@ JackDriver::JackDriver(const char* name, const char* alias, JackLockedEngine* en
fDelayedUsecs = 0.f;
fIsMaster = true;
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()
@ -90,53 +75,6 @@ int JackDriver::Open()
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,
jack_nframes_t samplerate,
bool capturing,
@ -170,8 +108,12 @@ int JackDriver::Open(jack_nframes_t buffer_size,
fClientControl.fRefNum = refnum;
fClientControl.fActive = true;
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;
fPlaybackLatency = playback_latency;

View File

@ -52,16 +52,6 @@ class SERVER_EXPORT JackDriverInterface
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,
jack_nframes_t samplerate,
bool capturing,
@ -197,7 +187,6 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface
public:
JackDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table);
JackDriver();
virtual ~JackDriver();
void SetMaster(bool onoff);
@ -213,16 +202,6 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface
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,
jack_nframes_t samplerate,
bool capturing,

View File

@ -122,7 +122,7 @@ extern "C"
}
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;
} else {
delete driver;

View File

@ -51,7 +51,7 @@ int JackMidiDriver::Open(bool capturing,
{
fCaptureChannels = inchannels;
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()

View File

@ -363,7 +363,7 @@ namespace Jack
if (active_ports == 0) {
fSubPeriodSize = fPeriodSize;
} 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;
}
@ -404,7 +404,6 @@ namespace Jack
return CheckPacket(cycle, sub_cycle);
}
int NetFloatAudioBuffer::RenderToNetwork(int sub_cycle, uint32_t port_num)
{
int active_ports = 0;
@ -487,9 +486,9 @@ namespace Jack
NetCeltAudioBuffer::NetCeltAudioBuffer(session_params_t* params, uint32_t nports, char* net_buffer, int kbps)
: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(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)
: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];
memset(fOpusMode, 0, fNPorts * sizeof(OpusCustomMode*));
@ -816,15 +815,15 @@ namespace Jack
for (int i = 0; i < fNPorts; i++) {
if (fOpusEncoder[i]) {
opus_custom_encoder_destroy(fOpusEncoder[i]);
fOpusEncoder[i]=0;
fOpusEncoder[i] = 0;
}
if (fOpusDecoder[i]) {
opus_custom_decoder_destroy(fOpusDecoder[i]);
fOpusDecoder[i]=0;
fOpusDecoder[i] = 0;
}
if (fOpusMode[i]) {
opus_custom_mode_destroy(fOpusMode[i]);
fOpusMode[i]=0;
fOpusMode[i] = 0;
}
}

View File

@ -47,19 +47,6 @@ class SERVER_EXPORT JackThreadedDriver : public JackDriverClientInterface, publi
virtual ~JackThreadedDriver();
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,
jack_nframes_t samplerate,
bool capturing,

View File

@ -848,7 +848,7 @@ extern "C" {
// singleton kind of driver
if (!driver) {
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;
} else {
delete driver;