Browse Source

jackctl_server_add_slave and jackctl_server_remove_slave now test if server is running.

tags/1.9.7
Stephane Letz 15 years ago
parent
commit
17df184da2
8 changed files with 164 additions and 123 deletions
  1. +15
    -5
      common/JackControlAPI.cpp
  2. +5
    -0
      common/JackDriver.cpp
  3. +3
    -0
      common/JackDriver.h
  4. +13
    -3
      common/JackServer.cpp
  5. +1
    -0
      common/JackServer.h
  6. +11
    -6
      common/JackThreadedDriver.cpp
  7. +11
    -10
      common/JackThreadedDriver.h
  8. +105
    -99
      common/jack/control.h

+ 15
- 5
common/JackControlAPI.cpp View File

@@ -1210,8 +1210,13 @@ EXPORT bool jackctl_server_unload_internal(
EXPORT bool jackctl_server_add_slave(jackctl_server * server_ptr, jackctl_driver * driver_ptr) EXPORT bool jackctl_server_add_slave(jackctl_server * server_ptr, jackctl_driver * driver_ptr)
{ {
if (server_ptr->engine != NULL) { if (server_ptr->engine != NULL) {
driver_ptr->info = server_ptr->engine->AddSlave(driver_ptr->desc_ptr, driver_ptr->set_parameters);
return (driver_ptr->info != 0);
if (server_ptr->engine->IsRunning()) {
jack_error("cannot add a slave in a running server");
return false;
} else {
driver_ptr->info = server_ptr->engine->AddSlave(driver_ptr->desc_ptr, driver_ptr->set_parameters);
return (driver_ptr->info != 0);
}
} else { } else {
return false; return false;
} }
@@ -1220,9 +1225,14 @@ EXPORT bool jackctl_server_add_slave(jackctl_server * server_ptr, jackctl_driver
EXPORT bool jackctl_server_remove_slave(jackctl_server * server_ptr, jackctl_driver * driver_ptr) EXPORT bool jackctl_server_remove_slave(jackctl_server * server_ptr, jackctl_driver * driver_ptr)
{ {
if (server_ptr->engine != NULL) { if (server_ptr->engine != NULL) {
server_ptr->engine->RemoveSlave(driver_ptr->info);
delete driver_ptr->info;
return true;
if (server_ptr->engine->IsRunning()) {
jack_error("cannot remove a slave from a running server");
return false;
} else {
server_ptr->engine->RemoveSlave(driver_ptr->info);
delete driver_ptr->info;
return true;
}
} else { } else {
return false; return false;
} }


+ 5
- 0
common/JackDriver.cpp View File

@@ -47,6 +47,7 @@ JackDriver::JackDriver(const char* name, const char* alias, JackLockedEngine* en
fBeginDateUst = 0; fBeginDateUst = 0;
fDelayedUsecs = 0.f; fDelayedUsecs = 0.f;
fIsMaster = true; fIsMaster = true;
fIsRunning = false;
} }


JackDriver::JackDriver() JackDriver::JackDriver()
@@ -56,6 +57,7 @@ JackDriver::JackDriver()
fGraphManager = NULL; fGraphManager = NULL;
fBeginDateUst = 0; fBeginDateUst = 0;
fIsMaster = true; fIsMaster = true;
fIsRunning = false;
} }


JackDriver::~JackDriver() JackDriver::~JackDriver()
@@ -288,6 +290,7 @@ int JackDriver::ProcessSlaves()
JackDriverInterface* slave = *it; JackDriverInterface* slave = *it;
if (slave->Process() < 0) if (slave->Process() < 0)
res = -1; res = -1;

} }
return res; return res;
} }
@@ -327,6 +330,7 @@ int JackDriver::Start()
if (fIsMaster) { if (fIsMaster) {
fEngineControl->InitFrameTime(); fEngineControl->InitFrameTime();
} }
fIsRunning = true;
return 0; return 0;
} }


@@ -350,6 +354,7 @@ int JackDriver::StartSlaves()


int JackDriver::Stop() int JackDriver::Stop()
{ {
fIsRunning = false;
return 0; return 0;
} }




+ 3
- 0
common/JackDriver.h View File

@@ -97,6 +97,7 @@ class SERVER_EXPORT JackDriverInterface
virtual int ProcessSlaves() = 0; virtual int ProcessSlaves() = 0;


