Root/
1 | #ifndef __USBMIXER_H |
2 | #define __USBMIXER_H |
3 | |
4 | struct usb_mixer_interface { |
5 | struct snd_usb_audio *chip; |
6 | struct list_head list; |
7 | unsigned int ignore_ctl_error; |
8 | struct urb *urb; |
9 | /* array[MAX_ID_ELEMS], indexed by unit id */ |
10 | struct usb_mixer_elem_info **id_elems; |
11 | |
12 | /* the usb audio specification version this interface complies to */ |
13 | int protocol; |
14 | |
15 | /* Sound Blaster remote control stuff */ |
16 | const struct rc_config *rc_cfg; |
17 | u32 rc_code; |
18 | wait_queue_head_t rc_waitq; |
19 | struct urb *rc_urb; |
20 | struct usb_ctrlrequest *rc_setup_packet; |
21 | u8 rc_buffer[6]; |
22 | |
23 | u8 audigy2nx_leds[3]; |
24 | u8 xonar_u1_status; |
25 | }; |
26 | |
27 | #define MAX_CHANNELS 16 /* max logical channels */ |
28 | |
29 | enum { |
30 | USB_MIXER_BOOLEAN, |
31 | USB_MIXER_INV_BOOLEAN, |
32 | USB_MIXER_S8, |
33 | USB_MIXER_U8, |
34 | USB_MIXER_S16, |
35 | USB_MIXER_U16, |
36 | }; |
37 | |
38 | struct usb_mixer_elem_info { |
39 | struct usb_mixer_interface *mixer; |
40 | struct usb_mixer_elem_info *next_id_elem; /* list of controls with same id */ |
41 | struct snd_ctl_elem_id *elem_id; |
42 | unsigned int id; |
43 | unsigned int control; /* CS or ICN (high byte) */ |
44 | unsigned int cmask; /* channel mask bitmap: 0 = master */ |
45 | unsigned int ch_readonly; |
46 | unsigned int master_readonly; |
47 | int channels; |
48 | int val_type; |
49 | int min, max, res; |
50 | int dBmin, dBmax; |
51 | int cached; |
52 | int cache_val[MAX_CHANNELS]; |
53 | u8 initialized; |
54 | }; |
55 | |
56 | int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif, |
57 | int ignore_error); |
58 | void snd_usb_mixer_disconnect(struct list_head *p); |
59 | |
60 | void snd_usb_mixer_notify_id(struct usb_mixer_interface *mixer, int unitid); |
61 | |
62 | int snd_usb_mixer_set_ctl_value(struct usb_mixer_elem_info *cval, |
63 | int request, int validx, int value_set); |
64 | void snd_usb_mixer_inactivate(struct usb_mixer_interface *mixer); |
65 | int snd_usb_mixer_activate(struct usb_mixer_interface *mixer); |
66 | |
67 | int snd_usb_mixer_add_control(struct usb_mixer_interface *mixer, |
68 | struct snd_kcontrol *kctl); |
69 | |
70 | #endif /* __USBMIXER_H */ |
71 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9