164 lines
4.7 KiB
C
164 lines
4.7 KiB
C
/*++
|
|
|
|
|
|
Copyright (c) 1994 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
sb16mix.h
|
|
|
|
Abstract:
|
|
|
|
This include file defines constants and types for
|
|
the Sound blaster 16 specific mixer.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
/*
|
|
** Maximum number of controls and lines. Note we may not use all of
|
|
** them because we may not have midi etc etc
|
|
**
|
|
** NOTE - the order of lines is IMPORTANT.
|
|
*/
|
|
|
|
enum {
|
|
DestLineout = 0, // 0
|
|
DestWaveIn, // 1
|
|
DestVoiceIn, // 2
|
|
DestLineoutSourceAux, // 3
|
|
DestLineoutSourceMidiout, // 4
|
|
DestLineoutSourceMic, // 5
|
|
DestLineoutSourceInternal, // 6
|
|
DestLineoutSourceWaveout, // 7
|
|
DestWaveInSourceAux, // 8
|
|
DestWaveInSourceMidiout, // 9
|
|
DestWaveInSourceMic, // 10
|
|
DestWaveInSourceInternal, // 11
|
|
DestVoiceInSourceAux, // 12
|
|
DestVoiceInSourceMic, // 13
|
|
NumberOfLines
|
|
} MixerLineIds;
|
|
|
|
//***************************************************************************
|
|
// Define some stuff for the muxes
|
|
// NOTE: These are NOT the physical settings for the chip, they will get
|
|
// translated to that later.
|
|
#define MUXINPUT_AUX1 0
|
|
#define MUXINPUT_MIC 1
|
|
|
|
/*
|
|
** Ids for our controls
|
|
*/
|
|
|
|
enum {
|
|
ControlLineoutVolume = 0, // 0
|
|
ControlLineoutMute, // 1
|
|
ControlLineoutMux, // 2
|
|
ControlLineoutBass, // 3
|
|
ControlLineoutTreble, // 4
|
|
ControlLineoutGain, // 5
|
|
|
|
ControlWaveInVolume, // 6
|
|
ControlWaveInMux, // 7
|
|
ControlWaveInPeak, // 8
|
|
|
|
ControlVoiceInVolume, // 9
|
|
ControlVoiceInMux, // 10
|
|
ControlVoiceInPeak, // 11
|
|
|
|
ControlLineoutAuxVolume, // 12
|
|
ControlLineoutAuxMute, // 13
|
|
|
|
ControlLineoutMidioutVolume, // 14
|
|
ControlLineoutMidioutMute, // 15
|
|
|
|
ControlLineoutMicVolume, // 16
|
|
ControlLineoutMicMute, // 17
|
|
ControlLineoutMicAGC, // 18
|
|
|
|
ControlLineoutInternalCDVolume, // 19
|
|
ControlLineoutInternalCDMute, // 20
|
|
|
|
ControlLineoutWaveoutVolume, // 21
|
|
ControlLineoutWaveoutMute, // 22
|
|
ControlLineoutWaveoutPeak, // 23
|
|
|
|
ControlWaveInAuxVolume, // 24
|
|
|
|
ControlWaveInMidioutVolume, // 25
|
|
|
|
ControlWaveInMicVolume, // 26
|
|
ControlWaveInMicAGC, // 27
|
|
|
|
ControlWaveInInternalCDVolume, // 28
|
|
|
|
ControlVoiceInAuxVolume, // 29
|
|
|
|
ControlVoiceInMicVolume, // 30
|
|
ControlVoiceInMicAGC, // 31
|
|
|
|
NumberOfControls
|
|
};
|
|
|
|
/*
|
|
** Data
|
|
*/
|
|
|
|
extern CONST MIXER_DD_LINE_CONFIGURATION_DATA SB16LineInit[];
|
|
extern CONST MIXER_DD_CONTROL_CONFIGURATION_DATA SB16ControlInit[];
|
|
extern CONST MIXER_DD_CONTROL_LISTTEXT SB16TextInit[];
|
|
|
|
BOOLEAN
|
|
SB16MixerOutputFree(
|
|
IN PGLOBAL_DEVICE_INFO pGDI,
|
|
IN ULONG LineId
|
|
);
|
|
|
|
MIXER_CONTROL_ROUTINE SB16SetVolume;
|
|
MIXER_CONTROL_ROUTINE SB16SetTone;
|
|
MIXER_CONTROL_ROUTINE SB16SetMute;
|
|
MIXER_CONTROL_ROUTINE SB16SetAGC;
|
|
MIXER_CONTROL_ROUTINE SB16SetGain;
|
|
MIXER_CONTROL_ROUTINE SB16SetSources;
|
|
VOID SB16SetADCHardware(PGLOBAL_DEVICE_INFO pGDI);
|
|
VOID SB16ResetADCHardware(PGLOBAL_DEVICE_INFO pGDI);
|
|
|
|
/*
|
|
** Mixer registers for SB16
|
|
*/
|
|
|
|
#define DSP_MIX_DATARESETIDX ((UCHAR)(0x00))
|
|
|
|
#define DSP_MIX_MASTERVOLIDX_L ((UCHAR)(0x30))
|
|
#define DSP_MIX_MASTERVOLIDX_R ((UCHAR)(0x31))
|
|
#define DSP_MIX_VOICEVOLIDX_L ((UCHAR)(0x32))
|
|
#define DSP_MIX_VOICEVOLIDX_R ((UCHAR)(0x33))
|
|
#define DSP_MIX_FMVOLIDX_L ((UCHAR)(0x34))
|
|
#define DSP_MIX_FMVOLIDX_R ((UCHAR)(0x35))
|
|
#define DSP_MIX_CDVOLIDX_L ((UCHAR)(0x36))
|
|
#define DSP_MIX_CDVOLIDX_R ((UCHAR)(0x37))
|
|
#define DSP_MIX_LINEVOLIDX_L ((UCHAR)(0x38))
|
|
#define DSP_MIX_LINEVOLIDX_R ((UCHAR)(0x39))
|
|
|
|
#define DSP_MIX_MICVOLIDX ((UCHAR)(0x3A))
|
|
#define DSP_MIX_SPKRVOLIDX ((UCHAR)(0x3B))
|
|
|
|
#define DSP_MIX_OUTMIXIDX ((UCHAR)(0x3C))
|
|
|
|
#define DSP_MIX_ADCMIXIDX_L ((UCHAR)(0x3D))
|
|
#define DSP_MIX_ADCMIXIDX_R ((UCHAR)(0x3E))
|
|
|
|
#define DSP_MIX_INGAINIDX_L ((UCHAR)(0x3F))
|
|
#define DSP_MIX_INGAINIDX_R ((UCHAR)(0x40))
|
|
#define DSP_MIX_OUTGAINIDX_L ((UCHAR)(0x41))
|
|
#define DSP_MIX_OUTGAINIDX_R ((UCHAR)(0x42))
|
|
|
|
#define DSP_MIX_AGCIDX ((UCHAR)(0x43))
|
|
|
|
#define DSP_MIX_TREBLEIDX_L ((UCHAR)(0x44))
|
|
#define DSP_MIX_TREBLEIDX_R ((UCHAR)(0x45))
|
|
#define DSP_MIX_BASSIDX_L ((UCHAR)(0x46))
|
|
#define DSP_MIX_BASSIDX_R ((UCHAR)(0x47))
|