virtual bool IsRealTime() const = 0; virtual bool IsRealTime() const = 0;
virtual bool IsRunning() const = 0;
}; };


/*! /*!
@@ -134,6 +135,7 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface
JackClientControl fClientControl; JackClientControl fClientControl;
std::list<JackDriverInterface*> fSlaveList; std::list<JackDriverInterface*> fSlaveList;
bool fIsMaster; bool fIsMaster;
bool fIsRunning;


void CycleIncTime(); void CycleIncTime();
void CycleTakeBeginTime(); void CycleTakeBeginTime();
@@ -210,6 +212,7 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface
virtual JackClientControl* GetClientControl() const; virtual JackClientControl* GetClientControl() const;


virtual bool IsRealTime() const; virtual bool IsRealTime() const;
virtual bool IsRunning() const { return fIsRunning; }
virtual bool Initialize(); // To be called by the wrapping thread Init method when the driver is a "blocking" one virtual bool Initialize(); // To be called by the wrapping thread Init method when the driver is a "blocking" one


}; };


+ 13
- 3
common/JackServer.cpp View File

@@ -57,8 +57,8 @@ JackServer::JackServer(bool sync, bool temporary, int timeout, bool rt, int prio
JackFreewheelDriver *freewheelDriver = JackFreewheelDriver *freewheelDriver =
new JackFreewheelDriver(fEngine, GetSynchroTable()); new JackFreewheelDriver(fEngine, GetSynchroTable());
fThreadedFreewheelDriver = new JackThreadedDriver(freewheelDriver); fThreadedFreewheelDriver = new JackThreadedDriver(freewheelDriver);
fFreewheelDriver = freewheelDriver;


fFreewheelDriver = freewheelDriver;
fDriverInfo = new JackDriverInfo(); fDriverInfo = new JackDriverInfo();
fAudioDriver = NULL; fAudioDriver = NULL;
fFreewheel = false; fFreewheel = false;
@@ -188,7 +188,18 @@ int JackServer::Start()
int JackServer::Stop() int JackServer::Stop()
{ {
jack_log("JackServer::Stop"); jack_log("JackServer::Stop");
return fAudioDriver->Stop();
if (fFreewheel) {
return fThreadedFreewheelDriver->Stop();
} else {
return fAudioDriver->Stop();
}
}

bool JackServer::IsRunning()
{
jack_log("JackServer::IsRunning");
assert(fAudioDriver);
return fAudioDriver->IsRunning();
} }


int JackServer::SetBufferSize(jack_nframes_t buffer_size) int JackServer::SetBufferSize(jack_nframes_t buffer_size)
@@ -281,7 +292,6 @@ void JackServer::Notify(int refnum, int notify, int value)
case kXRunCallback: case kXRunCallback:
fEngine->NotifyXRun(refnum); fEngine->NotifyXRun(refnum);
break; break;

} }
} }




+ 1
- 0
common/JackServer.h View File

@@ -71,6 +71,7 @@ class SERVER_EXPORT JackServer


int Start(); int Start();
int Stop(); int Stop();
bool IsRunning();


// RT thread // RT thread
void Notify(int refnum, int notify, int value); void Notify(int refnum, int notify, int value);


+ 11
- 6
common/JackThreadedDriver.cpp View File

@@ -152,6 +152,11 @@ bool JackThreadedDriver::IsRealTime() const
return fDriver->IsRealTime(); return fDriver->IsRealTime();
} }


bool JackThreadedDriver::IsRunning() const
{
return fDriver->IsRunning();
}

int JackThreadedDriver::Start() int JackThreadedDriver::Start()
{ {
jack_log("JackThreadedDriver::Start"); jack_log("JackThreadedDriver::Start");
@@ -171,9 +176,9 @@ int JackThreadedDriver::Start()
int JackThreadedDriver::Stop() int JackThreadedDriver::Stop()
{ {
jack_log("JackThreadedDriver::Stop"); jack_log("JackThreadedDriver::Stop");
switch (fThread.GetStatus()) { switch (fThread.GetStatus()) {
// Kill the thread in Init phase // Kill the thread in Init phase
case JackThread::kStarting: case JackThread::kStarting:
case JackThread::kIniting: case JackThread::kIniting:
@@ -182,15 +187,15 @@ int JackThreadedDriver::Stop()
return -1; return -1;
} }
break; break;
// Stop when the thread cycle is finished // Stop when the thread cycle is finished
case JackThread::kRunning: case JackThread::kRunning:
if (fThread.Stop() < 0) { if (fThread.Stop() < 0) {
jack_error("Cannot stop thread");
jack_error("Cannot stop thread");
return -1; return -1;
} }
break; break;
default: default:
break; break;
} }
@@ -218,7 +223,7 @@ bool JackThreadedDriver::Init()
if (fThread.AcquireSelfRealTime(GetEngineControl()->fServerPriority) < 0) { if (fThread.AcquireSelfRealTime(GetEngineControl()->fServerPriority) < 0) {
jack_error("AcquireSelfRealTime error"); jack_error("AcquireSelfRealTime error");
} else { } else {
set_threaded_log_function();
set_threaded_log_function();
} }
} }
return true; return true;


+ 11
- 10
common/JackThreadedDriver.h View File

@@ -38,14 +38,14 @@ class SERVER_EXPORT JackThreadedDriver : public JackDriverClientInterface, publi


JackThread fThread; JackThread fThread;
JackDriver* fDriver; JackDriver* fDriver;
public: public:


JackThreadedDriver(JackDriver* driver); JackThreadedDriver(JackDriver* driver);
virtual ~JackThreadedDriver(); virtual ~JackThreadedDriver();


virtual int Open(); virtual int Open();
virtual int Open (bool capturing, virtual int Open (bool capturing,
bool playing, bool playing,
int inchannels, int inchannels,
@@ -54,7 +54,7 @@ class SERVER_EXPORT JackThreadedDriver : public JackDriverClientInterface, publi
const char* capture_driver_name, const char* capture_driver_name,
const char* playback_driver_name, const char* playback_driver_name,
jack_nframes_t capture_latency, jack_nframes_t capture_latency,
jack_nframes_t playback_latency)
jack_nframes_t playback_latency)
{ {
return -1; return -1;
} }
@@ -70,34 +70,35 @@ class SERVER_EXPORT JackThreadedDriver : public JackDriverClientInterface, publi
jack_nframes_t capture_latency, jack_nframes_t capture_latency,
jack_nframes_t playback_latency); jack_nframes_t playback_latency);
virtual int Close(); virtual int Close();
virtual int Process(); virtual int Process();
virtual int ProcessNull(); virtual int ProcessNull();
virtual int Attach(); virtual int Attach();
virtual int Detach(); virtual int Detach();
virtual int Read(); virtual int Read();
virtual int Write(); virtual int Write();
virtual int Start(); virtual int Start();
virtual int Stop(); virtual int Stop();


virtual bool IsFixedBufferSize(); virtual bool IsFixedBufferSize();
virtual int SetBufferSize(jack_nframes_t buffer_size); virtual int SetBufferSize(jack_nframes_t buffer_size);
virtual int SetSampleRate(jack_nframes_t sample_rate); virtual int SetSampleRate(jack_nframes_t sample_rate);
virtual void SetMaster(bool onoff); virtual void SetMaster(bool onoff);
virtual bool GetMaster(); virtual bool GetMaster();
virtual void AddSlave(JackDriverInterface* slave); virtual void AddSlave(JackDriverInterface* slave);
virtual void RemoveSlave(JackDriverInterface* slave); virtual void RemoveSlave(JackDriverInterface* slave);
virtual std::list<JackDriverInterface*> GetSlaves(); virtual std::list<JackDriverInterface*> GetSlaves();
virtual int ProcessSlaves(); virtual int ProcessSlaves();
virtual int ClientNotify(int refnum, const char* name, int notify, int sync, const char* message, int value1, int value2); virtual int ClientNotify(int refnum, const char* name, int notify, int sync, const char* message, int value1, int value2);
virtual JackClientControl* GetClientControl() const; virtual JackClientControl* GetClientControl() const;
virtual bool IsRealTime() const; virtual bool IsRealTime() const;
virtual bool IsRunning() const;

// JackRunnableInterface interface // JackRunnableInterface interface
virtual bool Execute(); virtual bool Execute();
virtual bool Init(); virtual bool Init();


+ 105
- 99
common/jack/control.h View File

@@ -4,7 +4,7 @@


Copyright (C) 2008 Nedko Arnaudov Copyright (C) 2008 Nedko Arnaudov
Copyright (C) 2008 GRAME Copyright (C) 2008 GRAME
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
@@ -86,10 +86,10 @@ extern "C" {
* @{ * @{
*/ */


