#ifndef __USBMIXER_H
#define __USBMIXER_H
#include <sound/info.h>
struct media_mixer_ctl;
struct usbmix_connector_map { … };
struct usb_mixer_interface { … };
#define MAX_CHANNELS …
enum { … };
usb_mixer_elem_dump_func_t;
usb_mixer_elem_resume_func_t;
struct usb_mixer_elem_list { … };
#define for_each_mixer_elem(list, mixer, id) …
#define mixer_elem_list_to_info(list) …
struct usb_mixer_elem_info { … };
int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif);
void snd_usb_mixer_disconnect(struct usb_mixer_interface *mixer);
void snd_usb_mixer_notify_id(struct usb_mixer_interface *mixer, int unitid);
int snd_usb_mixer_set_ctl_value(struct usb_mixer_elem_info *cval,
int request, int validx, int value_set);
int snd_usb_mixer_add_list(struct usb_mixer_elem_list *list,
struct snd_kcontrol *kctl,
bool is_std_info);
#define snd_usb_mixer_add_control(list, kctl) …
void snd_usb_mixer_elem_init_std(struct usb_mixer_elem_list *list,
struct usb_mixer_interface *mixer,
int unitid);
int snd_usb_mixer_vol_tlv(struct snd_kcontrol *kcontrol, int op_flag,
unsigned int size, unsigned int __user *_tlv);
int snd_usb_mixer_suspend(struct usb_mixer_interface *mixer);
int snd_usb_mixer_resume(struct usb_mixer_interface *mixer);
int snd_usb_set_cur_mix_value(struct usb_mixer_elem_info *cval, int channel,
int index, int value);
int snd_usb_get_cur_mix_value(struct usb_mixer_elem_info *cval,
int channel, int index, int *value);
extern void snd_usb_mixer_elem_free(struct snd_kcontrol *kctl);
extern const struct snd_kcontrol_new *snd_usb_feature_unit_ctl;
#endif