forked from Minki/linux
5765e78e84
Based on 1 normalized pattern(s): this source file is released under gpl v2 license no other versions see the copying file included in the main directory of this source distribution for the license terms and conditions extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 28 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Armijn Hemel <armijn@tjaldur.nl> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.780831265@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
67 lines
1.5 KiB
C
67 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/**
|
|
* Copyright (C) 2008, Creative Technology Ltd. All Rights Reserved.
|
|
*
|
|
* @File ctmixer.h
|
|
*
|
|
* @Brief
|
|
* This file contains the definition of the mixer device functions.
|
|
*
|
|
* @Author Liu Chun
|
|
* @Date Mar 28 2008
|
|
*/
|
|
|
|
#ifndef CTMIXER_H
|
|
#define CTMIXER_H
|
|
|
|
#include "ctatc.h"
|
|
#include "ctresource.h"
|
|
|
|
#define INIT_VOL 0x1c00
|
|
|
|
enum MIXER_PORT_T {
|
|
MIX_WAVE_FRONT,
|
|
MIX_WAVE_REAR,
|
|
MIX_WAVE_CENTLFE,
|
|
MIX_WAVE_SURROUND,
|
|
MIX_SPDIF_OUT,
|
|
MIX_PCMO_FRONT,
|
|
MIX_MIC_IN,
|
|
MIX_LINE_IN,
|
|
MIX_SPDIF_IN,
|
|
MIX_PCMI_FRONT,
|
|
MIX_PCMI_REAR,
|
|
MIX_PCMI_CENTLFE,
|
|
MIX_PCMI_SURROUND,
|
|
|
|
NUM_MIX_PORTS
|
|
};
|
|
|
|
/* alsa mixer descriptor */
|
|
struct ct_mixer {
|
|
struct ct_atc *atc;
|
|
|
|
void **amixers; /* amixer resources for volume control */
|
|
void **sums; /* sum resources for signal collection */
|
|
unsigned int switch_state; /* A bit-map to indicate state of switches */
|
|
|
|
int (*get_output_ports)(struct ct_mixer *mixer, enum MIXER_PORT_T type,
|
|
struct rsc **rleft, struct rsc **rright);
|
|
|
|
int (*set_input_left)(struct ct_mixer *mixer,
|
|
enum MIXER_PORT_T type, struct rsc *rsc);
|
|
int (*set_input_right)(struct ct_mixer *mixer,
|
|
enum MIXER_PORT_T type, struct rsc *rsc);
|
|
#ifdef CONFIG_PM_SLEEP
|
|
int (*resume)(struct ct_mixer *mixer);
|
|
#endif
|
|
};
|
|
|
|
int ct_alsa_mix_create(struct ct_atc *atc,
|
|
enum CTALSADEVS device,
|
|
const char *device_name);
|
|
int ct_mixer_create(struct ct_atc *atc, struct ct_mixer **rmixer);
|
|
int ct_mixer_destroy(struct ct_mixer *mixer);
|
|
|
|
#endif /* CTMIXER_H */
|