Jack2
1.9.8
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
common
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,
41
JackParamUInt
,
42
JackParamChar
,
43
JackParamString
,
44
JackParamBool
,
45
}
jackctl_param_type_t
;
46
48
typedef
enum
49
{
50
JackMaster
= 1,
51
JackSlave
,
52
}
jackctl_driver_type_t
;
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 */
62
union
jackctl_parameter_value
63
{
64
uint32_t
ui
;
65
int32_t
i
;
66
char
c
;
67
char
str
[
JACK_PARAM_STRING_MAX
+ 1];
68
bool
b
;
69
};
70
72
typedef
struct
jackctl_server
jackctl_server_t
;
73
75
typedef
struct
jackctl_driver
jackctl_driver_t
;
76
78
typedef
struct
jackctl_internal
jackctl_internal_t
;
79
81
typedef
struct
jackctl_parameter
jackctl_parameter_t
;
82
83
#ifdef __cplusplus
84
extern
"C"
{
85
#endif
86
#if 0
87
}
/* Adjust editor indent */
88
#endif
89
90
SERVER_EXPORT sigset_t
91
jackctl_setup_signals
(
92
unsigned
int
flags);
93
94
SERVER_EXPORT
void
95
jackctl_wait_signals
(
96
sigset_t signals);
97
98
SERVER_EXPORT
jackctl_server_t
*
99
jackctl_server_create
(
100
bool
(* on_device_acquire)(
const
char
* device_name),
101
void
(* on_device_release)(
const
char
* device_name));
102
103
SERVER_EXPORT
void
104
jackctl_server_destroy
(
105
jackctl_server_t
* server);
106
107
SERVER_EXPORT
const
JSList
*
108
jackctl_server_get_drivers_list
(
109
jackctl_server_t
* server);
110
111
SERVER_EXPORT
bool
112
jackctl_server_open
(
113
jackctl_server_t
* server,
114
jackctl_driver_t
* driver);
115
116
SERVER_EXPORT
bool
117
jackctl_server_start
(
118
jackctl_server_t
* server);
119
120
SERVER_EXPORT
bool
121
jackctl_server_stop
(
122
jackctl_server_t
* server);
123
124
SERVER_EXPORT
bool
125
jackctl_server_close
(
126
jackctl_server_t
* server);
127
128
SERVER_EXPORT
const
JSList
*
129
jackctl_server_get_parameters
(
130
jackctl_server_t
* server);
131
132
SERVER_EXPORT
const
char
*
133
jackctl_driver_get_name
(
134
jackctl_driver_t
* driver);
135
136
SERVER_EXPORT jackctl_driver_type_t
137
jackctl_driver_get_type
(
138
jackctl_driver_t
* driver);
139
140
SERVER_EXPORT
const
JSList
*
141
jackctl_driver_get_parameters
(
142
jackctl_driver_t
* driver);
143
144
SERVER_EXPORT
const
char
*
145
jackctl_parameter_get_name
(
146
jackctl_parameter_t
* parameter);
147
148
SERVER_EXPORT
const
char
*
149
jackctl_parameter_get_short_description
(
150
jackctl_parameter_t
* parameter);
151
152
SERVER_EXPORT
const
char
*
153
jackctl_parameter_get_long_description
(
154
jackctl_parameter_t
* parameter);
155
156
SERVER_EXPORT jackctl_param_type_t
157
jackctl_parameter_get_type
(
158
jackctl_parameter_t
* parameter);
159
160
SERVER_EXPORT
char
161
jackctl_parameter_get_id
(
162
jackctl_parameter_t
* parameter);
163
164
SERVER_EXPORT
bool
165
jackctl_parameter_is_set
(
166
jackctl_parameter_t
* parameter);
167
168
SERVER_EXPORT
bool
169
jackctl_parameter_reset
(
170
jackctl_parameter_t
* parameter);
171
172
SERVER_EXPORT
union
jackctl_parameter_value
173
jackctl_parameter_get_value
(
174
jackctl_parameter_t
* parameter);
175
176
SERVER_EXPORT
bool
177
jackctl_parameter_set_value
(
178
jackctl_parameter_t
* parameter,
179
const
union
jackctl_parameter_value
* value_ptr);
180
181
SERVER_EXPORT
union
jackctl_parameter_value
182
jackctl_parameter_get_default_value
(
183
jackctl_parameter_t
* parameter);
184
185
SERVER_EXPORT
union
jackctl_parameter_value
186
jackctl_parameter_get_default_value
(
187
jackctl_parameter
*parameter_ptr);
188
189
SERVER_EXPORT
bool
190
jackctl_parameter_has_range_constraint
(
191
jackctl_parameter_t
* parameter_ptr);
192
193
SERVER_EXPORT
bool
194
jackctl_parameter_has_enum_constraint
(
195
jackctl_parameter_t
* parameter_ptr);
196
197
SERVER_EXPORT uint32_t
198
jackctl_parameter_get_enum_constraints_count
(
199
jackctl_parameter_t
* parameter_ptr);
200
201
SERVER_EXPORT
union
jackctl_parameter_value
202
jackctl_parameter_get_enum_constraint_value
(
203
jackctl_parameter_t
* parameter_ptr,
204
uint32_t index);
205
206
SERVER_EXPORT
const
char
*
207
jackctl_parameter_get_enum_constraint_description
(
208
jackctl_parameter_t
* parameter_ptr,
209
uint32_t index);
210
211
SERVER_EXPORT
void
212
jackctl_parameter_get_range_constraint
(
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
218
jackctl_parameter_constraint_is_strict
(
219
jackctl_parameter_t
* parameter_ptr);
220
221
SERVER_EXPORT
bool
222
jackctl_parameter_constraint_is_fake_value
(
223
jackctl_parameter_t
* parameter_ptr);
224
225
SERVER_EXPORT
const
JSList
*
226
jackctl_server_get_internals_list
(
227
jackctl_server
*server_ptr);
228
229
SERVER_EXPORT
const
char
*
230
jackctl_internal_get_name
(
231
jackctl_internal
*internal_ptr);
232
233
SERVER_EXPORT
const
JSList
*
234
jackctl_internal_get_parameters
(
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
252
jackctl_server_switch_master
(
jackctl_server_t
* server,
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
Generated by
1.8.2