Browse Source

Correct JackTools::ParseParams, cleanup.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2843 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 16 years ago
parent
commit
6f248b69da
5 changed files with 51 additions and 54 deletions
  1. +4
    -9
      common/JackAudioAdapterFactory.cpp
  2. +5
    -8
      common/JackNetAdapter.cpp
  3. +6
    -10
      common/JackNetManager.cpp
  4. +35
    -26
      common/JackTools.cpp
  5. +1
    -1
      common/JackTools.h

+ 4
- 9
common/JackAudioAdapterFactory.cpp View File

@@ -86,13 +86,9 @@ extern "C"
jack_driver_desc_t *desc = jack_get_descriptor();

JackArgParser parser(load_init);

if (parser.GetArgc() > 0)
{
if (parser.ParseParams(desc, &params) != 0)
jack_error("Internal client : JackArgParser::ParseParams error.");
}

if (parser.GetArgc() > 0)
parser.ParseParams(desc, &params);
int res = jack_internal_initialize(jack_client, params);
parser.FreeParams(params);
return res;
@@ -102,8 +98,7 @@ extern "C"
{
Jack::JackAudioAdapter* adapter = static_cast<Jack::JackAudioAdapter*>(arg);

if (adapter)
{
if (adapter) {
jack_log("Unloading audioadapter");
adapter->Close();
delete adapter;


+ 5
- 8
common/JackNetAdapter.cpp View File

@@ -547,12 +547,10 @@ extern "C"
JSList* params = NULL;
jack_driver_desc_t *desc = jack_get_descriptor();

JackArgParser parser ( load_init );

if ( parser.GetArgc() > 0 )
if ( parser.ParseParams ( desc, &params ) != 0 )
jack_error ( "Internal client : JackArgParser::ParseParams error." );

JackArgParser parser(load_init);
if (parser.GetArgc() > 0)
parser.ParseParams (desc, &params);
int res = jack_internal_initialize(jack_client, params);
parser.FreeParams(params);
return res;
@@ -562,8 +560,7 @@ extern "C"
{
Jack::JackAudioAdapter* adapter = static_cast<Jack::JackAudioAdapter*> ( arg );

if ( adapter )
{
if (adapter) {
jack_log ( "Unloading netadapter" );
adapter->Close();
delete adapter;


+ 6
- 10
common/JackNetManager.cpp View File

@@ -742,14 +742,11 @@ extern "C"
{
JSList* params = NULL;
jack_driver_desc_t* desc = jack_get_descriptor();
Jack::JackArgParser parser ( load_init );

if ( parser.GetArgc() > 0 )
{
if ( parser.ParseParams ( desc, &params ) < 0 )
jack_error ( "Internal client JackArgParser::ParseParams error." );
}

Jack::JackArgParser parser(load_init);
if (parser.GetArgc() > 0)
parser.ParseParams(desc, &params);
int res = jack_internal_initialize(jack_client, params);
parser.FreeParams(params);
return res;
@@ -757,8 +754,7 @@ extern "C"

EXPORT void jack_finish ( void* arg )
{
if ( master_manager )
{
if (master_manager) {
jack_log ( "Unloading Master Manager" );
delete master_manager;
master_manager = NULL;


+ 35
- 26
common/JackTools.cpp View File

@@ -26,6 +26,7 @@
#include "JackTools.h"
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>

#ifdef WIN32
#include <process.h>
@@ -38,7 +39,8 @@ namespace Jack {
#define DEFAULT_TMP_DIR "/tmp"
char* jack_tmpdir = (char*)DEFAULT_TMP_DIR;

int JackTools::GetPID() {
int JackTools::GetPID()
{
#ifdef WIN32
return _getpid();
#else
@@ -46,7 +48,8 @@ namespace Jack {
#endif
}

int JackTools::GetUID() {
int JackTools::GetUID()
{
#ifdef WIN32
return _getpid();
//#error "No getuid function available"
@@ -55,7 +58,8 @@ namespace Jack {
#endif
}

const char* JackTools::DefaultServerName() {
const char* JackTools::DefaultServerName()
{
const char* server_name;
if ((server_name = getenv("JACK_DEFAULT_SERVER")) == NULL)
server_name = JACK_DEFAULT_SERVER_NAME;
@@ -65,22 +69,26 @@ namespace Jack {
/* returns the name of the per-user subdirectory of jack_tmpdir */
#ifdef WIN32

char* JackTools::UserDir() {
char* JackTools::UserDir()
{
return "";
}

char* JackTools::ServerDir(const char* server_name, char* server_dir) {
char* JackTools::ServerDir(const char* server_name, char* server_dir)
{
return "";
}

void JackTools::CleanupFiles(const char* server_name) {}

int JackTools::GetTmpdir() {
int JackTools::GetTmpdir()
{
return 0;
}

#else
char* JackTools::UserDir() {
char* JackTools::UserDir()
{
static char user_dir[PATH_MAX + 1] = "";

/* format the path name on the first call */
@@ -96,7 +104,8 @@ namespace Jack {
}

/* returns the name of the per-server subdirectory of jack_user_dir() */
char* JackTools::ServerDir(const char* server_name, char* server_dir) {
char* JackTools::ServerDir(const char* server_name, char* server_dir)
{
/* format the path name into the suppled server_dir char array,
* assuming that server_dir is at least as large as PATH_MAX+1 */

@@ -104,7 +113,8 @@ namespace Jack {
return server_dir;
}

void JackTools::CleanupFiles(const char* server_name) {
void JackTools::CleanupFiles(const char* server_name)
{
DIR* dir;
struct dirent *dirent;
char dir_name[PATH_MAX + 1] = "";
@@ -322,7 +332,7 @@ namespace Jack {
free((void*)argv);
}

int JackArgParser::ParseParams ( jack_driver_desc_t* desc, JSList** param_list )
void JackArgParser::ParseParams ( jack_driver_desc_t* desc, JSList** param_list )
{
string options_list;
unsigned long i = 0;
@@ -347,26 +357,27 @@ namespace Jack {
switch ( desc->params[param_id].type )
{
case JackDriverParamInt:
intclient_param->value.i = atoi ( fArgv[param + 1].c_str() );
if (param + 1 < fArgv.size()) // something to parse
intclient_param->value.i = atoi ( fArgv[param + 1].c_str() );
break;
case JackDriverParamUInt:
intclient_param->value.ui = strtoul ( fArgv[param + 1].c_str(), NULL, 10 );
if (param + 1 < fArgv.size()) // something to parse
intclient_param->value.ui = strtoul ( fArgv[param + 1].c_str(), NULL, 10 );
break;
case JackDriverParamChar:
intclient_param->value.c = fArgv[param + 1][0];
if (param + 1 < fArgv.size()) // something to parse
intclient_param->value.c = fArgv[param + 1][0];
break;
case JackDriverParamString:
fArgv[param + 1].copy ( intclient_param->value.str, min(static_cast<int>(fArgv[param + 1].length()), JACK_DRIVER_PARAM_STRING_MAX) );
if (param + 1 < fArgv.size()) // something to parse
fArgv[param + 1].copy ( intclient_param->value.str, min(static_cast<int>(fArgv[param + 1].length()), JACK_DRIVER_PARAM_STRING_MAX) );
break;
case JackDriverParamBool:
if ( ( fArgv[param + 1].compare ( "false" ) == 0 ) ||
( fArgv[param + 1].compare ( "off" ) == 0 ) ||
( fArgv[param + 1].compare ( "no" ) == 0 ) ||
( fArgv[param + 1].compare ( "0" ) == 0 ) ||
( fArgv[param + 1].compare ( "(null)" ) == 0 ) )
intclient_param->value.i = false;
else
intclient_param->value.i = true;
intclient_param->value.i = true;
break;
}
//add to the list
@@ -378,10 +389,8 @@ namespace Jack {
}
}

if ( param_list )
*param_list = params;

return 0;
assert(param_list);
*param_list = params;
}
void JackArgParser::FreeParams ( JSList* param_list )


+ 1
- 1
common/JackTools.h View File

@@ -85,7 +85,7 @@ namespace Jack
int GetArgv ( std::vector<std::string>& argv );
int GetArgv ( char** argv );
void DeleteArgv ( const char** argv );
int ParseParams ( jack_driver_desc_t* desc, JSList** param_list );
void ParseParams ( jack_driver_desc_t* desc, JSList** param_list );
void FreeParams ( JSList* param_list );
};



Loading…
Cancel
Save