Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
sound
usb
mixer.h
Go to the documentation of this file.
1
#ifndef __USBMIXER_H
2
#define __USBMIXER_H
3
4
struct
usb_mixer_interface
{
5
struct
snd_usb_audio
*
chip
;
6
struct
usb_host_interface *
hostif
;
7
struct
list_head
list
;
8
unsigned
int
ignore_ctl_error
;
9
struct
urb
*
urb
;
10
/* array[MAX_ID_ELEMS], indexed by unit id */
11
struct
usb_mixer_elem_info
**
id_elems
;
12
13
/* the usb audio specification version this interface complies to */
14
int
protocol
;
15
16
/* Sound Blaster remote control stuff */
17
const
struct
rc_config *
rc_cfg
;
18
u32
rc_code
;
19
wait_queue_head_t
rc_waitq
;
20
struct
urb
*
rc_urb
;
21
struct
usb_ctrlrequest
*
rc_setup_packet
;
22
u8
rc_buffer
[6];
23
24
u8
audigy2nx_leds
[3];
25
u8
xonar_u1_status
;
26
};
27
28
#define MAX_CHANNELS 16
/* max logical channels */
29
30
enum
{
31
USB_MIXER_BOOLEAN
,
32
USB_MIXER_INV_BOOLEAN
,
33
USB_MIXER_S8
,
34
USB_MIXER_U8
,
35
USB_MIXER_S16
,
36
USB_MIXER_U16
,
37
};
38
39
struct
usb_mixer_elem_info
{
40
struct
usb_mixer_interface
*
mixer
;
41
struct
usb_mixer_elem_info
*
next_id_elem
;
/* list of controls with same id */
42
struct
snd_ctl_elem_id
*
elem_id
;
43
unsigned
int
id
;
44
unsigned
int
control
;
/* CS or ICN (high byte) */
45
unsigned
int
cmask
;
/* channel mask bitmap: 0 = master */
46
unsigned
int
ch_readonly
;
47
unsigned
int
master_readonly
;
48
int
channels
;
49
int
val_type
;
50
int
min
,
max
,
res
;
51
int
dBmin
,
dBmax
;
52
int
cached
;
53
int
cache_val
[
MAX_CHANNELS
];
54
u8
initialized
;
55
};
56
57
int
snd_usb_create_mixer
(
struct
snd_usb_audio
*
chip
,
int
ctrlif,
58
int
ignore_error);
59
void
snd_usb_mixer_disconnect
(
struct
list_head
*
p
);
60
61
void
snd_usb_mixer_notify_id
(
struct
usb_mixer_interface
*mixer,
int
unitid
);
62
63
int
snd_usb_mixer_set_ctl_value
(
struct
usb_mixer_elem_info
*cval,
64
int
request
,
int
validx
,
int
value_set);
65
void
snd_usb_mixer_inactivate
(
struct
usb_mixer_interface
*mixer);
66
int
snd_usb_mixer_activate
(
struct
usb_mixer_interface
*mixer);
67
68
int
snd_usb_mixer_add_control
(
struct
usb_mixer_interface
*mixer,
69
struct
snd_kcontrol
*kctl);
70
71
int
snd_usb_mixer_vol_tlv
(
struct
snd_kcontrol
*kcontrol,
int
op_flag,
72
unsigned
int
size
,
unsigned
int
__user *_tlv);
73
74
#endif
/* __USBMIXER_H */
Generated on Thu Jan 10 2013 13:49:46 for Linux Kernel by
1.8.2