Browse Source

Add jack_get_descriptor for all audioadapter and netmanager

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2666 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
9f279cdd91
7 changed files with 246 additions and 31 deletions
  1. +28
    -16
      common/JackNetManager.cpp
  2. +67
    -2
      linux/alsa/JackAlsaAdapter.cpp
  3. +6
    -3
      linux/alsa/JackAlsaDriver.cpp
  4. +72
    -5
      macosx/JackCoreAudioAdapter.cpp
  5. +4
    -2
      macosx/JackCoreAudioDriver.cpp
  6. +69
    -2
      windows/JackPortAudioAdapter.cpp
  7. +0
    -1
      windows/JackPortAudioDriver.cpp

+ 28
- 16
common/JackNetManager.cpp View File

@@ -20,6 +20,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include "JackNetManager.h"
#include "JackError.h"
#include "JackExports.h"
#include "driver_interface.h"

#define DEFAULT_MULTICAST_IP "225.3.19.154"
#define DEFAULT_PORT 19000
@@ -41,7 +42,7 @@ namespace Jack
fClientName = const_cast<char*> ( fParams.fName );
fNetJumpCnt = 0;
fJackClient = NULL;
fRunning = false;
fRunning = false;
uint port_index;

//jack audio ports
@@ -457,8 +458,8 @@ namespace Jack
Exit();
master_list_t::iterator it;
for ( it = fMasterList.begin(); it != fMasterList.end(); it++ )
delete ( *it );
fSocket.Close();
delete ( *it );
fSocket.Close();
SocketAPIEnd();
}

@@ -473,7 +474,7 @@ namespace Jack
void JackNetMasterManager::Run()
{
jack_log ( "JackNetMasterManager::Run" );
//utility variables
//utility variables
int msec_timeout = 2000;
int attempt = 0;

@@ -481,13 +482,13 @@ namespace Jack
session_params_t params;
int rx_bytes = 0;
JackNetMaster* net_master;
//init socket API (win32)
if ( SocketAPIInit() < 0 )
{
jack_error ( "Can't init Socket API, exiting..." );
return;
}
//init socket API (win32)
if ( SocketAPIInit() < 0 )
{
jack_error ( "Can't init Socket API, exiting..." );
return;
}

//socket
if ( fSocket.NewSocket() == SOCKET_ERROR )
@@ -505,12 +506,12 @@ namespace Jack
}

//join multicast group
if ( fSocket.JoinMCastGroup ( fMulticastIP ) == SOCKET_ERROR )
if ( fSocket.JoinMCastGroup ( fMulticastIP ) == SOCKET_ERROR )
jack_error ( "Can't join multicast group : %s", StrError ( NET_ERROR_CODE ) );
//local loop
if ( fSocket.SetLocalLoop() == SOCKET_ERROR )
jack_error ( "Can't set local loop : %s", StrError ( NET_ERROR_CODE ) );
//local loop
if ( fSocket.SetLocalLoop() == SOCKET_ERROR )
jack_error ( "Can't set local loop : %s", StrError ( NET_ERROR_CODE ) );

