linux/sound/usb/mixer.h

/* SPDX-License-Identifier: GPL-2.0 */
#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 {};

/* iterate over mixer element list of the given unit id */
#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 /* __USBMIXER_H */