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
static
__inline__
int
snd_ctl_abort(
snd_ctl_t
*ctl) {
return
snd_ctl_nonblock
(ctl, 2); }
238
int
snd_async_add_ctl_handler
(
snd_async_handler_t
**handler,
snd_ctl_t
*ctl,
239
snd_async_callback_t
callback,
void
*private_data);
240
snd_ctl_t
*
snd_async_handler_get_ctl
(
snd_async_handler_t
*handler);
241
int
snd_ctl_poll_descriptors_count
(
snd_ctl_t
*ctl);
242
int
snd_ctl_poll_descriptors
(
snd_ctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
space);
243
int
snd_ctl_poll_descriptors_revents
(
snd_ctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
nfds,
unsigned
short
*revents);
244
int
snd_ctl_subscribe_events
(
snd_ctl_t
*ctl,
int
subscribe);
245
int
snd_ctl_card_info
(
snd_ctl_t
*ctl,
snd_ctl_card_info_t
*info);
246
int
snd_ctl_elem_list
(
snd_ctl_t
*ctl,
snd_ctl_elem_list_t
*list);
247
int
snd_ctl_elem_info
(
snd_ctl_t
*ctl,
snd_ctl_elem_info_t
*info);
248
int
snd_ctl_elem_read
(
snd_ctl_t
*ctl,
snd_ctl_elem_value_t
*value);
249
int
snd_ctl_elem_write
(
snd_ctl_t
*ctl,
snd_ctl_elem_value_t
*value);
250
int
snd_ctl_elem_lock
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
251
int
snd_ctl_elem_unlock
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
252
int
snd_ctl_elem_tlv_read
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
253
unsigned
int
*tlv,
unsigned
int
tlv_size);
254
int
snd_ctl_elem_tlv_write
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
255
const
unsigned
int
*tlv);
256
int
snd_ctl_elem_tlv_command
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
257
const
unsigned
int
*tlv);
258
#ifdef __ALSA_HWDEP_H
259
int
snd_ctl_hwdep_next_device
(
snd_ctl_t
*ctl,
int
* device);
260
int
snd_ctl_hwdep_info
(
snd_ctl_t
*ctl,
snd_hwdep_info_t
* info);
261
#endif
262
#ifdef __ALSA_PCM_H
263
int
snd_ctl_pcm_next_device
(
snd_ctl_t
*ctl,
int
*device);
264
int
snd_ctl_pcm_info
(
snd_ctl_t
*ctl,
snd_pcm_info_t
* info);
265
int
snd_ctl_pcm_prefer_subdevice
(
snd_ctl_t
*ctl,
int
subdev);
266
#endif
267
#ifdef __ALSA_RAWMIDI_H
268
int
snd_ctl_rawmidi_next_device
(
snd_ctl_t
*ctl,
int
* device);
269
int
snd_ctl_rawmidi_info
(
snd_ctl_t
*ctl,
snd_rawmidi_info_t
* info);
270
int
snd_ctl_rawmidi_prefer_subdevice
(
snd_ctl_t
*ctl,
int
subdev);
271
#endif
272
int
snd_ctl_set_power_state
(
snd_ctl_t
*ctl,
unsigned
int
state);
273
int
snd_ctl_get_power_state
(
snd_ctl_t
*ctl,
unsigned
int
*state);
274
275
int
snd_ctl_read
(
snd_ctl_t
*ctl,
snd_ctl_event_t
*event);
276
int
snd_ctl_wait
(
snd_ctl_t
*ctl,
int
timeout);
277
const
char
*
snd_ctl_name
(
snd_ctl_t
*ctl);
278
snd_ctl_type_t
snd_ctl_type
(
snd_ctl_t
*ctl);
279
280
const
char
*
snd_ctl_elem_type_name
(
snd_ctl_elem_type_t
type);
281
const
char
*
snd_ctl_elem_iface_name
(
snd_ctl_elem_iface_t
iface);
282
const
char
*
snd_ctl_event_type_name
(
snd_ctl_event_type_t
type);
283
284
unsigned
int
snd_ctl_event_elem_get_mask
(
const
snd_ctl_event_t
*obj);
285
unsigned
int
snd_ctl_event_elem_get_numid
(
const
snd_ctl_event_t
*obj);
286
void
snd_ctl_event_elem_get_id
(
const
snd_ctl_event_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
287
snd_ctl_elem_iface_t
snd_ctl_event_elem_get_interface
(
const
snd_ctl_event_t
*obj);
288
unsigned
int
snd_ctl_event_elem_get_device
(
const
snd_ctl_event_t
*obj);
289
unsigned
int
snd_ctl_event_elem_get_subdevice
(
const
snd_ctl_event_t
*obj);
290
const
char
*
snd_ctl_event_elem_get_name
(
const
snd_ctl_event_t
*obj);
291
unsigned
int
snd_ctl_event_elem_get_index
(
const
snd_ctl_event_t
*obj);
292
293
int
snd_ctl_elem_list_alloc_space
(
snd_ctl_elem_list_t
*obj,
unsigned
int
entries);
294
void
snd_ctl_elem_list_free_space
(
snd_ctl_elem_list_t
*obj);
295
296
char
*
snd_ctl_ascii_elem_id_get
(
snd_ctl_elem_id_t
*
id
);
297
int
snd_ctl_ascii_elem_id_parse
(
snd_ctl_elem_id_t
*dst,
const
char
*str);
298
int
snd_ctl_ascii_value_parse
(
snd_ctl_t
*handle,
299
snd_ctl_elem_value_t
*dst,
300
snd_ctl_elem_info_t
*info,
301
const
char
*value);
302
303
size_t
snd_ctl_elem_id_sizeof
(
void
);
308
#define snd_ctl_elem_id_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_id)
309
int
snd_ctl_elem_id_malloc
(
snd_ctl_elem_id_t
**
ptr
);
310
void
snd_ctl_elem_id_free
(
snd_ctl_elem_id_t
*obj);
311
void
snd_ctl_elem_id_clear
(
snd_ctl_elem_id_t
*obj);
312
void
snd_ctl_elem_id_copy
(
snd_ctl_elem_id_t
*dst,
const
snd_ctl_elem_id_t
*src);
313
unsigned
int
snd_ctl_elem_id_get_numid
(
const
snd_ctl_elem_id_t
*obj);
314
snd_ctl_elem_iface_t
snd_ctl_elem_id_get_interface
(
const
snd_ctl_elem_id_t
*obj);
315
unsigned
int
snd_ctl_elem_id_get_device
(
const
snd_ctl_elem_id_t
*obj);
316
unsigned
int
snd_ctl_elem_id_get_subdevice
(
const
snd_ctl_elem_id_t
*obj);
317
const
char
*
snd_ctl_elem_id_get_name
(
const
snd_ctl_elem_id_t
*obj);
318
unsigned
int
snd_ctl_elem_id_get_index
(
const
snd_ctl_elem_id_t
*obj);
319
void
snd_ctl_elem_id_set_numid
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
320
void
snd_ctl_elem_id_set_interface
(
snd_ctl_elem_id_t
*obj,
snd_ctl_elem_iface_t
val);
321
void
snd_ctl_elem_id_set_device
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
322
void
snd_ctl_elem_id_set_subdevice
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
323
void
snd_ctl_elem_id_set_name
(
snd_ctl_elem_id_t
*obj,
const
char
*val);
324
void
snd_ctl_elem_id_set_index
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
325
326
size_t
snd_ctl_card_info_sizeof
(
void
);
331
#define snd_ctl_card_info_alloca(ptr) __snd_alloca(ptr, snd_ctl_card_info)
332
int
snd_ctl_card_info_malloc
(
snd_ctl_card_info_t
**
ptr
);
333
void
snd_ctl_card_info_free
(
snd_ctl_card_info_t
*obj);
334
void
snd_ctl_card_info_clear
(
snd_ctl_card_info_t
*obj);
335
void
snd_ctl_card_info_copy
(
snd_ctl_card_info_t
*dst,
const
snd_ctl_card_info_t
*src);
336
int
snd_ctl_card_info_get_card
(
const
snd_ctl_card_info_t
*obj);
337
const
char
*
snd_ctl_card_info_get_id
(
const
snd_ctl_card_info_t
*obj);
338
const
char
*
snd_ctl_card_info_get_driver
(
const
snd_ctl_card_info_t
*obj);
339
const
char
*
snd_ctl_card_info_get_name
(
const
snd_ctl_card_info_t
*obj);
340
const
char
*
snd_ctl_card_info_get_longname
(
const
snd_ctl_card_info_t
*obj);
341
const
char
*
snd_ctl_card_info_get_mixername
(
const
snd_ctl_card_info_t
*obj);
342
const
char
*
snd_ctl_card_info_get_components
(
const
snd_ctl_card_info_t
*obj);
343
344
size_t
snd_ctl_event_sizeof
(
void
);
349
#define snd_ctl_event_alloca(ptr) __snd_alloca(ptr, snd_ctl_event)
350
int
snd_ctl_event_malloc
(
snd_ctl_event_t
**
ptr
);
351
void
snd_ctl_event_free
(
snd_ctl_event_t
*obj);
352
void
snd_ctl_event_clear
(
snd_ctl_event_t
*obj);
353
void
snd_ctl_event_copy
(
snd_ctl_event_t
*dst,
const
snd_ctl_event_t
*src);
354
snd_ctl_event_type_t
snd_ctl_event_get_type
(
const
snd_ctl_event_t
*obj);
355
356
size_t
snd_ctl_elem_list_sizeof
(
void
);
361
#define snd_ctl_elem_list_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_list)
362
int
snd_ctl_elem_list_malloc
(
snd_ctl_elem_list_t
**
ptr
);
363
void
snd_ctl_elem_list_free
(
snd_ctl_elem_list_t
*obj);
364
void
snd_ctl_elem_list_clear
(
snd_ctl_elem_list_t
*obj);
365
void
snd_ctl_elem_list_copy
(
snd_ctl_elem_list_t
*dst,
const
snd_ctl_elem_list_t
*src);
366
void
snd_ctl_elem_list_set_offset
(
snd_ctl_elem_list_t
*obj,
unsigned
int
val);
367
unsigned
int
snd_ctl_elem_list_get_used
(
const
snd_ctl_elem_list_t
*obj);
368
unsigned
int
snd_ctl_elem_list_get_count
(
const
snd_ctl_elem_list_t
*obj);
369
void
snd_ctl_elem_list_get_id
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx,
snd_ctl_elem_id_t
*
ptr
);
370
unsigned
int
snd_ctl_elem_list_get_numid
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
371
snd_ctl_elem_iface_t
snd_ctl_elem_list_get_interface
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
372
unsigned
int
snd_ctl_elem_list_get_device
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
373
unsigned
int
snd_ctl_elem_list_get_subdevice
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
374
const
char
*
snd_ctl_elem_list_get_name
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
375
unsigned
int
snd_ctl_elem_list_get_index
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
376
377
size_t
snd_ctl_elem_info_sizeof
(
void
);
382
#define snd_ctl_elem_info_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_info)
383
int
snd_ctl_elem_info_malloc
(
snd_ctl_elem_info_t
**
ptr
);
384
void
snd_ctl_elem_info_free
(
snd_ctl_elem_info_t
*obj);
385
void
snd_ctl_elem_info_clear
(
snd_ctl_elem_info_t
*obj);
386
void
snd_ctl_elem_info_copy
(
snd_ctl_elem_info_t
*dst,
const
snd_ctl_elem_info_t
*src);
387
snd_ctl_elem_type_t
snd_ctl_elem_info_get_type
(
const
snd_ctl_elem_info_t
*obj);
388
int
snd_ctl_elem_info_is_readable
(
const
snd_ctl_elem_info_t
*obj);
389
int
snd_ctl_elem_info_is_writable
(
const
snd_ctl_elem_info_t
*obj);
390
int
snd_ctl_elem_info_is_volatile
(
const
snd_ctl_elem_info_t
*obj);
391
int
snd_ctl_elem_info_is_inactive
(
const
snd_ctl_elem_info_t
*obj);
392
int
snd_ctl_elem_info_is_locked
(
const
snd_ctl_elem_info_t
*obj);
393
int
snd_ctl_elem_info_is_tlv_readable
(
const
snd_ctl_elem_info_t
*obj);
394
int
snd_ctl_elem_info_is_tlv_writable
(
const
snd_ctl_elem_info_t
*obj);
395
int
snd_ctl_elem_info_is_tlv_commandable
(
const
snd_ctl_elem_info_t
*obj);
396
int
snd_ctl_elem_info_is_owner
(
const
snd_ctl_elem_info_t
*obj);
397
int
snd_ctl_elem_info_is_user
(
const
snd_ctl_elem_info_t
*obj);
398
pid_t
snd_ctl_elem_info_get_owner
(
const
snd_ctl_elem_info_t
*obj);
399
unsigned
int
snd_ctl_elem_info_get_count
(
const
snd_ctl_elem_info_t
*obj);
400
long
snd_ctl_elem_info_get_min
(
const
snd_ctl_elem_info_t
*obj);
401
long
snd_ctl_elem_info_get_max
(
const
snd_ctl_elem_info_t
*obj);
402
long
snd_ctl_elem_info_get_step
(
const
snd_ctl_elem_info_t
*obj);
403
long
long
snd_ctl_elem_info_get_min64
(
const
snd_ctl_elem_info_t
*obj);
404
long
long
snd_ctl_elem_info_get_max64
(
const
snd_ctl_elem_info_t
*obj);
405
long
long
snd_ctl_elem_info_get_step64
(
const
snd_ctl_elem_info_t
*obj);
406
unsigned
int
snd_ctl_elem_info_get_items
(
const
snd_ctl_elem_info_t
*obj);
407
void
snd_ctl_elem_info_set_item
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
408
const
char
*
snd_ctl_elem_info_get_item_name
(
const
snd_ctl_elem_info_t
*obj);
409
int
snd_ctl_elem_info_get_dimensions
(
const
snd_ctl_elem_info_t
*obj);
410
int
snd_ctl_elem_info_get_dimension
(
const
snd_ctl_elem_info_t
*obj,
unsigned
int
idx);
411
void
snd_ctl_elem_info_get_id
(
const
snd_ctl_elem_info_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
412
unsigned
int
snd_ctl_elem_info_get_numid
(
const
snd_ctl_elem_info_t
*obj);
413
snd_ctl_elem_iface_t
snd_ctl_elem_info_get_interface
(
const
snd_ctl_elem_info_t
*obj);
414
unsigned
int
snd_ctl_elem_info_get_device
(
const
snd_ctl_elem_info_t
*obj);
415
unsigned
int
snd_ctl_elem_info_get_subdevice
(
const
snd_ctl_elem_info_t
*obj);
416
const
char
*
snd_ctl_elem_info_get_name
(
const
snd_ctl_elem_info_t
*obj);
417
unsigned
int
snd_ctl_elem_info_get_index
(
const
snd_ctl_elem_info_t
*obj);
418
void
snd_ctl_elem_info_set_id
(
snd_ctl_elem_info_t
*obj,
const
snd_ctl_elem_id_t
*
ptr
);
419
void
snd_ctl_elem_info_set_numid
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
420
void
snd_ctl_elem_info_set_interface
(
snd_ctl_elem_info_t
*obj,
snd_ctl_elem_iface_t
val);
421
void
snd_ctl_elem_info_set_device
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
422
void
snd_ctl_elem_info_set_subdevice
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
423
void
snd_ctl_elem_info_set_name
(
snd_ctl_elem_info_t
*obj,
const
char
*val);
424
void
snd_ctl_elem_info_set_index
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
425
426
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);
427
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);
428
int
snd_ctl_elem_add_boolean
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
unsigned
int
count);
429
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[]);
430
int
snd_ctl_elem_add_iec958
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
);
431
int
snd_ctl_elem_remove
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
432
433
size_t
snd_ctl_elem_value_sizeof
(
void
);
438
#define snd_ctl_elem_value_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_value)
439
int
snd_ctl_elem_value_malloc
(
snd_ctl_elem_value_t
**
ptr
);
440
void
snd_ctl_elem_value_free
(
snd_ctl_elem_value_t
*obj);
441
void
snd_ctl_elem_value_clear
(
snd_ctl_elem_value_t
*obj);
442
void
snd_ctl_elem_value_copy
(
snd_ctl_elem_value_t
*dst,
const
snd_ctl_elem_value_t
*src);
443
int
snd_ctl_elem_value_compare
(
snd_ctl_elem_value_t
*left,
const
snd_ctl_elem_value_t
*right);
444
void
snd_ctl_elem_value_get_id
(
const
snd_ctl_elem_value_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
445
unsigned
int
snd_ctl_elem_value_get_numid
(
const
snd_ctl_elem_value_t
*obj);
446
snd_ctl_elem_iface_t
snd_ctl_elem_value_get_interface
(
const
snd_ctl_elem_value_t
*obj);
447
unsigned
int
snd_ctl_elem_value_get_device
(
const
snd_ctl_elem_value_t
*obj);
448
unsigned
int
snd_ctl_elem_value_get_subdevice
(
const
snd_ctl_elem_value_t
*obj);
449
const
char
*
snd_ctl_elem_value_get_name
(
const
snd_ctl_elem_value_t
*obj);
450
unsigned
int
snd_ctl_elem_value_get_index
(
const
snd_ctl_elem_value_t
*obj);
451
void
snd_ctl_elem_value_set_id
(
snd_ctl_elem_value_t
*obj,
const
snd_ctl_elem_id_t
*
ptr
);
452
void
snd_ctl_elem_value_set_numid
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
453
void
snd_ctl_elem_value_set_interface
(
snd_ctl_elem_value_t
*obj,
snd_ctl_elem_iface_t
val);
454
void
snd_ctl_elem_value_set_device
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
455
void
snd_ctl_elem_value_set_subdevice
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
456
void
snd_ctl_elem_value_set_name
(
snd_ctl_elem_value_t
*obj,
const
char
*val);
457
void
snd_ctl_elem_value_set_index
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
458
int
snd_ctl_elem_value_get_boolean
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
459
long
snd_ctl_elem_value_get_integer
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
460
long
long
snd_ctl_elem_value_get_integer64
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
461
unsigned
int
snd_ctl_elem_value_get_enumerated
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
462
unsigned
char
snd_ctl_elem_value_get_byte
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
463
void
snd_ctl_elem_value_set_boolean
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
val);
464
void
snd_ctl_elem_value_set_integer
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
val);
465
void
snd_ctl_elem_value_set_integer64
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
long
val);
466
void
snd_ctl_elem_value_set_enumerated
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
unsigned
int
val);
467
void
snd_ctl_elem_value_set_byte
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
unsigned
char
val);
468
void
snd_ctl_elem_set_bytes
(
snd_ctl_elem_value_t
*obj,
void
*data,
size_t
size);
469
const
void
*
snd_ctl_elem_value_get_bytes
(
const
snd_ctl_elem_value_t
*obj);
470
void
snd_ctl_elem_value_get_iec958
(
const
snd_ctl_elem_value_t
*obj,
snd_aes_iec958_t
*
ptr
);
471
void
snd_ctl_elem_value_set_iec958
(
snd_ctl_elem_value_t
*obj,
const
snd_aes_iec958_t
*
ptr
);
472
473
int
snd_tlv_parse_dB_info
(
unsigned
int
*tlv,
unsigned
int
tlv_size,
474
unsigned
int
**db_tlvp);
475
int
snd_tlv_get_dB_range
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
476
long
*min,
long
*max);
477
int
snd_tlv_convert_to_dB
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
478
long
volume,
long
*db_gain);
479
int
snd_tlv_convert_from_dB
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
480
long
db_gain,
long
*value,
int
xdir);
481
int
snd_ctl_get_dB_range
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
482
long
*min,
long
*max);
483
int
snd_ctl_convert_to_dB
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
484
long
volume,
long
*db_gain);
485
int
snd_ctl_convert_from_dB
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
486
long
db_gain,
long
*value,
int
xdir);
487
497
typedef
struct
_snd_hctl_elem
snd_hctl_elem_t
;
498
500
typedef
struct
_snd_hctl
snd_hctl_t
;
501
508
typedef
int (*
snd_hctl_compare_t
)(
const
snd_hctl_elem_t
*e1,
509
const
snd_hctl_elem_t
*e2);
510
int
snd_hctl_compare_fast
(
const
snd_hctl_elem_t
*c1,
511
const
snd_hctl_elem_t
*c2);
519
typedef
int (*
snd_hctl_callback_t
)(
snd_hctl_t
*hctl,
520
unsigned
int
mask,
521
snd_hctl_elem_t
*elem);
528
typedef
int (*
snd_hctl_elem_callback_t
)(
snd_hctl_elem_t
*elem,
529
unsigned
int
mask);
530
531
int
snd_hctl_open
(
snd_hctl_t
**hctl,
const
char
*name,
int
mode);
532
int
snd_hctl_open_ctl
(
snd_hctl_t
**hctlp,
snd_ctl_t
*ctl);
533
int
snd_hctl_close
(
snd_hctl_t
*hctl);
534
int
snd_hctl_nonblock
(
snd_hctl_t
*hctl,
int
nonblock);
535
static
__inline__
int
snd_hctl_abort(
snd_hctl_t
*hctl) {
return
snd_hctl_nonblock
(hctl, 2); }
536
int
snd_hctl_poll_descriptors_count
(
snd_hctl_t
*hctl);
537
int
snd_hctl_poll_descriptors
(
snd_hctl_t
*hctl,
struct
pollfd *pfds,
unsigned
int
space);
538
int
snd_hctl_poll_descriptors_revents
(
snd_hctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
nfds,
unsigned
short
*revents);
539
unsigned
int
snd_hctl_get_count
(
snd_hctl_t
*hctl);
540
int
snd_hctl_set_compare
(
snd_hctl_t
*hctl,
snd_hctl_compare_t
hsort);
541
snd_hctl_elem_t
*
snd_hctl_first_elem
(
snd_hctl_t
*hctl);
542
snd_hctl_elem_t
*
snd_hctl_last_elem
(
snd_hctl_t
*hctl);
543
snd_hctl_elem_t
*
snd_hctl_find_elem
(
snd_hctl_t
*hctl,
const
snd_ctl_elem_id_t
*
id
);
544
void
snd_hctl_set_callback
(
snd_hctl_t
*hctl,
snd_hctl_callback_t
callback);
545
void
snd_hctl_set_callback_private
(
snd_hctl_t
*hctl,
void
*data);
546
void
*
snd_hctl_get_callback_private
(
snd_hctl_t
*hctl);
547
int
snd_hctl_load
(
snd_hctl_t
*hctl);
548
int
snd_hctl_free
(
snd_hctl_t
*hctl);
549
int
snd_hctl_handle_events
(
snd_hctl_t
*hctl);
550
const
char
*
snd_hctl_name
(
snd_hctl_t
*hctl);
551
int
snd_hctl_wait
(
snd_hctl_t
*hctl,
int
timeout);
552
snd_ctl_t
*
snd_hctl_ctl
(
snd_hctl_t
*hctl);
553
554
snd_hctl_elem_t
*
snd_hctl_elem_next
(
snd_hctl_elem_t
*elem);
555
snd_hctl_elem_t
*
snd_hctl_elem_prev
(
snd_hctl_elem_t
*elem);
556
int
snd_hctl_elem_info
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_info_t
* info);
557
int
snd_hctl_elem_read
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_value_t
* value);
558
int
snd_hctl_elem_write
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_value_t
* value);
559
int
snd_hctl_elem_tlv_read
(
snd_hctl_elem_t
*elem,
unsigned
int
*tlv,
unsigned
int
tlv_size);
560
int
snd_hctl_elem_tlv_write
(
snd_hctl_elem_t
*elem,
const
unsigned
int
*tlv);
561
int
snd_hctl_elem_tlv_command
(
snd_hctl_elem_t
*elem,
const
unsigned
int
*tlv);
562
563
snd_hctl_t
*
snd_hctl_elem_get_hctl
(
snd_hctl_elem_t
*elem);
564
565
void
snd_hctl_elem_get_id
(
const
snd_hctl_elem_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
566
unsigned
int
snd_hctl_elem_get_numid
(
const
snd_hctl_elem_t
*obj);
567
snd_ctl_elem_iface_t
snd_hctl_elem_get_interface
(
const
snd_hctl_elem_t
*obj);
568
unsigned
int
snd_hctl_elem_get_device
(
const
snd_hctl_elem_t
*obj);
569
unsigned
int
snd_hctl_elem_get_subdevice
(
const
snd_hctl_elem_t
*obj);
570
const
char
*
snd_hctl_elem_get_name
(
const
snd_hctl_elem_t
*obj);
571
unsigned
int
snd_hctl_elem_get_index
(
const
snd_hctl_elem_t
*obj);
572
void
snd_hctl_elem_set_callback
(
snd_hctl_elem_t
*obj,
snd_hctl_elem_callback_t
val);
573
void
*
snd_hctl_elem_get_callback_private
(
const
snd_hctl_elem_t
*obj);
574
void
snd_hctl_elem_set_callback_private
(
snd_hctl_elem_t
*obj,
void
* val);
575
587
int
snd_sctl_build
(
snd_sctl_t
**ctl,
snd_ctl_t
*handle,
snd_config_t
*config,
588
snd_config_t
*private_data,
int
mode);
589
int
snd_sctl_free
(
snd_sctl_t
*handle);
590
int
snd_sctl_install
(
snd_sctl_t
*handle);
591
int
snd_sctl_remove
(
snd_sctl_t
*handle);
592
595
#ifdef __cplusplus
596
}
597
#endif
598
599
#endif
/* __ALSA_CONTROL_H */
Generated on Tue Apr 7 2015 16:21:42 for ALSA project - the C library reference by
1.8.3.1