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 #if !defined (__sun__)
00035 #include <stdbool.h>
00036 #endif
00037
00039 typedef enum
00040 {
00041 JackParamInt = 1,
00042 JackParamUInt,
00043 JackParamChar,
00044 JackParamString,
00045 JackParamBool,
00046 } jackctl_param_type_t;
00047
00049 #define JACK_PARAM_MAX (JackParamBool + 1)
00050
00052 #define JACK_PARAM_STRING_MAX 127
00053
00055
00056 union jackctl_parameter_value
00057 {
00058 uint32_t ui;
00059 int32_t i;
00060 char c;
00061 char str[JACK_PARAM_STRING_MAX + 1];
00062 bool b;
00063 };
00064
00066 typedef struct jackctl_server jackctl_server_t;
00067
00069 typedef struct jackctl_driver jackctl_driver_t;
00070
00072 typedef struct jackctl_internal jackctl_internal_t;
00073
00075 typedef struct jackctl_parameter jackctl_parameter_t;
00076
00077 #ifdef __cplusplus
00078 extern "C" {
00079 #endif
00080 #if 0
00081 }
00082 #endif
00083
00098 sigset_t
00099 jackctl_setup_signals(
00100 unsigned int flags);
00101
00107 void
00108 jackctl_wait_signals(
00109 sigset_t signals);
00110
00121 jackctl_server_t *
00122 jackctl_server_create(
00123 bool (* on_device_acquire)(const char * device_name),
00124 void (* on_device_release)(const char * device_name));
00125
00131 void
00132 jackctl_server_destroy(
00133 jackctl_server_t * server);
00134
00143 bool
00144 jackctl_server_open(
00145 jackctl_server_t * server,
00146 jackctl_driver_t * driver);
00147
00155 bool
00156 jackctl_server_start(
00157 jackctl_server_t * server);
00158
00166 bool
00167 jackctl_server_stop(
00168 jackctl_server_t * server);
00169
00177 bool
00178 jackctl_server_close(
00179 jackctl_server_t * server);
00180
00190 const JSList *
00191 jackctl_server_get_drivers_list(
00192 jackctl_server_t * server);
00193
00203 const JSList *
00204 jackctl_server_get_parameters(
00205 jackctl_server_t * server);
00206
00216 const JSList *
00217 jackctl_server_get_internals_list(
00218 jackctl_server_t * server);
00219
00229 bool
00230 jackctl_server_load_internal(
00231 jackctl_server_t * server,
00232 jackctl_internal_t * internal);
00233
00243 bool
00244 jackctl_server_unload_internal(
00245 jackctl_server_t * server,
00246 jackctl_internal_t * internal);
00247
00258 bool
00259 jackctl_server_add_slave(jackctl_server_t * server,
00260 jackctl_driver_t * driver);
00261
00272 bool
00273 jackctl_server_remove_slave(jackctl_server_t * server,
00274 jackctl_driver_t * driver);
00275
00284 bool
00285 jackctl_server_switch_master(jackctl_server_t * server,
00286 jackctl_driver_t * driver);
00287
00288
00297 const char *
00298 jackctl_driver_get_name(
00299 jackctl_driver_t * driver);
00300
00310 const JSList *
00311 jackctl_driver_get_parameters(
00312 jackctl_driver_t * driver);
00313
00322 const char *
00323 jackctl_internal_get_name(
00324 jackctl_internal_t * internal);
00325
00335 const JSList *
00336 jackctl_internal_get_parameters(
00337 jackctl_internal_t * internal);
00338
00347 const char *
00348 jackctl_parameter_get_name(
00349 jackctl_parameter_t * parameter);
00350
00359 const char *
00360 jackctl_parameter_get_short_description(
00361 jackctl_parameter_t * parameter);
00362
00371 const char *
00372 jackctl_parameter_get_long_description(
00373 jackctl_parameter_t * parameter);
00374
00382 jackctl_param_type_t
00383 jackctl_parameter_get_type(
00384 jackctl_parameter_t * parameter);
00385
00393 char
00394 jackctl_parameter_get_id(
00395 jackctl_parameter_t * parameter);
00396
00406 bool
00407 jackctl_parameter_is_set(
00408 jackctl_parameter_t * parameter);
00409
00417 bool
00418 jackctl_parameter_reset(
00419 jackctl_parameter_t * parameter);
00420
00428 union jackctl_parameter_value
00429 jackctl_parameter_get_value(
00430 jackctl_parameter_t * parameter);
00431
00440 bool
00441 jackctl_parameter_set_value(
00442 jackctl_parameter_t * parameter,
00443 const union jackctl_parameter_value * value_ptr);
00444
00452 union jackctl_parameter_value
00453 jackctl_parameter_get_default_value(
00454 jackctl_parameter_t * parameter);
00455
00463 bool
00464 jackctl_parameter_has_range_constraint(
00465 jackctl_parameter_t * parameter);
00466
00474 bool
00475 jackctl_parameter_has_enum_constraint(
00476 jackctl_parameter_t * parameter);
00477
00485 uint32_t
00486 jackctl_parameter_get_enum_constraints_count(
00487 jackctl_parameter_t * parameter);
00488
00497 union jackctl_parameter_value
00498 jackctl_parameter_get_enum_constraint_value(
00499 jackctl_parameter_t * parameter,
00500 uint32_t index);
00501
00510 const char *
00511 jackctl_parameter_get_enum_constraint_description(
00512 jackctl_parameter_t * parameter,
00513 uint32_t index);
00514
00522 void
00523 jackctl_parameter_get_range_constraint(
00524 jackctl_parameter_t * parameter,
00525 union jackctl_parameter_value * min_ptr,
00526 union jackctl_parameter_value * max_ptr);
00527
00536 bool
00537 jackctl_parameter_constraint_is_strict(
00538 jackctl_parameter_t * parameter);
00539
00549 bool
00550 jackctl_parameter_constraint_is_fake_value(
00551 jackctl_parameter_t * parameter);
00552
00558 void
00559 jack_error(
00560 const char *format,
00561 ...);
00562
00568 void
00569 jack_info(
00570 const char *format,
00571 ...);
00572
00579 void
00580 jack_log(
00581 const char *format,
00582 ...);
00583
00584
00585
00586 #if 0
00587 {
00588 #endif
00589 #ifdef __cplusplus
00590 }
00591 #endif
00592
00593 #endif