git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3519 0c269be4-1314-0410-8aa9-9f06e86f4224tags/v1.9.3
| @@ -263,6 +263,22 @@ jack_controller_stop_server( | |||||
| return TRUE; | 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 * | void * | ||||
| jack_controller_create( | jack_controller_create( | ||||
| DBusConnection *connection) | DBusConnection *connection) | ||||
| @@ -105,6 +105,17 @@ jack_control_run_method( | |||||
| jack_controller_control_send_signal_server_stopped(); | 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) | else if (strcmp (call->method_name, "GetLoad") == 0) | ||||
| { | { | ||||
| if (!controller_ptr->started) | if (!controller_ptr->started) | ||||
| @@ -252,6 +263,9 @@ JACK_DBUS_METHOD_ARGUMENTS_END | |||||
| JACK_DBUS_METHOD_ARGUMENTS_BEGIN(StopServer) | JACK_DBUS_METHOD_ARGUMENTS_BEGIN(StopServer) | ||||
| JACK_DBUS_METHOD_ARGUMENTS_END | 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_ARGUMENTS_BEGIN(GetLoad) | ||||
| JACK_DBUS_METHOD_ARGUMENT("load", "d", true) | JACK_DBUS_METHOD_ARGUMENT("load", "d", true) | ||||
| JACK_DBUS_METHOD_ARGUMENTS_END | JACK_DBUS_METHOD_ARGUMENTS_END | ||||
| @@ -295,6 +309,7 @@ JACK_DBUS_METHODS_BEGIN | |||||
| JACK_DBUS_METHOD_DESCRIBE(IsStarted, NULL) | JACK_DBUS_METHOD_DESCRIBE(IsStarted, NULL) | ||||
| JACK_DBUS_METHOD_DESCRIBE(StartServer, NULL) | JACK_DBUS_METHOD_DESCRIBE(StartServer, NULL) | ||||
| JACK_DBUS_METHOD_DESCRIBE(StopServer, NULL) | JACK_DBUS_METHOD_DESCRIBE(StopServer, NULL) | ||||
| JACK_DBUS_METHOD_DESCRIBE(SwitchMaster, NULL) | |||||
| JACK_DBUS_METHOD_DESCRIBE(GetLoad, NULL) | JACK_DBUS_METHOD_DESCRIBE(GetLoad, NULL) | ||||
| JACK_DBUS_METHOD_DESCRIBE(GetXruns, NULL) | JACK_DBUS_METHOD_DESCRIBE(GetXruns, NULL) | ||||
| JACK_DBUS_METHOD_DESCRIBE(GetSampleRate, NULL) | JACK_DBUS_METHOD_DESCRIBE(GetSampleRate, NULL) | ||||
| @@ -81,6 +81,11 @@ jack_controller_stop_server( | |||||
| struct jack_controller *controller_ptr, | struct jack_controller *controller_ptr, | ||||
| void *dbus_call_context_ptr); | void *dbus_call_context_ptr); | ||||
| bool | |||||
| jack_controller_switch_master( | |||||
| struct jack_controller *controller_ptr, | |||||
| void *dbus_call_context_ptr); | |||||
| bool | bool | ||||
| jack_controller_select_driver( | jack_controller_select_driver( | ||||
| struct jack_controller *controller_ptr, | struct jack_controller *controller_ptr, | ||||
| @@ -109,6 +109,7 @@ def main(): | |||||
| print " status - check whether jack server is started, return value is 0 if runing and 1 otherwise" | 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 " start - start jack server if not currently started" | ||||
| print " stop - stop jack server if currenly 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 " dl - get list of available drivers" | ||||
| print " dg - get currently selected driver" | print " dg - get currently selected driver" | ||||
| print " ds <driver> - select driver" | print " ds <driver> - select driver" | ||||
| @@ -155,6 +156,9 @@ def main(): | |||||
| elif arg == 'stop': | elif arg == 'stop': | ||||
| print "--- stop" | print "--- stop" | ||||
| control_iface.StopServer() | control_iface.StopServer() | ||||
| elif arg == 'sm': | |||||
| print "--- switch master driver" | |||||
| control_iface.SwitchMaster() | |||||
| elif arg == 'ism': | elif arg == 'ism': | ||||
| if control_iface.IsManuallyActivated(): | if control_iface.IsManuallyActivated(): | ||||
| print "Manually activated" | print "Manually activated" | ||||
| @@ -51,6 +51,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #include "audio_reserve.h" | #include "audio_reserve.h" | ||||
| //#define DEBUG_WAKEUP 1 | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||