Jack2  1.9.9
JackControlAPI.h
1 /*
2  JACK control API
3 
4  Copyright (C) 2008 Nedko Arnaudov
5  Copyright (C) 2008 Grame
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; version 2 of the License.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 
20 */
21 
22 #ifndef __JackControlAPI__
23 #define __JackControlAPI__
24 
25 #include "jslist.h"
26 #include "JackCompilerDeps.h"
27 
29 typedef enum
30 {
31  JackParamInt = 1,
37 
39 typedef enum
40 {
41  JackMaster = 1,
42  JackSlave,
44 
46 #define JACK_PARAM_MAX (JackParamBool + 1)
47 
49 #define JACK_PARAM_STRING_MAX 127
50 
52 /* intentionally similar to jack_driver_param_value_t */
54 {
55  uint32_t ui;
56  int32_t i;
57  char c;
59  bool b;
60 };
61 
63 typedef struct jackctl_server jackctl_server_t;
64 
66 typedef struct jackctl_driver jackctl_driver_t;
67 
70 
73 
75 typedef struct jackctl_sigmask jackctl_sigmask_t;
76 
77 #ifdef __cplusplus
78 extern "C" {
79 #endif
80 #if 0
81 } /* Adjust editor indent */
82 #endif
83 
84 SERVER_EXPORT jackctl_sigmask_t *
86  unsigned int flags);
87 
88 SERVER_EXPORT void
90  jackctl_sigmask_t * signals);
91 
92 SERVER_EXPORT jackctl_server_t *
94  bool (* on_device_acquire)(const char * device_name),
95  void (* on_device_release)(const char * device_name));
96 
97 SERVER_EXPORT void
99  jackctl_server_t * server);
100 
101 SERVER_EXPORT const JSList *
103  jackctl_server_t * server);
104 
105 SERVER_EXPORT bool
107  jackctl_server_t * server,
108  jackctl_driver_t * driver);
109 
110 SERVER_EXPORT bool
112  jackctl_server_t * server);
113 
114 SERVER_EXPORT bool
116  jackctl_server_t * server);
117 
118 SERVER_EXPORT bool
120  jackctl_server_t * server);
121 
122 SERVER_EXPORT const JSList *
124  jackctl_server_t * server);
125 
126 SERVER_EXPORT const char *
128  jackctl_driver_t * driver);
129 
130 SERVER_EXPORT jackctl_driver_type_t
132  jackctl_driver_t * driver);
133 
134 SERVER_EXPORT const JSList *
136  jackctl_driver_t * driver);
137 
138 SERVER_EXPORT const char *
140  jackctl_parameter_t * parameter);
141 
142 SERVER_EXPORT const char *
144  jackctl_parameter_t * parameter);
145 
146 SERVER_EXPORT const char *
148  jackctl_parameter_t * parameter);
149 
150 SERVER_EXPORT jackctl_param_type_t
152  jackctl_parameter_t * parameter);
153 
154 SERVER_EXPORT char
156  jackctl_parameter_t * parameter);
157 
158 SERVER_EXPORT bool
160  jackctl_parameter_t * parameter);
161 
162 SERVER_EXPORT bool
164  jackctl_parameter_t * parameter);
165 
166 SERVER_EXPORT union jackctl_parameter_value
168  jackctl_parameter_t * parameter);
169 
170 SERVER_EXPORT bool
172  jackctl_parameter_t * parameter,
173  const union jackctl_parameter_value * value_ptr);
174 
175 SERVER_EXPORT union jackctl_parameter_value
177  jackctl_parameter_t * parameter);
178 
179 SERVER_EXPORT union jackctl_parameter_value
181  jackctl_parameter *parameter_ptr);
182 
183 SERVER_EXPORT bool
185  jackctl_parameter_t * parameter_ptr);
186 
187 SERVER_EXPORT bool
189  jackctl_parameter_t * parameter_ptr);
190 
191 SERVER_EXPORT uint32_t
193  jackctl_parameter_t * parameter_ptr);
194 
195 SERVER_EXPORT union jackctl_parameter_value
197  jackctl_parameter_t * parameter_ptr,
198  uint32_t index);
199 
200 SERVER_EXPORT const char *
202  jackctl_parameter_t * parameter_ptr,
203  uint32_t index);
204 
205 SERVER_EXPORT void
207  jackctl_parameter_t * parameter_ptr,
208  union jackctl_parameter_value * min_ptr,
209  union jackctl_parameter_value * max_ptr);
210 
211 SERVER_EXPORT bool
213  jackctl_parameter_t * parameter_ptr);
214 
215 SERVER_EXPORT bool
217  jackctl_parameter_t * parameter_ptr);
218 
219 SERVER_EXPORT const JSList *
221  jackctl_server *server_ptr);
222 
223 SERVER_EXPORT const char *
225  jackctl_internal *internal_ptr);
226 
227 SERVER_EXPORT const JSList *
229  jackctl_internal *internal_ptr);
230 
231 SERVER_EXPORT bool jackctl_server_load_internal(
232  jackctl_server * server,
233  jackctl_internal * internal);
234 
235 SERVER_EXPORT bool jackctl_server_unload_internal(
236  jackctl_server * server,
237  jackctl_internal * internal);
238 
239 SERVER_EXPORT bool jackctl_server_add_slave(jackctl_server_t * server,
240  jackctl_driver_t * driver);
241 
242 SERVER_EXPORT bool jackctl_server_remove_slave(jackctl_server_t * server,
243  jackctl_driver_t * driver);
244 
245 SERVER_EXPORT bool
247  jackctl_driver_t * driver);
248 
249 SERVER_EXPORT int
250 jackctl_parse_driver_params(jackctl_driver * driver_ptr, int argc, char* argv[]);
251 
252 #if 0
253 { /* Adjust editor indent */
254 #endif
255 #ifdef __cplusplus
256 } /* extern "C" */
257 #endif
258 
259 #endif
260 
SERVER_EXPORT const char * jackctl_parameter_get_long_description(jackctl_parameter *parameter_ptr)
jackctl_driver_type_t
Definition: control.h:50
value type is a signed integer
Definition: control.h:42
SERVER_EXPORT bool jackctl_parameter_is_set(jackctl_parameter *parameter_ptr)
SERVER_EXPORT union jackctl_parameter_value jackctl_parameter_get_value(jackctl_parameter *parameter_ptr)
SERVER_EXPORT jackctl_sigmask_t * jackctl_setup_signals(unsigned int flags)
char str[JACK_PARAM_STRING_MAX+1]
member used for JackParamString
SERVER_EXPORT union jackctl_parameter_value jackctl_parameter_get_default_value(jackctl_parameter *parameter_ptr)
value type is an unsigned integer
Definition: control.h:43
SERVER_EXPORT bool jackctl_server_open(jackctl_server *server_ptr, jackctl_driver *driver_ptr)
SERVER_EXPORT void jackctl_parameter_get_range_constraint(jackctl_parameter *parameter_ptr, union jackctl_parameter_value *min_ptr, union jackctl_parameter_value *max_ptr)
value type is a char
Definition: control.h:44
SERVER_EXPORT jackctl_server_t * jackctl_server_create(bool(*on_device_acquire)(const char *device_name), void(*on_device_release)(const char *device_name))
SERVER_EXPORT bool jackctl_parameter_reset(jackctl_parameter *parameter_ptr)
uint32_t ui
member used for JackParamUInt
SERVER_EXPORT bool jackctl_server_switch_master(jackctl_server *server_ptr, jackctl_driver *driver_ptr)
value type is a boolean
Definition: control.h:46
SERVER_EXPORT const char * jackctl_internal_get_name(jackctl_internal *internal_ptr)
master driver
Definition: control.h:52
int32_t i
member used for JackParamInt
SERVER_EXPORT const char * jackctl_parameter_get_name(jackctl_parameter *parameter_ptr)
SERVER_EXPORT bool jackctl_server_stop(jackctl_server *server_ptr)
bool b
member used for JackParamBool
Type for parameter value.
SERVER_EXPORT const JSList * jackctl_driver_get_parameters(jackctl_driver *driver_ptr)
value type is a string with max size of JACK_PARAM_STRING_MAX+1 chars
Definition: control.h:45
SERVER_EXPORT bool jackctl_parameter_has_range_constraint(jackctl_parameter *parameter_ptr)
SERVER_EXPORT bool jackctl_server_close(jackctl_server *server_ptr)
SERVER_EXPORT bool jackctl_server_remove_slave(jackctl_server *server_ptr, jackctl_driver *driver_ptr)
SERVER_EXPORT const char * jackctl_parameter_get_enum_constraint_description(jackctl_parameter *parameter_ptr, uint32_t index)
SERVER_EXPORT const JSList * jackctl_server_get_internals_list(jackctl_server *server_ptr)
SERVER_EXPORT const char * jackctl_parameter_get_short_description(jackctl_parameter *parameter_ptr)
SERVER_EXPORT bool jackctl_parameter_constraint_is_fake_value(jackctl_parameter_t *parameter_ptr)
SERVER_EXPORT jackctl_param_type_t jackctl_parameter_get_type(jackctl_parameter *parameter_ptr)
slave driver
Definition: control.h:53
SERVER_EXPORT const JSList * jackctl_server_get_drivers_list(jackctl_server *server_ptr)
SERVER_EXPORT bool jackctl_server_start(jackctl_server *server_ptr)
SERVER_EXPORT bool jackctl_parameter_constraint_is_strict(jackctl_parameter_t *parameter_ptr)
SERVER_EXPORT uint32_t jackctl_parameter_get_enum_constraints_count(jackctl_parameter *parameter_ptr)
SERVER_EXPORT bool jackctl_parameter_set_value(jackctl_parameter *parameter_ptr, const union jackctl_parameter_value *value_ptr)
SERVER_EXPORT bool jackctl_server_add_slave(jackctl_server *server_ptr, jackctl_driver *driver_ptr)
#define JACK_PARAM_STRING_MAX
Max length of string parameter value, excluding terminating null char.
Definition: control.h:60
jackctl_param_type_t
Definition: control.h:40
SERVER_EXPORT const char * jackctl_driver_get_name(jackctl_driver *driver_ptr)
SERVER_EXPORT union jackctl_parameter_value jackctl_parameter_get_enum_constraint_value(jackctl_parameter *parameter_ptr, uint32_t index)
SERVER_EXPORT bool jackctl_server_unload_internal(jackctl_server *server_ptr, jackctl_internal *internal)
SERVER_EXPORT char jackctl_parameter_get_id(jackctl_parameter_t *parameter_ptr)
SERVER_EXPORT const JSList * jackctl_internal_get_parameters(jackctl_internal *internal_ptr)
SERVER_EXPORT void jackctl_server_destroy(jackctl_server *server_ptr)
SERVER_EXPORT jackctl_driver_type_t jackctl_driver_get_type(jackctl_driver *driver_ptr)
char c
member used for JackParamChar
SERVER_EXPORT const JSList * jackctl_server_get_parameters(jackctl_server *server_ptr)
SERVER_EXPORT bool jackctl_parameter_has_enum_constraint(jackctl_parameter *parameter_ptr)
SERVER_EXPORT void jackctl_wait_signals(jackctl_sigmask_t *sigmask)
SERVER_EXPORT bool jackctl_server_load_internal(jackctl_server *server_ptr, jackctl_internal *internal)