00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00029 #ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED
00030 #define JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED
00031
00032 #include <jack/jslist.h>
00033 #include <jack/systemdeps.h>
00034 #include <stdbool.h>
00035
00037 typedef enum
00038 {
00039 JackParamInt = 1,
00040 JackParamUInt,
00041 JackParamChar,
00042 JackParamString,
00043 JackParamBool,
00044 } jackctl_param_type_t;
00045
00047 #define JACK_PARAM_MAX (JackParamBool + 1)
00048
00050 #define JACK_PARAM_STRING_MAX 63
00051
00053
00054 union jackctl_parameter_value
00055 {
00056 uint32_t ui;
00057 int32_t i;
00058 char c;
00059 char str[JACK_PARAM_STRING_MAX + 1];
00060 bool b;
00061 };
00062
00064 typedef struct jackctl_server jackctl_server_t;
00065
00067 typedef struct jackctl_driver jackctl_driver_t;
00068
00070 typedef struct jackctl_internal jackctl_internal_t;
00071
00073 typedef struct jackctl_parameter jackctl_parameter_t;
00074
00075 #ifdef __cplusplus
00076 extern "C" {
00077 #endif
00078 #if 0
00079 }
00080 #endif
00081
00096 sigset_t
00097 jackctl_setup_signals(
00098 unsigned int flags);
00099
00105 void
00106 jackctl_wait_signals(
00107 sigset_t signals);
00108
00119 jackctl_server_t *
00120 jackctl_server_create(
00121 bool (* on_device_acquire)(const char * device_name),
00122 void (* on_device_release)(const char * device_name));
00123
00129 void
00130 jackctl_server_destroy(
00131 jackctl_server_t * server);
00132
00141 bool
00142 jackctl_server_start(
00143 jackctl_server_t * server,
00144 jackctl_driver_t * driver);
00145
00153 bool
00154 jackctl_server_stop(
00155 jackctl_server_t * server);
00156
00166 const JSList *
00167 jackctl_server_get_drivers_list(
00168 jackctl_server_t * server);
00169
00179 const JSList *
00180 jackctl_server_get_parameters(
00181 jackctl_server_t * server);
00182
00192 const JSList *
00193 jackctl_server_get_internals_list(
00194 jackctl_server_t * server);
00195
00204 bool
00205 jackctl_server_load_internal(
00206 jackctl_server_t * server,
00207 jackctl_internal_t * internal);
00208
00217 bool
00218 jackctl_server_unload_internal(
00219 jackctl_server_t * server,
00220 jackctl_internal_t * internal);
00221
00230 bool
00231 jackctl_server_add_slave(jackctl_server_t * server,
00232 jackctl_driver_t * driver);
00233
00242 bool
00243 jackctl_server_remove_slave(jackctl_server_t * server,
00244 jackctl_driver_t * driver);
00245
00254 bool
00255 jackctl_server_switch_master(jackctl_server_t * server,
00256 jackctl_driver_t * driver);
00257
00258
00267 const char *
00268 jackctl_driver_get_name(
00269 jackctl_driver_t * driver);
00270
00280 const JSList *
00281 jackctl_driver_get_parameters(
00282 jackctl_driver_t * driver);
00283
00292 const char *
00293 jackctl_internal_get_name(
00294 jackctl_internal_t * internal);
00295
00305 const JSList *
00306 jackctl_internal_get_parameters(
00307 jackctl_internal_t * internal);
00308
00317 const char *
00318 jackctl_parameter_get_name(
00319 jackctl_parameter_t * parameter);
00320
00329 const char *
00330 jackctl_parameter_get_short_description(
00331 jackctl_parameter_t * parameter);
00332
00341 const char *
00342 jackctl_parameter_get_long_description(
00343 jackctl_parameter_t * parameter);
00344
00352 jackctl_param_type_t
00353 jackctl_parameter_get_type(
00354 jackctl_parameter_t * parameter);
00355
00363 char
00364 jackctl_parameter_get_id(
00365 jackctl_parameter_t * parameter);
00366
00376 bool
00377 jackctl_parameter_is_set(
00378 jackctl_parameter_t * parameter);
00379
00387 bool
00388 jackctl_parameter_reset(
00389 jackctl_parameter_t * parameter);
00390
00398 union jackctl_parameter_value
00399 jackctl_parameter_get_value(
00400 jackctl_parameter_t * parameter);
00401
00410 bool
00411 jackctl_parameter_set_value(
00412 jackctl_parameter_t * parameter,
00413 const union jackctl_parameter_value * value_ptr);
00414
00422 union jackctl_parameter_value
00423 jackctl_parameter_get_default_value(
00424 jackctl_parameter_t * parameter);
00425
00433 bool
00434 jackctl_parameter_has_range_constraint(
00435 jackctl_parameter_t * parameter);
00436
00444 bool
00445 jackctl_parameter_has_enum_constraint(
00446 jackctl_parameter_t * parameter);
00447
00455 uint32_t
00456 jackctl_parameter_get_enum_constraints_count(
00457 jackctl_parameter_t * parameter);
00458
00467 union jackctl_parameter_value
00468 jackctl_parameter_get_enum_constraint_value(
00469 jackctl_parameter_t * parameter,
00470 uint32_t index);
00471
00480 const char *
00481 jackctl_parameter_get_enum_constraint_description(
00482 jackctl_parameter_t * parameter,
00483 uint32_t index);
00484
00492 void
00493 jackctl_parameter_get_range_constraint(
00494 jackctl_parameter_t * parameter,
00495 union jackctl_parameter_value * min_ptr,
00496 union jackctl_parameter_value * max_ptr);
00497
00506 bool
00507 jackctl_parameter_constraint_is_strict(
00508 jackctl_parameter_t * parameter);
00509
00519 bool
00520 jackctl_parameter_constraint_is_fake_value(
00521 jackctl_parameter_t * parameter);
00522
00528 void
00529 jack_error(
00530 const char *format,
00531 ...);
00532
00538 void
00539 jack_info(
00540 const char *format,
00541 ...);
00542
00549 void
00550 jack_log(
00551 const char *format,
00552 ...);
00553
00554
00555
00556 #if 0
00557 {
00558 #endif
00559 #ifdef __cplusplus
00560 }
00561 #endif
00562
00563 #endif