D-Bus control for switch master API.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3519 0c269be4-1314-0410-8aa9-9f06e86f4224
This commit is contained in:
sletz 2009-04-22 13:53:16 +00:00
parent 4a637d218a
commit c972442a7c
5 changed files with 42 additions and 0 deletions

View File

@ -263,6 +263,22 @@ jack_controller_stop_server(
return TRUE;
}
bool
jack_controller_switch_master(
struct jack_controller * controller_ptr,
void *dbus_call_context_ptr)
{
if (!jackctl_server_switch_master(
controller_ptr->server,
controller_ptr->driver))
{
jack_dbus_error(dbus_call_context_ptr, JACK_DBUS_ERROR_GENERIC, "Failed to switch master");
return FALSE;
}
return TRUE;
}
void *
jack_controller_create(
DBusConnection *connection)

View File

@ -105,6 +105,17 @@ jack_control_run_method(
jack_controller_control_send_signal_server_stopped();
}
}
else if (strcmp (call->method_name, "SwitchMaster") == 0)
{
if (!jack_controller_switch_master(controller_ptr, call))
{
jack_error ("Failed to switch master");
}
else
{
jack_controller_control_send_signal_server_stopped();
}
}
else if (strcmp (call->method_name, "GetLoad") == 0)
{
if (!controller_ptr->started)
@ -252,6 +263,9 @@ JACK_DBUS_METHOD_ARGUMENTS_END
JACK_DBUS_METHOD_ARGUMENTS_BEGIN(StopServer)
JACK_DBUS_METHOD_ARGUMENTS_END
JACK_DBUS_METHOD_ARGUMENTS_BEGIN(SwitchMaster)
JACK_DBUS_METHOD_ARGUMENTS_END
JACK_DBUS_METHOD_ARGUMENTS_BEGIN(GetLoad)
JACK_DBUS_METHOD_ARGUMENT("load", "d", true)
JACK_DBUS_METHOD_ARGUMENTS_END
@ -295,6 +309,7 @@ JACK_DBUS_METHODS_BEGIN
JACK_DBUS_METHOD_DESCRIBE(IsStarted, NULL)
JACK_DBUS_METHOD_DESCRIBE(StartServer, NULL)
JACK_DBUS_METHOD_DESCRIBE(StopServer, NULL)
JACK_DBUS_METHOD_DESCRIBE(SwitchMaster, NULL)
JACK_DBUS_METHOD_DESCRIBE(GetLoad, NULL)
JACK_DBUS_METHOD_DESCRIBE(GetXruns, NULL)
JACK_DBUS_METHOD_DESCRIBE(GetSampleRate, NULL)

View File

@ -81,6 +81,11 @@ jack_controller_stop_server(
struct jack_controller *controller_ptr,
void *dbus_call_context_ptr);
bool
jack_controller_switch_master(
struct jack_controller *controller_ptr,
void *dbus_call_context_ptr);
bool
jack_controller_select_driver(
struct jack_controller *controller_ptr,

View File

@ -109,6 +109,7 @@ def main():
print " status - check whether jack server is started, return value is 0 if runing and 1 otherwise"
print " start - start jack server if not currently started"
print " stop - stop jack server if currenly started"
print " sm - switch master to currently selected driver"
print " dl - get list of available drivers"
print " dg - get currently selected driver"
print " ds <driver> - select driver"
@ -155,6 +156,9 @@ def main():
elif arg == 'stop':
print "--- stop"
control_iface.StopServer()
elif arg == 'sm':
print "--- switch master driver"
control_iface.SwitchMaster()
elif arg == 'ism':
if control_iface.IsManuallyActivated():
print "Manually activated"

View File

@ -51,6 +51,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include "audio_reserve.h"
//#define DEBUG_WAKEUP 1
namespace Jack
{