/**
/**
* Call this function to setup process signal handling. As a general * Call this function to setup process signal handling. As a general
* rule, it is required for proper operation for the server object. * rule, it is required for proper operation for the server object.
*
*
* @param flags signals setup flags, use 0 for none. Currently no * @param flags signals setup flags, use 0 for none. Currently no
* flags are defined * flags are defined
* *
@@ -99,9 +99,9 @@ sigset_t
jackctl_setup_signals( jackctl_setup_signals(
unsigned int flags); unsigned int flags);


/**
/**
* Call this function to wait on a signal set. * Call this function to wait on a signal set.
*
*
* @param signals signals set to wait on * @param signals signals set to wait on
*/ */
void void
@@ -123,21 +123,21 @@ jackctl_server_create(
bool (* on_device_acquire)(const char * device_name), bool (* on_device_acquire)(const char * device_name),
void (* on_device_release)(const char * device_name)); void (* on_device_release)(const char * device_name));


/**
/**
* Call this function to destroy server object. * Call this function to destroy server object.
*
*
* @param server server object handle to destroy * @param server server object handle to destroy
*/ */
void void
jackctl_server_destroy( jackctl_server_destroy(
jackctl_server_t * server); jackctl_server_t * server);


/**
/**
* Call this function to open JACK server * Call this function to open JACK server
*
*
* @param server server object handle * @param server server object handle
* @param driver driver to use * @param driver driver to use
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/ */
bool bool
@@ -145,43 +145,43 @@ jackctl_server_open(
jackctl_server_t * server, jackctl_server_t * server,
jackctl_driver_t * driver); jackctl_driver_t * driver);


