ALSA project - the C library reference
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
control.h
Go to the documentation of this file.
1
11
/*
12
* This library is free software; you can redistribute it and/or modify
13
* it under the terms of the GNU Lesser General Public License as
14
* published by the Free Software Foundation; either version 2.1 of
15
* the License, or (at your option) any later version.
16
*
17
* This program is distributed in the hope that it will be useful,
18
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
* GNU Lesser General Public License for more details.
21
*
22
* You should have received a copy of the GNU Lesser General Public
23
* License along with this library; if not, write to the Free Software
24
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
*
26
*/
27
28
#ifndef __ALSA_CONTROL_H
29
#define __ALSA_CONTROL_H
30
31
#ifdef __cplusplus
32
extern
"C"
{
33
#endif
34
43
#define SND_CONTROL_DLSYM_VERSION _dlsym_control_001
44
46
typedef
struct
snd_aes_iec958 {
47
unsigned
char
status[24];
48
unsigned
char
subcode[147];
49
unsigned
char
pad
;
50
unsigned
char
dig_subframe[4];
51
}
snd_aes_iec958_t
;
52
54
typedef
struct
_snd_ctl_card_info
snd_ctl_card_info_t
;
55
57
typedef
struct
_snd_ctl_elem_id
snd_ctl_elem_id_t
;
58
60
typedef
struct
_snd_ctl_elem_list
snd_ctl_elem_list_t
;
61
63
typedef
struct
_snd_ctl_elem_info
snd_ctl_elem_info_t
;
64
66
typedef
struct
_snd_ctl_elem_value
snd_ctl_elem_value_t
;
67
69
typedef
struct
_snd_ctl_event
snd_ctl_event_t
;
70
72
typedef
enum
_snd_ctl_elem_type {
74
SND_CTL_ELEM_TYPE_NONE
= 0,
76
SND_CTL_ELEM_TYPE_BOOLEAN
,
78
SND_CTL_ELEM_TYPE_INTEGER
,
80
SND_CTL_ELEM_TYPE_ENUMERATED
,
82
SND_CTL_ELEM_TYPE_BYTES
,
84
SND_CTL_ELEM_TYPE_IEC958
,
86
SND_CTL_ELEM_TYPE_INTEGER64
,
87
SND_CTL_ELEM_TYPE_LAST =
SND_CTL_ELEM_TYPE_INTEGER64
88
}
snd_ctl_elem_type_t
;
89
91
typedef
enum
_snd_ctl_elem_iface {
93
SND_CTL_ELEM_IFACE_CARD
= 0,
95
SND_CTL_ELEM_IFACE_HWDEP
,
97
SND_CTL_ELEM_IFACE_MIXER
,
99
SND_CTL_ELEM_IFACE_PCM
,
101
SND_CTL_ELEM_IFACE_RAWMIDI
,
103
SND_CTL_ELEM_IFACE_TIMER
,
105
SND_CTL_ELEM_IFACE_SEQUENCER
,
106
SND_CTL_ELEM_IFACE_LAST =
SND_CTL_ELEM_IFACE_SEQUENCER
107
}
snd_ctl_elem_iface_t
;
108
110
typedef
enum
_snd_ctl_event_type {
112
SND_CTL_EVENT_ELEM
= 0,
113
SND_CTL_EVENT_LAST =
SND_CTL_EVENT_ELEM
114
}
snd_ctl_event_type_t
;
115
118
#define SND_CTL_EVENT_MASK_REMOVE (~0U)
119
120
#define SND_CTL_EVENT_MASK_VALUE (1<<0)
121
122
#define SND_CTL_EVENT_MASK_INFO (1<<1)
123
124
#define SND_CTL_EVENT_MASK_ADD (1<<2)
125
126
#define SND_CTL_EVENT_MASK_TLV (1<<3)
127
129
#define SND_CTL_NAME_NONE ""
130
131
#define SND_CTL_NAME_PLAYBACK "Playback "
132
133
#define SND_CTL_NAME_CAPTURE "Capture "
134
136
#define SND_CTL_NAME_IEC958_NONE ""
137
138
#define SND_CTL_NAME_IEC958_SWITCH "Switch"
139
140
#define SND_CTL_NAME_IEC958_VOLUME "Volume"
141
142
#define SND_CTL_NAME_IEC958_DEFAULT "Default"
143
144
#define SND_CTL_NAME_IEC958_MASK "Mask"
145
146
#define SND_CTL_NAME_IEC958_CON_MASK "Con Mask"
147
148
#define SND_CTL_NAME_IEC958_PRO_MASK "Pro Mask"
149
150
#define SND_CTL_NAME_IEC958_PCM_STREAM "PCM Stream"
151
152
#define SND_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SND_CTL_NAME_##direction SND_CTL_NAME_IEC958_##what
153
155
#define SND_CTL_POWER_MASK 0xff00
156
157
#define SND_CTL_POWER_D0 0x0000
158
159
#define SND_CTL_POWER_D1 0x0100
160
161
#define SND_CTL_POWER_D2 0x0200
162
163
#define SND_CTL_POWER_D3 0x0300
164
165
#define SND_CTL_POWER_D3hot (SND_CTL_POWER_D3|0x0000)
166
167
#define SND_CTL_POWER_D3cold (SND_CTL_POWER_D3|0x0001)
168
170
#define SND_CTL_TLVT_CONTAINER 0x0000
171
172
#define SND_CTL_TLVT_DB_SCALE 0x0001
173
174
#define SND_CTL_TLVT_DB_LINEAR 0x0002
175
176
#define SND_CTL_TLVT_DB_RANGE 0x0003
177
178
#define SND_CTL_TLVT_DB_MINMAX 0x0004
179
180
#define SND_CTL_TLVT_DB_MINMAX_MUTE 0x0005
181
183
#define SND_CTL_TLV_DB_GAIN_MUTE -9999999
184
186
#define SND_CTL_TLVT_CHMAP_FIXED 0x00101
187
188
#define SND_CTL_TLVT_CHMAP_VAR 0x00102
189
190
#define SND_CTL_TLVT_CHMAP_PAIRED 0x00103
191
193
typedef
enum
_snd_ctl_type {
195
SND_CTL_TYPE_HW
,
197
SND_CTL_TYPE_SHM
,
199
SND_CTL_TYPE_INET
,
201
SND_CTL_TYPE_EXT
202
}
snd_ctl_type_t
;
203
205
#define SND_CTL_NONBLOCK 0x0001
206
208
#define SND_CTL_ASYNC 0x0002
209
211
#define SND_CTL_READONLY 0x0004
212
214
typedef
struct
_snd_ctl
snd_ctl_t
;
215
217
#define SND_SCTL_NOFREE 0x0001
218
220
typedef
struct
_snd_sctl
snd_sctl_t
;
221
222
int
snd_card_load
(
int
card);
223
int
snd_card_next
(
int
*card);
224
int
snd_card_get_index
(
const
char
*name);
225
int
snd_card_get_name
(
int
card,
char
**name);
226
int
snd_card_get_longname
(
int
card,
char
**name);
227
228
int
snd_device_name_hint
(
int
card,
const
char
*iface,
void
***hints);
229
int
snd_device_name_free_hint
(
void
**hints);
230
char
*
snd_device_name_get_hint
(
const
void
*hint,
const
char
*
id
);
231
232
int
snd_ctl_open
(
snd_ctl_t
**ctl,
const
char
*name,
int
mode);
233
int
snd_ctl_open_lconf
(
snd_ctl_t
**ctl,
const
char
*name,
int
mode,
snd_config_t
*lconf);
234
int
snd_ctl_open_fallback
(
snd_ctl_t
**ctl,
snd_config_t
*root,
const
char
*name,
const
char
*orig_name,
int
mode);
235
int
snd_ctl_close
(
snd_ctl_t
*ctl);
236
int
snd_ctl_nonblock
(
snd_ctl_t
*ctl,
int
nonblock);
237
int
snd_async_add_ctl_handler
(
snd_async_handler_t
**handler,
snd_ctl_t
*ctl,
238
snd_async_callback_t
callback,
void
*private_data);
239
snd_ctl_t
*
snd_async_handler_get_ctl
(
snd_async_handler_t
*handler);
240
int
snd_ctl_poll_descriptors_count
(
snd_ctl_t
*ctl);
241
int
snd_ctl_poll_descriptors
(
snd_ctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
space);
242
int
snd_ctl_poll_descriptors_revents
(
snd_ctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
nfds,
unsigned
short
*revents);
243
int
snd_ctl_subscribe_events
(
snd_ctl_t
*ctl,
int
subscribe);
244
int
snd_ctl_card_info
(
snd_ctl_t
*ctl,
snd_ctl_card_info_t
*info);
245
int
snd_ctl_elem_list
(
snd_ctl_t
*ctl,
snd_ctl_elem_list_t
*list);
246
int
snd_ctl_elem_info
(
snd_ctl_t
*ctl,
snd_ctl_elem_info_t
*info);
247
int
snd_ctl_elem_read
(
snd_ctl_t
*ctl,
snd_ctl_elem_value_t
*value);
248
int
snd_ctl_elem_write
(
snd_ctl_t
*ctl,
snd_ctl_elem_value_t
*value);
249
int
snd_ctl_elem_lock
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
250
int
snd_ctl_elem_unlock
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
251
int
snd_ctl_elem_tlv_read
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
252
unsigned
int
*tlv,
unsigned
int
tlv_size);
253
int
snd_ctl_elem_tlv_write
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
254
const
unsigned
int
*tlv);
255
int
snd_ctl_elem_tlv_command
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
256
const
unsigned
int
*tlv);
257
#ifdef __ALSA_HWDEP_H
258
int
snd_ctl_hwdep_next_device
(
snd_ctl_t
*ctl,
int
* device);
259
int
snd_ctl_hwdep_info
(
snd_ctl_t
*ctl,
snd_hwdep_info_t
* info);
260
#endif
261
#ifdef __ALSA_PCM_H
262
int
snd_ctl_pcm_next_device
(
snd_ctl_t
*ctl,
int
*device);
263
int
snd_ctl_pcm_info
(
snd_ctl_t
*ctl,
snd_pcm_info_t
* info);
264
int
snd_ctl_pcm_prefer_subdevice
(
snd_ctl_t
*ctl,
int
subdev);
265
#endif
266
#ifdef __ALSA_RAWMIDI_H
267
int
snd_ctl_rawmidi_next_device
(
snd_ctl_t
*ctl,
int
* device);
268
int
snd_ctl_rawmidi_info
(
snd_ctl_t
*ctl,
snd_rawmidi_info_t
* info);
269
int
snd_ctl_rawmidi_prefer_subdevice
(
snd_ctl_t
*ctl,
int
subdev);
270
#endif
271
int
snd_ctl_set_power_state
(
snd_ctl_t
*ctl,
unsigned
int
state);
272
int
snd_ctl_get_power_state
(
snd_ctl_t
*ctl,
unsigned
int
*state);
273
274
int
snd_ctl_read
(
snd_ctl_t
*ctl,
snd_ctl_event_t
*event);
275
int
snd_ctl_wait
(
snd_ctl_t
*ctl,
int
timeout);
276
const
char
*
snd_ctl_name
(
snd_ctl_t
*ctl);
277
snd_ctl_type_t
snd_ctl_type
(
snd_ctl_t
*ctl);
278
279
const
char
*
snd_ctl_elem_type_name
(
snd_ctl_elem_type_t
type);
280
const
char
*
snd_ctl_elem_iface_name
(
snd_ctl_elem_iface_t
iface);
281
const
char
*
snd_ctl_event_type_name
(
snd_ctl_event_type_t
type);
282
283
unsigned
int
snd_ctl_event_elem_get_mask
(
const
snd_ctl_event_t
*obj);
284
unsigned
int
snd_ctl_event_elem_get_numid
(
const
snd_ctl_event_t
*obj);
285
void
snd_ctl_event_elem_get_id
(
const
snd_ctl_event_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
286
snd_ctl_elem_iface_t
snd_ctl_event_elem_get_interface
(
const
snd_ctl_event_t
*obj);
287
unsigned
int
snd_ctl_event_elem_get_device
(
const
snd_ctl_event_t
*obj);
288
unsigned
int
snd_ctl_event_elem_get_subdevice
(
const
snd_ctl_event_t
*obj);
289
const
char
*
snd_ctl_event_elem_get_name
(
const
snd_ctl_event_t
*obj);
290
unsigned
int
snd_ctl_event_elem_get_index
(
const
snd_ctl_event_t
*obj);
291
292
int
snd_ctl_elem_list_alloc_space
(
snd_ctl_elem_list_t
*obj,
unsigned
int
entries);
293
void
snd_ctl_elem_list_free_space
(
snd_ctl_elem_list_t
*obj);
294
295
char
*
snd_ctl_ascii_elem_id_get
(
snd_ctl_elem_id_t
*
id
);
296
int
snd_ctl_ascii_elem_id_parse
(
snd_ctl_elem_id_t
*dst,
const
char
*str);
297
int
snd_ctl_ascii_value_parse
(
snd_ctl_t
*handle,
298
snd_ctl_elem_value_t
*dst,
299
snd_ctl_elem_info_t
*info,
300
const
char
*value);
301
302
size_t
snd_ctl_elem_id_sizeof
(
void
);
307
#define snd_ctl_elem_id_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_id)
308
int
snd_ctl_elem_id_malloc
(
snd_ctl_elem_id_t
**
ptr
);
309
void
snd_ctl_elem_id_free
(
snd_ctl_elem_id_t
*obj);
310
void
snd_ctl_elem_id_clear
(
snd_ctl_elem_id_t
*obj);
311
void
snd_ctl_elem_id_copy
(
snd_ctl_elem_id_t
*dst,
const
snd_ctl_elem_id_t
*src);
312
unsigned
int
snd_ctl_elem_id_get_numid
(
const
snd_ctl_elem_id_t
*obj);
313
snd_ctl_elem_iface_t
snd_ctl_elem_id_get_interface
(
const
snd_ctl_elem_id_t
*obj);
314
unsigned
int
snd_ctl_elem_id_get_device
(
const
snd_ctl_elem_id_t
*obj);
315
unsigned
int
snd_ctl_elem_id_get_subdevice
(
const
snd_ctl_elem_id_t
*obj);
316
const
char
*
snd_ctl_elem_id_get_name
(
const
snd_ctl_elem_id_t
*obj);
317
unsigned
int
snd_ctl_elem_id_get_index
(
const
snd_ctl_elem_id_t
*obj);
318
void
snd_ctl_elem_id_set_numid
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
319
void
snd_ctl_elem_id_set_interface
(
snd_ctl_elem_id_t
*obj,
snd_ctl_elem_iface_t
val);
320
void
snd_ctl_elem_id_set_device
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
321
void
snd_ctl_elem_id_set_subdevice
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
322
void
snd_ctl_elem_id_set_name
(
snd_ctl_elem_id_t
*obj,
const
char
*val);
323
void
snd_ctl_elem_id_set_index
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
324
325
size_t
snd_ctl_card_info_sizeof
(
void
);
330
#define snd_ctl_card_info_alloca(ptr) __snd_alloca(ptr, snd_ctl_card_info)
331
int
snd_ctl_card_info_malloc
(
snd_ctl_card_info_t
**
ptr
);
332
void
snd_ctl_card_info_free
(
snd_ctl_card_info_t
*obj);
333
void
snd_ctl_card_info_clear
(
snd_ctl_card_info_t
*obj);
334
void
snd_ctl_card_info_copy
(
snd_ctl_card_info_t
*dst,
const
snd_ctl_card_info_t
*src);
335
int
snd_ctl_card_info_get_card
(
const
snd_ctl_card_info_t
*obj);
336
const
char
*
snd_ctl_card_info_get_id
(
const
snd_ctl_card_info_t
*obj);
337
const
char
*
snd_ctl_card_info_get_driver
(
const
snd_ctl_card_info_t
*obj);
338
const
char
*
snd_ctl_card_info_get_name
(
const
snd_ctl_card_info_t
*obj);
339
const
char
*
snd_ctl_card_info_get_longname
(
const
snd_ctl_card_info_t
*obj);
340
const
char
*
snd_ctl_card_info_get_mixername
(
const
snd_ctl_card_info_t
*obj);
341
const
char
*
snd_ctl_card_info_get_components
(
const
snd_ctl_card_info_t
*obj);
342
343
size_t
snd_ctl_event_sizeof
(
void
);
348
#define snd_ctl_event_alloca(ptr) __snd_alloca(ptr, snd_ctl_event)
349
int
snd_ctl_event_malloc
(
snd_ctl_event_t
**
ptr
);
350
void
snd_ctl_event_free
(
snd_ctl_event_t
*obj);
351
void
snd_ctl_event_clear
(
snd_ctl_event_t
*obj);
352
void
snd_ctl_event_copy
(
snd_ctl_event_t
*dst,
const
snd_ctl_event_t
*src);
353
snd_ctl_event_type_t
snd_ctl_event_get_type
(
const
snd_ctl_event_t
*obj);
354
355
size_t
snd_ctl_elem_list_sizeof
(
void
);
360
#define snd_ctl_elem_list_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_list)
361
int
snd_ctl_elem_list_malloc
(
snd_ctl_elem_list_t
**
ptr
);
362
void
snd_ctl_elem_list_free
(
snd_ctl_elem_list_t
*obj);
363
void
snd_ctl_elem_list_clear
(
snd_ctl_elem_list_t
*obj);
364
void
snd_ctl_elem_list_copy
(
snd_ctl_elem_list_t
*dst,
const
snd_ctl_elem_list_t
*src);
365
void
snd_ctl_elem_list_set_offset
(
snd_ctl_elem_list_t
*obj,
unsigned
int
val);
366
unsigned
int
snd_ctl_elem_list_get_used
(
const
snd_ctl_elem_list_t
*obj);
367
unsigned
int
snd_ctl_elem_list_get_count
(
const
snd_ctl_elem_list_t
*obj);
368
void
snd_ctl_elem_list_get_id
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx,
snd_ctl_elem_id_t
*
ptr
);
369
unsigned
int
snd_ctl_elem_list_get_numid
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
370
snd_ctl_elem_iface_t
snd_ctl_elem_list_get_interface
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
371
unsigned
int
snd_ctl_elem_list_get_device
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
372
unsigned
int
snd_ctl_elem_list_get_subdevice
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
373
const
char
*
snd_ctl_elem_list_get_name
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
374
unsigned
int
snd_ctl_elem_list_get_index
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
375
376
size_t
snd_ctl_elem_info_sizeof
(
void
);
381
#define snd_ctl_elem_info_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_info)
382
int
snd_ctl_elem_info_malloc
(
snd_ctl_elem_info_t
**
ptr
);
383
void
snd_ctl_elem_info_free
(
snd_ctl_elem_info_t
*obj);
384
void
snd_ctl_elem_info_clear
(
snd_ctl_elem_info_t
*obj);
385
void
snd_ctl_elem_info_copy
(
snd_ctl_elem_info_t
*dst,
const
snd_ctl_elem_info_t
*src);
386
snd_ctl_elem_type_t
snd_ctl_elem_info_get_type
(
const
snd_ctl_elem_info_t
*obj);
387
int
snd_ctl_elem_info_is_readable
(
const
snd_ctl_elem_info_t
*obj);
388
int
snd_ctl_elem_info_is_writable
(
const
snd_ctl_elem_info_t
*obj);
389
int
snd_ctl_elem_info_is_volatile
(
const
snd_ctl_elem_info_t
*obj);
390
int
snd_ctl_elem_info_is_inactive
(
const
snd_ctl_elem_info_t
*obj);
391
int
snd_ctl_elem_info_is_locked
(
const
snd_ctl_elem_info_t
*obj);
392
int
snd_ctl_elem_info_is_tlv_readable
(
const
snd_ctl_elem_info_t
*obj);
393
int
snd_ctl_elem_info_is_tlv_writable
(
const
snd_ctl_elem_info_t
*obj);
394
int
snd_ctl_elem_info_is_tlv_commandable
(
const
snd_ctl_elem_info_t
*obj);
395
int
snd_ctl_elem_info_is_owner
(
const
snd_ctl_elem_info_t
*obj);
396
int
snd_ctl_elem_info_is_user
(
const
snd_ctl_elem_info_t
*obj);
397
pid_t
snd_ctl_elem_info_get_owner
(
const
snd_ctl_elem_info_t
*obj);
398
unsigned
int
snd_ctl_elem_info_get_count
(
const
snd_ctl_elem_info_t
*obj);
399
long
snd_ctl_elem_info_get_min
(
const
snd_ctl_elem_info_t
*obj);
400
long
snd_ctl_elem_info_get_max
(
const
snd_ctl_elem_info_t
*obj);
401
long
snd_ctl_elem_info_get_step
(
const
snd_ctl_elem_info_t
*obj);
402
long
long
snd_ctl_elem_info_get_min64
(
const
snd_ctl_elem_info_t
*obj);
403
long
long
snd_ctl_elem_info_get_max64
(
const
snd_ctl_elem_info_t
*obj);
404
long
long
snd_ctl_elem_info_get_step64
(
const
snd_ctl_elem_info_t
*obj);
405
unsigned
int
snd_ctl_elem_info_get_items
(
const
snd_ctl_elem_info_t
*obj);
406
void
snd_ctl_elem_info_set_item
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
407
const
char
*
snd_ctl_elem_info_get_item_name
(
const
snd_ctl_elem_info_t
*obj);
408
int
snd_ctl_elem_info_get_dimensions
(
const
snd_ctl_elem_info_t
*obj);
409
int
snd_ctl_elem_info_get_dimension
(
const
snd_ctl_elem_info_t
*obj,
unsigned
int
idx);
410
void
snd_ctl_elem_info_get_id
(
const
snd_ctl_elem_info_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
411
unsigned
int
snd_ctl_elem_info_get_numid
(
const
snd_ctl_elem_info_t
*obj);
412
snd_ctl_elem_iface_t
snd_ctl_elem_info_get_interface
(
const
snd_ctl_elem_info_t
*obj);
413
unsigned
int
snd_ctl_elem_info_get_device
(
const
snd_ctl_elem_info_t
*obj);
414
unsigned
int
snd_ctl_elem_info_get_subdevice
(
const
snd_ctl_elem_info_t
*obj);
415
const
char
*
snd_ctl_elem_info_get_name
(
const
snd_ctl_elem_info_t
*obj);
416
unsigned
int
snd_ctl_elem_info_get_index
(
const
snd_ctl_elem_info_t
*obj);
417
void
snd_ctl_elem_info_set_id
(
snd_ctl_elem_info_t
*obj,
const
snd_ctl_elem_id_t
*
ptr
);
418
void
snd_ctl_elem_info_set_numid
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
419
void
snd_ctl_elem_info_set_interface
(
snd_ctl_elem_info_t
*obj,
snd_ctl_elem_iface_t
val);
420
void
snd_ctl_elem_info_set_device
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
421
void
snd_ctl_elem_info_set_subdevice
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
422
void
snd_ctl_elem_info_set_name
(
snd_ctl_elem_info_t
*obj,
const
char
*val);
423
void
snd_ctl_elem_info_set_index
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
424
425
int
snd_ctl_elem_add_integer
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
unsigned
int
count,
long
imin,
long
imax,
long
istep);
426
int
snd_ctl_elem_add_integer64
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
unsigned
int
count,
long
long
imin,
long
long
imax,
long
long
istep);
427
int
snd_ctl_elem_add_boolean
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
unsigned
int
count);
428
int
snd_ctl_elem_add_enumerated
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
unsigned
int
count,
unsigned
int
items,
const
char
*
const
names[]);
429
int
snd_ctl_elem_add_iec958
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
);
430
int
snd_ctl_elem_remove
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
431
432
size_t
snd_ctl_elem_value_sizeof
(
void
);
437
#define snd_ctl_elem_value_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_value)
438
int
snd_ctl_elem_value_malloc
(
snd_ctl_elem_value_t
**
ptr
);
439
void
snd_ctl_elem_value_free
(
snd_ctl_elem_value_t
*obj);
440
void
snd_ctl_elem_value_clear
(
snd_ctl_elem_value_t
*obj);
441
void
snd_ctl_elem_value_copy
(
snd_ctl_elem_value_t
*dst,
const
snd_ctl_elem_value_t
*src);
442
int
snd_ctl_elem_value_compare
(
snd_ctl_elem_value_t
*left,
const
snd_ctl_elem_value_t
*right);
443
void
snd_ctl_elem_value_get_id
(
const
snd_ctl_elem_value_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
444
unsigned
int
snd_ctl_elem_value_get_numid
(
const
snd_ctl_elem_value_t
*obj);
445
snd_ctl_elem_iface_t
snd_ctl_elem_value_get_interface
(
const
snd_ctl_elem_value_t
*obj);
446
unsigned
int
snd_ctl_elem_value_get_device
(
const
snd_ctl_elem_value_t
*obj);
447
unsigned
int
snd_ctl_elem_value_get_subdevice
(
const
snd_ctl_elem_value_t
*obj);
448
const
char
*
snd_ctl_elem_value_get_name
(
const
snd_ctl_elem_value_t
*obj);
449
unsigned
int
snd_ctl_elem_value_get_index
(
const
snd_ctl_elem_value_t
*obj);
450
void
snd_ctl_elem_value_set_id
(
snd_ctl_elem_value_t
*obj,
const
snd_ctl_elem_id_t
*
ptr
);
451
void
snd_ctl_elem_value_set_numid
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
452
void
snd_ctl_elem_value_set_interface
(
snd_ctl_elem_value_t
*obj,
snd_ctl_elem_iface_t
val);
453
void
snd_ctl_elem_value_set_device
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
454
void
snd_ctl_elem_value_set_subdevice
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
455
void
snd_ctl_elem_value_set_name
(
snd_ctl_elem_value_t
*obj,
const
char
*val);
456
void
snd_ctl_elem_value_set_index
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
457
int
snd_ctl_elem_value_get_boolean
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
458
long
snd_ctl_elem_value_get_integer
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
459
long
long
snd_ctl_elem_value_get_integer64
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
460
unsigned
int
snd_ctl_elem_value_get_enumerated
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
461
unsigned
char
snd_ctl_elem_value_get_byte
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
462
void
snd_ctl_elem_value_set_boolean
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
val);
463
void
snd_ctl_elem_value_set_integer
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
val);
464
void
snd_ctl_elem_value_set_integer64
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
long
val);
465
void
snd_ctl_elem_value_set_enumerated
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
unsigned
int
val);
466
void
snd_ctl_elem_value_set_byte
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
unsigned
char
val);
467
void
snd_ctl_elem_set_bytes
(
snd_ctl_elem_value_t
*obj,
void
*data,
size_t
size);
468
const
void
*
snd_ctl_elem_value_get_bytes
(
const
snd_ctl_elem_value_t
*obj);
469
void
snd_ctl_elem_value_get_iec958
(
const
snd_ctl_elem_value_t
*obj,
snd_aes_iec958_t
*
ptr
);
470
void
snd_ctl_elem_value_set_iec958
(
snd_ctl_elem_value_t
*obj,
const
snd_aes_iec958_t
*
ptr
);
471
472
int
snd_tlv_parse_dB_info
(
unsigned
int
*tlv,
unsigned
int
tlv_size,
473
unsigned
int
**db_tlvp);
474
int
snd_tlv_get_dB_range
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
475
long
*min,
long
*max);
476
int
snd_tlv_convert_to_dB
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
477
long
volume,
long
*db_gain);
478
int
snd_tlv_convert_from_dB
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
479
long
db_gain,
long
*value,
int
xdir);
480
int
snd_ctl_get_dB_range
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
481
long
*min,
long
*max);
482
int
snd_ctl_convert_to_dB
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
483
long
volume,
long
*db_gain);
484
int
snd_ctl_convert_from_dB
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
485
long
db_gain,
long
*value,
int
xdir);
486
496
typedef
struct
_snd_hctl_elem
snd_hctl_elem_t
;
497
499
typedef
struct
_snd_hctl
snd_hctl_t
;
500
507
typedef
int (*
snd_hctl_compare_t
)(
const
snd_hctl_elem_t
*e1,
508
const
snd_hctl_elem_t
*e2);
509
int
snd_hctl_compare_fast
(
const
snd_hctl_elem_t
*c1,
510
const
snd_hctl_elem_t
*c2);
518
typedef
int (*
snd_hctl_callback_t
)(
snd_hctl_t
*hctl,
519
unsigned
int
mask,
520
snd_hctl_elem_t
*elem);
527
typedef
int (*
snd_hctl_elem_callback_t
)(
snd_hctl_elem_t
*elem,
528
unsigned
int
mask);
529
530
int
snd_hctl_open
(
snd_hctl_t
**hctl,
const
char
*name,
int
mode);
531
int
snd_hctl_open_ctl
(
snd_hctl_t
**hctlp,
snd_ctl_t
*ctl);
532
int
snd_hctl_close
(
snd_hctl_t
*hctl);
533
int
snd_hctl_nonblock
(
snd_hctl_t
*hctl,
int
nonblock);
534
int
snd_hctl_poll_descriptors_count
(
snd_hctl_t
*hctl);
535
int
snd_hctl_poll_descriptors
(
snd_hctl_t
*hctl,
struct
pollfd *pfds,
unsigned
int
space);
536
int
snd_hctl_poll_descriptors_revents
(
snd_hctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
nfds,
unsigned
short
*revents);
537
unsigned
int
snd_hctl_get_count
(
snd_hctl_t
*hctl);
538
int
snd_hctl_set_compare
(
snd_hctl_t
*hctl,
snd_hctl_compare_t
hsort);
539
snd_hctl_elem_t
*
snd_hctl_first_elem
(
snd_hctl_t
*hctl);
540
snd_hctl_elem_t
*
snd_hctl_last_elem
(
snd_hctl_t
*hctl);
541
snd_hctl_elem_t
*
snd_hctl_find_elem
(
snd_hctl_t
*hctl,
const
snd_ctl_elem_id_t
*
id
);
542
void
snd_hctl_set_callback
(
snd_hctl_t
*hctl,
snd_hctl_callback_t
callback);
543
void
snd_hctl_set_callback_private
(
snd_hctl_t
*hctl,
void
*data);
544
void
*
snd_hctl_get_callback_private
(
snd_hctl_t
*hctl);
545
int
snd_hctl_load
(
snd_hctl_t
*hctl);
546
int
snd_hctl_free
(
snd_hctl_t
*hctl);
547
int
snd_hctl_handle_events
(
snd_hctl_t
*hctl);
548
const
char
*
snd_hctl_name
(
snd_hctl_t
*hctl);
549
int
snd_hctl_wait
(
snd_hctl_t
*hctl,
int
timeout);
550
snd_ctl_t
*
snd_hctl_ctl
(
snd_hctl_t
*hctl);
551
552
snd_hctl_elem_t
*
snd_hctl_elem_next
(
snd_hctl_elem_t
*elem);
553
snd_hctl_elem_t
*
snd_hctl_elem_prev
(
snd_hctl_elem_t
*elem);
554
int
snd_hctl_elem_info
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_info_t
* info);
555
int
snd_hctl_elem_read
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_value_t
* value);
556
int
snd_hctl_elem_write
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_value_t
* value);
557
int
snd_hctl_elem_tlv_read
(
snd_hctl_elem_t
*elem,
unsigned
int
*tlv,
unsigned
int
tlv_size);
558
int
snd_hctl_elem_tlv_write
(
snd_hctl_elem_t
*elem,
const
unsigned
int
*tlv);
559
int
snd_hctl_elem_tlv_command
(
snd_hctl_elem_t
*elem,
const
unsigned
int
*tlv);
560
561
snd_hctl_t
*
snd_hctl_elem_get_hctl
(
snd_hctl_elem_t
*elem);
562
563
void
snd_hctl_elem_get_id
(
const
snd_hctl_elem_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
564
unsigned
int
snd_hctl_elem_get_numid
(
const
snd_hctl_elem_t
*obj);
565
snd_ctl_elem_iface_t
snd_hctl_elem_get_interface
(
const
snd_hctl_elem_t
*obj);
566
unsigned
int
snd_hctl_elem_get_device
(
const
snd_hctl_elem_t
*obj);
567
unsigned
int
snd_hctl_elem_get_subdevice
(
const
snd_hctl_elem_t
*obj);
568
const
char
*
snd_hctl_elem_get_name
(
const
snd_hctl_elem_t
*obj);
569
unsigned
int
snd_hctl_elem_get_index
(
const
snd_hctl_elem_t
*obj);
570
void
snd_hctl_elem_set_callback
(
snd_hctl_elem_t
*obj,
snd_hctl_elem_callback_t
val);
571
void
*
snd_hctl_elem_get_callback_private
(
const
snd_hctl_elem_t
*obj);
572
void
snd_hctl_elem_set_callback_private
(
snd_hctl_elem_t
*obj,
void
* val);
573
585
int
snd_sctl_build
(
snd_sctl_t
**ctl,
snd_ctl_t
*handle,
snd_config_t
*config,
586
snd_config_t
*private_data,
int
mode);
587
int
snd_sctl_free
(
snd_sctl_t
*handle);
588
int
snd_sctl_install
(
snd_sctl_t
*handle);
589
int
snd_sctl_remove
(
snd_sctl_t
*handle);
590
593
#ifdef __cplusplus
594
}
595
#endif
596
597
#endif
/* __ALSA_CONTROL_H */
Generated by
1.8.2