diff --git a/tests/jack_server_control.cpp b/tests/jack_server_control.cpp index 85d90369..779d6a09 100644 --- a/tests/jack_server_control.cpp +++ b/tests/jack_server_control.cpp @@ -28,6 +28,61 @@ jackctl_server_t * server; +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)); +} + int main(int argc, char *argv[]) { const JSList * drivers; @@ -36,17 +91,25 @@ int main(int argc, char *argv[]) server = jackctl_server_create(); + printf("\n========================== \n"); + printf("List of drivers \n"); + printf("========================== \n"); + drivers = jackctl_server_get_drivers_list(server); node_ptr = drivers; while (node_ptr != NULL) { - printf("driver = %s\n", jackctl_driver_get_name((jackctl_driver_t *)node_ptr->data)); + 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) { - printf("internal client = %s\n", jackctl_internal_get_name((jackctl_internal_t *)node_ptr->data)); + print_internal((jackctl_internal_t *)node_ptr->data); node_ptr = jack_slist_next(node_ptr); }