Browse Source

D-Bus control for switch master API.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3519 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/v1.9.3
sletz 16 years ago
parent
commit
c972442a7c
5 changed files with 42 additions and 0 deletions
  1. +16
    -0
      dbus/controller.c
  2. +15
    -0
      dbus/controller_iface_control.c
  3. +5
    -0
      dbus/controller_internal.h
  4. +4
    -0
      example-clients/jack_control
  5. +2
    -0
      linux/alsa/JackAlsaDriver.cpp

+ 16
- 0
dbus/controller.c 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)


+ 15
- 0
dbus/controller_iface_control.c 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)


+ 5
- 0
dbus/controller_internal.h 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,


+ 4
- 0
example-clients/jack_control 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"


+ 2
- 0
linux/alsa/JackAlsaDriver.cpp 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
{



Loading…
Cancel
Save