00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __JackControlAPI__
00023 #define __JackControlAPI__
00024
00025 #include "jslist.h"
00026 #include "JackCompilerDeps.h"
00027
00028 #ifdef WIN32
00029 #ifdef __MINGW32__
00030 #include <sys/types.h>
00031 #else
00032 typedef HANDLE sigset_t;
00033 #endif
00034 #endif
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
00082 EXPORT sigset_t
00083 jackctl_setup_signals(
00084 unsigned int flags);
00085
00086 EXPORT void
00087 jackctl_wait_signals(
00088 sigset_t signals);
00089
00090 EXPORT jackctl_server_t *
00091 jackctl_server_create();
00092
00093 EXPORT void
00094 jackctl_server_destroy(
00095 jackctl_server_t * server);
00096
00097 EXPORT const JSList *
00098 jackctl_server_get_drivers_list(
00099 jackctl_server_t * server);
00100
00101 EXPORT bool
00102 jackctl_server_start(
00103 jackctl_server_t * server,
00104 jackctl_driver_t * driver);
00105
00106 EXPORT bool
00107 jackctl_server_stop(
00108 jackctl_server_t * server);
00109
00110 EXPORT const JSList *
00111 jackctl_server_get_parameters(
00112 jackctl_server_t * server);
00113
00114 EXPORT const char *
00115 jackctl_driver_get_name(
00116 jackctl_driver_t * driver);
00117
00118 EXPORT const JSList *
00119 jackctl_driver_get_parameters(
00120 jackctl_driver_t * driver);
00121
00122 EXPORT const char *
00123 jackctl_parameter_get_name(
00124 jackctl_parameter_t * parameter);
00125
00126 EXPORT const char *
00127 jackctl_parameter_get_short_description(
00128 jackctl_parameter_t * parameter);
00129
00130 EXPORT const char *
00131 jackctl_parameter_get_long_description(
00132 jackctl_parameter_t * parameter);
00133
00134 EXPORT jackctl_param_type_t
00135 jackctl_parameter_get_type(
00136 jackctl_parameter_t * parameter);
00137
00138 EXPORT char
00139 jackctl_parameter_get_id(
00140 jackctl_parameter_t * parameter);
00141
00142 EXPORT bool
00143 jackctl_parameter_is_set(
00144 jackctl_parameter_t * parameter);
00145
00146 EXPORT bool
00147 jackctl_parameter_reset(
00148 jackctl_parameter_t * parameter);
00149
00150 EXPORT union jackctl_parameter_value
00151 jackctl_parameter_get_value(
00152 jackctl_parameter_t * parameter);
00153
00154 EXPORT bool
00155 jackctl_parameter_set_value(
00156 jackctl_parameter_t * parameter,
00157 const union jackctl_parameter_value * value_ptr);
00158
00159 EXPORT union jackctl_parameter_value
00160 jackctl_parameter_get_default_value(
00161 jackctl_parameter_t * parameter);
00162
00163 EXPORT union jackctl_parameter_value
00164 jackctl_parameter_get_default_value(
00165 jackctl_parameter *parameter_ptr);
00166
00167 EXPORT bool
00168 jackctl_parameter_has_range_constraint(
00169 jackctl_parameter_t * parameter_ptr);
00170
00171 EXPORT bool
00172 jackctl_parameter_has_enum_constraint(
00173 jackctl_parameter_t * parameter_ptr);
00174
00175 EXPORT uint32_t
00176 jackctl_parameter_get_enum_constraints_count(
00177 jackctl_parameter_t * parameter_ptr);
00178
00179 EXPORT union jackctl_parameter_value
00180 jackctl_parameter_get_enum_constraint_value(
00181 jackctl_parameter_t * parameter_ptr,
00182 uint32_t index);
00183
00184 EXPORT const char *
00185 jackctl_parameter_get_enum_constraint_description(
00186 jackctl_parameter_t * parameter_ptr,
00187 uint32_t index);
00188
00189 EXPORT void
00190 jackctl_parameter_get_range_constraint(
00191 jackctl_parameter_t * parameter_ptr,
00192 union jackctl_parameter_value * min_ptr,
00193 union jackctl_parameter_value * max_ptr);
00194
00195 EXPORT bool
00196 jackctl_parameter_constraint_is_strict(
00197 jackctl_parameter_t * parameter_ptr);
00198
00199 EXPORT bool
00200 jackctl_parameter_constraint_is_fake_value(
00201 jackctl_parameter_t * parameter_ptr);
00202
00203 EXPORT const JSList *
00204 jackctl_server_get_internals_list(
00205 jackctl_server *server_ptr);
00206
00207 EXPORT const char *
00208 jackctl_internal_get_name(
00209 jackctl_internal *internal_ptr);
00210
00211 EXPORT const JSList *
00212 jackctl_internal_get_parameters(
00213 jackctl_internal *internal_ptr);
00214
00215 EXPORT bool jackctl_server_load_internal(
00216 jackctl_server * server,
00217 jackctl_internal * internal);
00218
00219 EXPORT bool jackctl_server_unload_internal(
00220 jackctl_server * server,
00221 jackctl_internal * internal);
00222
00223 #if 0
00224 {
00225 #endif
00226 #ifdef __cplusplus
00227 }
00228 #endif
00229
00230 #endif