git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4253 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.8
@@ -34,6 +34,11 @@ Valerio Pilo | |||||
Jackdmp changes log | Jackdmp changes log | ||||
--------------------------- | --------------------------- | ||||
2011-04-02 Stephane Letz <letz@grame.fr> | |||||
* Netdriver can now ask for in/out values from the master (in progress). | |||||
* Correct drivers parameter settings. | |||||
2011-04-01 Stephane Letz <letz@grame.fr> | 2011-04-01 Stephane Letz <letz@grame.fr> | ||||
* Merge newer-midi branch (Devin Anderson redesign of the MIDI drivers: alsarawmidi, ffado, coremidi and winmme). | * Merge newer-midi branch (Devin Anderson redesign of the MIDI drivers: alsarawmidi, ffado, coremidi and winmme). | ||||
@@ -150,6 +150,10 @@ namespace Jack | |||||
//set global parameters | //set global parameters | ||||
SetParams(); | SetParams(); | ||||
// If -1 at conection time, in/out channels count is sent by the master | |||||
fCaptureChannels = fParams.fSendAudioChannels; | |||||
fPlaybackChannels = fParams.fReturnAudioChannels; | |||||
//allocate midi ports lists | //allocate midi ports lists | ||||
fMidiCapturePortList = new jack_port_id_t [fParams.fSendMidiChannels]; | fMidiCapturePortList = new jack_port_id_t [fParams.fSendMidiChannels]; | ||||
fMidiPlaybackPortList = new jack_port_id_t [fParams.fReturnMidiChannels]; | fMidiPlaybackPortList = new jack_port_id_t [fParams.fReturnMidiChannels]; | ||||
@@ -157,10 +161,10 @@ namespace Jack | |||||
assert(fMidiCapturePortList); | assert(fMidiCapturePortList); | ||||
assert(fMidiPlaybackPortList); | assert(fMidiPlaybackPortList); | ||||
for (uint midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++) { | |||||
for (int midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++) { | |||||
fMidiCapturePortList[midi_port_index] = NULL; | fMidiCapturePortList[midi_port_index] = NULL; | ||||
} | } | ||||
for (uint midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++) { | |||||
for (int midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++) { | |||||
fMidiPlaybackPortList[midi_port_index] = NULL; | fMidiPlaybackPortList[midi_port_index] = NULL; | ||||
} | } | ||||
@@ -261,7 +265,7 @@ namespace Jack | |||||
char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; | char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; | ||||
unsigned long port_flags; | unsigned long port_flags; | ||||
int audio_port_index; | int audio_port_index; | ||||
uint midi_port_index; | |||||
int midi_port_index; | |||||
jack_latency_range_t range; | jack_latency_range_t range; | ||||
//audio | //audio | ||||
@@ -383,13 +387,13 @@ namespace Jack | |||||
} | } | ||||
} | } | ||||
for (uint midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++) { | |||||
for (int midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++) { | |||||
if (fMidiCapturePortList && fMidiCapturePortList[midi_port_index] > 0) { | if (fMidiCapturePortList && fMidiCapturePortList[midi_port_index] > 0) { | ||||
fGraphManager->ReleasePort ( fClientControl.fRefNum, fMidiCapturePortList[midi_port_index]); | fGraphManager->ReleasePort ( fClientControl.fRefNum, fMidiCapturePortList[midi_port_index]); | ||||
} | } | ||||
} | } | ||||
for (uint midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++) { | |||||
for (int midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++) { | |||||
if (fMidiPlaybackPortList && fMidiPlaybackPortList[midi_port_index] > 0) { | if (fMidiPlaybackPortList && fMidiPlaybackPortList[midi_port_index] > 0) { | ||||
fGraphManager->ReleasePort ( fClientControl.fRefNum, fMidiPlaybackPortList[midi_port_index]); | fGraphManager->ReleasePort ( fClientControl.fRefNum, fMidiPlaybackPortList[midi_port_index]); | ||||
} | } | ||||
@@ -495,8 +499,8 @@ namespace Jack | |||||
//driver processes-------------------------------------------------------------------- | //driver processes-------------------------------------------------------------------- | ||||
int JackNetDriver::Read() | int JackNetDriver::Read() | ||||
{ | { | ||||
uint midi_port_index; | |||||
uint audio_port_index; | |||||
int midi_port_index; | |||||
int audio_port_index; | |||||
//buffers | //buffers | ||||
for ( midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++ ) | for ( midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++ ) | ||||
@@ -540,7 +544,7 @@ namespace Jack | |||||
int JackNetDriver::Write() | int JackNetDriver::Write() | ||||
{ | { | ||||
uint midi_port_index; | |||||
int midi_port_index; | |||||
int audio_port_index; | int audio_port_index; | ||||
//buffers | //buffers | ||||
@@ -618,24 +622,24 @@ namespace Jack | |||||
i++; | i++; | ||||
strcpy ( desc->params[i].name, "input_ports" ); | strcpy ( desc->params[i].name, "input_ports" ); | ||||
desc->params[i].character = 'C'; | desc->params[i].character = 'C'; | ||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].value.i = 2; | |||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].value.ui = 2; | |||||
strcpy ( desc->params[i].short_desc, "Number of audio input ports" ); | strcpy ( desc->params[i].short_desc, "Number of audio input ports" ); | ||||
strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); | strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); | ||||
i++; | i++; | ||||
strcpy ( desc->params[i].name, "output_ports" ); | strcpy ( desc->params[i].name, "output_ports" ); | ||||
desc->params[i].character = 'P'; | desc->params[i].character = 'P'; | ||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].value.i = 2; | |||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].value.ui = 2; | |||||
strcpy ( desc->params[i].short_desc, "Number of audio output ports" ); | strcpy ( desc->params[i].short_desc, "Number of audio output ports" ); | ||||
strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); | strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); | ||||
i++; | i++; | ||||
strcpy ( desc->params[i].name, "midi_in_ports" ); | strcpy ( desc->params[i].name, "midi_in_ports" ); | ||||
desc->params[i].character = 'i'; | desc->params[i].character = 'i'; | ||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].value.i = 0; | |||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy ( desc->params[i].short_desc, "Number of midi input ports" ); | strcpy ( desc->params[i].short_desc, "Number of midi input ports" ); | ||||
strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); | strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); | ||||
@@ -643,7 +647,7 @@ namespace Jack | |||||
strcpy ( desc->params[i].name, "midi_out_ports" ); | strcpy ( desc->params[i].name, "midi_out_ports" ); | ||||
desc->params[i].character = 'o'; | desc->params[i].character = 'o'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy ( desc->params[i].short_desc, "Number of midi output ports" ); | strcpy ( desc->params[i].short_desc, "Number of midi output ports" ); | ||||
strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); | strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); | ||||
@@ -542,6 +542,32 @@ namespace Jack | |||||
SocketAPIEnd(); | SocketAPIEnd(); | ||||
} | } | ||||
int JackNetMasterManager::CountPhysicalInputs() | |||||
{ | |||||
const char **ports; | |||||
int count = 0; | |||||
ports = jack_get_ports(fManagerClient, NULL, NULL, JackPortIsPhysical | JackPortIsOutput); | |||||
if (ports != NULL) { | |||||
while(ports[count]) count++; | |||||
free(ports); | |||||
} | |||||
return count; | |||||
} | |||||
int JackNetMasterManager::CountPhysicalOutputs() | |||||
{ | |||||
const char **ports; | |||||
int count = 0; | |||||
ports = jack_get_ports(fManagerClient, NULL, NULL, JackPortIsPhysical | JackPortIsInput); | |||||
if (ports != NULL) { | |||||
while(ports[count]) count++; | |||||
free(ports); | |||||
} | |||||
return count; | |||||
} | |||||
int JackNetMasterManager::SetSyncCallback ( jack_transport_state_t state, jack_position_t* pos, void* arg ) | int JackNetMasterManager::SetSyncCallback ( jack_transport_state_t state, jack_position_t* pos, void* arg ) | ||||
{ | { | ||||
return static_cast<JackNetMasterManager*> ( arg )->SyncCallback ( state, pos ); | return static_cast<JackNetMasterManager*> ( arg )->SyncCallback ( state, pos ); | ||||
@@ -669,13 +695,23 @@ namespace Jack | |||||
params.fSampleRate = jack_get_sample_rate ( fManagerClient ); | params.fSampleRate = jack_get_sample_rate ( fManagerClient ); | ||||
params.fPeriodSize = jack_get_buffer_size ( fManagerClient ); | params.fPeriodSize = jack_get_buffer_size ( fManagerClient ); | ||||
params.fBitdepth = 0; | params.fBitdepth = 0; | ||||
SetSlaveName ( params ); | |||||
if (params.fSendAudioChannels == -1) { | |||||
params.fSendAudioChannels = CountPhysicalInputs(); | |||||
jack_info( "Takes physical %d inputs for client", params.fSendAudioChannels); | |||||
} | |||||
if (params.fReturnAudioChannels == -1) { | |||||
params.fReturnAudioChannels = CountPhysicalOutputs(); | |||||
jack_info("Takes physical %d outputs for client", params.fReturnAudioChannels); | |||||
} | |||||
SetSlaveName (params); | |||||
//create a new master and add it to the list | //create a new master and add it to the list | ||||
JackNetMaster* master = new JackNetMaster(fSocket, params, fMulticastIP); | JackNetMaster* master = new JackNetMaster(fSocket, params, fMulticastIP); | ||||
if ( master->Init(fAutoConnect) ) | |||||
{ | |||||
fMasterList.push_back ( master ); | |||||
if (master->Init(fAutoConnect)) { | |||||
fMasterList.push_back(master); | |||||
return master; | return master; | ||||
} | } | ||||
delete master; | delete master; | ||||
@@ -37,6 +37,9 @@ namespace Jack | |||||
class JackNetMaster : public JackNetMasterInterface | class JackNetMaster : public JackNetMasterInterface | ||||
{ | { | ||||
friend class JackNetMasterManager; | friend class JackNetMasterManager; | ||||
private: | |||||
private: | private: | ||||
static int SetProcess ( jack_nframes_t nframes, void* arg ); | static int SetProcess ( jack_nframes_t nframes, void* arg ); | ||||
static int SetBufferSize (jack_nframes_t nframes, void* arg); | static int SetBufferSize (jack_nframes_t nframes, void* arg); | ||||
@@ -90,7 +93,9 @@ namespace Jack | |||||
class JackNetMasterManager | class JackNetMasterManager | ||||
{ | { | ||||
friend class JackNetMaster; | friend class JackNetMaster; | ||||
private: | private: | ||||
static int SetSyncCallback ( jack_transport_state_t state, jack_position_t* pos, void* arg ); | static int SetSyncCallback ( jack_transport_state_t state, jack_position_t* pos, void* arg ); | ||||
static void* NetManagerThread ( void* arg ); | static void* NetManagerThread ( void* arg ); | ||||
@@ -111,7 +116,12 @@ namespace Jack | |||||
void SetSlaveName ( session_params_t& params ); | void SetSlaveName ( session_params_t& params ); | ||||
int SyncCallback ( jack_transport_state_t state, jack_position_t* pos ); | int SyncCallback ( jack_transport_state_t state, jack_position_t* pos ); | ||||
int CountPhysicalInputs(); | |||||
int CountPhysicalOutputs(); | |||||
public: | public: | ||||
JackNetMasterManager ( jack_client_t* jack_client, const JSList* params); | JackNetMasterManager ( jack_client_t* jack_client, const JSList* params); | ||||
~JackNetMasterManager(); | ~JackNetMasterManager(); | ||||
}; | }; | ||||
@@ -81,10 +81,10 @@ namespace Jack | |||||
uint32_t fMtu; //connection mtu | uint32_t fMtu; //connection mtu | ||||
uint32_t fID; //slave's ID | uint32_t fID; //slave's ID | ||||
uint32_t fTransportSync; //is the transport synced ? | uint32_t fTransportSync; //is the transport synced ? | ||||
uint32_t fSendAudioChannels; //number of master->slave channels | |||||
uint32_t fReturnAudioChannels; //number of slave->master channels | |||||
uint32_t fSendMidiChannels; //number of master->slave midi channels | |||||
uint32_t fReturnMidiChannels; //number of slave->master midi channels | |||||
int32_t fSendAudioChannels; //number of master->slave channels | |||||
int32_t fReturnAudioChannels; //number of slave->master channels | |||||
int32_t fSendMidiChannels; //number of master->slave midi channels | |||||
int32_t fReturnMidiChannels; //number of slave->master midi channels | |||||
uint32_t fSampleRate; //session sample rate | uint32_t fSampleRate; //session sample rate | ||||
uint32_t fPeriodSize; //period size | uint32_t fPeriodSize; //period size | ||||
uint32_t fFramesPerPacket; //complete frames per packet | uint32_t fFramesPerPacket; //complete frames per packet | ||||
@@ -259,7 +259,7 @@ extern "C" | |||||
i++; | i++; | ||||
strcpy ( desc->params[i].name, "inchannels" ); | strcpy ( desc->params[i].name, "inchannels" ); | ||||
desc->params[i].character = 'i'; | desc->params[i].character = 'i'; | ||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].value.i = 0; | desc->params[i].value.i = 0; | ||||
strcpy ( desc->params[i].short_desc, | strcpy ( desc->params[i].short_desc, | ||||
"Number of capture channels (defaults to hardware max)" ); | "Number of capture channels (defaults to hardware max)" ); | ||||
@@ -268,7 +268,7 @@ extern "C" | |||||
i++; | i++; | ||||
strcpy ( desc->params[i].name, "outchannels" ); | strcpy ( desc->params[i].name, "outchannels" ); | ||||
desc->params[i].character = 'o'; | desc->params[i].character = 'o'; | ||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].value.i = 0; | desc->params[i].value.i = 0; | ||||
strcpy ( desc->params[i].short_desc, | strcpy ( desc->params[i].short_desc, | ||||
"Number of playback channels (defaults to hardware max)" ); | "Number of playback channels (defaults to hardware max)" ); | ||||
@@ -277,7 +277,7 @@ extern "C" | |||||
i++; | i++; | ||||
strcpy(desc->params[i].name, "quality"); | strcpy(desc->params[i].name, "quality"); | ||||
desc->params[i].character = 'q'; | desc->params[i].character = 'q'; | ||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].value.ui = 0; | desc->params[i].value.ui = 0; | ||||
strcpy(desc->params[i].short_desc, "Resample algorithm quality (0 - 4)"); | strcpy(desc->params[i].short_desc, "Resample algorithm quality (0 - 4)"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -285,7 +285,7 @@ extern "C" | |||||
i++; | i++; | ||||
strcpy(desc->params[i].name, "ring-buffer"); | strcpy(desc->params[i].name, "ring-buffer"); | ||||
desc->params[i].character = 'g'; | desc->params[i].character = 'g'; | ||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].value.ui = 32768; | desc->params[i].value.ui = 32768; | ||||
strcpy(desc->params[i].short_desc, "Fixed ringbuffer size"); | strcpy(desc->params[i].short_desc, "Fixed ringbuffer size"); | ||||
strcpy(desc->params[i].long_desc, "Fixed ringbuffer size (if not set => automatic adaptative)"); | strcpy(desc->params[i].long_desc, "Fixed ringbuffer size (if not set => automatic adaptative)"); | ||||
@@ -845,7 +845,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () | |||||
i++; | i++; | ||||
strcpy (params[i].name, "inchannels"); | strcpy (params[i].name, "inchannels"); | ||||
params[i].character = 'i'; | params[i].character = 'i'; | ||||
params[i].type = JackDriverParamUInt; | |||||
params[i].type = JackDriverParamInt; | |||||
params[i].value.i = 0; | params[i].value.i = 0; | ||||
strcpy (params[i].short_desc, | strcpy (params[i].short_desc, | ||||
"Number of capture channels (defaults to hardware max)"); | "Number of capture channels (defaults to hardware max)"); | ||||
@@ -854,7 +854,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () | |||||
i++; | i++; | ||||
strcpy (params[i].name, "outchannels"); | strcpy (params[i].name, "outchannels"); | ||||
params[i].character = 'o'; | params[i].character = 'o'; | ||||
params[i].type = JackDriverParamUInt; | |||||
params[i].type = JackDriverParamInt; | |||||
params[i].value.i = 0; | params[i].value.i = 0; | ||||
strcpy (params[i].short_desc, | strcpy (params[i].short_desc, | ||||
"Number of playback channels (defaults to hardware max)"); | "Number of playback channels (defaults to hardware max)"); | ||||
@@ -872,7 +872,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () | |||||
strcpy (params[i].name, "input-latency"); | strcpy (params[i].name, "input-latency"); | ||||
params[i].character = 'I'; | params[i].character = 'I'; | ||||
params[i].type = JackDriverParamUInt; | params[i].type = JackDriverParamUInt; | ||||
params[i].value.i = 0; | |||||
params[i].value.ui = 0; | |||||
strcpy (params[i].short_desc, "Extra input latency (frames)"); | strcpy (params[i].short_desc, "Extra input latency (frames)"); | ||||
strcpy (params[i].long_desc, params[i].short_desc); | strcpy (params[i].long_desc, params[i].short_desc); | ||||
@@ -880,7 +880,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () | |||||
strcpy (params[i].name, "output-latency"); | strcpy (params[i].name, "output-latency"); | ||||
params[i].character = 'O'; | params[i].character = 'O'; | ||||
params[i].type = JackDriverParamUInt; | params[i].type = JackDriverParamUInt; | ||||
params[i].value.i = 0; | |||||
params[i].value.ui = 0; | |||||
strcpy (params[i].short_desc, "Extra output latency (frames)"); | strcpy (params[i].short_desc, "Extra output latency (frames)"); | ||||
strcpy (params[i].long_desc, params[i].short_desc); | strcpy (params[i].long_desc, params[i].short_desc); | ||||
@@ -1511,7 +1511,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "channels"); | strcpy(desc->params[i].name, "channels"); | ||||
desc->params[i].character = 'c'; | desc->params[i].character = 'c'; | ||||
desc->params[i].type = JackDriverParamInt; | desc->params[i].type = JackDriverParamInt; | ||||
desc->params[i].value.ui = -1; | |||||
desc->params[i].value.i = -1; | |||||
strcpy(desc->params[i].short_desc, "Maximum number of channels"); | strcpy(desc->params[i].short_desc, "Maximum number of channels"); | ||||
strcpy(desc->params[i].long_desc, "Maximum number of channels. If -1, max possible number of channels will be used"); | strcpy(desc->params[i].long_desc, "Maximum number of channels. If -1, max possible number of channels will be used"); | ||||
@@ -1519,7 +1519,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "inchannels"); | strcpy(desc->params[i].name, "inchannels"); | ||||
desc->params[i].character = 'i'; | desc->params[i].character = 'i'; | ||||
desc->params[i].type = JackDriverParamInt; | desc->params[i].type = JackDriverParamInt; | ||||
desc->params[i].value.ui = -1; | |||||
desc->params[i].value.i = -1; | |||||
strcpy(desc->params[i].short_desc, "Maximum number of input channels"); | strcpy(desc->params[i].short_desc, "Maximum number of input channels"); | ||||
strcpy(desc->params[i].long_desc, "Maximum number of input channels. If -1, max possible number of input channels will be used"); | strcpy(desc->params[i].long_desc, "Maximum number of input channels. If -1, max possible number of input channels will be used"); | ||||
@@ -1527,7 +1527,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "outchannels"); | strcpy(desc->params[i].name, "outchannels"); | ||||
desc->params[i].character = 'o'; | desc->params[i].character = 'o'; | ||||
desc->params[i].type = JackDriverParamInt; | desc->params[i].type = JackDriverParamInt; | ||||
desc->params[i].value.ui = -1; | |||||
desc->params[i].value.i = -1; | |||||
strcpy(desc->params[i].short_desc, "Maximum number of output channels"); | strcpy(desc->params[i].short_desc, "Maximum number of output channels"); | ||||
strcpy(desc->params[i].long_desc, "Maximum number of output channels. If -1, max possible number of output channels will be used"); | strcpy(desc->params[i].long_desc, "Maximum number of output channels. If -1, max possible number of output channels will be used"); | ||||
@@ -1844,7 +1844,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "channels"); | strcpy(desc->params[i].name, "channels"); | ||||
desc->params[i].character = 'c'; | desc->params[i].character = 'c'; | ||||
desc->params[i].type = JackDriverParamInt; | desc->params[i].type = JackDriverParamInt; | ||||
desc->params[i].value.ui = -1; | |||||
desc->params[i].value.i = -1; | |||||
strcpy(desc->params[i].short_desc, "Maximum number of channels"); | strcpy(desc->params[i].short_desc, "Maximum number of channels"); | ||||
strcpy(desc->params[i].long_desc, "Maximum number of channels. If -1, max possible number of channels will be used"); | strcpy(desc->params[i].long_desc, "Maximum number of channels. If -1, max possible number of channels will be used"); | ||||
@@ -1852,7 +1852,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "inchannels"); | strcpy(desc->params[i].name, "inchannels"); | ||||
desc->params[i].character = 'i'; | desc->params[i].character = 'i'; | ||||
desc->params[i].type = JackDriverParamInt; | desc->params[i].type = JackDriverParamInt; | ||||
desc->params[i].value.ui = -1; | |||||
desc->params[i].value.i = -1; | |||||
strcpy(desc->params[i].short_desc, "Maximum number of input channels"); | strcpy(desc->params[i].short_desc, "Maximum number of input channels"); | ||||
strcpy(desc->params[i].long_desc, "Maximum number of input channels. If -1, max possible number of input channels will be used"); | strcpy(desc->params[i].long_desc, "Maximum number of input channels. If -1, max possible number of input channels will be used"); | ||||
@@ -1860,7 +1860,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "outchannels"); | strcpy(desc->params[i].name, "outchannels"); | ||||
desc->params[i].character = 'o'; | desc->params[i].character = 'o'; | ||||
desc->params[i].type = JackDriverParamInt; | desc->params[i].type = JackDriverParamInt; | ||||
desc->params[i].value.ui = -1; | |||||
desc->params[i].value.i = -1; | |||||
strcpy(desc->params[i].short_desc, "Maximum number of output channels"); | strcpy(desc->params[i].short_desc, "Maximum number of output channels"); | ||||
strcpy(desc->params[i].long_desc, "Maximum number of output channels. If -1, max possible number of output channels will be used"); | strcpy(desc->params[i].long_desc, "Maximum number of output channels. If -1, max possible number of output channels will be used"); | ||||
@@ -1921,7 +1921,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "input-latency"); | strcpy(desc->params[i].name, "input-latency"); | ||||
desc->params[i].character = 'I'; | desc->params[i].character = 'I'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy(desc->params[i].short_desc, "Extra input latency (frames)"); | strcpy(desc->params[i].short_desc, "Extra input latency (frames)"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -1929,7 +1929,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "output-latency"); | strcpy(desc->params[i].name, "output-latency"); | ||||
desc->params[i].character = 'O'; | desc->params[i].character = 'O'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy(desc->params[i].short_desc, "Extra output latency (frames)"); | strcpy(desc->params[i].short_desc, "Extra output latency (frames)"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -1953,7 +1953,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "async-latency"); | strcpy(desc->params[i].name, "async-latency"); | ||||
desc->params[i].character = 'L'; | desc->params[i].character = 'L'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 100; | |||||
desc->params[i].value.ui = 100; | |||||
strcpy(desc->params[i].short_desc, "Extra output latency in asynchronous mode (percent)"); | strcpy(desc->params[i].short_desc, "Extra output latency in asynchronous mode (percent)"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -1961,7 +1961,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "grain"); | strcpy(desc->params[i].name, "grain"); | ||||
desc->params[i].character = 'G'; | desc->params[i].character = 'G'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 100; | |||||
desc->params[i].value.ui = 100; | |||||
strcpy(desc->params[i].short_desc, "Computation grain in RT thread (percent)"); | strcpy(desc->params[i].short_desc, "Computation grain in RT thread (percent)"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -911,7 +911,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() | |||||
strcpy(desc->params[i].name, "input-latency"); | strcpy(desc->params[i].name, "input-latency"); | ||||
desc->params[i].character = 'I'; | desc->params[i].character = 'I'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy(desc->params[i].short_desc, "Extra input latency"); | strcpy(desc->params[i].short_desc, "Extra input latency"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -919,7 +919,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() | |||||
strcpy(desc->params[i].name, "output-latency"); | strcpy(desc->params[i].name, "output-latency"); | ||||
desc->params[i].character = 'O'; | desc->params[i].character = 'O'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy(desc->params[i].short_desc, "Extra output latency"); | strcpy(desc->params[i].short_desc, "Extra output latency"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -836,7 +836,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() | |||||
strcpy(desc->params[i].name, "input-latency"); | strcpy(desc->params[i].name, "input-latency"); | ||||
desc->params[i].character = 'I'; | desc->params[i].character = 'I'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy(desc->params[i].short_desc, "Extra input latency"); | strcpy(desc->params[i].short_desc, "Extra input latency"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -844,7 +844,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() | |||||
strcpy(desc->params[i].name, "output-latency"); | strcpy(desc->params[i].name, "output-latency"); | ||||
desc->params[i].character = 'O'; | desc->params[i].character = 'O'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy(desc->params[i].short_desc, "Extra output latency"); | strcpy(desc->params[i].short_desc, "Extra output latency"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -253,7 +253,7 @@ extern "C" | |||||
i = 0; | i = 0; | ||||
strcpy(desc->params[i].name, "channels"); | strcpy(desc->params[i].name, "channels"); | ||||
desc->params[i].character = 'c'; | desc->params[i].character = 'c'; | ||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].value.ui = 0; | desc->params[i].value.ui = 0; | ||||
strcpy(desc->params[i].short_desc, "Maximum number of channels"); | strcpy(desc->params[i].short_desc, "Maximum number of channels"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -261,7 +261,7 @@ extern "C" | |||||
i++; | i++; | ||||
strcpy(desc->params[i].name, "inchannels"); | strcpy(desc->params[i].name, "inchannels"); | ||||
desc->params[i].character = 'i'; | desc->params[i].character = 'i'; | ||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].value.ui = 0; | desc->params[i].value.ui = 0; | ||||
strcpy(desc->params[i].short_desc, "Maximum number of input channels"); | strcpy(desc->params[i].short_desc, "Maximum number of input channels"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -269,7 +269,7 @@ extern "C" | |||||
i++; | i++; | ||||
strcpy(desc->params[i].name, "outchannels"); | strcpy(desc->params[i].name, "outchannels"); | ||||
desc->params[i].character = 'o'; | desc->params[i].character = 'o'; | ||||
desc->params[i].type = JackDriverParamInt; | |||||
desc->params[i].type = JackDriverParamUInt; | |||||
desc->params[i].value.ui = 0; | desc->params[i].value.ui = 0; | ||||
strcpy(desc->params[i].short_desc, "Maximum number of output channels"); | strcpy(desc->params[i].short_desc, "Maximum number of output channels"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -334,7 +334,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "input-latency"); | strcpy(desc->params[i].name, "input-latency"); | ||||
desc->params[i].character = 'I'; | desc->params[i].character = 'I'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy(desc->params[i].short_desc, "Extra input latency"); | strcpy(desc->params[i].short_desc, "Extra input latency"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||
@@ -342,7 +342,7 @@ extern "C" | |||||
strcpy(desc->params[i].name, "output-latency"); | strcpy(desc->params[i].name, "output-latency"); | ||||
desc->params[i].character = 'O'; | desc->params[i].character = 'O'; | ||||
desc->params[i].type = JackDriverParamUInt; | desc->params[i].type = JackDriverParamUInt; | ||||
desc->params[i].value.i = 0; | |||||
desc->params[i].value.ui = 0; | |||||
strcpy(desc->params[i].short_desc, "Extra output latency"); | strcpy(desc->params[i].short_desc, "Extra output latency"); | ||||
strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | strcpy(desc->params[i].long_desc, desc->params[i].short_desc); | ||||