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