583 lines
16 KiB
C
583 lines
16 KiB
C
/***************************************************************************
|
|
*
|
|
* Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: dsfxparm.h
|
|
* Content: DirectSound effect parameters.
|
|
//@@BEGIN_MSINTERNAL
|
|
* History:
|
|
* Date By Reason
|
|
* ==== == ======
|
|
* 01/01/00 dereks Created.
|
|
//@@END_MSINTERNAL
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifndef __DSFXPARM_H__
|
|
#define __DSFXPARM_H__
|
|
|
|
//
|
|
// data structs describing effect state parameters
|
|
// The generated header from xgpimage will contain these for each
|
|
// effect in the image and all of their parameters
|
|
//
|
|
|
|
#define DSFX_PARAM_TYPE_INTEGER 0x1
|
|
#define DSFX_PARAM_TYPE_FLOAT 0x2
|
|
|
|
typedef struct _FX_PARAM_DESCRIPTION {
|
|
|
|
BYTE ParameterName[255];
|
|
BYTE ParameterDesc[255];
|
|
BYTE UnitsName[64];
|
|
DWORD dwOffset;
|
|
DWORD dwDefaultValue;
|
|
DWORD dwParameterType;
|
|
DWORD dwParameterMin;
|
|
DWORD dwParameterMax;
|
|
BOOL bIsAtomic;
|
|
|
|
} FX_PARAM_DESCRIPTION, *PFX_PARAM_DESCRIPTION;
|
|
|
|
|
|
typedef struct _FX_STATE_PARAMETERS {
|
|
|
|
BYTE EffectName[255];
|
|
DWORD dwNumParams;
|
|
FX_PARAM_DESCRIPTION aParamDescriptions[1];
|
|
|
|
} FX_STATE_PARAMETERS, *PFX_STATE_PARAMETERS;
|
|
|
|
//
|
|
// State flags
|
|
//
|
|
|
|
#define DSFX_STATE_INITIALIZED 0x00000001
|
|
#define DSFX_STATE_GLOBAL 0x00000002
|
|
#define DSFX_STATE_UPDATE 0x00000004
|
|
|
|
//
|
|
// Amplitude modulation (mono)
|
|
//
|
|
|
|
typedef struct _DSFX_AMPMOD_MONO_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[2];
|
|
DWORD dwOutMixbinPtrs[1];
|
|
} DSFX_AMPMOD_MONO_STATE, *LPDSFX_AMPMOD_MONO_STATE;
|
|
|
|
typedef const DSFX_AMPMOD_MONO_STATE *LPCDSFX_AMPMOD_MONO_STATE;
|
|
|
|
typedef struct _DSFX_AMPMOD_MONO_PARAMS
|
|
{
|
|
DSFX_AMPMOD_MONO_STATE State;
|
|
} DSFX_AMPMOD_MONO_PARAMS, *LPDSFX_AMPMOD_MONO_PARAMS;
|
|
|
|
typedef const DSFX_AMPMOD_MONO_PARAMS *LPCDSFX_AMPMOD_MONO_PARAMS;
|
|
|
|
//
|
|
// Amplitude modulation (stereo)
|
|
//
|
|
|
|
typedef struct _DSFX_AMPMOD_STEREO_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[3];
|
|
DWORD dwOutMixbinPtrs[2];
|
|
} DSFX_AMPMOD_STEREO_STATE, *LPDSFX_AMPMOD_STEREO_STATE;
|
|
|
|
typedef const DSFX_AMPMOD_STEREO_STATE *LPCDSFX_AMPMOD_STEREO_STATE;
|
|
|
|
typedef struct _DSFX_AMPMOD_STEREO_PARAMS
|
|
{
|
|
DSFX_AMPMOD_STEREO_STATE State;
|
|
} DSFX_AMPMOD_STEREO_PARAMS, *LPDSFX_AMPMOD_STEREO_PARAMS;
|
|
|
|
typedef const DSFX_AMPMOD_STEREO_PARAMS *LPCDSFX_AMPMOD_STEREO_PARAMS;
|
|
|
|
//
|
|
// Chorus (mono)
|
|
//
|
|
|
|
typedef struct _DSFX_CHORUS_MONO_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[2];
|
|
DWORD dwOutMixbinPtrs[1];
|
|
} DSFX_CHORUS_MONO_STATE, *LPDSFX_CHORUS_MONO_STATE;
|
|
|
|
typedef const DSFX_CHORUS_MONO_STATE *LPCDSFX_CHORUS_MONO_STATE;
|
|
|
|
typedef struct _DSFX_CHORUS_MONO_PARAMS
|
|
{
|
|
DSFX_CHORUS_MONO_STATE State;
|
|
DWORD dwGain;
|
|
DWORD dwModScale;
|
|
} DSFX_CHORUS_MONO_PARAMS, *LPDSFX_CHORUS_MONO_PARAMS;
|
|
|
|
typedef const DSFX_CHORUS_MONO_PARAMS *LPCDSFX_CHORUS_MONO_PARAMS;
|
|
|
|
//
|
|
// Chorus (stereo)
|
|
//
|
|
|
|
typedef struct _DSFX_CHORUS_STEREO_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[3];
|
|
DWORD dwOutMixbinPtrs[2];
|
|
} DSFX_CHORUS_STEREO_STATE, *LPDSFX_CHORUS_STEREO_STATE;
|
|
|
|
typedef const DSFX_CHORUS_STEREO_STATE *LPCDSFX_CHORUS_STEREO_STATE;
|
|
|
|
typedef struct _DSFX_CHORUS_STEREO_PARAMS
|
|
{
|
|
DSFX_CHORUS_STEREO_STATE State;
|
|
DWORD dwGain;
|
|
DWORD dwModScale;
|
|
} DSFX_CHORUS_STEREO_PARAMS, *LPDSFX_CHORUS_STEREO_PARAMS;
|
|
|
|
typedef const DSFX_CHORUS_STEREO_PARAMS *LPCDSFX_CHORUS_STEREO_PARAMS;
|
|
//@@BEGIN_MSINTERNAL
|
|
|
|
//
|
|
// Crosstalk cancellation
|
|
//
|
|
|
|
typedef struct _DSFX_CROSSTALK_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[4];
|
|
DWORD dwOutMixbinPtrs[4];
|
|
} DSFX_CROSSTALK_STATE, *LPDSFX_CROSSTALK_STATE;
|
|
|
|
typedef const DSFX_CROSSTALK_STATE *LPCDSFX_CROSSTALK_STATE;
|
|
|
|
typedef struct _DSFX_CROSSTALK_PARAMS
|
|
{
|
|
DSFX_CROSSTALK_STATE State;
|
|
} DSFX_CROSSTALK_PARAMS, *LPDSFX_CROSSTALK_PARAMS;
|
|
|
|
typedef const DSFX_CROSSTALK_PARAMS *LPCDSFX_CROSSTALK_PARAMS;
|
|
//@@END_MSINTERNAL
|
|
|
|
//
|
|
// Distortion
|
|
//
|
|
|
|
typedef struct _DSFX_DISTORTION_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[1];
|
|
DWORD dwOutMixbinPtrs[1];
|
|
} DSFX_DISTORTION_STATE, *LPDSFX_DISTORTION_STATE;
|
|
|
|
typedef const DSFX_DISTORTION_STATE *LPCDSFX_DISTORTION_STATE;
|
|
|
|
typedef struct _DSFX_DISTORTION_PARAMS
|
|
{
|
|
DSFX_DISTORTION_STATE State;
|
|
DWORD dwGain;
|
|
DWORD dwPreFilterB0;
|
|
DWORD dwPreFilterB1;
|
|
DWORD dwPreFilterB2;
|
|
DWORD dwPreFilterA1;
|
|
DWORD dwPreFilterA2;
|
|
DWORD dwPostFilterB0;
|
|
DWORD dwPostFilterB1;
|
|
DWORD dwPostFilterB2;
|
|
DWORD dwPostFilterA1;
|
|
DWORD dwPostFilterA2;
|
|
} DSFX_DISTORTION_PARAMS, *LPDSFX_DISTORTION_PARAMS;
|
|
|
|
typedef const DSFX_DISTORTION_PARAMS *LPCDSFX_DISTORTION_PARAMS;
|
|
|
|
//
|
|
// Echo (mono)
|
|
//
|
|
|
|
typedef struct _DSFX_ECHO_MONO_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[1];
|
|
DWORD dwOutMixbinPtrs[1];
|
|
} DSFX_ECHO_MONO_STATE, *LPDSFX_ECHO_MONO_STATE;
|
|
|
|
typedef const DSFX_ECHO_MONO_STATE *LPCDSFX_ECHO_MONO_STATE;
|
|
|
|
typedef struct _DSFX_ECHO_MONO_PARAMS
|
|
{
|
|
DSFX_ECHO_MONO_STATE State;
|
|
DWORD dwGain;
|
|
} DSFX_ECHO_MONO_PARAMS, *LPDSFX_ECHO_MONO_PARAMS;
|
|
|
|
typedef const DSFX_ECHO_MONO_PARAMS *LPCDSFX_ECHO_MONO_PARAMS;
|
|
|
|
//
|
|
// Echo (stereo)
|
|
//
|
|
|
|
typedef struct _DSFX_ECHO_STEREO_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[2];
|
|
DWORD dwOutMixbinPtrs[2];
|
|
} DSFX_ECHO_STEREO_STATE, *LPDSFX_ECHO_STEREO_STATE;
|
|
|
|
typedef const DSFX_ECHO_STEREO_STATE *LPCDSFX_ECHO_STEREO_STATE;
|
|
|
|
typedef struct _DSFX_ECHO_STEREO_PARAMS
|
|
{
|
|
DSFX_ECHO_STEREO_STATE State;
|
|
DWORD dwGain;
|
|
} DSFX_ECHO_STEREO_PARAMS, *LPDSFX_ECHO_STEREO_PARAMS;
|
|
|
|
typedef const DSFX_ECHO_STEREO_PARAMS *LPCDSFX_ECHO_STEREO_PARAMS;
|
|
|
|
//
|
|
// Flange (mono)
|
|
//
|
|
|
|
typedef struct _DSFX_FLANGE_MONO_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[2];
|
|
DWORD dwOutMixbinPtrs[1];
|
|
} DSFX_FLANGE_MONO_STATE, *LPDSFX_FLANGE_MONO_STATE;
|
|
|
|
typedef const DSFX_FLANGE_MONO_STATE *LPCDSFX_FLANGE_MONO_STATE;
|
|
|
|
typedef struct _DSFX_FLANGE_MONO_PARAMS
|
|
{
|
|
DSFX_FLANGE_MONO_STATE State;
|
|
DWORD dwFeedback;
|
|
DWORD dwModScale;
|
|
} DSFX_FLANGE_MONO_PARAMS, *LPDSFX_FLANGE_MONO_PARAMS;
|
|
|
|
typedef const DSFX_FLANGE_MONO_PARAMS *LPCDSFX_FLANGE_MONO_PARAMS;
|
|
|
|
//
|
|
// Flange (stereo)
|
|
//
|
|
|
|
typedef struct _DSFX_FLANGE_STEREO_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[3];
|
|
DWORD dwOutMixbinPtrs[2];
|
|
} DSFX_FLANGE_STEREO_STATE, *LPDSFX_FLANGE_STEREO_STATE;
|
|
|
|
typedef const DSFX_FLANGE_STEREO_STATE *LPCDSFX_FLANGE_STEREO_STATE;
|
|
|
|
typedef struct _DSFX_FLANGE_STEREO_PARAMS
|
|
{
|
|
DSFX_FLANGE_STEREO_STATE State;
|
|
DWORD dwFeedback;
|
|
DWORD dwModScale;
|
|
} DSFX_FLANGE_STEREO_PARAMS, *LPDSFX_FLANGE_STEREO_PARAMS;
|
|
|
|
typedef const DSFX_FLANGE_STEREO_PARAMS *LPCDSFX_FLANGE_STEREO_PARAMS;
|
|
|
|
//
|
|
// IIR
|
|
//
|
|
|
|
typedef struct _DSFX_IIR_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[1];
|
|
DWORD dwOutMixbinPtrs[1];
|
|
} DSFX_IIR_STATE, *LPDSFX_IIR_STATE;
|
|
|
|
typedef const DSFX_IIR_STATE *LPCDSFX_IIR_STATE;
|
|
|
|
typedef struct _DSFX_IIR_PARAMS
|
|
{
|
|
DSFX_IIR_STATE State;
|
|
DWORD dwDelayLength;
|
|
DWORD dwGain;
|
|
DWORD dwType;
|
|
} DSFX_IIR_PARAMS, *LPDSFX_IIR_PARAMS;
|
|
|
|
typedef const DSFX_IIR_PARAMS *LPCDSFX_IIR_PARAMS;
|
|
|
|
//
|
|
// Second-order IIR
|
|
//
|
|
|
|
typedef struct _DSFX_IIR2_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[1];
|
|
DWORD dwOutMixbinPtrs[1];
|
|
} DSFX_IIR2_STATE, *LPDSFX_IIR2_STATE;
|
|
|
|
typedef const DSFX_IIR2_STATE *LPCDSFX_IIR2_STATE;
|
|
|
|
typedef struct _DSFX_IIR2_PARAMS
|
|
{
|
|
DSFX_IIR2_STATE State;
|
|
DWORD dwFilterB0;
|
|
DWORD dwFilterB1;
|
|
DWORD dwFilterB2;
|
|
DWORD dwFilterA1;
|
|
DWORD dwFilterA2;
|
|
} DSFX_IIR2_PARAMS, *LPDSFX_IIR2_PARAMS;
|
|
|
|
typedef const DSFX_IIR2_PARAMS *LPCDSFX_IIR2_PARAMS;
|
|
|
|
//
|
|
// Oscillator
|
|
//
|
|
|
|
typedef struct _DSFX_OSCILLATOR_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwOutMixbinPtrs[4];
|
|
} DSFX_OSCILLATOR_STATE, *LPDSFX_OSCILLATOR_STATE;
|
|
|
|
typedef const DSFX_OSCILLATOR_STATE *LPCDSFX_OSCILLATOR_STATE;
|
|
|
|
//@@BEGIN_MSINTERNAL
|
|
// the struct below is used for the IIR based oscillator
|
|
// right now we are using the table based oscillator
|
|
/*
|
|
typedef struct _DSFX_OSCILLATOR_PARAMS
|
|
{
|
|
DSFX_OSCILLATOR_STATE State;
|
|
DWORD dwOscillator_H;
|
|
DWORD dwOscillator_Y1;
|
|
DWORD dwOscillator_Y2;
|
|
} DSFX_OSCILLATOR_PARAMS, *LPDSFX_OSCILLATOR_PARAMS;
|
|
*/
|
|
//@@END_MSINTERNAL
|
|
|
|
typedef struct _DSFX_OSCILLATOR_PARAMS
|
|
{
|
|
DSFX_OSCILLATOR_STATE State;
|
|
DWORD dwNumOutputs;
|
|
DWORD adwFrequency[4];
|
|
} DSFX_OSCILLATOR_PARAMS, *LPDSFX_OSCILLATOR_PARAMS;
|
|
|
|
typedef const DSFX_OSCILLATOR_PARAMS *LPCDSFX_OSCILLATOR_PARAMS;
|
|
|
|
//
|
|
// I3DL2 reverb
|
|
//
|
|
|
|
typedef struct _DSFX_I3DL2REVERB_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[2];
|
|
DWORD dwOutMixbinPtrs[35];
|
|
} DSFX_I3DL2REVERB_STATE, *LPDSFX_I3DL2REVERB_STATE;
|
|
|
|
typedef const DSFX_I3DL2REVERB_STATE *LPCDSFX_I3DL2REVERB_STATE;
|
|
|
|
typedef struct _DSFX_I3DL2REVERB_DELAYLINE
|
|
{
|
|
DWORD dwBase;
|
|
DWORD dwLength;
|
|
} DSFX_I3DL2REVERB_DELAYLINE, *LPDSFX_I3DL2REVERB_DELAYLINE;
|
|
|
|
typedef const DSFX_I3DL2REVERB_DELAYLINE *LPCDSFX_I3DL2REVERB_DELAYLINE;
|
|
|
|
typedef struct _DSFX_I3DL2REVERB_IIR
|
|
{
|
|
DWORD dwDelay;
|
|
DWORD dwCoefficients[2];
|
|
} DSFX_I3DL2REVERB_IIR, *LPDSFX_I3DL2REVERB_IIR;
|
|
|
|
typedef const DSFX_I3DL2REVERB_IIR *LPCDSFX_I3DL2REVERB_IIR;
|
|
|
|
typedef struct _DSFX_I3DL2REVERB_PARAMS
|
|
{
|
|
DSFX_I3DL2REVERB_STATE State;
|
|
DSFX_I3DL2REVERB_DELAYLINE DelayLines[14];
|
|
DWORD dwReflectionsInputDelay[5];
|
|
DWORD dwShortReverbInputDelay;
|
|
DWORD dwLongReverbInputDelay[8];
|
|
DWORD dwReflectionsFeedbackDelay[4];
|
|
DWORD dwLongReverbFeedbackDelay;
|
|
DWORD dwShortReverbInputGain[8];
|
|
DWORD dwLongReverbInputGain;
|
|
DWORD dwLongReverbCrossfeedGain;
|
|
DWORD dwReflectionsOutputGain[4];
|
|
DWORD dwShortReverbOutputGain;
|
|
DWORD dwLongReverbOutputGain;
|
|
DWORD dwChannelCount;
|
|
DSFX_I3DL2REVERB_IIR IIR[10];
|
|
} DSFX_I3DL2REVERB_PARAMS, *LPDSFX_I3DL2REVERB_PARAMS;
|
|
|
|
typedef const DSFX_I3DL2REVERB_PARAMS *LPCDSFX_I3DL2REVERB_PARAMS;
|
|
|
|
//
|
|
// Simple reverb
|
|
//
|
|
|
|
typedef struct _DSFX_MINIREVERB_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[1];
|
|
DWORD dwOutMixbinPtrs[12];
|
|
} DSFX_MINIREVERB_STATE, *LPDSFX_MINIREVERB_STATE;
|
|
|
|
typedef const DSFX_MINIREVERB_STATE *LPCDSFX_MINIREVERB_STATE;
|
|
|
|
typedef struct _DSFX_MINIREVERB_PARAMS
|
|
{
|
|
DSFX_MINIREVERB_STATE State;
|
|
DWORD dwDelayLineLengths[8];
|
|
DWORD dwReflectionTaps[8];
|
|
DWORD dwReflectionGains[8];
|
|
DWORD dwInputIIRCoefficients[2];
|
|
DWORD dwInputIIRDelay;
|
|
DWORD dwOutputIIRCoefficients[2];
|
|
DWORD dwOutputIIRDelay;
|
|
} DSFX_MINIREVERB_PARAMS, *LPDSFX_MINIREVERB_PARAMS;
|
|
|
|
typedef const DSFX_MINIREVERB_PARAMS *LPCDSFX_MINIREVERB_PARAMS;
|
|
|
|
//
|
|
// RMS peak meter
|
|
//
|
|
|
|
typedef struct _DSFX_RMS_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[6];
|
|
} DSFX_RMS_STATE, *LPDSFX_RMS_STATE;
|
|
|
|
typedef const DSFX_RMS_STATE *LPCDSFX_RMS_STATE;
|
|
|
|
typedef struct _DSFX_RMS_PARAMS
|
|
{
|
|
DSFX_RMS_STATE State;
|
|
DWORD dwNumMixBins;
|
|
DWORD dwRMSValues[6];
|
|
DWORD dwPeakValues[6];
|
|
} DSFX_RMS_PARAMS, *LPDSFX_RMS_PARAMS;
|
|
|
|
typedef const DSFX_RMS_PARAMS *LPCDSFX_RMS_PARAMS;
|
|
|
|
//
|
|
// Splitter
|
|
//
|
|
|
|
typedef struct _DSFX_SPLITTER_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[1];
|
|
DWORD dwOutMixbinPtrs[8];
|
|
} DSFX_SPLITTER_STATE, *LPDSFX_SPLITTER_STATE;
|
|
|
|
typedef const DSFX_SPLITTER_STATE *LPCDSFX_SPLITTER_STATE;
|
|
|
|
typedef struct _DSFX_SPLITTER_PARAMS
|
|
{
|
|
DSFX_SPLITTER_STATE State;
|
|
DWORD dwNumOutputs;
|
|
DWORD dwGains[8];
|
|
} DSFX_SPLITTER_PARAMS, *LPDSFX_SPLITTER_PARAMS;
|
|
|
|
typedef const DSFX_SPLITTER_PARAMS *LPCDSFX_SPLITTER_PARAMS;
|
|
|
|
//
|
|
// Sample Rate Converter
|
|
//
|
|
|
|
typedef struct _DSFX_SAMPLE_RATE_CONVERTER_STATE
|
|
{
|
|
DWORD dwScratchOffset;
|
|
DWORD dwScratchLength;
|
|
DWORD dwYMemoryOffset;
|
|
DWORD dwYMemoryLength;
|
|
DWORD dwFlags;
|
|
DWORD dwInMixbinPtrs[1];
|
|
DWORD dwOutMixbinPtrs[1];
|
|
} DSFX_SAMPLE_RATE_CONVERTER_STATE, *LPDSFX_SAMPLE_RATE_CONVERTER_STATE;
|
|
|
|
typedef const DSFX_SPLITTER_STATE *LPCDSFX_SPLITTER_STATE;
|
|
|
|
typedef struct _DSFX_SAMPLE_RATE_CONVERTER_PARAMS
|
|
{
|
|
DSFX_SAMPLE_RATE_CONVERTER_STATE State;
|
|
DWORD dwConversionRatio;
|
|
DWORD dwReserved[4];
|
|
DWORD dwScratchSampleOffset;
|
|
} DSFX_SAMPLE_RATE_CONVERTER_PARAMS, *LPDSFX_SAMPLE_RATE_CONVERTER_PARAMS;
|
|
|
|
typedef const DSFX_SAMPLE_RATE_CONVERTER_PARAMS *LPCDSFX_SAMPLE_RATE_CONVERTER_PARAMS;
|
|
|
|
|
|
#endif // __DSFXPARM_H__
|