/**
/**
* Call this function to start JACK server * Call this function to start JACK server
*
*
* @param server server object handle * @param server server object handle
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/ */
bool bool
jackctl_server_start( jackctl_server_start(
jackctl_server_t * server); jackctl_server_t * server);


/**
/**
* Call this function to stop JACK server * Call this function to stop JACK server
*
*
* @param server server object handle * @param server server object handle
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/ */
bool bool
jackctl_server_stop( jackctl_server_stop(
jackctl_server_t * server); jackctl_server_t * server);


/**
/**
* Call this function to close JACK server * Call this function to close JACK server
*
*
* @param server server object handle * @param server server object handle
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/ */
bool bool
jackctl_server_close( jackctl_server_close(
jackctl_server_t * server); jackctl_server_t * server);


/**
/**
* Call this function to get list of available drivers. List node data * Call this function to get list of available drivers. List node data
* pointers is a driver object handle (::jackctl_driver_t). * pointers is a driver object handle (::jackctl_driver_t).
*
*
* @param server server object handle to get drivers for * @param server server object handle to get drivers for
* *
* @return Single linked list of driver object handles. Must not be * @return Single linked list of driver object handles. Must not be
@@ -191,10 +191,10 @@ const JSList *
jackctl_server_get_drivers_list( jackctl_server_get_drivers_list(
jackctl_server_t * server); jackctl_server_t * server);


/**
/**
* Call this function to get list of server parameters. List node data * Call this function to get list of server parameters. List node data
* pointers is a parameter object handle (::jackctl_parameter_t). * pointers is a parameter object handle (::jackctl_parameter_t).
*
*
* @param server server object handle to get parameters for * @param server server object handle to get parameters for
* *
* @return Single linked list of parameter object handles. Must not be * @return Single linked list of parameter object handles. Must not be
@@ -204,10 +204,10 @@ const JSList *
jackctl_server_get_parameters( jackctl_server_get_parameters(
jackctl_server_t * server); jackctl_server_t * server);


/**
/**
* Call this function to get list of available internal clients. List node data * Call this function to get list of available internal clients. List node data
* pointers is a internal client object handle (::jackctl_internal_t). * pointers is a internal client object handle (::jackctl_internal_t).
*
*
* @param server server object handle to get internal clients for * @param server server object handle to get internal clients for
* *
* @return Single linked list of internal client object handles. Must not be * @return Single linked list of internal client object handles. Must not be
@@ -217,12 +217,13 @@ const JSList *
jackctl_server_get_internals_list( jackctl_server_get_internals_list(
jackctl_server_t * server); jackctl_server_t * server);


/**
/**
* Call this function to load one internal client. * Call this function to load one internal client.
*
* (can be used when the server is running)
*
* @param server server object handle * @param server server object handle
* @param internal internal to use * @param internal internal to use
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/ */
bool bool
@@ -230,12 +231,13 @@ jackctl_server_load_internal(
jackctl_server_t * server, jackctl_server_t * server,
jackctl_internal_t * internal); jackctl_internal_t * internal);


