Jack2  1.9.8
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 
28 #ifdef WIN32
29 #ifdef __MINGW32__
30 #include <sys/types.h>
31 typedef _sigset_t sigset_t;
32 #else
33 typedef HANDLE sigset_t;
34 #endif
35 #endif
36 
38 typedef enum
39 {
40  JackParamInt = 1,
46 
48 typedef enum
49 {
50  JackMaster = 1,
51  JackSlave,
53 
55 #define JACK_PARAM_MAX (JackParamBool + 1)
56 
58 #define JACK_PARAM_STRING_MAX 127
59 
61 /* intentionally similar to jack_driver_param_value_t */
63 {
64  uint32_t ui;
65  int32_t i;
66  char c;
68  bool b;
69 };
70 
72 typedef struct jackctl_server jackctl_server_t;
73 
75 typedef struct jackctl_driver jackctl_driver_t;
76 
79 
82 
83 #ifdef __cplusplus
84 extern "C" {
85 #endif
86 #if 0
87 } /* Adjust editor indent */
88 #endif
89 
90 SERVER_EXPORT sigset_t
92  unsigned int flags);
93 
94 SERVER_EXPORT void
96  sigset_t signals);
97 
98 SERVER_EXPORT jackctl_server_t *
100  bool (* on_device_acquire)(const char * device_name),
101  void (* on_device_release)(const char * device_name));
102 
103 SERVER_EXPORT void
105  jackctl_server_t * server);
106 
107 SERVER_EXPORT const JSList *
109  jackctl_server_t * server);
110 
111 SERVER_EXPORT bool
113  jackctl_server_t * server,
114  jackctl_driver_t * driver);
115 
116 SERVER_EXPORT bool
118  jackctl_server_t * server);
119 
120 SERVER_EXPORT bool
122  jackctl_server_t * server);
123 
124 SERVER_EXPORT bool
126  jackctl_server_t * server);
127 
128 SERVER_EXPORT const JSList *
130  jackctl_server_t * server);
131 
132 SERVER_EXPORT const char *
134  jackctl_driver_t * driver);
135 
136 SERVER_EXPORT jackctl_driver_type_t
138  jackctl_driver_t * driver);
139 
140 SERVER_EXPORT const JSList *
142  jackctl_driver_t * driver);
143 
144 SERVER_EXPORT const char *
146  jackctl_parameter_t * parameter);
147 
148 SERVER_EXPORT const char *
150  jackctl_parameter_t * parameter);
151 
152 SERVER_EXPORT const char *
154  jackctl_parameter_t * parameter);
155 
156 SERVER_EXPORT jackctl_param_type_t
158  jackctl_parameter_t * parameter);
159 
160 SERVER_EXPORT char
162  jackctl_parameter_t * parameter);
163 
164 SERVER_EXPORT bool
166  jackctl_parameter_t * parameter);
167 
168 SERVER_EXPORT bool
170  jackctl_parameter_t * parameter);
171 
172 SERVER_EXPORT union jackctl_parameter_value
174  jackctl_parameter_t * parameter);
175 
176 SERVER_EXPORT bool
178  jackctl_parameter_t * parameter,
179  const union jackctl_parameter_value * value_ptr);
180 
181 SERVER_EXPORT union jackctl_parameter_value
183  jackctl_parameter_t * parameter);
184 
185 SERVER_EXPORT union jackctl_parameter_value
187  jackctl_parameter *parameter_ptr);
188 
189 SERVER_EXPORT bool
191  jackctl_parameter_t * parameter_ptr);
192 
193 SERVER_EXPORT bool
195  jackctl_parameter_t * parameter_ptr);
196 
197 SERVER_EXPORT uint32_t
199  jackctl_parameter_t * parameter_ptr);
200 
201 SERVER_EXPORT union jackctl_parameter_value
203  jackctl_parameter_t * parameter_ptr,
204  uint32_t index);
205 
206 SERVER_EXPORT const char *
208  jackctl_parameter_t * parameter_ptr,
209  uint32_t index);
210 
211 SERVER_EXPORT void
213  jackctl_parameter_t * parameter_ptr,
214  union jackctl_parameter_value * min_ptr,
215  union jackctl_parameter_value * max_ptr);
216 
217 SERVER_EXPORT bool
219  jackctl_parameter_t * parameter_ptr);
220 
221 SERVER_EXPORT bool
223  jackctl_parameter_t * parameter_ptr);
224 
225 SERVER_EXPORT const JSList *
227  jackctl_server *server_ptr);
228 
229 SERVER_EXPORT const char *
231  jackctl_internal *internal_ptr);
232 
233 SERVER_EXPORT const JSList *
235  jackctl_internal *internal_ptr);
236 
237 SERVER_EXPORT bool jackctl_server_load_internal(
238  jackctl_server * server,
239  jackctl_internal * internal);
240 
241 SERVER_EXPORT bool jackctl_server_unload_internal(
242  jackctl_server * server,
243  jackctl_internal * internal);
244 
245 SERVER_EXPORT bool jackctl_server_add_slave(jackctl_server_t * server,
246  jackctl_driver_t * driver);
247 
248 SERVER_EXPORT bool jackctl_server_remove_slave(jackctl_server_t * server,
249  jackctl_driver_t * driver);
250 
251 SERVER_EXPORT bool
253  jackctl_driver_t * driver);
254 
255 #if 0
256 { /* Adjust editor indent */
257 #endif
258 #ifdef __cplusplus
259 } /* extern "C" */
260 #endif
261 
262 #endif
263