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