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
00095 sigset_t
00096 jackctl_setup_signals(
00097 unsigned int flags);
00098
00104 void
00105 jackctl_wait_signals(
00106 sigset_t signals);
00107
00115 jackctl_server_t *
00116 jackctl_server_create();
00117
00123 void
00124 jackctl_server_destroy(
00125 jackctl_server_t * server);
00126
00136 const JSList *
00137 jackctl_server_get_drivers_list(
00138 jackctl_server_t * server);
00139
00148 bool
00149 jackctl_server_start(
00150 jackctl_server_t * server,
00151 jackctl_driver_t * driver);
00152
00160 bool
00161 jackctl_server_stop(
00162 jackctl_server_t * server);
00163
00173 const JSList *
00174 jackctl_server_get_parameters(
00175 jackctl_server_t * server);
00176
00185 const char *
00186 jackctl_driver_get_name(
00187 jackctl_driver_t * driver);
00188
00198 const JSList *
00199 jackctl_driver_get_parameters(
00200 jackctl_driver_t * driver);
00201
00210 const char *
00211 jackctl_parameter_get_name(
00212 jackctl_parameter_t * parameter);
00213
00222 const char *
00223 jackctl_parameter_get_short_description(
00224 jackctl_parameter_t * parameter);
00225
00234 const char *
00235 jackctl_parameter_get_long_description(
00236 jackctl_parameter_t * parameter);
00237
00245 jackctl_param_type_t
00246 jackctl_parameter_get_type(
00247 jackctl_parameter_t * parameter);
00248
00256 char
00257 jackctl_parameter_get_id(
00258 jackctl_parameter_t * parameter);
00259
00269 bool
00270 jackctl_parameter_is_set(
00271 jackctl_parameter_t * parameter);
00272
00280 bool
00281 jackctl_parameter_reset(
00282 jackctl_parameter_t * parameter);
00283
00291 union jackctl_parameter_value
00292 jackctl_parameter_get_value(
00293 jackctl_parameter_t * parameter);
00294
00303 bool
00304 jackctl_parameter_set_value(
00305 jackctl_parameter_t * parameter,
00306 const union jackctl_parameter_value * value_ptr);
00307
00315 union jackctl_parameter_value
00316 jackctl_parameter_get_default_value(
00317 jackctl_parameter_t * parameter);
00318
00326 bool
00327 jackctl_parameter_has_range_constraint(
00328 jackctl_parameter_t * parameter);
00329
00337 bool
00338 jackctl_parameter_has_enum_constraint(
00339 jackctl_parameter_t * parameter);
00340
00348 uint32_t
00349 jackctl_parameter_get_enum_constraints_count(
00350 jackctl_parameter_t * parameter);
00351
00360 union jackctl_parameter_value
00361 jackctl_parameter_get_enum_constraint_value(
00362 jackctl_parameter_t * parameter,
00363 uint32_t index);
00364
00373 const char *
00374 jackctl_parameter_get_enum_constraint_description(
00375 jackctl_parameter_t * parameter,
00376 uint32_t index);
00377
00385 void
00386 jackctl_parameter_get_range_constraint(
00387 jackctl_parameter_t * parameter,
00388 union jackctl_parameter_value * min_ptr,
00389 union jackctl_parameter_value * max_ptr);
00390
00399 bool
00400 jackctl_parameter_constraint_is_strict(
00401 jackctl_parameter_t * parameter);
00402
00412 bool
00413 jackctl_parameter_constraint_is_fake_value(
00414 jackctl_parameter_t * parameter);
00415
00425 const JSList *
00426 jackctl_server_get_internals_list(
00427 jackctl_server_t * server);
00428
00437 const char *
00438 jackctl_internal_get_name(
00439 jackctl_internal_t * internal);
00440
00450 const JSList *
00451 jackctl_internal_get_parameters(
00452 jackctl_internal_t * internal);
00453
00462 bool
00463 jackctl_server_load_internal(
00464 jackctl_server_t * server,
00465 jackctl_internal_t * internal);
00466
00475 bool
00476 jackctl_server_unload_internal(
00477 jackctl_server_t * server,
00478 jackctl_internal_t * internal);
00479
00485 void
00486 jack_error(
00487 const char *format,
00488 ...);
00489
00495 void
00496 jack_info(
00497 const char *format,
00498 ...);
00499
00506 void
00507 jack_log(
00508 const char *format,
00509 ...);
00510
00511
00512
00513 #if 0
00514 {
00515 #endif
00516 #ifdef __cplusplus
00517 }
00518 #endif
00519
00520 #endif