2020-09-30 17:12:29 +02:00

128 lines
3.3 KiB
C

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
sbpromix.h
Abstract:
This include file defines constants and types for
the Sound blaster Pro 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
DestLineoutSourceInternal, // 5
DestLineoutSourceWaveout, // 6
DestWaveInSourceAux, // 7
DestWaveInSourceMic, // 8
DestWaveInSourceInternal, // 9
DestVoiceInSourceAux, // 10
DestVoiceInSourceMic, // 11
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
ControlWaveInMux, // 2
ControlVoiceInMux, // 3
ControlLineoutAuxVolume, // 4
ControlLineoutAuxMute, // 5
ControlLineoutMidioutVolume, // 6
ControlLineoutMidioutMute, // 7
ControlLineoutInternalCDVolume, // 8
ControlLineoutInternalCDMute, // 9
ControlLineoutWaveoutVolume, // 10
ControlLineoutWaveoutMute, // 11
ControlLineoutWaveoutPeak, // 12
ControlWaveInAuxVolume, // 13
ControlWaveInAuxPeak, // 14
ControlWaveInMicPeak, // 15
ControlWaveInInternalCDVolume, // 16
ControlWaveInInternalCDPeak, // 17
ControlVoiceInAuxVolume, // 18
ControlVoiceInAuxPeak, // 19
ControlVoiceInMicPeak, // 20
NumberOfControls
};
/*
** Data
*/
extern CONST MIXER_DD_LINE_CONFIGURATION_DATA SBPROLineInit[];
extern CONST MIXER_DD_CONTROL_CONFIGURATION_DATA SBPROControlInit[];
extern CONST MIXER_DD_CONTROL_LISTTEXT SBPROTextInit[];
BOOLEAN
SBPROMixerOutputFree(
IN PGLOBAL_DEVICE_INFO pGDI,
IN ULONG LineId
);
MIXER_CONTROL_ROUTINE SBPROSetVolume;
MIXER_CONTROL_ROUTINE SBPROSetSources;
MIXER_CONTROL_ROUTINE SBPROSetMute;
VOID SBPROSetADCHardware(PGLOBAL_DEVICE_INFO pGDI);
VOID SBPROResetADCHardware(PGLOBAL_DEVICE_INFO pGDI);
/*
** Mixer registers for SBPRO
*/
#define DSP_MIX_DATARESETIDX ((UCHAR)(0x00))
#define DSP_MIX_VOICEVOLIDX ((UCHAR)(0x04))
#define DSP_MIX_MICMIXIDX ((UCHAR)(0x0A))
#define DSP_MIX_ADCINPIDX ((UCHAR)(0x0C))
#define DSP_MIX_VSTCIDX ((UCHAR)(0x0E))
#define DSP_MIX_MSTRVOLIDX ((UCHAR)(0x22))
#define DSP_MIX_FMVOLIDX ((UCHAR)(0x26))
#define DSP_MIX_CDVOLIDX ((UCHAR)(0x28))
#define DSP_MIX_LINEVOLIDX ((UCHAR)(0x2E))
#define DSP_SOURCE_CDAUDIO ((UCHAR)(0x02))
#define DSP_SOURCE_MIC ((UCHAR)(0x04))
#define DSP_SOURCE_LINEIN ((UCHAR)(0x06))