128 lines
3.3 KiB
C
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))
|
|
|