/**
/**
* Call this function to unload one internal client. * Call this function to unload one internal client.
*
* (can be used when the server is running)
*
* @param server server object handle * @param server server object handle
* @param internal internal to unload * @param internal internal to unload
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/ */
bool bool
@@ -243,46 +245,50 @@ jackctl_server_unload_internal(
jackctl_server_t * server, jackctl_server_t * server,
jackctl_internal_t * internal); jackctl_internal_t * internal);


/**
/**
* Call this function to add a slave in the driver slave list. * Call this function to add a slave in the driver slave list.
*
* (cannot be used when the server is running that is between
* jackctl_server_start and jackctl_server_stop)
*
* @param server server object handle * @param server server object handle
* @param driver driver to add in the driver slave list. * @param driver driver to add in the driver slave list.
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/
bool
*/
bool
jackctl_server_add_slave(jackctl_server_t * server, jackctl_server_add_slave(jackctl_server_t * server,
jackctl_driver_t * driver); jackctl_driver_t * driver);


/**
/**
* Call this function to remove a slave from the driver slave list. * Call this function to remove a slave from the driver slave list.
*
* (cannot be used when the server is running that is between
* jackctl_server_start and jackctl_server_stop)
*
* @param server server object handle * @param server server object handle
* @param driver driver to remove from the driver slave list. * @param driver driver to remove from the driver slave list.
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/
bool
*/
bool
jackctl_server_remove_slave(jackctl_server_t * server, jackctl_server_remove_slave(jackctl_server_t * server,
jackctl_driver_t * driver); jackctl_driver_t * driver);


/**
/**
* Call this function to switch master driver. * Call this function to switch master driver.
*
*
* @param server server object handle * @param server server object handle
* @param driver driver to switch to * @param driver driver to switch to
*
*
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/
bool
*/
bool
jackctl_server_switch_master(jackctl_server_t * server, jackctl_server_switch_master(jackctl_server_t * server,
jackctl_driver_t * driver); jackctl_driver_t * driver);


