root/sound/pci/ctxfi/ctmixer.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /**
   3  * Copyright (C) 2008, Creative Technology Ltd. All Rights Reserved.
   4  *
   5  * @File        ctmixer.h
   6  *
   7  * @Brief
   8  * This file contains the definition of the mixer device functions.
   9  *
  10  * @Author      Liu Chun
  11  * @Date        Mar 28 2008
  12  */
  13 
  14 #ifndef CTMIXER_H
  15 #define CTMIXER_H
  16 
  17 #include "ctatc.h"
  18 #include "ctresource.h"
  19 
  20 #define INIT_VOL        0x1c00
  21 
  22 enum 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_PORTS
  38 };
  39 
  40 /* alsa mixer descriptor */
  41 struct 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_SLEEP
  56         int (*resume)(struct ct_mixer *mixer);
  57 #endif
  58 };
  59 
  60 int ct_alsa_mix_create(struct ct_atc *atc,
  61                        enum CTALSADEVS device,
  62                        const char *device_name);
  63 int ct_mixer_create(struct ct_atc *atc, struct ct_mixer **rmixer);
  64 int ct_mixer_destroy(struct ct_mixer *mixer);
  65 
  66 #endif /* CTMIXER_H */

/* [<][>][^][v][top][bottom][index][help] */