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
typedef
enum
_snd_ctl_type {
188
SND_CTL_TYPE_HW
,
190
SND_CTL_TYPE_SHM
,
192
SND_CTL_TYPE_INET
,
194
SND_CTL_TYPE_EXT
195
}
snd_ctl_type_t
;
196
198
#define SND_CTL_NONBLOCK 0x0001
199
201
#define SND_CTL_ASYNC 0x0002
202
204
#define SND_CTL_READONLY 0x0004
205
207
typedef
struct
_snd_ctl
snd_ctl_t
;
208
210
#define SND_SCTL_NOFREE 0x0001
211
213
typedef
struct
_snd_sctl
snd_sctl_t
;
214
215
int
snd_card_load
(
int
card);
216
int
snd_card_next
(
int
*card);
217
int
snd_card_get_index
(
const
char
*name);
218
int
snd_card_get_name
(
int
card,
char
**name);
219
int
snd_card_get_longname
(
int
card,
char
**name);
220
221
int
snd_device_name_hint
(
int
card,
const
char
*iface,
void
***hints);
222
int
snd_device_name_free_hint
(
void
**hints);
223
char
*
snd_device_name_get_hint
(
const
void
*hint,
const
char
*
id
);
224
225
int
snd_ctl_open
(
snd_ctl_t
**ctl,
const
char
*name,
int
mode);
226
int
snd_ctl_open_lconf
(
snd_ctl_t
**ctl,
const
char
*name,
int
mode,
snd_config_t
*lconf);
227
int
snd_ctl_open_fallback
(
snd_ctl_t
**ctl,
snd_config_t
*root,
const
char
*name,
const
char
*orig_name,
int
mode);
228
int
snd_ctl_close
(
snd_ctl_t
*ctl);
229
int
snd_ctl_nonblock
(
snd_ctl_t
*ctl,
int
nonblock);
230
int
snd_async_add_ctl_handler
(
snd_async_handler_t
**handler,
snd_ctl_t
*ctl,
231
snd_async_callback_t
callback,
void
*private_data);
232
snd_ctl_t
*
snd_async_handler_get_ctl
(
snd_async_handler_t
*handler);
233
int
snd_ctl_poll_descriptors_count
(
snd_ctl_t
*ctl);
234
int
snd_ctl_poll_descriptors
(
snd_ctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
space);
235
int
snd_ctl_poll_descriptors_revents
(
snd_ctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
nfds,
unsigned
short
*revents);
236
int
snd_ctl_subscribe_events
(
snd_ctl_t
*ctl,
int
subscribe);
237
int
snd_ctl_card_info
(
snd_ctl_t
*ctl,
snd_ctl_card_info_t
*info);
238
int
snd_ctl_elem_list
(
snd_ctl_t
*ctl,
snd_ctl_elem_list_t
*list);
239
int
snd_ctl_elem_info
(
snd_ctl_t
*ctl,
snd_ctl_elem_info_t
*info);
240
int
snd_ctl_elem_read
(
snd_ctl_t
*ctl,
snd_ctl_elem_value_t
*value);
241
int
snd_ctl_elem_write
(
snd_ctl_t
*ctl,
snd_ctl_elem_value_t
*value);
242
int
snd_ctl_elem_lock
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
243
int
snd_ctl_elem_unlock
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
244
int
snd_ctl_elem_tlv_read
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
245
unsigned
int
*tlv,
unsigned
int
tlv_size);
246
int
snd_ctl_elem_tlv_write
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
247
const
unsigned
int
*tlv);
248
int
snd_ctl_elem_tlv_command
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
249
const
unsigned
int
*tlv);
250
#ifdef __ALSA_HWDEP_H
251
int
snd_ctl_hwdep_next_device
(
snd_ctl_t
*ctl,
int
* device);
252
int
snd_ctl_hwdep_info
(
snd_ctl_t
*ctl,
snd_hwdep_info_t
* info);
253
#endif
254
#ifdef __ALSA_PCM_H
255
int
snd_ctl_pcm_next_device
(
snd_ctl_t
*ctl,
int
*device);
256
int
snd_ctl_pcm_info
(
snd_ctl_t
*ctl,
snd_pcm_info_t
* info);
257
int
snd_ctl_pcm_prefer_subdevice
(
snd_ctl_t
*ctl,
int
subdev);
258
#endif
259
#ifdef __ALSA_RAWMIDI_H
260
int
snd_ctl_rawmidi_next_device
(
snd_ctl_t
*ctl,
int
* device);
261
int
snd_ctl_rawmidi_info
(
snd_ctl_t
*ctl,
snd_rawmidi_info_t
* info);
262
int
snd_ctl_rawmidi_prefer_subdevice
(
snd_ctl_t
*ctl,
int
subdev);
263
#endif
264
int
snd_ctl_set_power_state
(
snd_ctl_t
*ctl,
unsigned
int
state);
265
int
snd_ctl_get_power_state
(
snd_ctl_t
*ctl,
unsigned
int
*state);
266
267
int
snd_ctl_read
(
snd_ctl_t
*ctl,
snd_ctl_event_t
*event);
268
int
snd_ctl_wait
(
snd_ctl_t
*ctl,
int
timeout);
269
const
char
*
snd_ctl_name
(
snd_ctl_t
*ctl);
270
snd_ctl_type_t
snd_ctl_type
(
snd_ctl_t
*ctl);
271
272
const
char
*
snd_ctl_elem_type_name
(
snd_ctl_elem_type_t
type);
273
const
char
*
snd_ctl_elem_iface_name
(
snd_ctl_elem_iface_t
iface);
274
const
char
*
snd_ctl_event_type_name
(
snd_ctl_event_type_t
type);
275
276
unsigned
int
snd_ctl_event_elem_get_mask
(
const
snd_ctl_event_t
*obj);
277
unsigned
int
snd_ctl_event_elem_get_numid
(
const
snd_ctl_event_t
*obj);
278
void
snd_ctl_event_elem_get_id
(
const
snd_ctl_event_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
279
snd_ctl_elem_iface_t
snd_ctl_event_elem_get_interface
(
const
snd_ctl_event_t
*obj);
280
unsigned
int
snd_ctl_event_elem_get_device
(
const
snd_ctl_event_t
*obj);
281
unsigned
int
snd_ctl_event_elem_get_subdevice
(
const
snd_ctl_event_t
*obj);
282
const
char
*
snd_ctl_event_elem_get_name
(
const
snd_ctl_event_t
*obj);
283
unsigned
int
snd_ctl_event_elem_get_index
(
const
snd_ctl_event_t
*obj);
284
285
int
snd_ctl_elem_list_alloc_space
(
snd_ctl_elem_list_t
*obj,
unsigned
int
entries);
286
void
snd_ctl_elem_list_free_space
(
snd_ctl_elem_list_t
*obj);
287
288
char
*
snd_ctl_ascii_elem_id_get
(
snd_ctl_elem_id_t
*
id
);
289
int
snd_ctl_ascii_elem_id_parse
(
snd_ctl_elem_id_t
*dst,
const
char
*str);
290
int
snd_ctl_ascii_value_parse
(
snd_ctl_t
*handle,
291
snd_ctl_elem_value_t
*dst,
292
snd_ctl_elem_info_t
*info,
293
const
char
*value);
294
295
size_t
snd_ctl_elem_id_sizeof
(
void
);
300
#define snd_ctl_elem_id_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_id)
301
int
snd_ctl_elem_id_malloc
(
snd_ctl_elem_id_t
**
ptr
);
302
void
snd_ctl_elem_id_free
(
snd_ctl_elem_id_t
*obj);
303
void
snd_ctl_elem_id_clear
(
snd_ctl_elem_id_t
*obj);
304
void
snd_ctl_elem_id_copy
(
snd_ctl_elem_id_t
*dst,
const
snd_ctl_elem_id_t
*src);
305
unsigned
int
snd_ctl_elem_id_get_numid
(
const
snd_ctl_elem_id_t
*obj);
306
snd_ctl_elem_iface_t
snd_ctl_elem_id_get_interface
(
const
snd_ctl_elem_id_t
*obj);
307
unsigned
int
snd_ctl_elem_id_get_device
(
const
snd_ctl_elem_id_t
*obj);
308
unsigned
int
snd_ctl_elem_id_get_subdevice
(
const
snd_ctl_elem_id_t
*obj);
309
const
char
*
snd_ctl_elem_id_get_name
(
const
snd_ctl_elem_id_t
*obj);
310
unsigned
int
snd_ctl_elem_id_get_index
(
const
snd_ctl_elem_id_t
*obj);
311
void
snd_ctl_elem_id_set_numid
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
312
void
snd_ctl_elem_id_set_interface
(
snd_ctl_elem_id_t
*obj,
snd_ctl_elem_iface_t
val);
313
void
snd_ctl_elem_id_set_device
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
314
void
snd_ctl_elem_id_set_subdevice
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
315
void
snd_ctl_elem_id_set_name
(
snd_ctl_elem_id_t
*obj,
const
char
*val);
316
void
snd_ctl_elem_id_set_index
(
snd_ctl_elem_id_t
*obj,
unsigned
int
val);
317
318
size_t
snd_ctl_card_info_sizeof
(
void
);
323
#define snd_ctl_card_info_alloca(ptr) __snd_alloca(ptr, snd_ctl_card_info)
324
int
snd_ctl_card_info_malloc
(
snd_ctl_card_info_t
**
ptr
);
325
void
snd_ctl_card_info_free
(
snd_ctl_card_info_t
*obj);
326
void
snd_ctl_card_info_clear
(
snd_ctl_card_info_t
*obj);
327
void
snd_ctl_card_info_copy
(
snd_ctl_card_info_t
*dst,
const
snd_ctl_card_info_t
*src);
328
int
snd_ctl_card_info_get_card
(
const
snd_ctl_card_info_t
*obj);
329
const
char
*
snd_ctl_card_info_get_id
(
const
snd_ctl_card_info_t
*obj);
330
const
char
*
snd_ctl_card_info_get_driver
(
const
snd_ctl_card_info_t
*obj);
331
const
char
*
snd_ctl_card_info_get_name
(
const
snd_ctl_card_info_t
*obj);
332
const
char
*
snd_ctl_card_info_get_longname
(
const
snd_ctl_card_info_t
*obj);
333
const
char
*
snd_ctl_card_info_get_mixername
(
const
snd_ctl_card_info_t
*obj);
334
const
char
*
snd_ctl_card_info_get_components
(
const
snd_ctl_card_info_t
*obj);
335
336
size_t
snd_ctl_event_sizeof
(
void
);
341
#define snd_ctl_event_alloca(ptr) __snd_alloca(ptr, snd_ctl_event)
342
int
snd_ctl_event_malloc
(
snd_ctl_event_t
**
ptr
);
343
void
snd_ctl_event_free
(
snd_ctl_event_t
*obj);
344
void
snd_ctl_event_clear
(
snd_ctl_event_t
*obj);
345
void
snd_ctl_event_copy
(
snd_ctl_event_t
*dst,
const
snd_ctl_event_t
*src);
346
snd_ctl_event_type_t
snd_ctl_event_get_type
(
const
snd_ctl_event_t
*obj);
347
348
size_t
snd_ctl_elem_list_sizeof
(
void
);
353
#define snd_ctl_elem_list_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_list)
354
int
snd_ctl_elem_list_malloc
(
snd_ctl_elem_list_t
**
ptr
);
355
void
snd_ctl_elem_list_free
(
snd_ctl_elem_list_t
*obj);
356
void
snd_ctl_elem_list_clear
(
snd_ctl_elem_list_t
*obj);
357
void
snd_ctl_elem_list_copy
(
snd_ctl_elem_list_t
*dst,
const
snd_ctl_elem_list_t
*src);
358
void
snd_ctl_elem_list_set_offset
(
snd_ctl_elem_list_t
*obj,
unsigned
int
val);
359
unsigned
int
snd_ctl_elem_list_get_used
(
const
snd_ctl_elem_list_t
*obj);
360
unsigned
int
snd_ctl_elem_list_get_count
(
const
snd_ctl_elem_list_t
*obj);
361
void
snd_ctl_elem_list_get_id
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx,
snd_ctl_elem_id_t
*
ptr
);
362
unsigned
int
snd_ctl_elem_list_get_numid
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
363
snd_ctl_elem_iface_t
snd_ctl_elem_list_get_interface
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
364
unsigned
int
snd_ctl_elem_list_get_device
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
365
unsigned
int
snd_ctl_elem_list_get_subdevice
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
366
const
char
*
snd_ctl_elem_list_get_name
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
367
unsigned
int
snd_ctl_elem_list_get_index
(
const
snd_ctl_elem_list_t
*obj,
unsigned
int
idx);
368
369
size_t
snd_ctl_elem_info_sizeof
(
void
);
374
#define snd_ctl_elem_info_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_info)
375
int
snd_ctl_elem_info_malloc
(
snd_ctl_elem_info_t
**
ptr
);
376
void
snd_ctl_elem_info_free
(
snd_ctl_elem_info_t
*obj);
377
void
snd_ctl_elem_info_clear
(
snd_ctl_elem_info_t
*obj);
378
void
snd_ctl_elem_info_copy
(
snd_ctl_elem_info_t
*dst,
const
snd_ctl_elem_info_t
*src);
379
snd_ctl_elem_type_t
snd_ctl_elem_info_get_type
(
const
snd_ctl_elem_info_t
*obj);
380
int
snd_ctl_elem_info_is_readable
(
const
snd_ctl_elem_info_t
*obj);
381
int
snd_ctl_elem_info_is_writable
(
const
snd_ctl_elem_info_t
*obj);
382
int
snd_ctl_elem_info_is_volatile
(
const
snd_ctl_elem_info_t
*obj);
383
int
snd_ctl_elem_info_is_inactive
(
const
snd_ctl_elem_info_t
*obj);
384
int
snd_ctl_elem_info_is_locked
(
const
snd_ctl_elem_info_t
*obj);
385
int
snd_ctl_elem_info_is_tlv_readable
(
const
snd_ctl_elem_info_t
*obj);
386
int
snd_ctl_elem_info_is_tlv_writable
(
const
snd_ctl_elem_info_t
*obj);
387
int
snd_ctl_elem_info_is_tlv_commandable
(
const
snd_ctl_elem_info_t
*obj);
388
int
snd_ctl_elem_info_is_owner
(
const
snd_ctl_elem_info_t
*obj);
389
int
snd_ctl_elem_info_is_user
(
const
snd_ctl_elem_info_t
*obj);
390
pid_t
snd_ctl_elem_info_get_owner
(
const
snd_ctl_elem_info_t
*obj);
391
unsigned
int
snd_ctl_elem_info_get_count
(
const
snd_ctl_elem_info_t
*obj);
392
long
snd_ctl_elem_info_get_min
(
const
snd_ctl_elem_info_t
*obj);
393
long
snd_ctl_elem_info_get_max
(
const
snd_ctl_elem_info_t
*obj);
394
long
snd_ctl_elem_info_get_step
(
const
snd_ctl_elem_info_t
*obj);
395
long
long
snd_ctl_elem_info_get_min64
(
const
snd_ctl_elem_info_t
*obj);
396
long
long
snd_ctl_elem_info_get_max64
(
const
snd_ctl_elem_info_t
*obj);
397
long
long
snd_ctl_elem_info_get_step64
(
const
snd_ctl_elem_info_t
*obj);
398
unsigned
int
snd_ctl_elem_info_get_items
(
const
snd_ctl_elem_info_t
*obj);
399
void
snd_ctl_elem_info_set_item
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
400
const
char
*
snd_ctl_elem_info_get_item_name
(
const
snd_ctl_elem_info_t
*obj);
401
int
snd_ctl_elem_info_get_dimensions
(
const
snd_ctl_elem_info_t
*obj);
402
int
snd_ctl_elem_info_get_dimension
(
const
snd_ctl_elem_info_t
*obj,
unsigned
int
idx);
403
void
snd_ctl_elem_info_get_id
(
const
snd_ctl_elem_info_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
404
unsigned
int
snd_ctl_elem_info_get_numid
(
const
snd_ctl_elem_info_t
*obj);
405
snd_ctl_elem_iface_t
snd_ctl_elem_info_get_interface
(
const
snd_ctl_elem_info_t
*obj);
406
unsigned
int
snd_ctl_elem_info_get_device
(
const
snd_ctl_elem_info_t
*obj);
407
unsigned
int
snd_ctl_elem_info_get_subdevice
(
const
snd_ctl_elem_info_t
*obj);
408
const
char
*
snd_ctl_elem_info_get_name
(
const
snd_ctl_elem_info_t
*obj);
409
unsigned
int
snd_ctl_elem_info_get_index
(
const
snd_ctl_elem_info_t
*obj);
410
void
snd_ctl_elem_info_set_id
(
snd_ctl_elem_info_t
*obj,
const
snd_ctl_elem_id_t
*
ptr
);
411
void
snd_ctl_elem_info_set_numid
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
412
void
snd_ctl_elem_info_set_interface
(
snd_ctl_elem_info_t
*obj,
snd_ctl_elem_iface_t
val);
413
void
snd_ctl_elem_info_set_device
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
414
void
snd_ctl_elem_info_set_subdevice
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
415
void
snd_ctl_elem_info_set_name
(
snd_ctl_elem_info_t
*obj,
const
char
*val);
416
void
snd_ctl_elem_info_set_index
(
snd_ctl_elem_info_t
*obj,
unsigned
int
val);
417
418
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);
419
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);
420
int
snd_ctl_elem_add_boolean
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
unsigned
int
count);
421
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[]);
422
int
snd_ctl_elem_add_iec958
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
);
423
int
snd_ctl_elem_remove
(
snd_ctl_t
*ctl,
snd_ctl_elem_id_t
*
id
);
424
425
size_t
snd_ctl_elem_value_sizeof
(
void
);
430
#define snd_ctl_elem_value_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_value)
431
int
snd_ctl_elem_value_malloc
(
snd_ctl_elem_value_t
**
ptr
);
432
void
snd_ctl_elem_value_free
(
snd_ctl_elem_value_t
*obj);
433
void
snd_ctl_elem_value_clear
(
snd_ctl_elem_value_t
*obj);
434
void
snd_ctl_elem_value_copy
(
snd_ctl_elem_value_t
*dst,
const
snd_ctl_elem_value_t
*src);
435
int
snd_ctl_elem_value_compare
(
snd_ctl_elem_value_t
*left,
const
snd_ctl_elem_value_t
*right);
436
void
snd_ctl_elem_value_get_id
(
const
snd_ctl_elem_value_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
437
unsigned
int
snd_ctl_elem_value_get_numid
(
const
snd_ctl_elem_value_t
*obj);
438
snd_ctl_elem_iface_t
snd_ctl_elem_value_get_interface
(
const
snd_ctl_elem_value_t
*obj);
439
unsigned
int
snd_ctl_elem_value_get_device
(
const
snd_ctl_elem_value_t
*obj);
440
unsigned
int
snd_ctl_elem_value_get_subdevice
(
const
snd_ctl_elem_value_t
*obj);
441
const
char
*
snd_ctl_elem_value_get_name
(
const
snd_ctl_elem_value_t
*obj);
442
unsigned
int
snd_ctl_elem_value_get_index
(
const
snd_ctl_elem_value_t
*obj);
443
void
snd_ctl_elem_value_set_id
(
snd_ctl_elem_value_t
*obj,
const
snd_ctl_elem_id_t
*
ptr
);
444
void
snd_ctl_elem_value_set_numid
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
445
void
snd_ctl_elem_value_set_interface
(
snd_ctl_elem_value_t
*obj,
snd_ctl_elem_iface_t
val);
446
void
snd_ctl_elem_value_set_device
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
447
void
snd_ctl_elem_value_set_subdevice
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
448
void
snd_ctl_elem_value_set_name
(
snd_ctl_elem_value_t
*obj,
const
char
*val);
449
void
snd_ctl_elem_value_set_index
(
snd_ctl_elem_value_t
*obj,
unsigned
int
val);
450
int
snd_ctl_elem_value_get_boolean
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
451
long
snd_ctl_elem_value_get_integer
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
452
long
long
snd_ctl_elem_value_get_integer64
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
453
unsigned
int
snd_ctl_elem_value_get_enumerated
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
454
unsigned
char
snd_ctl_elem_value_get_byte
(
const
snd_ctl_elem_value_t
*obj,
unsigned
int
idx);
455
void
snd_ctl_elem_value_set_boolean
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
val);
456
void
snd_ctl_elem_value_set_integer
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
val);
457
void
snd_ctl_elem_value_set_integer64
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
long
long
val);
458
void
snd_ctl_elem_value_set_enumerated
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
unsigned
int
val);
459
void
snd_ctl_elem_value_set_byte
(
snd_ctl_elem_value_t
*obj,
unsigned
int
idx,
unsigned
char
val);
460
void
snd_ctl_elem_set_bytes
(
snd_ctl_elem_value_t
*obj,
void
*data,
size_t
size);
461
const
void
*
snd_ctl_elem_value_get_bytes
(
const
snd_ctl_elem_value_t
*obj);
462
void
snd_ctl_elem_value_get_iec958
(
const
snd_ctl_elem_value_t
*obj,
snd_aes_iec958_t
*
ptr
);
463
void
snd_ctl_elem_value_set_iec958
(
snd_ctl_elem_value_t
*obj,
const
snd_aes_iec958_t
*
ptr
);
464
465
int
snd_tlv_parse_dB_info
(
unsigned
int
*tlv,
unsigned
int
tlv_size,
466
unsigned
int
**db_tlvp);
467
int
snd_tlv_get_dB_range
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
468
long
*min,
long
*max);
469
int
snd_tlv_convert_to_dB
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
470
long
volume,
long
*db_gain);
471
int
snd_tlv_convert_from_dB
(
unsigned
int
*tlv,
long
rangemin,
long
rangemax,
472
long
db_gain,
long
*value,
int
xdir);
473
int
snd_ctl_get_dB_range
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
474
long
*min,
long
*max);
475
int
snd_ctl_convert_to_dB
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
476
long
volume,
long
*db_gain);
477
int
snd_ctl_convert_from_dB
(
snd_ctl_t
*ctl,
const
snd_ctl_elem_id_t
*
id
,
478
long
db_gain,
long
*value,
int
xdir);
479
489
typedef
struct
_snd_hctl_elem
snd_hctl_elem_t
;
490
492
typedef
struct
_snd_hctl
snd_hctl_t
;
493
500
typedef
int (*
snd_hctl_compare_t
)(
const
snd_hctl_elem_t
*e1,
501
const
snd_hctl_elem_t
*e2);
502
int
snd_hctl_compare_fast
(
const
snd_hctl_elem_t
*c1,
503
const
snd_hctl_elem_t
*c2);
511
typedef
int (*
snd_hctl_callback_t
)(
snd_hctl_t
*hctl,
512
unsigned
int
mask,
513
snd_hctl_elem_t
*elem);
520
typedef
int (*
snd_hctl_elem_callback_t
)(
snd_hctl_elem_t
*elem,
521
unsigned
int
mask);
522
523
int
snd_hctl_open
(
snd_hctl_t
**hctl,
const
char
*name,
int
mode);
524
int
snd_hctl_open_ctl
(
snd_hctl_t
**hctlp,
snd_ctl_t
*ctl);
525
int
snd_hctl_close
(
snd_hctl_t
*hctl);
526
int
snd_hctl_nonblock
(
snd_hctl_t
*hctl,
int
nonblock);
527
int
snd_hctl_poll_descriptors_count
(
snd_hctl_t
*hctl);
528
int
snd_hctl_poll_descriptors
(
snd_hctl_t
*hctl,
struct
pollfd *pfds,
unsigned
int
space);
529
int
snd_hctl_poll_descriptors_revents
(
snd_hctl_t
*ctl,
struct
pollfd *pfds,
unsigned
int
nfds,
unsigned
short
*revents);
530
unsigned
int
snd_hctl_get_count
(
snd_hctl_t
*hctl);
531
int
snd_hctl_set_compare
(
snd_hctl_t
*hctl,
snd_hctl_compare_t
hsort);
532
snd_hctl_elem_t
*
snd_hctl_first_elem
(
snd_hctl_t
*hctl);
533
snd_hctl_elem_t
*
snd_hctl_last_elem
(
snd_hctl_t
*hctl);
534
snd_hctl_elem_t
*
snd_hctl_find_elem
(
snd_hctl_t
*hctl,
const
snd_ctl_elem_id_t
*
id
);
535
void
snd_hctl_set_callback
(
snd_hctl_t
*hctl,
snd_hctl_callback_t
callback);
536
void
snd_hctl_set_callback_private
(
snd_hctl_t
*hctl,
void
*data);
537
void
*
snd_hctl_get_callback_private
(
snd_hctl_t
*hctl);
538
int
snd_hctl_load
(
snd_hctl_t
*hctl);
539
int
snd_hctl_free
(
snd_hctl_t
*hctl);
540
int
snd_hctl_handle_events
(
snd_hctl_t
*hctl);
541
const
char
*
snd_hctl_name
(
snd_hctl_t
*hctl);
542
int
snd_hctl_wait
(
snd_hctl_t
*hctl,
int
timeout);
543
snd_ctl_t
*
snd_hctl_ctl
(
snd_hctl_t
*hctl);
544
545
snd_hctl_elem_t
*
snd_hctl_elem_next
(
snd_hctl_elem_t
*elem);
546
snd_hctl_elem_t
*
snd_hctl_elem_prev
(
snd_hctl_elem_t
*elem);
547
int
snd_hctl_elem_info
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_info_t
* info);
548
int
snd_hctl_elem_read
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_value_t
* value);
549
int
snd_hctl_elem_write
(
snd_hctl_elem_t
*elem,
snd_ctl_elem_value_t
* value);
550
int
snd_hctl_elem_tlv_read
(
snd_hctl_elem_t
*elem,
unsigned
int
*tlv,
unsigned
int
tlv_size);
551
int
snd_hctl_elem_tlv_write
(
snd_hctl_elem_t
*elem,
const
unsigned
int
*tlv);
552
int
snd_hctl_elem_tlv_command
(
snd_hctl_elem_t
*elem,
const
unsigned
int
*tlv);
553
554
snd_hctl_t
*
snd_hctl_elem_get_hctl
(
snd_hctl_elem_t
*elem);
555
556
void
snd_hctl_elem_get_id
(
const
snd_hctl_elem_t
*obj,
snd_ctl_elem_id_t
*
ptr
);
557
unsigned
int
snd_hctl_elem_get_numid
(
const
snd_hctl_elem_t
*obj);
558
snd_ctl_elem_iface_t
snd_hctl_elem_get_interface
(
const
snd_hctl_elem_t
*obj);
559
unsigned
int
snd_hctl_elem_get_device
(
const
snd_hctl_elem_t
*obj);
560
unsigned
int
snd_hctl_elem_get_subdevice
(
const
snd_hctl_elem_t
*obj);
561
const
char
*
snd_hctl_elem_get_name
(
const
snd_hctl_elem_t
*obj);
562
unsigned
int
snd_hctl_elem_get_index
(
const
snd_hctl_elem_t
*obj);
563
void
snd_hctl_elem_set_callback
(
snd_hctl_elem_t
*obj,
snd_hctl_elem_callback_t
val);
564
void
*
snd_hctl_elem_get_callback_private
(
const
snd_hctl_elem_t
*obj);
565
void
snd_hctl_elem_set_callback_private
(
snd_hctl_elem_t
*obj,
void
* val);
566
578
int
snd_sctl_build
(
snd_sctl_t
**ctl,
snd_ctl_t
*handle,
snd_config_t
*config,
579
snd_config_t
*private_data,
int
mode);
580
int
snd_sctl_free
(
snd_sctl_t
*handle);
581
int
snd_sctl_install
(
snd_sctl_t
*handle);
582
int
snd_sctl_remove
(
snd_sctl_t
*handle);
583
586
#ifdef __cplusplus
587
}
588
#endif
589
590
#endif
/* __ALSA_CONTROL_H */
Generated on Thu Aug 9 2012 09:29:06 for ALSA project - the C library reference by
1.8.1.2