brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · e812f6c Raw
67 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (C) 2008, Creative Technology Ltd. All Rights Reserved.4 *5 * @File	ctmixer.h6 *7 * @Brief8 * This file contains the definition of the mixer device functions.9 *10 * @Author	Liu Chun11 * @Date 	Mar 28 200812 */13 14#ifndef CTMIXER_H15#define CTMIXER_H16 17#include "ctatc.h"18#include "ctresource.h"19 20#define INIT_VOL	0x1c0021 22enum MIXER_PORT_T {23	MIX_WAVE_FRONT,24	MIX_WAVE_REAR,25	MIX_WAVE_CENTLFE,26	MIX_WAVE_SURROUND,27	MIX_SPDIF_OUT,28	MIX_PCMO_FRONT,29	MIX_MIC_IN,30	MIX_LINE_IN,31	MIX_SPDIF_IN,32	MIX_PCMI_FRONT,33	MIX_PCMI_REAR,34	MIX_PCMI_CENTLFE,35	MIX_PCMI_SURROUND,36 37	NUM_MIX_PORTS38};39 40/* alsa mixer descriptor */41struct ct_mixer {42	struct ct_atc *atc;43 44	void **amixers;		/* amixer resources for volume control */45	void **sums;		/* sum resources for signal collection */46	unsigned int switch_state; /* A bit-map to indicate state of switches */47 48	int (*get_output_ports)(struct ct_mixer *mixer, enum MIXER_PORT_T type,49				  struct rsc **rleft, struct rsc **rright);50 51	int (*set_input_left)(struct ct_mixer *mixer,52			      enum MIXER_PORT_T type, struct rsc *rsc);53	int (*set_input_right)(struct ct_mixer *mixer,54			       enum MIXER_PORT_T type, struct rsc *rsc);55#ifdef CONFIG_PM_SLEEP56	int (*resume)(struct ct_mixer *mixer);57#endif58};59 60int ct_alsa_mix_create(struct ct_atc *atc,61		       enum CTALSADEVS device,62		       const char *device_name);63int ct_mixer_create(struct ct_atc *atc, struct ct_mixer **rmixer);64int ct_mixer_destroy(struct ct_mixer *mixer);65 66#endif /* CTMIXER_H */67