//set a timeout on the multicast receive (the thread can now be cancelled)
if ( fSocket.SetTimeOut ( msec_timeout ) == SOCKET_ERROR )
@@ -622,6 +623,17 @@ static Jack::JackNetMasterManager* master_manager = NULL;
extern "C"
{
#endif

EXPORT jack_driver_desc_t* jack_get_descriptor()
{
jack_driver_desc_t *desc;
desc = (jack_driver_desc_t*)calloc(1, sizeof(jack_driver_desc_t));
// TODO
return desc;
}
EXPORT int jack_initialize ( jack_client_t* jack_client, const char* load_init )
{
if ( master_manager )


+ 67
- 2
linux/alsa/JackAlsaAdapter.cpp View File

@@ -107,11 +107,76 @@ extern "C"
EXPORT jack_driver_desc_t* jack_get_descriptor()
{
jack_driver_desc_t *desc;
jack_driver_param_desc_t * params;
unsigned int i;
desc = (jack_driver_desc_t*)calloc(1, sizeof(jack_driver_desc_t));
// TODO : fill parameter description
desc = (jack_driver_desc_t*)calloc(1, sizeof(jack_driver_desc_t));
strcpy (desc->name, "alsa-adapter");
desc->nparams = 7;
params = (jack_driver_param_desc_t*)calloc(desc->nparams, sizeof(jack_driver_param_desc_t));
i = 0;
strcpy(params[i].name, "capture");
params[i].character = 'C';
params[i].type = JackDriverParamString;
strcpy (params[i].value.str, "none");
strcpy (params[i].short_desc,
"Provide capture ports. Optionally set device");
strcpy (params[i].long_desc, params[i].short_desc);

i++;
strcpy(params[i].name, "playback");
params[i].character = 'P';
params[i].type = JackDriverParamString;
strcpy(params[i].value.str, "none");
strcpy(params[i].short_desc,
"Provide playback ports. Optionally set device");
strcpy(params[i].long_desc, params[i].short_desc);

i++;
strcpy(params[i].name, "device");
params[i].character = 'd';
params[i].type = JackDriverParamString;
strcpy(params[i].value.str, "hw:0");
strcpy(params[i].short_desc, "ALSA device name");
strcpy(params[i].long_desc, params[i].short_desc);

i++;
strcpy(params[i].name, "nperiods");
params[i].character = 'n';
params[i].type = JackDriverParamUInt;
params[i].value.ui = 2U;
strcpy(params[i].short_desc, "Number of periods of playback latency");
strcpy(params[i].long_desc, params[i].short_desc);

i++;
strcpy(params[i].name, "duplex");
params[i].character = 'D';
params[i].type = JackDriverParamBool;
params[i].value.i = 1;
strcpy(params[i].short_desc,
"Provide both capture and playback ports");
strcpy(params[i].long_desc, params[i].short_desc);

i++;
strcpy(params[i].name, "inchannels");
params[i].character = 'i';
params[i].type = JackDriverParamUInt;
params[i].value.i = 0;
strcpy(params[i].short_desc,
"Number of capture channels (defaults to hardware max)");
strcpy(params[i].long_desc, params[i].short_desc);

i++;
strcpy(params[i].name, "outchannels");
params[i].character = 'o';
params[i].type = JackDriverParamUInt;
params[i].value.i = 0;
strcpy(params[i].short_desc,
"Number of playback channels (defaults to hardware max)");
strcpy(params[i].long_desc, params[i].short_desc);

desc->params = params;
return desc;
}


+ 6
- 3
linux/alsa/JackAlsaDriver.cpp View File

@@ -2405,7 +2405,8 @@ extern "C"
#endif

static int
dither_opt (char c, DitherAlgorithm* dither) {
dither_opt (char c, DitherAlgorithm* dither)
{
switch (c) {
case '-':
case 'n':
@@ -2431,7 +2432,8 @@ extern "C"
return 0;
}

EXPORT const jack_driver_desc_t* driver_get_descriptor () {
EXPORT const jack_driver_desc_t* driver_get_descriptor ()
{
jack_driver_desc_t * desc;
jack_driver_param_desc_t * params;
unsigned int i;
@@ -2604,7 +2606,8 @@ extern "C"
return desc;
}

EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params) {
EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params)
{
jack_nframes_t srate = 48000;
jack_nframes_t frames_per_interrupt = 1024;
unsigned long user_nperiods = 2;


+ 72
- 5
macosx/JackCoreAudioAdapter.cpp View File

@@ -571,16 +571,83 @@ extern "C"
#include "JackExports.h"
#include "driver_interface.h"

EXPORT jack_driver_desc_t* jack_get_descriptor()
{
EXPORT jack_driver_desc_t* jack_get_descriptor()
{
jack_driver_desc_t *desc;
unsigned int i;
desc = (jack_driver_desc_t*)calloc(1, sizeof(jack_driver_desc_t));
// TODO : fill parameter description

strcpy(desc->name, "coreaudio-adapter");
desc->nparams = 8;
desc->params = (jack_driver_param_desc_t*)calloc(desc->nparams, sizeof(jack_driver_param_desc_t));

i = 0;
strcpy(desc->params[i].name, "channels");
desc->params[i].character = 'c';
desc->params[i].type = JackDriverParamInt;
desc->params[i].value.ui = 0;
strcpy(desc->params[i].short_desc, "Maximum number of channels");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "inchannels");
desc->params[i].character = 'i';
desc->params[i].type = JackDriverParamInt;
desc->params[i].value.ui = 0;
strcpy(desc->params[i].short_desc, "Maximum number of input channels");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "outchannels");
desc->params[i].character = 'o';
desc->params[i].type = JackDriverParamInt;
desc->params[i].value.ui = 0;
strcpy(desc->params[i].short_desc, "Maximum number of output channels");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "capture");
desc->params[i].character = 'C';
desc->params[i].type = JackDriverParamString;
strcpy(desc->params[i].value.str, "will take default CoreAudio input device");
strcpy(desc->params[i].short_desc, "Provide capture ports. Optionally set CoreAudio device name");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "playback");
desc->params[i].character = 'P';
desc->params[i].type = JackDriverParamString;
strcpy(desc->params[i].value.str, "will take default CoreAudio output device");
strcpy(desc->params[i].short_desc, "Provide playback ports. Optionally set CoreAudio device name");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "duplex");
desc->params[i].character = 'D';
desc->params[i].type = JackDriverParamBool;
desc->params[i].value.i = TRUE;
strcpy(desc->params[i].short_desc, "Provide both capture and playback ports");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "device");
desc->params[i].character = 'd';
desc->params[i].type = JackDriverParamString;
strcpy(desc->params[i].value.str, "will take default CoreAudio device name");
strcpy(desc->params[i].short_desc, "CoreAudio device name");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "list-devices");
desc->params[i].character = 'l';
desc->params[i].type = JackDriverParamBool;
desc->params[i].value.i = TRUE;
strcpy(desc->params[i].short_desc, "Display available CoreAudio devices");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);
return desc;
}