/**

/**
* Call this function to get name of driver. * Call this function to get name of driver.
*
*
* @param driver driver object handle to get name of * @param driver driver object handle to get name of
* *
* @return driver name. Must not be modified. Always same for same * @return driver name. Must not be modified. Always same for same
@@ -292,10 +298,10 @@ const char *
jackctl_driver_get_name( jackctl_driver_get_name(
jackctl_driver_t * driver); jackctl_driver_t * driver);


/**
/**
* Call this function to get list of driver parameters. List node data * Call this function to get list of driver parameters. List node data
* pointers is a parameter object handle (::jackctl_parameter_t). * pointers is a parameter object handle (::jackctl_parameter_t).
*
*
* @param driver driver object handle to get parameters for * @param driver driver object handle to get parameters for
* *
* @return Single linked list of parameter object handles. Must not be * @return Single linked list of parameter object handles. Must not be
@@ -305,9 +311,9 @@ const JSList *
jackctl_driver_get_parameters( jackctl_driver_get_parameters(
jackctl_driver_t * driver); jackctl_driver_t * driver);


/**
/**
* Call this function to get name of internal client. * Call this function to get name of internal client.
*
*
* @param internal internal object handle to get name of * @param internal internal object handle to get name of
* *
* @return internal name. Must not be modified. Always same for same * @return internal name. Must not be modified. Always same for same
@@ -317,10 +323,10 @@ const char *
jackctl_internal_get_name( jackctl_internal_get_name(
jackctl_internal_t * internal); jackctl_internal_t * internal);


/**
/**
* Call this function to get list of internal parameters. List node data * Call this function to get list of internal parameters. List node data
* pointers is a parameter object handle (::jackctl_parameter_t). * pointers is a parameter object handle (::jackctl_parameter_t).
*
*
* @param internal internal object handle to get parameters for * @param internal internal object handle to get parameters for
* *
* @return Single linked list of parameter object handles. Must not be * @return Single linked list of parameter object handles. Must not be
@@ -330,9 +336,9 @@ const JSList *
jackctl_internal_get_parameters( jackctl_internal_get_parameters(
jackctl_internal_t * internal); jackctl_internal_t * internal);


/**
/**
* Call this function to get parameter name. * Call this function to get parameter name.
*
*
* @param parameter parameter object handle to get name of * @param parameter parameter object handle to get name of
* *
* @return parameter name. Must not be modified. Always same for same * @return parameter name. Must not be modified. Always same for same
@@ -342,9 +348,9 @@ const char *
jackctl_parameter_get_name( jackctl_parameter_get_name(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to get parameter short description. * Call this function to get parameter short description.
*
*
* @param parameter parameter object handle to get short description of * @param parameter parameter object handle to get short description of
* *
* @return parameter short description. Must not be modified. Always * @return parameter short description. Must not be modified. Always
@@ -354,9 +360,9 @@ const char *
jackctl_parameter_get_short_description( jackctl_parameter_get_short_description(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to get parameter long description. * Call this function to get parameter long description.
*
*
* @param parameter parameter object handle to get long description of * @param parameter parameter object handle to get long description of
* *
* @return parameter long description. Must not be modified. Always * @return parameter long description. Must not be modified. Always
@@ -366,9 +372,9 @@ const char *
jackctl_parameter_get_long_description( jackctl_parameter_get_long_description(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to get parameter type. * Call this function to get parameter type.
*
*
* @param parameter parameter object handle to get type of * @param parameter parameter object handle to get type of
* *
* @return parameter type. Always same for same parameter object. * @return parameter type. Always same for same parameter object.
@@ -377,21 +383,21 @@ jackctl_param_type_t
jackctl_parameter_get_type( jackctl_parameter_get_type(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to get parameter character. * Call this function to get parameter character.
*
*
* @param parameter parameter object handle to get character of * @param parameter parameter object handle to get character of
* *
* @return character.
* @return character.
*/ */
char char
jackctl_parameter_get_id( jackctl_parameter_get_id(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to check whether parameter has been set, or its * Call this function to check whether parameter has been set, or its
* default value is being used. * default value is being used.
*
*
* @param parameter parameter object handle to check * @param parameter parameter object handle to check
* *
* @return true - parameter is set, false - parameter is using default * @return true - parameter is set, false - parameter is using default
@@ -401,9 +407,9 @@ bool
jackctl_parameter_is_set( jackctl_parameter_is_set(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to reset parameter to its default value. * Call this function to reset parameter to its default value.
*
*
* @param parameter parameter object handle to reset value of * @param parameter parameter object handle to reset value of
* *
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
@@ -412,9 +418,9 @@ bool
jackctl_parameter_reset( jackctl_parameter_reset(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to get parameter value. * Call this function to get parameter value.
*
*
* @param parameter parameter object handle to get value of * @param parameter parameter object handle to get value of
* *
* @return parameter value. * @return parameter value.
@@ -423,9 +429,9 @@ union jackctl_parameter_value
jackctl_parameter_get_value( jackctl_parameter_get_value(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to set parameter value. * Call this function to set parameter value.
*
*
* @param parameter parameter object handle to get value of * @param parameter parameter object handle to get value of
* @param value_ptr pointer to variable containing parameter value * @param value_ptr pointer to variable containing parameter value
* *
@@ -436,9 +442,9 @@ jackctl_parameter_set_value(
jackctl_parameter_t * parameter, jackctl_parameter_t * parameter,
const union jackctl_parameter_value * value_ptr); const union jackctl_parameter_value * value_ptr);


/**
/**
* Call this function to get parameter default value. * Call this function to get parameter default value.
*
*
* @param parameter parameter object handle to get default value of * @param parameter parameter object handle to get default value of
* *
* @return parameter default value. * @return parameter default value.
@@ -446,10 +452,10 @@ jackctl_parameter_set_value(
union jackctl_parameter_value union jackctl_parameter_value
jackctl_parameter_get_default_value( jackctl_parameter_get_default_value(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);
/**
/**
* Call this function check whether parameter has range constraint. * Call this function check whether parameter has range constraint.
*
*
* @param parameter object handle of parameter to check * @param parameter object handle of parameter to check
* *
* @return whether parameter has range constraint. * @return whether parameter has range constraint.
@@ -458,9 +464,9 @@ bool
jackctl_parameter_has_range_constraint( jackctl_parameter_has_range_constraint(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function check whether parameter has enumeration constraint. * Call this function check whether parameter has enumeration constraint.
*
*
* @param parameter object handle of parameter to check * @param parameter object handle of parameter to check
* *
* @return whether parameter has enumeration constraint. * @return whether parameter has enumeration constraint.
@@ -469,9 +475,9 @@ bool
jackctl_parameter_has_enum_constraint( jackctl_parameter_has_enum_constraint(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function get how many enumeration values parameter has. * Call this function get how many enumeration values parameter has.
*
*
* @param parameter object handle of parameter * @param parameter object handle of parameter
* *
* @return number of enumeration values * @return number of enumeration values
@@ -480,9 +486,9 @@ uint32_t
jackctl_parameter_get_enum_constraints_count( jackctl_parameter_get_enum_constraints_count(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to get parameter enumeration value. * Call this function to get parameter enumeration value.
*
*
* @param parameter object handle of parameter * @param parameter object handle of parameter
* @param index index of parameter enumeration value * @param index index of parameter enumeration value
* *
@@ -493,9 +499,9 @@ jackctl_parameter_get_enum_constraint_value(
jackctl_parameter_t * parameter, jackctl_parameter_t * parameter,
uint32_t index); uint32_t index);


/**
/**
* Call this function to get parameter enumeration value description. * Call this function to get parameter enumeration value description.
*
*
* @param parameter object handle of parameter * @param parameter object handle of parameter
* @param index index of parameter enumeration value * @param index index of parameter enumeration value
* *
@@ -506,9 +512,9 @@ jackctl_parameter_get_enum_constraint_description(
jackctl_parameter_t * parameter, jackctl_parameter_t * parameter,
uint32_t index); uint32_t index);


/**
/**
* Call this function to get parameter range. * Call this function to get parameter range.
*
*
* @param parameter object handle of parameter * @param parameter object handle of parameter
* @param min_ptr pointer to variable receiving parameter minimum value * @param min_ptr pointer to variable receiving parameter minimum value
* @param max_ptr pointer to variable receiving parameter maximum value * @param max_ptr pointer to variable receiving parameter maximum value
@@ -519,10 +525,10 @@ jackctl_parameter_get_range_constraint(
union jackctl_parameter_value * min_ptr, union jackctl_parameter_value * min_ptr,
union jackctl_parameter_value * max_ptr); union jackctl_parameter_value * max_ptr);


/**
/**
* Call this function to check whether parameter constraint is strict, * Call this function to check whether parameter constraint is strict,
* i.e. whether supplying non-matching value will not work for sure. * i.e. whether supplying non-matching value will not work for sure.
*
*
* @param parameter parameter object handle to check * @param parameter parameter object handle to check
* *
* @return whether parameter constraint is strict. * @return whether parameter constraint is strict.
@@ -531,11 +537,11 @@ bool
jackctl_parameter_constraint_is_strict( jackctl_parameter_constraint_is_strict(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to check whether parameter has fake values, * Call this function to check whether parameter has fake values,
* i.e. values have no user meaningful meaning and only value * i.e. values have no user meaningful meaning and only value
* description is meaningful to user. * description is meaningful to user.
*
*
* @param parameter parameter object handle to check * @param parameter parameter object handle to check
* *
* @return whether parameter constraint is strict. * @return whether parameter constraint is strict.
@@ -544,9 +550,9 @@ bool
jackctl_parameter_constraint_is_fake_value( jackctl_parameter_constraint_is_fake_value(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);


/**
/**
* Call this function to log an error message. * Call this function to log an error message.
*
*
* @param format string * @param format string
*/ */
void void
@@ -554,9 +560,9 @@ jack_error(
const char *format, const char *format,
...); ...);


/**
/**
* Call this function to log an information message. * Call this function to log an information message.
*
*
* @param format string * @param format string
*/ */
void void
@@ -564,10 +570,10 @@ jack_info(
const char *format, const char *format,
...); ...);


/**
/**
* Call this function to log an information message but only when * Call this function to log an information message but only when
* verbose mode is enabled. * verbose mode is enabled.
*
*
* @param format string * @param format string
*/ */
void void


Loading…
Cancel
Save