diff options
Diffstat (limited to 'example-clients/server_control.cpp')
-rw-r--r-- | example-clients/server_control.cpp | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/example-clients/server_control.cpp b/example-clients/server_control.cpp deleted file mode 100644 index 9be7aea6..00000000 --- a/example-clients/server_control.cpp +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright (C) 2008 Grame - - 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <stdio.h> -#include <errno.h> -#include <unistd.h> -#include <stdlib.h> -#include <string.h> -#include <getopt.h> -#include <jack/jack.h> -#include <jack/control.h> - -static jackctl_driver_t * jackctl_server_get_driver(jackctl_server_t *server, const char *driver_name) -{ - const JSList * node_ptr = jackctl_server_get_drivers_list(server); - - while (node_ptr) { - if (strcmp(jackctl_driver_get_name((jackctl_driver_t *)node_ptr->data), driver_name) == 0) { - return (jackctl_driver_t *)node_ptr->data; - } - node_ptr = jack_slist_next(node_ptr); - } - - return NULL; -} - -static jackctl_internal_t * jackctl_server_get_internal(jackctl_server_t *server, const char *internal_name) -{ - const JSList * node_ptr = jackctl_server_get_internals_list(server); - - while (node_ptr) { - if (strcmp(jackctl_internal_get_name((jackctl_internal_t *)node_ptr->data), internal_name) == 0) { - return (jackctl_internal_t *)node_ptr->data; - } - node_ptr = jack_slist_next(node_ptr); - } - - return NULL; -} - -#if 0 -static jackctl_parameter_t * -jackctl_get_parameter( - const JSList * parameters_list, - const char * parameter_name) -{ - while (parameters_list) - { - if (strcmp(jackctl_parameter_get_name((jackctl_parameter_t *)parameters_list->data), parameter_name) == 0) - { - return (jackctl_parameter_t *)parameters_list->data; - } - - parameters_list = jack_slist_next(parameters_list); - } - - return NULL; -} -#endif - -static void print_value(union jackctl_parameter_value value, jackctl_param_type_t type) -{ - switch (type) { - - case JackParamInt: - printf("parameter value = %d\n", value.i); - break; - - case JackParamUInt: - printf("parameter value = %u\n", value.ui); - break; - - case JackParamChar: - printf("parameter value = %c\n", value.c); - break; - - case JackParamString: - printf("parameter value = %s\n", value.str); - break; - - case JackParamBool: - printf("parameter value = %d\n", value.b); - break; - } -} - -static void print_parameters(const JSList * node_ptr) -{ - while (node_ptr != NULL) { - jackctl_parameter_t * parameter = (jackctl_parameter_t *)node_ptr->data; - printf("\nparameter name = %s\n", jackctl_parameter_get_name(parameter)); - printf("parameter id = %c\n", jackctl_parameter_get_id(parameter)); - printf("parameter short decs = %s\n", jackctl_parameter_get_short_description(parameter)); - printf("parameter long decs = %s\n", jackctl_parameter_get_long_description(parameter)); - print_value(jackctl_parameter_get_default_value(parameter), jackctl_parameter_get_type(parameter)); - node_ptr = jack_slist_next(node_ptr); - } -} - -static void print_driver(jackctl_driver_t * driver) -{ - printf("\n--------------------------\n"); - printf("driver = %s\n", jackctl_driver_get_name(driver)); - printf("-------------------------- \n"); - print_parameters(jackctl_driver_get_parameters(driver)); -} - -static void print_internal(jackctl_internal_t * internal) -{ - printf("\n-------------------------- \n"); - printf("internal = %s\n", jackctl_internal_get_name(internal)); - printf("-------------------------- \n"); - print_parameters(jackctl_internal_get_parameters(internal)); -} - -static void usage() -{ - fprintf (stderr, "\n" - "usage: jack_server_control \n" - " [ --driver OR -d driver_name ]\n" - " [ --client OR -c client_name ]\n" - ); -} - -int main(int argc, char *argv[]) -{ - jackctl_server_t * server; - const JSList * parameters; - const JSList * drivers; - const JSList * internals; - const JSList * node_ptr; - jackctl_sigmask_t * sigmask; - int opt, option_index; - const char* driver_name = "dummy"; - const char* client_name = "audioadapter"; - - const char *options = "d:c:"; - struct option long_options[] = { - {"driver", 1, 0, 'd'}, - {"client", 1, 0, 'c'}, - {0, 0, 0, 0} - }; - - while ((opt = getopt_long (argc, argv, options, long_options, &option_index)) != -1) { - switch (opt) { - case 'd': - driver_name = optarg; - break; - case 'c': - client_name = optarg; - break; - default: - usage(); - exit(0); - } - } - - server = jackctl_server_create2(NULL, NULL, NULL); - parameters = jackctl_server_get_parameters(server); - - /* - jackctl_parameter_t* param; - union jackctl_parameter_value value; - param = jackctl_get_parameter(parameters, "verbose"); - if (param != NULL) { - value.b = true; - jackctl_parameter_set_value(param, &value); - } - */ - - printf("\n========================== \n"); - printf("List of server parameters \n"); - printf("========================== \n"); - - print_parameters(parameters); - - printf("\n========================== \n"); - printf("List of drivers \n"); - printf("========================== \n"); - - drivers = jackctl_server_get_drivers_list(server); - node_ptr = drivers; - while (node_ptr != NULL) { - print_driver((jackctl_driver_t *)node_ptr->data); - node_ptr = jack_slist_next(node_ptr); - } - - printf("\n========================== \n"); - printf("List of internal clients \n"); - printf("========================== \n"); - - internals = jackctl_server_get_internals_list(server); - node_ptr = internals; - while (node_ptr != NULL) { - print_internal((jackctl_internal_t *)node_ptr->data); - node_ptr = jack_slist_next(node_ptr); - } - - // No error checking in this simple example... - - jackctl_server_open(server, jackctl_server_get_driver(server, driver_name)); - jackctl_server_start(server); - - jackctl_server_load_internal(server, jackctl_server_get_internal(server, client_name)); - - /* - // Switch master test - - jackctl_driver_t* master; - - usleep(5000000); - printf("jackctl_server_load_master\n"); - master = jackctl_server_get_driver(server, "coreaudio"); - jackctl_server_switch_master(server, master); - - usleep(5000000); - printf("jackctl_server_load_master\n"); - master = jackctl_server_get_driver(server, "dummy"); - jackctl_server_switch_master(server, master); - - */ - - sigmask = jackctl_setup_signals(0); - jackctl_wait_signals(sigmask); - jackctl_server_stop(server); - jackctl_server_close(server); - jackctl_server_destroy(server); - return 0; -} |