Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
mixer.h
Go to the documentation of this file.
1 #ifndef __USBMIXER_H
2 #define __USBMIXER_H
3 
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 */
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;
20  struct urb *rc_urb;
23 
26 };
27 
28 #define MAX_CHANNELS 16 /* max logical channels */
29 
30 enum {
37 };
38 
41  struct usb_mixer_elem_info *next_id_elem; /* list of controls with same 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;
55 };
56 
57 int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif,
58  int ignore_error);
60 
61 void snd_usb_mixer_notify_id(struct usb_mixer_interface *mixer, int unitid);
62 
64  int request, int validx, int value_set);
67 
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 */