#ifdef __cplusplus
}


+ 4
- 2
macosx/JackCoreAudioDriver.cpp View File

@@ -1127,7 +1127,8 @@ extern "C"
{
#endif

EXPORT jack_driver_desc_t* driver_get_descriptor() {
EXPORT jack_driver_desc_t* driver_get_descriptor()
{
jack_driver_desc_t *desc;
unsigned int i;
desc = (jack_driver_desc_t*)calloc(1, sizeof(jack_driver_desc_t));
@@ -1251,7 +1252,8 @@ extern "C"
return desc;
}

EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params) {
EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params)
{
jack_nframes_t srate = 44100;
jack_nframes_t frames_per_interrupt = 128;
int capture = FALSE;


+ 69
- 2
windows/JackPortAudioAdapter.cpp View File

@@ -170,9 +170,76 @@ extern "C"
jack_driver_desc_t *desc;
unsigned int i;
desc = (jack_driver_desc_t*)calloc(1, sizeof(jack_driver_desc_t));

strcpy(desc->name, "portaudio-adapter");
desc->nparams = 8;
desc->params = (jack_driver_param_desc_t*)calloc(desc->nparams, sizeof(jack_driver_param_desc_t));

i = 0;
strcpy(desc->params[i].name, "channels");
desc->params[i].character = 'c';
desc->params[i].type = JackDriverParamInt;
desc->params[i].value.ui = 0;
strcpy(desc->params[i].short_desc, "Maximum number of channels");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "inchannels");
desc->params[i].character = 'i';
desc->params[i].type = JackDriverParamInt;
desc->params[i].value.ui = 0;
strcpy(desc->params[i].short_desc, "Maximum number of input channels");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "outchannels");
desc->params[i].character = 'o';
desc->params[i].type = JackDriverParamInt;
desc->params[i].value.ui = 0;
strcpy(desc->params[i].short_desc, "Maximum number of output channels");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "capture");
desc->params[i].character = 'C';
desc->params[i].type = JackDriverParamString;
strcpy(desc->params[i].value.str, "will take default PortAudio input device");
strcpy(desc->params[i].short_desc, "Provide capture ports. Optionally set PortAudio device name");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "playback");
desc->params[i].character = 'P';
desc->params[i].type = JackDriverParamString;
strcpy(desc->params[i].value.str, "will take default PortAudio output device");
strcpy(desc->params[i].short_desc, "Provide playback ports. Optionally set PortAudio device name");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "duplex");
desc->params[i].character = 'D';
desc->params[i].type = JackDriverParamBool;
desc->params[i].value.i = TRUE;
strcpy(desc->params[i].short_desc, "Provide both capture and playback ports");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);
// TODO : fill parameter description
i++;
strcpy(desc->params[i].name, "device");
desc->params[i].character = 'd';
desc->params[i].type = JackDriverParamString;
desc->params[i].value.ui = 128U;
strcpy(desc->params[i].value.str, "will take default PortAudio device name");
strcpy(desc->params[i].short_desc, "PortAudio device name");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

i++;
strcpy(desc->params[i].name, "list-devices");
desc->params[i].character = 'l';
desc->params[i].type = JackDriverParamBool;
desc->params[i].value.i = TRUE;
strcpy(desc->params[i].short_desc, "Display available PortAudio devices");
strcpy(desc->params[i].long_desc, desc->params[i].short_desc);

return desc;
}


+ 0
- 1
windows/JackPortAudioDriver.cpp View File

@@ -279,7 +279,6 @@ extern "C"
desc = (jack_driver_desc_t*)calloc(1, sizeof(jack_driver_desc_t));

strcpy(desc->name, "portaudio");

desc->nparams = 13;
desc->params = (jack_driver_param_desc_t*)calloc(desc->nparams, sizeof(jack_driver_param_desc_t));



Loading…
Cancel
Save