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
00036 typedef enum
00037 {
00038 JackParamInt = 1,
00039 JackParamUInt,
00040 JackParamChar,
00041 JackParamString,
00042 JackParamBool,
00043 } jackctl_param_type_t;
00044
00046 #define JACK_PARAM_MAX (JackParamBool + 1)
00047
00049 #define JACK_PARAM_STRING_MAX 63
00050
00052
00053 union jackctl_parameter_value
00054 {
00055 uint32_t ui;
00056 int32_t i;
00057 char c;
00058 char str[JACK_PARAM_STRING_MAX + 1];
00059 bool b;
00060 };
00061
00063 typedef struct jackctl_server jackctl_server_t;
00064
00066 typedef struct jackctl_driver jackctl_driver_t;
00067
00069 typedef struct jackctl_internal jackctl_internal_t;
00070
00072 typedef struct jackctl_parameter jackctl_parameter_t;
00073
00074 #ifdef __cplusplus
00075 extern "C" {
00076 #endif
00077 #if 0
00078 }
00079 #endif
00080
00090 sigset_t
00091 jackctl_setup_signals(
00092 unsigned int flags);
00093
00099 void
00100 jackctl_wait_signals(
00101 sigset_t signals);
00102
00110 jackctl_server_t *
00111 jackctl_server_create();
00112
00118 void
00119 jackctl_server_destroy(
00120 jackctl_server_t * server);
00121
00131 const JSList *
00132 jackctl_server_get_drivers_list(
00133 jackctl_server_t * server);
00134
00143 bool
00144 jackctl_server_start(
00145 jackctl_server_t * server,
00146 jackctl_driver_t * driver);
00147
00155 bool
00156 jackctl_server_stop(
00157 jackctl_server_t * server);
00158
00168 const JSList *
00169 jackctl_server_get_parameters(
00170 jackctl_server_t * server);
00171
00180 const char *
00181 jackctl_driver_get_name(
00182 jackctl_driver_t * driver);
00183
00193 const JSList *
00194 jackctl_driver_get_parameters(
00195 jackctl_driver_t * driver);
00196
00205 const char *
00206 jackctl_parameter_get_name(
00207 jackctl_parameter_t * parameter);
00208
00217 const char *
00218 jackctl_parameter_get_short_description(
00219 jackctl_parameter_t * parameter);
00220
00229 const char *
00230 jackctl_parameter_get_long_description(
00231 jackctl_parameter_t * parameter);
00232
00240 jackctl_param_type_t
00241 jackctl_parameter_get_type(
00242 jackctl_parameter_t * parameter);
00243
00251 char
00252 jackctl_parameter_get_id(
00253 jackctl_parameter_t * parameter);
00254
00264 bool
00265 jackctl_parameter_is_set(
00266 jackctl_parameter_t * parameter);
00267
00275 bool
00276 jackctl_parameter_reset(
00277 jackctl_parameter_t * parameter);
00278
00286 union jackctl_parameter_value
00287 jackctl_parameter_get_value(
00288 jackctl_parameter_t * parameter);
00289
00298 bool
00299 jackctl_parameter_set_value(
00300 jackctl_parameter_t * parameter,
00301 const union jackctl_parameter_value * value_ptr);
00302
00310 union jackctl_parameter_value
00311 jackctl_parameter_get_default_value(
00312 jackctl_parameter_t * parameter);
00313
00321 bool
00322 jackctl_parameter_has_range_constraint(
00323 jackctl_parameter_t * parameter_ptr);
00324
00332 bool
00333 jackctl_parameter_has_enum_constraint(
00334 jackctl_parameter_t * parameter_ptr);
00335
00343 uint32_t
00344 jackctl_parameter_get_enum_constraints_count(
00345 jackctl_parameter_t * parameter_ptr);
00346
00355 union jackctl_parameter_value
00356 jackctl_parameter_get_enum_constraint_value(
00357 jackctl_parameter_t * parameter_ptr,
00358 uint32_t index);
00359
00368 const char *
00369 jackctl_parameter_get_enum_constraint_description(
00370 jackctl_parameter_t * parameter_ptr,
00371 uint32_t index);
00372
00380 void
00381 jackctl_parameter_get_range_constraint(
00382 jackctl_parameter_t * parameter_ptr,
00383 union jackctl_parameter_value * min_ptr,
00384 union jackctl_parameter_value * max_ptr);
00385
00394 bool
00395 jackctl_parameter_constraint_is_strict(
00396 jackctl_parameter_t * parameter_ptr);
00397
00407 bool
00408 jackctl_parameter_constraint_is_fake_value(
00409 jackctl_parameter_t * parameter_ptr);
00410
00420 const JSList *
00421 jackctl_server_get_internals_list(
00422 jackctl_server_t * server);
00423
00432 const char *
00433 jackctl_internal_get_name(
00434 jackctl_internal_t * internal);
00435
00445 const JSList *
00446 jackctl_internal_get_parameters(
00447 jackctl_internal_t * internal);
00448
00457 bool
00458 jackctl_server_load_internal(
00459 jackctl_server_t * server,
00460 jackctl_internal_t * internal);
00461
00470 bool
00471 jackctl_server_unload_internal(
00472 jackctl_server_t * server,
00473 jackctl_internal_t * internal);
00474
00480 void
00481 jack_error(
00482 const char *format,
00483 ...);
00484
00490 void
00491 jack_info(
00492 const char *format,
00493 ...);
00494
00501 void
00502 jack_log(
00503 const char *format,
00504 ...);
00505
00506 #if 0
00507 {
00508 #endif
00509 #ifdef __cplusplus
00510 }
00511 #endif
00512
00513 #endif