diff --git a/3rdparty/win81sdk/Include/um/xaudio2.h b/3rdparty/win81sdk/Include/um/xaudio2.h new file mode 100644 index 00000000000..e44c6a0f163 --- /dev/null +++ b/3rdparty/win81sdk/Include/um/xaudio2.h @@ -0,0 +1,1196 @@ +/************************************************************************** + * + * Copyright (c) Microsoft Corporation. All rights reserved. + * + * File: xaudio2.h + * Content: Declarations for the XAudio2 game audio API. + * + **************************************************************************/ + +#ifdef _MSC_VER +#pragma once +#endif + +#ifndef __XAUDIO2_INCLUDED__ +#define __XAUDIO2_INCLUDED__ + +#include + +#if(_WIN32_WINNT < _WIN32_WINNT_WIN8) +#error "This version of XAudio2 is available only in Windows 8 or later. Use the XAudio2 headers and libraries from the DirectX SDK with applications that target Windows 7 and earlier versions." +#endif // (_WIN32_WINNT < _WIN32_WINNT_WIN8) + +#include + +#pragma region Application Family +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + +// Current name of the DLL shipped in the same SDK as this header. +// The name reflects the current version +#define XAUDIO2_DLL_A "xaudio2_8.dll" +#define XAUDIO2_DLL_W L"xaudio2_8.dll" + +#ifdef UNICODE + #define XAUDIO2_DLL XAUDIO2_DLL_W +#else + #define XAUDIO2_DLL XAUDIO2_DLL_A +#endif + + +/************************************************************************** + * + * XAudio2 COM object class and interface IDs. + * + **************************************************************************/ + +#include + +// XAudio 2.8 +interface __declspec(uuid("60d8dac8-5aa1-4e8e-b597-2f5e2883d484")) IXAudio2; + +// Ignore the rest of this header if only the GUID definitions were requested +#ifndef GUID_DEFS_ONLY + +#include // Windows COM declarations + +#include // Markers for documenting API semantics +#include // Basic data types and constants for audio work +#include // For AUDIO_STREAM_CATEGORY + +// All structures defined in this file use tight field packing +#pragma pack(push, 1) + + +/************************************************************************** + * + * XAudio2 constants, flags and error codes. + * + **************************************************************************/ + +// Numeric boundary values +#define XAUDIO2_MAX_BUFFER_BYTES 0x80000000 // Maximum bytes allowed in a source buffer +#define XAUDIO2_MAX_QUEUED_BUFFERS 64 // Maximum buffers allowed in a voice queue +#define XAUDIO2_MAX_BUFFERS_SYSTEM 2 // Maximum buffers allowed for system threads (Xbox 360 only) +#define XAUDIO2_MAX_AUDIO_CHANNELS 64 // Maximum channels in an audio stream +#define XAUDIO2_MIN_SAMPLE_RATE 1000 // Minimum audio sample rate supported +#define XAUDIO2_MAX_SAMPLE_RATE 200000 // Maximum audio sample rate supported +#define XAUDIO2_MAX_VOLUME_LEVEL 16777216.0f // Maximum acceptable volume level (2^24) +#define XAUDIO2_MIN_FREQ_RATIO (1/1024.0f) // Minimum SetFrequencyRatio argument +#define XAUDIO2_MAX_FREQ_RATIO 1024.0f // Maximum MaxFrequencyRatio argument +#define XAUDIO2_DEFAULT_FREQ_RATIO 2.0f // Default MaxFrequencyRatio argument +#define XAUDIO2_MAX_FILTER_ONEOVERQ 1.5f // Maximum XAUDIO2_FILTER_PARAMETERS.OneOverQ +#define XAUDIO2_MAX_FILTER_FREQUENCY 1.0f // Maximum XAUDIO2_FILTER_PARAMETERS.Frequency +#define XAUDIO2_MAX_LOOP_COUNT 254 // Maximum non-infinite XAUDIO2_BUFFER.LoopCount +#define XAUDIO2_MAX_INSTANCES 8 // Maximum simultaneous XAudio2 objects on Xbox 360 + +// For XMA voices on Xbox 360 there is an additional restriction on the MaxFrequencyRatio +// argument and the voice's sample rate: the product of these numbers cannot exceed 600000 +// for one-channel voices or 300000 for voices with more than one channel. +#define XAUDIO2_MAX_RATIO_TIMES_RATE_XMA_MONO 600000 +#define XAUDIO2_MAX_RATIO_TIMES_RATE_XMA_MULTICHANNEL 300000 + +// Numeric values with special meanings +#define XAUDIO2_COMMIT_NOW 0 // Used as an OperationSet argument +#define XAUDIO2_COMMIT_ALL 0 // Used in IXAudio2::CommitChanges +#define XAUDIO2_INVALID_OPSET (UINT32)(-1) // Not allowed for OperationSet arguments +#define XAUDIO2_NO_LOOP_REGION 0 // Used in XAUDIO2_BUFFER.LoopCount +#define XAUDIO2_LOOP_INFINITE 255 // Used in XAUDIO2_BUFFER.LoopCount +#define XAUDIO2_DEFAULT_CHANNELS 0 // Used in CreateMasteringVoice +#define XAUDIO2_DEFAULT_SAMPLERATE 0 // Used in CreateMasteringVoice + +// Flags +#define XAUDIO2_VOICE_NOPITCH 0x0002 // Used in IXAudio2::CreateSourceVoice +#define XAUDIO2_VOICE_NOSRC 0x0004 // Used in IXAudio2::CreateSourceVoice +#define XAUDIO2_VOICE_USEFILTER 0x0008 // Used in IXAudio2::CreateSource/SubmixVoice +#define XAUDIO2_PLAY_TAILS 0x0020 // Used in IXAudio2SourceVoice::Stop +#define XAUDIO2_END_OF_STREAM 0x0040 // Used in XAUDIO2_BUFFER.Flags +#define XAUDIO2_SEND_USEFILTER 0x0080 // Used in XAUDIO2_SEND_DESCRIPTOR.Flags +#define XAUDIO2_VOICE_NOSAMPLESPLAYED 0x0100 // Used in IXAudio2SourceVoice::GetState + +// Default parameters for the built-in filter +#define XAUDIO2_DEFAULT_FILTER_TYPE LowPassFilter +#define XAUDIO2_DEFAULT_FILTER_FREQUENCY XAUDIO2_MAX_FILTER_FREQUENCY +#define XAUDIO2_DEFAULT_FILTER_ONEOVERQ 1.0f + +// Internal XAudio2 constants +#define XAUDIO2_QUANTUM_NUMERATOR 1 // On Windows, XAudio2 processes audio +#define XAUDIO2_QUANTUM_DENOMINATOR 100 // in 10ms chunks (= 1/100 seconds) +#define XAUDIO2_QUANTUM_MS (1000.0f * XAUDIO2_QUANTUM_NUMERATOR / XAUDIO2_QUANTUM_DENOMINATOR) + +// XAudio2 error codes +#define FACILITY_XAUDIO2 0x896 +#define XAUDIO2_E_INVALID_CALL 0x88960001 // An API call or one of its arguments was illegal +#define XAUDIO2_E_XMA_DECODER_ERROR 0x88960002 // The XMA hardware suffered an unrecoverable error +#define XAUDIO2_E_XAPO_CREATION_FAILED 0x88960003 // XAudio2 failed to initialize an XAPO effect +#define XAUDIO2_E_DEVICE_INVALIDATED 0x88960004 // An audio device became unusable (unplugged, etc) + + +/************************************************************************** + * + * Forward declarations for the XAudio2 interfaces. + * + **************************************************************************/ + +#ifdef __cplusplus + #define FWD_DECLARE(x) interface x +#else + #define FWD_DECLARE(x) typedef interface x x +#endif + +FWD_DECLARE(IXAudio2); +FWD_DECLARE(IXAudio2Voice); +FWD_DECLARE(IXAudio2SourceVoice); +FWD_DECLARE(IXAudio2SubmixVoice); +FWD_DECLARE(IXAudio2MasteringVoice); +FWD_DECLARE(IXAudio2EngineCallback); +FWD_DECLARE(IXAudio2VoiceCallback); + + +/************************************************************************** + * + * XAudio2 structures and enumerations. + * + **************************************************************************/ + +// Used in XAudio2Create, specifies which CPU(s) to use. +typedef UINT32 XAUDIO2_PROCESSOR; +#define Processor1 0x00000001 +#define Processor2 0x00000002 +#define Processor3 0x00000004 +#define Processor4 0x00000008 +#define Processor5 0x00000010 +#define Processor6 0x00000020 +#define Processor7 0x00000040 +#define Processor8 0x00000080 +#define Processor9 0x00000100 +#define Processor10 0x00000200 +#define Processor11 0x00000400 +#define Processor12 0x00000800 +#define Processor13 0x00001000 +#define Processor14 0x00002000 +#define Processor15 0x00004000 +#define Processor16 0x00008000 +#define Processor17 0x00010000 +#define Processor18 0x00020000 +#define Processor19 0x00040000 +#define Processor20 0x00080000 +#define Processor21 0x00100000 +#define Processor22 0x00200000 +#define Processor23 0x00400000 +#define Processor24 0x00800000 +#define Processor25 0x01000000 +#define Processor26 0x02000000 +#define Processor27 0x04000000 +#define Processor28 0x08000000 +#define Processor29 0x10000000 +#define Processor30 0x20000000 +#define Processor31 0x40000000 +#define Processor32 0x80000000 +#define XAUDIO2_ANY_PROCESSOR 0xffffffff +#define XAUDIO2_DEFAULT_PROCESSOR Processor1 + +// Returned by IXAudio2Voice::GetVoiceDetails +typedef struct XAUDIO2_VOICE_DETAILS +{ + UINT32 CreationFlags; // Flags the voice was created with. + UINT32 ActiveFlags; // Flags currently active. + UINT32 InputChannels; // Channels in the voice's input audio. + UINT32 InputSampleRate; // Sample rate of the voice's input audio. +} XAUDIO2_VOICE_DETAILS; + +// Used in XAUDIO2_VOICE_SENDS below +typedef struct XAUDIO2_SEND_DESCRIPTOR +{ + UINT32 Flags; // Either 0 or XAUDIO2_SEND_USEFILTER. + IXAudio2Voice* pOutputVoice; // This send's destination voice. +} XAUDIO2_SEND_DESCRIPTOR; + +// Used in the voice creation functions and in IXAudio2Voice::SetOutputVoices +typedef struct XAUDIO2_VOICE_SENDS +{ + UINT32 SendCount; // Number of sends from this voice. + XAUDIO2_SEND_DESCRIPTOR* pSends; // Array of SendCount send descriptors. +} XAUDIO2_VOICE_SENDS; + +// Used in XAUDIO2_EFFECT_CHAIN below +typedef struct XAUDIO2_EFFECT_DESCRIPTOR +{ + IUnknown* pEffect; // Pointer to the effect object's IUnknown interface. + BOOL InitialState; // TRUE if the effect should begin in the enabled state. + UINT32 OutputChannels; // How many output channels the effect should produce. +} XAUDIO2_EFFECT_DESCRIPTOR; + +// Used in the voice creation functions and in IXAudio2Voice::SetEffectChain +typedef struct XAUDIO2_EFFECT_CHAIN +{ + UINT32 EffectCount; // Number of effects in this voice's effect chain. + XAUDIO2_EFFECT_DESCRIPTOR* pEffectDescriptors; // Array of effect descriptors. +} XAUDIO2_EFFECT_CHAIN; + +// Used in XAUDIO2_FILTER_PARAMETERS below +typedef enum XAUDIO2_FILTER_TYPE +{ + LowPassFilter, // Attenuates frequencies above the cutoff frequency (state-variable filter). + BandPassFilter, // Attenuates frequencies outside a given range (state-variable filter). + HighPassFilter, // Attenuates frequencies below the cutoff frequency (state-variable filter). + NotchFilter, // Attenuates frequencies inside a given range (state-variable filter). + LowPassOnePoleFilter, // Attenuates frequencies above the cutoff frequency (one-pole filter, XAUDIO2_FILTER_PARAMETERS.OneOverQ has no effect) + HighPassOnePoleFilter // Attenuates frequencies below the cutoff frequency (one-pole filter, XAUDIO2_FILTER_PARAMETERS.OneOverQ has no effect) +} XAUDIO2_FILTER_TYPE; + +// Used in IXAudio2Voice::Set/GetFilterParameters and Set/GetOutputFilterParameters +typedef struct XAUDIO2_FILTER_PARAMETERS +{ + XAUDIO2_FILTER_TYPE Type; // Filter type. + float Frequency; // Filter coefficient. + // must be >= 0 and <= XAUDIO2_MAX_FILTER_FREQUENCY + // See XAudio2CutoffFrequencyToRadians() for state-variable filter types and + // XAudio2CutoffFrequencyToOnePoleCoefficient() for one-pole filter types. + float OneOverQ; // Reciprocal of the filter's quality factor Q; + // must be > 0 and <= XAUDIO2_MAX_FILTER_ONEOVERQ. + // Has no effect for one-pole filters. +} XAUDIO2_FILTER_PARAMETERS; + +// Used in IXAudio2SourceVoice::SubmitSourceBuffer +typedef struct XAUDIO2_BUFFER +{ + UINT32 Flags; // Either 0 or XAUDIO2_END_OF_STREAM. + UINT32 AudioBytes; // Size of the audio data buffer in bytes. + const BYTE* pAudioData; // Pointer to the audio data buffer. + UINT32 PlayBegin; // First sample in this buffer to be played. + UINT32 PlayLength; // Length of the region to be played in samples, + // or 0 to play the whole buffer. + UINT32 LoopBegin; // First sample of the region to be looped. + UINT32 LoopLength; // Length of the desired loop region in samples, + // or 0 to loop the entire buffer. + UINT32 LoopCount; // Number of times to repeat the loop region, + // or XAUDIO2_LOOP_INFINITE to loop forever. + void* pContext; // Context value to be passed back in callbacks. +} XAUDIO2_BUFFER; + +// Used in IXAudio2SourceVoice::SubmitSourceBuffer when submitting XWMA data. +// NOTE: If an XWMA sound is submitted in more than one buffer, each buffer's +// pDecodedPacketCumulativeBytes[PacketCount-1] value must be subtracted from +// all the entries in the next buffer's pDecodedPacketCumulativeBytes array. +// And whether a sound is submitted in more than one buffer or not, the final +// buffer of the sound should use the XAUDIO2_END_OF_STREAM flag, or else the +// client must call IXAudio2SourceVoice::Discontinuity after submitting it. +typedef struct XAUDIO2_BUFFER_WMA +{ + const UINT32* pDecodedPacketCumulativeBytes; // Decoded packet's cumulative size array. + // Each element is the number of bytes accumulated + // when the corresponding XWMA packet is decoded in + // order. The array must have PacketCount elements. + UINT32 PacketCount; // Number of XWMA packets submitted. Must be >= 1 and + // divide evenly into XAUDIO2_BUFFER.AudioBytes. +} XAUDIO2_BUFFER_WMA; + +// Returned by IXAudio2SourceVoice::GetState +typedef struct XAUDIO2_VOICE_STATE +{ + void* pCurrentBufferContext; // The pContext value provided in the XAUDIO2_BUFFER + // that is currently being processed, or NULL if + // there are no buffers in the queue. + UINT32 BuffersQueued; // Number of buffers currently queued on the voice + // (including the one that is being processed). + UINT64 SamplesPlayed; // Total number of samples produced by the voice since + // it began processing the current audio stream. + // If XAUDIO2_VOICE_NOSAMPLESPLAYED is specified + // in the call to IXAudio2SourceVoice::GetState, + // this member will not be calculated, saving CPU. +} XAUDIO2_VOICE_STATE; + +// Returned by IXAudio2::GetPerformanceData +typedef struct XAUDIO2_PERFORMANCE_DATA +{ + // CPU usage information + UINT64 AudioCyclesSinceLastQuery; // CPU cycles spent on audio processing since the + // last call to StartEngine or GetPerformanceData. + UINT64 TotalCyclesSinceLastQuery; // Total CPU cycles elapsed since the last call + // (only counts the CPU XAudio2 is running on). + UINT32 MinimumCyclesPerQuantum; // Fewest CPU cycles spent processing any one + // audio quantum since the last call. + UINT32 MaximumCyclesPerQuantum; // Most CPU cycles spent processing any one + // audio quantum since the last call. + + // Memory usage information + UINT32 MemoryUsageInBytes; // Total heap space currently in use. + + // Audio latency and glitching information + UINT32 CurrentLatencyInSamples; // Minimum delay from when a sample is read from a + // source buffer to when it reaches the speakers. + UINT32 GlitchesSinceEngineStarted; // Audio dropouts since the engine was started. + + // Data about XAudio2's current workload + UINT32 ActiveSourceVoiceCount; // Source voices currently playing. + UINT32 TotalSourceVoiceCount; // Source voices currently existing. + UINT32 ActiveSubmixVoiceCount; // Submix voices currently playing/existing. + + UINT32 ActiveResamplerCount; // Resample xAPOs currently active. + UINT32 ActiveMatrixMixCount; // MatrixMix xAPOs currently active. + + // Usage of the hardware XMA decoder (Xbox 360 only) + UINT32 ActiveXmaSourceVoices; // Number of source voices decoding XMA data. + UINT32 ActiveXmaStreams; // A voice can use more than one XMA stream. +} XAUDIO2_PERFORMANCE_DATA; + +// Used in IXAudio2::SetDebugConfiguration +typedef struct XAUDIO2_DEBUG_CONFIGURATION +{ + UINT32 TraceMask; // Bitmap of enabled debug message types. + UINT32 BreakMask; // Message types that will break into the debugger. + BOOL LogThreadID; // Whether to log the thread ID with each message. + BOOL LogFileline; // Whether to log the source file and line number. + BOOL LogFunctionName; // Whether to log the function name. + BOOL LogTiming; // Whether to log message timestamps. +} XAUDIO2_DEBUG_CONFIGURATION; + +// Values for the TraceMask and BreakMask bitmaps. Only ERRORS and WARNINGS +// are valid in BreakMask. WARNINGS implies ERRORS, DETAIL implies INFO, and +// FUNC_CALLS implies API_CALLS. By default, TraceMask is ERRORS and WARNINGS +// and all the other settings are zero. +#define XAUDIO2_LOG_ERRORS 0x0001 // For handled errors with serious effects. +#define XAUDIO2_LOG_WARNINGS 0x0002 // For handled errors that may be recoverable. +#define XAUDIO2_LOG_INFO 0x0004 // Informational chit-chat (e.g. state changes). +#define XAUDIO2_LOG_DETAIL 0x0008 // More detailed chit-chat. +#define XAUDIO2_LOG_API_CALLS 0x0010 // Public API function entries and exits. +#define XAUDIO2_LOG_FUNC_CALLS 0x0020 // Internal function entries and exits. +#define XAUDIO2_LOG_TIMING 0x0040 // Delays detected and other timing data. +#define XAUDIO2_LOG_LOCKS 0x0080 // Usage of critical sections and mutexes. +#define XAUDIO2_LOG_MEMORY 0x0100 // Memory heap usage information. +#define XAUDIO2_LOG_STREAMING 0x1000 // Audio streaming information. + + +/************************************************************************** + * + * IXAudio2: Top-level XAudio2 COM interface. + * + **************************************************************************/ + +// Use default arguments if compiling as C++ +#ifdef __cplusplus + #define X2DEFAULT(x) =x +#else + #define X2DEFAULT(x) +#endif + +#undef INTERFACE +#define INTERFACE IXAudio2 +DECLARE_INTERFACE_(IXAudio2, IUnknown) +{ + // NAME: IXAudio2::QueryInterface + // DESCRIPTION: Queries for a given COM interface on the XAudio2 object. + // Only IID_IUnknown and IID_IXAudio2 are supported. + // + // ARGUMENTS: + // riid - IID of the interface to be obtained. + // ppvInterface - Returns a pointer to the requested interface. + // + STDMETHOD(QueryInterface) (THIS_ REFIID riid, _Outptr_ void** ppvInterface) PURE; + + // NAME: IXAudio2::AddRef + // DESCRIPTION: Adds a reference to the XAudio2 object. + // + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + + // NAME: IXAudio2::Release + // DESCRIPTION: Releases a reference to the XAudio2 object. + // + STDMETHOD_(ULONG, Release) (THIS) PURE; + + // NAME: IXAudio2::RegisterForCallbacks + // DESCRIPTION: Adds a new client to receive XAudio2's engine callbacks. + // + // ARGUMENTS: + // pCallback - Callback interface to be called during each processing pass. + // + STDMETHOD(RegisterForCallbacks) (_In_ IXAudio2EngineCallback* pCallback) PURE; + + // NAME: IXAudio2::UnregisterForCallbacks + // DESCRIPTION: Removes an existing receiver of XAudio2 engine callbacks. + // + // ARGUMENTS: + // pCallback - Previously registered callback interface to be removed. + // + STDMETHOD_(void, UnregisterForCallbacks) (_In_ IXAudio2EngineCallback* pCallback) PURE; + + // NAME: IXAudio2::CreateSourceVoice + // DESCRIPTION: Creates and configures a source voice. + // + // ARGUMENTS: + // ppSourceVoice - Returns the new object's IXAudio2SourceVoice interface. + // pSourceFormat - Format of the audio that will be fed to the voice. + // Flags - XAUDIO2_VOICE flags specifying the source voice's behavior. + // MaxFrequencyRatio - Maximum SetFrequencyRatio argument to be allowed. + // pCallback - Optional pointer to a client-provided callback interface. + // pSendList - Optional list of voices this voice should send audio to. + // pEffectChain - Optional list of effects to apply to the audio data. + // + STDMETHOD(CreateSourceVoice) (THIS_ _Outptr_ IXAudio2SourceVoice** ppSourceVoice, + _In_ const WAVEFORMATEX* pSourceFormat, + UINT32 Flags X2DEFAULT(0), + float MaxFrequencyRatio X2DEFAULT(XAUDIO2_DEFAULT_FREQ_RATIO), + _In_opt_ IXAudio2VoiceCallback* pCallback X2DEFAULT(NULL), + _In_opt_ const XAUDIO2_VOICE_SENDS* pSendList X2DEFAULT(NULL), + _In_opt_ const XAUDIO2_EFFECT_CHAIN* pEffectChain X2DEFAULT(NULL)) PURE; + + // NAME: IXAudio2::CreateSubmixVoice + // DESCRIPTION: Creates and configures a submix voice. + // + // ARGUMENTS: + // ppSubmixVoice - Returns the new object's IXAudio2SubmixVoice interface. + // InputChannels - Number of channels in this voice's input audio data. + // InputSampleRate - Sample rate of this voice's input audio data. + // Flags - XAUDIO2_VOICE flags specifying the submix voice's behavior. + // ProcessingStage - Arbitrary number that determines the processing order. + // pSendList - Optional list of voices this voice should send audio to. + // pEffectChain - Optional list of effects to apply to the audio data. + // + STDMETHOD(CreateSubmixVoice) (THIS_ _Outptr_ IXAudio2SubmixVoice** ppSubmixVoice, + UINT32 InputChannels, UINT32 InputSampleRate, + UINT32 Flags X2DEFAULT(0), UINT32 ProcessingStage X2DEFAULT(0), + _In_opt_ const XAUDIO2_VOICE_SENDS* pSendList X2DEFAULT(NULL), + _In_opt_ const XAUDIO2_EFFECT_CHAIN* pEffectChain X2DEFAULT(NULL)) PURE; + + + // NAME: IXAudio2::CreateMasteringVoice + // DESCRIPTION: Creates and configures a mastering voice. + // + // ARGUMENTS: + // ppMasteringVoice - Returns the new object's IXAudio2MasteringVoice interface. + // InputChannels - Number of channels in this voice's input audio data. + // InputSampleRate - Sample rate of this voice's input audio data. + // Flags - XAUDIO2_VOICE flags specifying the mastering voice's behavior. + // szDeviceId - Identifier of the device to receive the output audio. + // pEffectChain - Optional list of effects to apply to the audio data. + // StreamCategory - The audio stream category to use for this mastering voice + // + STDMETHOD(CreateMasteringVoice) (THIS_ _Outptr_ IXAudio2MasteringVoice** ppMasteringVoice, + UINT32 InputChannels X2DEFAULT(XAUDIO2_DEFAULT_CHANNELS), + UINT32 InputSampleRate X2DEFAULT(XAUDIO2_DEFAULT_SAMPLERATE), + UINT32 Flags X2DEFAULT(0), _In_opt_z_ LPCWSTR szDeviceId X2DEFAULT(NULL), + _In_opt_ const XAUDIO2_EFFECT_CHAIN* pEffectChain X2DEFAULT(NULL), + _In_ AUDIO_STREAM_CATEGORY StreamCategory X2DEFAULT(AudioCategory_GameEffects)) PURE; + + // NAME: IXAudio2::StartEngine + // DESCRIPTION: Creates and starts the audio processing thread. + // + STDMETHOD(StartEngine) (THIS) PURE; + + // NAME: IXAudio2::StopEngine + // DESCRIPTION: Stops and destroys the audio processing thread. + // + STDMETHOD_(void, StopEngine) (THIS) PURE; + + // NAME: IXAudio2::CommitChanges + // DESCRIPTION: Atomically applies a set of operations previously tagged + // with a given identifier. + // + // ARGUMENTS: + // OperationSet - Identifier of the set of operations to be applied. + // + STDMETHOD(CommitChanges) (THIS_ UINT32 OperationSet) PURE; + + // NAME: IXAudio2::GetPerformanceData + // DESCRIPTION: Returns current resource usage details: memory, CPU, etc. + // + // ARGUMENTS: + // pPerfData - Returns the performance data structure. + // + STDMETHOD_(void, GetPerformanceData) (THIS_ _Out_ XAUDIO2_PERFORMANCE_DATA* pPerfData) PURE; + + // NAME: IXAudio2::SetDebugConfiguration + // DESCRIPTION: Configures XAudio2's debug output (in debug builds only). + // + // ARGUMENTS: + // pDebugConfiguration - Structure describing the debug output behavior. + // pReserved - Optional parameter; must be NULL. + // + STDMETHOD_(void, SetDebugConfiguration) (THIS_ _In_opt_ const XAUDIO2_DEBUG_CONFIGURATION* pDebugConfiguration, + _Reserved_ void* pReserved X2DEFAULT(NULL)) PURE; +}; + + +/************************************************************************** + * + * IXAudio2Voice: Base voice management interface. + * + **************************************************************************/ + +#undef INTERFACE +#define INTERFACE IXAudio2Voice +DECLARE_INTERFACE(IXAudio2Voice) +{ + // These methods are declared in a macro so that the same declarations + // can be used in the derived voice types (IXAudio2SourceVoice, etc). + + #define Declare_IXAudio2Voice_Methods() \ + \ + /* NAME: IXAudio2Voice::GetVoiceDetails + // DESCRIPTION: Returns the basic characteristics of this voice. + // + // ARGUMENTS: + // pVoiceDetails - Returns the voice's details. + */\ + STDMETHOD_(void, GetVoiceDetails) (THIS_ _Out_ XAUDIO2_VOICE_DETAILS* pVoiceDetails) PURE; \ + \ + /* NAME: IXAudio2Voice::SetOutputVoices + // DESCRIPTION: Replaces the set of submix/mastering voices that receive + // this voice's output. + // + // ARGUMENTS: + // pSendList - Optional list of voices this voice should send audio to. + */\ + STDMETHOD(SetOutputVoices) (THIS_ _In_opt_ const XAUDIO2_VOICE_SENDS* pSendList) PURE; \ + \ + /* NAME: IXAudio2Voice::SetEffectChain + // DESCRIPTION: Replaces this voice's current effect chain with a new one. + // + // ARGUMENTS: + // pEffectChain - Structure describing the new effect chain to be used. + */\ + STDMETHOD(SetEffectChain) (THIS_ _In_opt_ const XAUDIO2_EFFECT_CHAIN* pEffectChain) PURE; \ + \ + /* NAME: IXAudio2Voice::EnableEffect + // DESCRIPTION: Enables an effect in this voice's effect chain. + // + // ARGUMENTS: + // EffectIndex - Index of an effect within this voice's effect chain. + // OperationSet - Used to identify this call as part of a deferred batch. + */\ + STDMETHOD(EnableEffect) (THIS_ UINT32 EffectIndex, \ + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; \ + \ + /* NAME: IXAudio2Voice::DisableEffect + // DESCRIPTION: Disables an effect in this voice's effect chain. + // + // ARGUMENTS: + // EffectIndex - Index of an effect within this voice's effect chain. + // OperationSet - Used to identify this call as part of a deferred batch. + */\ + STDMETHOD(DisableEffect) (THIS_ UINT32 EffectIndex, \ + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; \ + \ + /* NAME: IXAudio2Voice::GetEffectState + // DESCRIPTION: Returns the running state of an effect. + // + // ARGUMENTS: + // EffectIndex - Index of an effect within this voice's effect chain. + // pEnabled - Returns the enabled/disabled state of the given effect. + */\ + STDMETHOD_(void, GetEffectState) (THIS_ UINT32 EffectIndex, _Out_ BOOL* pEnabled) PURE; \ + \ + /* NAME: IXAudio2Voice::SetEffectParameters + // DESCRIPTION: Sets effect-specific parameters. + // + // REMARKS: Unlike IXAPOParameters::SetParameters, this method may + // be called from any thread. XAudio2 implements + // appropriate synchronization to copy the parameters to the + // realtime audio processing thread. + // + // ARGUMENTS: + // EffectIndex - Index of an effect within this voice's effect chain. + // pParameters - Pointer to an effect-specific parameters block. + // ParametersByteSize - Size of the pParameters array in bytes. + // OperationSet - Used to identify this call as part of a deferred batch. + */\ + STDMETHOD(SetEffectParameters) (THIS_ UINT32 EffectIndex, \ + _In_reads_bytes_(ParametersByteSize) const void* pParameters, \ + UINT32 ParametersByteSize, \ + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; \ + \ + /* NAME: IXAudio2Voice::GetEffectParameters + // DESCRIPTION: Obtains the current effect-specific parameters. + // + // ARGUMENTS: + // EffectIndex - Index of an effect within this voice's effect chain. + // pParameters - Returns the current values of the effect-specific parameters. + // ParametersByteSize - Size of the pParameters array in bytes. + */\ + STDMETHOD(GetEffectParameters) (THIS_ UINT32 EffectIndex, \ + _Out_writes_bytes_(ParametersByteSize) void* pParameters, \ + UINT32 ParametersByteSize) PURE; \ + \ + /* NAME: IXAudio2Voice::SetFilterParameters + // DESCRIPTION: Sets this voice's filter parameters. + // + // ARGUMENTS: + // pParameters - Pointer to the filter's parameter structure. + // OperationSet - Used to identify this call as part of a deferred batch. + */\ + STDMETHOD(SetFilterParameters) (THIS_ _In_ const XAUDIO2_FILTER_PARAMETERS* pParameters, \ + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; \ + \ + /* NAME: IXAudio2Voice::GetFilterParameters + // DESCRIPTION: Returns this voice's current filter parameters. + // + // ARGUMENTS: + // pParameters - Returns the filter parameters. + */\ + STDMETHOD_(void, GetFilterParameters) (THIS_ _Out_ XAUDIO2_FILTER_PARAMETERS* pParameters) PURE; \ + \ + /* NAME: IXAudio2Voice::SetOutputFilterParameters + // DESCRIPTION: Sets the filter parameters on one of this voice's sends. + // + // ARGUMENTS: + // pDestinationVoice - Destination voice of the send whose filter parameters will be set. + // pParameters - Pointer to the filter's parameter structure. + // OperationSet - Used to identify this call as part of a deferred batch. + */\ + STDMETHOD(SetOutputFilterParameters) (THIS_ _In_opt_ IXAudio2Voice* pDestinationVoice, \ + _In_ const XAUDIO2_FILTER_PARAMETERS* pParameters, \ + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; \ + \ + /* NAME: IXAudio2Voice::GetOutputFilterParameters + // DESCRIPTION: Returns the filter parameters from one of this voice's sends. + // + // ARGUMENTS: + // pDestinationVoice - Destination voice of the send whose filter parameters will be read. + // pParameters - Returns the filter parameters. + */\ + STDMETHOD_(void, GetOutputFilterParameters) (THIS_ _In_opt_ IXAudio2Voice* pDestinationVoice, \ + _Out_ XAUDIO2_FILTER_PARAMETERS* pParameters) PURE; \ + \ + /* NAME: IXAudio2Voice::SetVolume + // DESCRIPTION: Sets this voice's overall volume level. + // + // ARGUMENTS: + // Volume - New overall volume level to be used, as an amplitude factor. + // OperationSet - Used to identify this call as part of a deferred batch. + */\ + STDMETHOD(SetVolume) (THIS_ float Volume, \ + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; \ + \ + /* NAME: IXAudio2Voice::GetVolume + // DESCRIPTION: Obtains this voice's current overall volume level. + // + // ARGUMENTS: + // pVolume: Returns the voice's current overall volume level. + */\ + STDMETHOD_(void, GetVolume) (THIS_ _Out_ float* pVolume) PURE; \ + \ + /* NAME: IXAudio2Voice::SetChannelVolumes + // DESCRIPTION: Sets this voice's per-channel volume levels. + // + // ARGUMENTS: + // Channels - Used to confirm the voice's channel count. + // pVolumes - Array of per-channel volume levels to be used. + // OperationSet - Used to identify this call as part of a deferred batch. + */\ + STDMETHOD(SetChannelVolumes) (THIS_ UINT32 Channels, _In_reads_(Channels) const float* pVolumes, \ + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; \ + \ + /* NAME: IXAudio2Voice::GetChannelVolumes + // DESCRIPTION: Returns this voice's current per-channel volume levels. + // + // ARGUMENTS: + // Channels - Used to confirm the voice's channel count. + // pVolumes - Returns an array of the current per-channel volume levels. + */\ + STDMETHOD_(void, GetChannelVolumes) (THIS_ UINT32 Channels, _Out_writes_(Channels) float* pVolumes) PURE; \ + \ + /* NAME: IXAudio2Voice::SetOutputMatrix + // DESCRIPTION: Sets the volume levels used to mix from each channel of this + // voice's output audio to each channel of a given destination + // voice's input audio. + // + // ARGUMENTS: + // pDestinationVoice - The destination voice whose mix matrix to change. + // SourceChannels - Used to confirm this voice's output channel count + // (the number of channels produced by the last effect in the chain). + // DestinationChannels - Confirms the destination voice's input channels. + // pLevelMatrix - Array of [SourceChannels * DestinationChannels] send + // levels. The level used to send from source channel S to destination + // channel D should be in pLevelMatrix[S + SourceChannels * D]. + // OperationSet - Used to identify this call as part of a deferred batch. + */\ + STDMETHOD(SetOutputMatrix) (THIS_ _In_opt_ IXAudio2Voice* pDestinationVoice, \ + UINT32 SourceChannels, UINT32 DestinationChannels, \ + _In_reads_(SourceChannels * DestinationChannels) const float* pLevelMatrix, \ + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; \ + \ + /* NAME: IXAudio2Voice::GetOutputMatrix + // DESCRIPTION: Obtains the volume levels used to send each channel of this + // voice's output audio to each channel of a given destination + // voice's input audio. + // + // ARGUMENTS: + // pDestinationVoice - The destination voice whose mix matrix to obtain. + // SourceChannels - Used to confirm this voice's output channel count + // (the number of channels produced by the last effect in the chain). + // DestinationChannels - Confirms the destination voice's input channels. + // pLevelMatrix - Array of send levels, as above. + */\ + STDMETHOD_(void, GetOutputMatrix) (THIS_ _In_opt_ IXAudio2Voice* pDestinationVoice, \ + UINT32 SourceChannels, UINT32 DestinationChannels, \ + _Out_writes_(SourceChannels * DestinationChannels) float* pLevelMatrix) PURE; \ + \ + /* NAME: IXAudio2Voice::DestroyVoice + // DESCRIPTION: Destroys this voice, stopping it if necessary and removing + // it from the XAudio2 graph. + */\ + STDMETHOD_(void, DestroyVoice) (THIS) PURE + + Declare_IXAudio2Voice_Methods(); +}; + + +/************************************************************************** + * + * IXAudio2SourceVoice: Source voice management interface. + * + **************************************************************************/ + +#undef INTERFACE +#define INTERFACE IXAudio2SourceVoice +DECLARE_INTERFACE_(IXAudio2SourceVoice, IXAudio2Voice) +{ + // Methods from IXAudio2Voice base interface + Declare_IXAudio2Voice_Methods(); + + // NAME: IXAudio2SourceVoice::Start + // DESCRIPTION: Makes this voice start consuming and processing audio. + // + // ARGUMENTS: + // Flags - Flags controlling how the voice should be started. + // OperationSet - Used to identify this call as part of a deferred batch. + // + STDMETHOD(Start) (THIS_ UINT32 Flags X2DEFAULT(0), UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; + + // NAME: IXAudio2SourceVoice::Stop + // DESCRIPTION: Makes this voice stop consuming audio. + // + // ARGUMENTS: + // Flags - Flags controlling how the voice should be stopped. + // OperationSet - Used to identify this call as part of a deferred batch. + // + STDMETHOD(Stop) (THIS_ UINT32 Flags X2DEFAULT(0), UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; + + // NAME: IXAudio2SourceVoice::SubmitSourceBuffer + // DESCRIPTION: Adds a new audio buffer to this voice's input queue. + // + // ARGUMENTS: + // pBuffer - Pointer to the buffer structure to be queued. + // pBufferWMA - Additional structure used only when submitting XWMA data. + // + STDMETHOD(SubmitSourceBuffer) (THIS_ _In_ const XAUDIO2_BUFFER* pBuffer, _In_opt_ const XAUDIO2_BUFFER_WMA* pBufferWMA X2DEFAULT(NULL)) PURE; + + // NAME: IXAudio2SourceVoice::FlushSourceBuffers + // DESCRIPTION: Removes all pending audio buffers from this voice's queue. + // + STDMETHOD(FlushSourceBuffers) (THIS) PURE; + + // NAME: IXAudio2SourceVoice::Discontinuity + // DESCRIPTION: Notifies the voice of an intentional break in the stream of + // audio buffers (e.g. the end of a sound), to prevent XAudio2 + // from interpreting an empty buffer queue as a glitch. + // + STDMETHOD(Discontinuity) (THIS) PURE; + + // NAME: IXAudio2SourceVoice::ExitLoop + // DESCRIPTION: Breaks out of the current loop when its end is reached. + // + // ARGUMENTS: + // OperationSet - Used to identify this call as part of a deferred batch. + // + STDMETHOD(ExitLoop) (THIS_ UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; + + // NAME: IXAudio2SourceVoice::GetState + // DESCRIPTION: Returns the number of buffers currently queued on this voice, + // the pContext value associated with the currently processing + // buffer (if any), and other voice state information. + // + // ARGUMENTS: + // pVoiceState - Returns the state information. + // Flags - Flags controlling what voice state is returned. + // + STDMETHOD_(void, GetState) (THIS_ _Out_ XAUDIO2_VOICE_STATE* pVoiceState, UINT32 Flags X2DEFAULT(0)) PURE; + + // NAME: IXAudio2SourceVoice::SetFrequencyRatio + // DESCRIPTION: Sets this voice's frequency adjustment, i.e. its pitch. + // + // ARGUMENTS: + // Ratio - Frequency change, expressed as source frequency / target frequency. + // OperationSet - Used to identify this call as part of a deferred batch. + // + STDMETHOD(SetFrequencyRatio) (THIS_ float Ratio, + UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE; + + // NAME: IXAudio2SourceVoice::GetFrequencyRatio + // DESCRIPTION: Returns this voice's current frequency adjustment ratio. + // + // ARGUMENTS: + // pRatio - Returns the frequency adjustment. + // + STDMETHOD_(void, GetFrequencyRatio) (THIS_ _Out_ float* pRatio) PURE; + + // NAME: IXAudio2SourceVoice::SetSourceSampleRate + // DESCRIPTION: Reconfigures this voice to treat its source data as being + // at a different sample rate than the original one specified + // in CreateSourceVoice's pSourceFormat argument. + // + // ARGUMENTS: + // UINT32 - The intended sample rate of further submitted source data. + // + STDMETHOD(SetSourceSampleRate) (THIS_ UINT32 NewSourceSampleRate) PURE; +}; + + +/************************************************************************** + * + * IXAudio2SubmixVoice: Submixing voice management interface. + * + **************************************************************************/ + +#undef INTERFACE +#define INTERFACE IXAudio2SubmixVoice +DECLARE_INTERFACE_(IXAudio2SubmixVoice, IXAudio2Voice) +{ + // Methods from IXAudio2Voice base interface + Declare_IXAudio2Voice_Methods(); + + // There are currently no methods specific to submix voices. +}; + + +/************************************************************************** + * + * IXAudio2MasteringVoice: Mastering voice management interface. + * + **************************************************************************/ + +#undef INTERFACE +#define INTERFACE IXAudio2MasteringVoice +DECLARE_INTERFACE_(IXAudio2MasteringVoice, IXAudio2Voice) +{ + // Methods from IXAudio2Voice base interface + Declare_IXAudio2Voice_Methods(); + + // NAME: IXAudio2MasteringVoice::GetChannelMask + // DESCRIPTION: Returns the channel mask for this voice + // + // ARGUMENTS: + // pChannelMask - returns the channel mask for this voice. This corresponds + // to the dwChannelMask member of WAVEFORMATEXTENSIBLE. + // + STDMETHOD(GetChannelMask) (THIS_ _Out_ DWORD* pChannelmask) PURE; +}; + + +/************************************************************************** + * + * IXAudio2EngineCallback: Client notification interface for engine events. + * + * REMARKS: Contains methods to notify the client when certain events happen + * in the XAudio2 engine. This interface should be implemented by + * the client. XAudio2 will call these methods via the interface + * pointer provided by the client when it calls + * IXAudio2::RegisterForCallbacks. + * + **************************************************************************/ + +#undef INTERFACE +#define INTERFACE IXAudio2EngineCallback +DECLARE_INTERFACE(IXAudio2EngineCallback) +{ + // Called by XAudio2 just before an audio processing pass begins. + STDMETHOD_(void, OnProcessingPassStart) (THIS) PURE; + + // Called just after an audio processing pass ends. + STDMETHOD_(void, OnProcessingPassEnd) (THIS) PURE; + + // Called in the event of a critical system error which requires XAudio2 + // to be closed down and restarted. The error code is given in Error. + STDMETHOD_(void, OnCriticalError) (THIS_ HRESULT Error) PURE; +}; + + +/************************************************************************** + * + * IXAudio2VoiceCallback: Client notification interface for voice events. + * + * REMARKS: Contains methods to notify the client when certain events happen + * in an XAudio2 voice. This interface should be implemented by the + * client. XAudio2 will call these methods via an interface pointer + * provided by the client in the IXAudio2::CreateSourceVoice call. + * + **************************************************************************/ + +#undef INTERFACE +#define INTERFACE IXAudio2VoiceCallback +DECLARE_INTERFACE(IXAudio2VoiceCallback) +{ + // Called just before this voice's processing pass begins. + STDMETHOD_(void, OnVoiceProcessingPassStart) (THIS_ UINT32 BytesRequired) PURE; + + // Called just after this voice's processing pass ends. + STDMETHOD_(void, OnVoiceProcessingPassEnd) (THIS) PURE; + + // Called when this voice has just finished playing a buffer stream + // (as marked with the XAUDIO2_END_OF_STREAM flag on the last buffer). + STDMETHOD_(void, OnStreamEnd) (THIS) PURE; + + // Called when this voice is about to start processing a new buffer. + STDMETHOD_(void, OnBufferStart) (THIS_ void* pBufferContext) PURE; + + // Called when this voice has just finished processing a buffer. + // The buffer can now be reused or destroyed. + STDMETHOD_(void, OnBufferEnd) (THIS_ void* pBufferContext) PURE; + + // Called when this voice has just reached the end position of a loop. + STDMETHOD_(void, OnLoopEnd) (THIS_ void* pBufferContext) PURE; + + // Called in the event of a critical error during voice processing, + // such as a failing xAPO or an error from the hardware XMA decoder. + // The voice may have to be destroyed and re-created to recover from + // the error. The callback arguments report which buffer was being + // processed when the error occurred, and its HRESULT code. + STDMETHOD_(void, OnVoiceError) (THIS_ void* pBufferContext, HRESULT Error) PURE; +}; + + +/************************************************************************** + * + * Macros to make it easier to use the XAudio2 COM interfaces in C code. + * + **************************************************************************/ + +#ifndef __cplusplus + +// IXAudio2 +#define IXAudio2_QueryInterface(This,riid,ppvInterface) ((This)->lpVtbl->QueryInterface(This,riid,ppvInterface)) +#define IXAudio2_AddRef(This) ((This)->lpVtbl->AddRef(This)) +#define IXAudio2_Release(This) ((This)->lpVtbl->Release(This)) +#define IXAudio2_CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) ((This)->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain)) +#define IXAudio2_CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) ((This)->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain)) +#define IXAudio2_CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceId,pEffectChain,StreamCategory) ((This)->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceId,pEffectChain,StreamCategory)) +#define IXAudio2_StartEngine(This) ((This)->lpVtbl->StartEngine(This)) +#define IXAudio2_StopEngine(This) ((This)->lpVtbl->StopEngine(This)) +#define IXAudio2_CommitChanges(This,OperationSet) ((This)->lpVtbl->CommitChanges(This,OperationSet)) +#define IXAudio2_GetPerformanceData(This,pPerfData) ((This)->lpVtbl->GetPerformanceData(This,pPerfData)) +#define IXAudio2_SetDebugConfiguration(This,pDebugConfiguration,pReserved) ((This)->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved)) + +// IXAudio2Voice +#define IXAudio2Voice_GetVoiceDetails(This,pVoiceDetails) ((This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails)) +#define IXAudio2Voice_SetOutputVoices(This,pSendList) ((This)->lpVtbl->SetOutputVoices(This,pSendList)) +#define IXAudio2Voice_SetEffectChain(This,pEffectChain) ((This)->lpVtbl->SetEffectChain(This,pEffectChain)) +#define IXAudio2Voice_EnableEffect(This,EffectIndex,OperationSet) ((This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet)) +#define IXAudio2Voice_DisableEffect(This,EffectIndex,OperationSet) ((This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet)) +#define IXAudio2Voice_GetEffectState(This,EffectIndex,pEnabled) ((This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled)) +#define IXAudio2Voice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize, OperationSet) ((This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet)) +#define IXAudio2Voice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) ((This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize)) +#define IXAudio2Voice_SetFilterParameters(This,pParameters,OperationSet) ((This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet)) +#define IXAudio2Voice_GetFilterParameters(This,pParameters) ((This)->lpVtbl->GetFilterParameters(This,pParameters)) +#define IXAudio2Voice_SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) ((This)->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet)) +#define IXAudio2Voice_GetOutputFilterParameters(This,pDestinationVoice,pParameters) ((This)->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters)) +#define IXAudio2Voice_SetVolume(This,Volume,OperationSet) ((This)->lpVtbl->SetVolume(This,Volume,OperationSet)) +#define IXAudio2Voice_GetVolume(This,pVolume) ((This)->lpVtbl->GetVolume(This,pVolume)) +#define IXAudio2Voice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) ((This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet)) +#define IXAudio2Voice_GetChannelVolumes(This,Channels,pVolumes) ((This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes)) +#define IXAudio2Voice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) ((This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet)) +#define IXAudio2Voice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) ((This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix)) +#define IXAudio2Voice_DestroyVoice(This) ((This)->lpVtbl->DestroyVoice(This)) + +// IXAudio2SourceVoice +#define IXAudio2SourceVoice_GetVoiceDetails IXAudio2Voice_GetVoiceDetails +#define IXAudio2SourceVoice_SetOutputVoices IXAudio2Voice_SetOutputVoices +#define IXAudio2SourceVoice_SetEffectChain IXAudio2Voice_SetEffectChain +#define IXAudio2SourceVoice_EnableEffect IXAudio2Voice_EnableEffect +#define IXAudio2SourceVoice_DisableEffect IXAudio2Voice_DisableEffect +#define IXAudio2SourceVoice_GetEffectState IXAudio2Voice_GetEffectState +#define IXAudio2SourceVoice_SetEffectParameters IXAudio2Voice_SetEffectParameters +#define IXAudio2SourceVoice_GetEffectParameters IXAudio2Voice_GetEffectParameters +#define IXAudio2SourceVoice_SetFilterParameters IXAudio2Voice_SetFilterParameters +#define IXAudio2SourceVoice_GetFilterParameters IXAudio2Voice_GetFilterParameters +#define IXAudio2SourceVoice_SetOutputFilterParameters IXAudio2Voice_SetOutputFilterParameters +#define IXAudio2SourceVoice_GetOutputFilterParameters IXAudio2Voice_GetOutputFilterParameters +#define IXAudio2SourceVoice_SetVolume IXAudio2Voice_SetVolume +#define IXAudio2SourceVoice_GetVolume IXAudio2Voice_GetVolume +#define IXAudio2SourceVoice_SetChannelVolumes IXAudio2Voice_SetChannelVolumes +#define IXAudio2SourceVoice_GetChannelVolumes IXAudio2Voice_GetChannelVolumes +#define IXAudio2SourceVoice_SetOutputMatrix IXAudio2Voice_SetOutputMatrix +#define IXAudio2SourceVoice_GetOutputMatrix IXAudio2Voice_GetOutputMatrix +#define IXAudio2SourceVoice_DestroyVoice IXAudio2Voice_DestroyVoice +#define IXAudio2SourceVoice_Start(This,Flags,OperationSet) ((This)->lpVtbl->Start(This,Flags,OperationSet)) +#define IXAudio2SourceVoice_Stop(This,Flags,OperationSet) ((This)->lpVtbl->Stop(This,Flags,OperationSet)) +#define IXAudio2SourceVoice_SubmitSourceBuffer(This,pBuffer,pBufferWMA) ((This)->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA)) +#define IXAudio2SourceVoice_FlushSourceBuffers(This) ((This)->lpVtbl->FlushSourceBuffers(This)) +#define IXAudio2SourceVoice_Discontinuity(This) ((This)->lpVtbl->Discontinuity(This)) +#define IXAudio2SourceVoice_ExitLoop(This,OperationSet) ((This)->lpVtbl->ExitLoop(This,OperationSet)) +#define IXAudio2SourceVoice_GetState(This,pVoiceState,Flags) ((This)->lpVtbl->GetState(This,pVoiceState,Flags)) +#define IXAudio2SourceVoice_SetFrequencyRatio(This,Ratio,OperationSet) ((This)->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet)) +#define IXAudio2SourceVoice_GetFrequencyRatio(This,pRatio) ((This)->lpVtbl->GetFrequencyRatio(This,pRatio)) +#define IXAudio2SourceVoice_SetSourceSampleRate(This,NewSourceSampleRate) ((This)->lpVtbl->SetSourceSampleRate(This,NewSourceSampleRate)) + +// IXAudio2SubmixVoice +#define IXAudio2SubmixVoice_GetVoiceDetails IXAudio2Voice_GetVoiceDetails +#define IXAudio2SubmixVoice_SetOutputVoices IXAudio2Voice_SetOutputVoices +#define IXAudio2SubmixVoice_SetEffectChain IXAudio2Voice_SetEffectChain +#define IXAudio2SubmixVoice_EnableEffect IXAudio2Voice_EnableEffect +#define IXAudio2SubmixVoice_DisableEffect IXAudio2Voice_DisableEffect +#define IXAudio2SubmixVoice_GetEffectState IXAudio2Voice_GetEffectState +#define IXAudio2SubmixVoice_SetEffectParameters IXAudio2Voice_SetEffectParameters +#define IXAudio2SubmixVoice_GetEffectParameters IXAudio2Voice_GetEffectParameters +#define IXAudio2SubmixVoice_SetFilterParameters IXAudio2Voice_SetFilterParameters +#define IXAudio2SubmixVoice_GetFilterParameters IXAudio2Voice_GetFilterParameters +#define IXAudio2SubmixVoice_SetOutputFilterParameters IXAudio2Voice_SetOutputFilterParameters +#define IXAudio2SubmixVoice_GetOutputFilterParameters IXAudio2Voice_GetOutputFilterParameters +#define IXAudio2SubmixVoice_SetVolume IXAudio2Voice_SetVolume +#define IXAudio2SubmixVoice_GetVolume IXAudio2Voice_GetVolume +#define IXAudio2SubmixVoice_SetChannelVolumes IXAudio2Voice_SetChannelVolumes +#define IXAudio2SubmixVoice_GetChannelVolumes IXAudio2Voice_GetChannelVolumes +#define IXAudio2SubmixVoice_SetOutputMatrix IXAudio2Voice_SetOutputMatrix +#define IXAudio2SubmixVoice_GetOutputMatrix IXAudio2Voice_GetOutputMatrix +#define IXAudio2SubmixVoice_DestroyVoice IXAudio2Voice_DestroyVoice + +// IXAudio2MasteringVoice +#define IXAudio2MasteringVoice_GetVoiceDetails IXAudio2Voice_GetVoiceDetails +#define IXAudio2MasteringVoice_SetOutputVoices IXAudio2Voice_SetOutputVoices +#define IXAudio2MasteringVoice_SetEffectChain IXAudio2Voice_SetEffectChain +#define IXAudio2MasteringVoice_EnableEffect IXAudio2Voice_EnableEffect +#define IXAudio2MasteringVoice_DisableEffect IXAudio2Voice_DisableEffect +#define IXAudio2MasteringVoice_GetEffectState IXAudio2Voice_GetEffectState +#define IXAudio2MasteringVoice_SetEffectParameters IXAudio2Voice_SetEffectParameters +#define IXAudio2MasteringVoice_GetEffectParameters IXAudio2Voice_GetEffectParameters +#define IXAudio2MasteringVoice_SetFilterParameters IXAudio2Voice_SetFilterParameters +#define IXAudio2MasteringVoice_GetFilterParameters IXAudio2Voice_GetFilterParameters +#define IXAudio2MasteringVoice_SetOutputFilterParameters IXAudio2Voice_SetOutputFilterParameters +#define IXAudio2MasteringVoice_GetOutputFilterParameters IXAudio2Voice_GetOutputFilterParameters +#define IXAudio2MasteringVoice_SetVolume IXAudio2Voice_SetVolume +#define IXAudio2MasteringVoice_GetVolume IXAudio2Voice_GetVolume +#define IXAudio2MasteringVoice_SetChannelVolumes IXAudio2Voice_SetChannelVolumes +#define IXAudio2MasteringVoice_GetChannelVolumes IXAudio2Voice_GetChannelVolumes +#define IXAudio2MasteringVoice_SetOutputMatrix IXAudio2Voice_SetOutputMatrix +#define IXAudio2MasteringVoice_GetOutputMatrix IXAudio2Voice_GetOutputMatrix +#define IXAudio2MasteringVoice_DestroyVoice IXAudio2Voice_DestroyVoice +#define IXAudio2MasteringVoice_GetChannelMask(This,pChannelMask) ((This)->lpVtbl->GetChannelMask(This,pChannelMask)) + +#endif // #ifndef __cplusplus + + +/************************************************************************** + * + * Utility functions used to convert from pitch in semitones and volume + * in decibels to the frequency and amplitude ratio units used by XAudio2. + * These are only defined if the client #defines XAUDIO2_HELPER_FUNCTIONS + * prior to #including xaudio2.h. + * + **************************************************************************/ + +#ifdef XAUDIO2_HELPER_FUNCTIONS + +#define _USE_MATH_DEFINES // Make math.h define M_PI +#include // For powf, log10f, sinf and asinf + +// Calculate the argument to SetVolume from a decibel value +__inline float XAudio2DecibelsToAmplitudeRatio(float Decibels) +{ + return powf(10.0f, Decibels / 20.0f); +} + +// Recover a volume in decibels from an amplitude factor +__inline float XAudio2AmplitudeRatioToDecibels(float Volume) +{ + if (Volume == 0) + { + return -3.402823466e+38f; // Smallest float value (-FLT_MAX) + } + return 20.0f * log10f(Volume); +} + +// Calculate the argument to SetFrequencyRatio from a semitone value +__inline float XAudio2SemitonesToFrequencyRatio(float Semitones) +{ + // FrequencyRatio = 2 ^ Octaves + // = 2 ^ (Semitones / 12) + return powf(2.0f, Semitones / 12.0f); +} + +// Recover a pitch in semitones from a frequency ratio +__inline float XAudio2FrequencyRatioToSemitones(float FrequencyRatio) +{ + // Semitones = 12 * log2(FrequencyRatio) + // = 12 * log2(10) * log10(FrequencyRatio) + return 39.86313713864835f * log10f(FrequencyRatio); +} + +// Convert from filter cutoff frequencies expressed in Hertz to the radian +// frequency values used in XAUDIO2_FILTER_PARAMETERS.Frequency, state-variable +// filter types only. Use XAudio2CutoffFrequencyToOnePoleCoefficient() for one-pole filter types. +// Note that the highest CutoffFrequency supported is SampleRate/6. +// Higher values of CutoffFrequency will return XAUDIO2_MAX_FILTER_FREQUENCY. +__inline float XAudio2CutoffFrequencyToRadians(float CutoffFrequency, UINT32 SampleRate) +{ + if ((UINT32)(CutoffFrequency * 6.0f) >= SampleRate) + { + return XAUDIO2_MAX_FILTER_FREQUENCY; + } + return 2.0f * sinf((float)M_PI * CutoffFrequency / SampleRate); +} + +// Convert from radian frequencies back to absolute frequencies in Hertz +__inline float XAudio2RadiansToCutoffFrequency(float Radians, float SampleRate) +{ + return SampleRate * asinf(Radians / 2.0f) / (float)M_PI; +} + +// Convert from filter cutoff frequencies expressed in Hertz to the filter +// coefficients used with XAUDIO2_FILTER_PARAMETERS.Frequency, +// LowPassOnePoleFilter and HighPassOnePoleFilter filter types only. +// Use XAudio2CutoffFrequencyToRadians() for state-variable filter types. +__inline float XAudio2CutoffFrequencyToOnePoleCoefficient(float CutoffFrequency, UINT32 SampleRate) +{ + if ((UINT32)CutoffFrequency >= SampleRate) + { + return XAUDIO2_MAX_FILTER_FREQUENCY; + } + return ( 1.0f - powf(1.0f - 2.0f * CutoffFrequency / SampleRate, 2.0f) ); +} + + +#endif // #ifdef XAUDIO2_HELPER_FUNCTIONS + + +/************************************************************************** + * + * XAudio2Create: Top-level function that creates an XAudio2 instance. + * + * ARGUMENTS: + * + * Flags - Flags specifying the XAudio2 object's behavior. Currently + * unused, must be set to 0. + * + * XAudio2Processor - An XAUDIO2_PROCESSOR value that specifies the + * hardware threads (Xbox) or processors (Windows) that XAudio2 + * will use. Note that XAudio2 supports concurrent processing on + * multiple threads, using any combination of XAUDIO2_PROCESSOR + * flags. The values are platform-specific; platform-independent + * code can use XAUDIO2_DEFAULT_PROCESSOR to use the default on + * each platform. + * + **************************************************************************/ + +#if (defined XAUDIO2_EXPORT) + // We're building xaudio2.dll + #define XAUDIO2_STDAPI extern "C" __declspec(dllexport) HRESULT __stdcall +#elif (defined DX_BUILD) + // We're building xaudio2 as a static library + #define XAUDIO2_STDAPI STDAPI +#else + // We're an xaudio2 client + #define XAUDIO2_STDAPI extern "C" __declspec(dllimport) HRESULT __stdcall +#endif + +XAUDIO2_STDAPI XAudio2Create(_Outptr_ IXAudio2** ppXAudio2, UINT32 Flags X2DEFAULT(0), + XAUDIO2_PROCESSOR XAudio2Processor X2DEFAULT(XAUDIO2_DEFAULT_PROCESSOR)); + +// Undo the #pragma pack(push, 1) directive at the top of this file +#pragma pack(pop) + +#endif // #ifndef GUID_DEFS_ONLY + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ +#pragma endregion + +#endif // #ifndef __XAUDIO2_INCLUDED__ + diff --git a/3rdparty/wine/Include/xaudio2.h b/3rdparty/wine/Include/xaudio2.h deleted file mode 100644 index f8ed7373f74..00000000000 --- a/3rdparty/wine/Include/xaudio2.h +++ /dev/null @@ -1,6586 +0,0 @@ -/*** Autogenerated by WIDL 1.9.5 from xaudio2.idl - Do not edit ***/ - -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include -#include - -#ifndef COM_NO_WINDOWS_H -#include -#include -#endif - -#ifndef __xaudio2_h__ -#define __xaudio2_h__ - -/* Forward declarations */ - -#ifndef __XAudio20_FWD_DEFINED__ -#define __XAudio20_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio20 XAudio20; -#else -typedef struct XAudio20 XAudio20; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio20_FWD_DEFINED__ */ - -#ifndef __XAudio21_FWD_DEFINED__ -#define __XAudio21_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio21 XAudio21; -#else -typedef struct XAudio21 XAudio21; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio21_FWD_DEFINED__ */ - -#ifndef __XAudio22_FWD_DEFINED__ -#define __XAudio22_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio22 XAudio22; -#else -typedef struct XAudio22 XAudio22; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio22_FWD_DEFINED__ */ - -#ifndef __XAudio23_FWD_DEFINED__ -#define __XAudio23_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio23 XAudio23; -#else -typedef struct XAudio23 XAudio23; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio23_FWD_DEFINED__ */ - -#ifndef __XAudio24_FWD_DEFINED__ -#define __XAudio24_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio24 XAudio24; -#else -typedef struct XAudio24 XAudio24; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio24_FWD_DEFINED__ */ - -#ifndef __XAudio25_FWD_DEFINED__ -#define __XAudio25_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio25 XAudio25; -#else -typedef struct XAudio25 XAudio25; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio25_FWD_DEFINED__ */ - -#ifndef __XAudio26_FWD_DEFINED__ -#define __XAudio26_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio26 XAudio26; -#else -typedef struct XAudio26 XAudio26; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio26_FWD_DEFINED__ */ - -#ifndef __XAudio27_FWD_DEFINED__ -#define __XAudio27_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio27 XAudio27; -#else -typedef struct XAudio27 XAudio27; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio27_FWD_DEFINED__ */ - -#ifndef __XAudio2Debug_FWD_DEFINED__ -#define __XAudio2Debug_FWD_DEFINED__ -#ifdef __cplusplus -typedef class XAudio2Debug XAudio2Debug; -#else -typedef struct XAudio2Debug XAudio2Debug; -#endif /* defined __cplusplus */ -#endif /* defined __XAudio2Debug_FWD_DEFINED__ */ - -#ifndef __IXAudio2EngineCallback_FWD_DEFINED__ -#define __IXAudio2EngineCallback_FWD_DEFINED__ -typedef interface IXAudio2EngineCallback IXAudio2EngineCallback; -#ifdef __cplusplus -interface IXAudio2EngineCallback; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio20Voice_FWD_DEFINED__ -#define __IXAudio20Voice_FWD_DEFINED__ -typedef interface IXAudio20Voice IXAudio20Voice; -#ifdef __cplusplus -interface IXAudio20Voice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio23Voice_FWD_DEFINED__ -#define __IXAudio23Voice_FWD_DEFINED__ -typedef interface IXAudio23Voice IXAudio23Voice; -#ifdef __cplusplus -interface IXAudio23Voice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio2Voice_FWD_DEFINED__ -#define __IXAudio2Voice_FWD_DEFINED__ -typedef interface IXAudio2Voice IXAudio2Voice; -#ifdef __cplusplus -interface IXAudio2Voice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio20SourceVoice_FWD_DEFINED__ -#define __IXAudio20SourceVoice_FWD_DEFINED__ -typedef interface IXAudio20SourceVoice IXAudio20SourceVoice; -#ifdef __cplusplus -interface IXAudio20SourceVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio23SourceVoice_FWD_DEFINED__ -#define __IXAudio23SourceVoice_FWD_DEFINED__ -typedef interface IXAudio23SourceVoice IXAudio23SourceVoice; -#ifdef __cplusplus -interface IXAudio23SourceVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio27SourceVoice_FWD_DEFINED__ -#define __IXAudio27SourceVoice_FWD_DEFINED__ -typedef interface IXAudio27SourceVoice IXAudio27SourceVoice; -#ifdef __cplusplus -interface IXAudio27SourceVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio2SourceVoice_FWD_DEFINED__ -#define __IXAudio2SourceVoice_FWD_DEFINED__ -typedef interface IXAudio2SourceVoice IXAudio2SourceVoice; -#ifdef __cplusplus -interface IXAudio2SourceVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio20SubmixVoice_FWD_DEFINED__ -#define __IXAudio20SubmixVoice_FWD_DEFINED__ -typedef interface IXAudio20SubmixVoice IXAudio20SubmixVoice; -#ifdef __cplusplus -interface IXAudio20SubmixVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio23SubmixVoice_FWD_DEFINED__ -#define __IXAudio23SubmixVoice_FWD_DEFINED__ -typedef interface IXAudio23SubmixVoice IXAudio23SubmixVoice; -#ifdef __cplusplus -interface IXAudio23SubmixVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio2SubmixVoice_FWD_DEFINED__ -#define __IXAudio2SubmixVoice_FWD_DEFINED__ -typedef interface IXAudio2SubmixVoice IXAudio2SubmixVoice; -#ifdef __cplusplus -interface IXAudio2SubmixVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio20MasteringVoice_FWD_DEFINED__ -#define __IXAudio20MasteringVoice_FWD_DEFINED__ -typedef interface IXAudio20MasteringVoice IXAudio20MasteringVoice; -#ifdef __cplusplus -interface IXAudio20MasteringVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio23MasteringVoice_FWD_DEFINED__ -#define __IXAudio23MasteringVoice_FWD_DEFINED__ -typedef interface IXAudio23MasteringVoice IXAudio23MasteringVoice; -#ifdef __cplusplus -interface IXAudio23MasteringVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio2MasteringVoice_FWD_DEFINED__ -#define __IXAudio2MasteringVoice_FWD_DEFINED__ -typedef interface IXAudio2MasteringVoice IXAudio2MasteringVoice; -#ifdef __cplusplus -interface IXAudio2MasteringVoice; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio20VoiceCallback_FWD_DEFINED__ -#define __IXAudio20VoiceCallback_FWD_DEFINED__ -typedef interface IXAudio20VoiceCallback IXAudio20VoiceCallback; -#ifdef __cplusplus -interface IXAudio20VoiceCallback; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio2VoiceCallback_FWD_DEFINED__ -#define __IXAudio2VoiceCallback_FWD_DEFINED__ -typedef interface IXAudio2VoiceCallback IXAudio2VoiceCallback; -#ifdef __cplusplus -interface IXAudio2VoiceCallback; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio20_FWD_DEFINED__ -#define __IXAudio20_FWD_DEFINED__ -typedef interface IXAudio20 IXAudio20; -#ifdef __cplusplus -interface IXAudio20; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio22_FWD_DEFINED__ -#define __IXAudio22_FWD_DEFINED__ -typedef interface IXAudio22 IXAudio22; -#ifdef __cplusplus -interface IXAudio22; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio27_FWD_DEFINED__ -#define __IXAudio27_FWD_DEFINED__ -typedef interface IXAudio27 IXAudio27; -#ifdef __cplusplus -interface IXAudio27; -#endif /* __cplusplus */ -#endif - -#ifndef __IXAudio2_FWD_DEFINED__ -#define __IXAudio2_FWD_DEFINED__ -typedef interface IXAudio2 IXAudio2; -#ifdef __cplusplus -interface IXAudio2; -#endif /* __cplusplus */ -#endif - -/* Headers for imported files */ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include -/***************************************************************************** - * XAudio20 coclass - */ - -DEFINE_GUID(CLSID_XAudio20, 0xfac23f48, 0x31f5, 0x45a8, 0xb4,0x9b, 0x52,0x25,0xd6,0x14,0x01,0xaa); - -#ifdef __cplusplus -class DECLSPEC_UUID("fac23f48-31f5-45a8-b49b-5225d61401aa") XAudio20; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio20, 0xfac23f48, 0x31f5, 0x45a8, 0xb4,0x9b, 0x52,0x25,0xd6,0x14,0x01,0xaa) -#endif -#endif - -/***************************************************************************** - * XAudio21 coclass - */ - -DEFINE_GUID(CLSID_XAudio21, 0xe21a7345, 0xeb21, 0x468e, 0xbe,0x50, 0x80,0x4d,0xb9,0x7c,0xf7,0x08); - -#ifdef __cplusplus -class DECLSPEC_UUID("e21a7345-eb21-468e-be50-804db97cf708") XAudio21; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio21, 0xe21a7345, 0xeb21, 0x468e, 0xbe,0x50, 0x80,0x4d,0xb9,0x7c,0xf7,0x08) -#endif -#endif - -/***************************************************************************** - * XAudio22 coclass - */ - -DEFINE_GUID(CLSID_XAudio22, 0xb802058a, 0x464a, 0x42db, 0xbc,0x10, 0xb6,0x50,0xd6,0xf2,0x58,0x6a); - -#ifdef __cplusplus -class DECLSPEC_UUID("b802058a-464a-42db-bc10-b650d6f2586a") XAudio22; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio22, 0xb802058a, 0x464a, 0x42db, 0xbc,0x10, 0xb6,0x50,0xd6,0xf2,0x58,0x6a) -#endif -#endif - -/***************************************************************************** - * XAudio23 coclass - */ - -DEFINE_GUID(CLSID_XAudio23, 0x4c5e637a, 0x16c7, 0x4de3, 0x9c,0x46, 0x5e,0xd2,0x21,0x81,0x96,0x2d); - -#ifdef __cplusplus -class DECLSPEC_UUID("4c5e637a-16c7-4de3-9c46-5ed22181962d") XAudio23; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio23, 0x4c5e637a, 0x16c7, 0x4de3, 0x9c,0x46, 0x5e,0xd2,0x21,0x81,0x96,0x2d) -#endif -#endif - -/***************************************************************************** - * XAudio24 coclass - */ - -DEFINE_GUID(CLSID_XAudio24, 0x03219e78, 0x5bc3, 0x44d1, 0xb9,0x2e, 0xf6,0x3d,0x89,0xcc,0x65,0x26); - -#ifdef __cplusplus -class DECLSPEC_UUID("03219e78-5bc3-44d1-b92e-f63d89cc6526") XAudio24; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio24, 0x03219e78, 0x5bc3, 0x44d1, 0xb9,0x2e, 0xf6,0x3d,0x89,0xcc,0x65,0x26) -#endif -#endif - -/***************************************************************************** - * XAudio25 coclass - */ - -DEFINE_GUID(CLSID_XAudio25, 0x4c9b6dde, 0x6809, 0x46e6, 0xa2,0x78, 0x9b,0x6a,0x97,0x58,0x86,0x70); - -#ifdef __cplusplus -class DECLSPEC_UUID("4c9b6dde-6809-46e6-a278-9b6a97588670") XAudio25; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio25, 0x4c9b6dde, 0x6809, 0x46e6, 0xa2,0x78, 0x9b,0x6a,0x97,0x58,0x86,0x70) -#endif -#endif - -/***************************************************************************** - * XAudio26 coclass - */ - -DEFINE_GUID(CLSID_XAudio26, 0x3eda9b49, 0x2085, 0x498b, 0x9b,0xb2, 0x39,0xa6,0x77,0x84,0x93,0xde); - -#ifdef __cplusplus -class DECLSPEC_UUID("3eda9b49-2085-498b-9bb2-39a6778493de") XAudio26; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio26, 0x3eda9b49, 0x2085, 0x498b, 0x9b,0xb2, 0x39,0xa6,0x77,0x84,0x93,0xde) -#endif -#endif - -/***************************************************************************** - * XAudio27 coclass - */ - -DEFINE_GUID(CLSID_XAudio27, 0x5a508685, 0xa254, 0x4fba, 0x9b,0x82, 0x9a,0x24,0xb0,0x03,0x06,0xaf); - -#ifdef __cplusplus -class DECLSPEC_UUID("5a508685-a254-4fba-9b82-9a24b00306af") XAudio27; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio27, 0x5a508685, 0xa254, 0x4fba, 0x9b,0x82, 0x9a,0x24,0xb0,0x03,0x06,0xaf) -#endif -#endif - -/***************************************************************************** - * XAudio2Debug coclass - */ - -DEFINE_GUID(CLSID_XAudio2Debug, 0xdb05ea35, 0x0329, 0x4d4b, 0xa5,0x3a, 0x6d,0xea,0xd0,0x3d,0x38,0x52); - -#ifdef __cplusplus -class DECLSPEC_UUID("db05ea35-0329-4d4b-a53a-6dead03d3852") XAudio2Debug; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(XAudio2Debug, 0xdb05ea35, 0x0329, 0x4d4b, 0xa5,0x3a, 0x6d,0xea,0xd0,0x3d,0x38,0x52) -#endif -#endif - -#if 0 -typedef struct WAVEFORMATEX { - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wBitsPerSample; - WORD cbSize; -} WAVEFORMATEX; -typedef struct __WIDL_xaudio2_generated_name_00000013 { - WAVEFORMATEX Format; - union { - WORD wValidBitsPerSample; - WORD wSamplesPerBlock; - WORD wReserved; - } Samples; - DWORD dwChannelMask; - GUID SubFormat; -} WAVEFORMATEXTENSIBLE; -typedef struct __WIDL_xaudio2_generated_name_00000013 *PWAVEFORMATEXTENSIBLE; -#else -#include -#endif -#ifndef __IXAudio2Voice_FWD_DEFINED__ -#define __IXAudio2Voice_FWD_DEFINED__ -typedef interface IXAudio2Voice IXAudio2Voice; -#ifdef __cplusplus -interface IXAudio2Voice; -#endif /* __cplusplus */ -#endif - -typedef enum XAUDIO2_WINDOWS_PROCESSOR_SPECIFIER { - Processor1 = 0x1, - Processor2 = 0x2, - Processor3 = 0x4, - Processor4 = 0x8, - Processor5 = 0x10, - Processor6 = 0x20, - Processor7 = 0x40, - Processor8 = 0x80, - Processor9 = 0x100, - Processor10 = 0x200, - Processor11 = 0x400, - Processor12 = 0x800, - Processor13 = 0x1000, - Processor14 = 0x2000, - Processor15 = 0x4000, - Processor16 = 0x8000, - Processor17 = 0x10000, - Processor18 = 0x20000, - Processor19 = 0x40000, - Processor20 = 0x80000, - Processor21 = 0x100000, - Processor22 = 0x200000, - Processor23 = 0x400000, - Processor24 = 0x800000, - Processor25 = 0x1000000, - Processor26 = 0x2000000, - Processor27 = 0x4000000, - Processor28 = 0x8000000, - Processor29 = 0x10000000, - Processor30 = 0x20000000, - Processor31 = 0x40000000, - Processor32 = 0x80000000, - XAUDIO2_ANY_PROCESSOR = 0xffffffff, - XAUDIO2_DEFAULT_PROCESSOR = XAUDIO2_ANY_PROCESSOR -} XAUDIO2_WINDOWS_PROCESSOR_SPECIFIER; -typedef enum XAUDIO2_WINDOWS_PROCESSOR_SPECIFIER XAUDIO2_PROCESSOR; -typedef struct XAUDIO2_PERFORMANCE_DATA { - UINT64 AudioCyclesSinceLastQuery; - UINT64 TotalCyclesSinceLastQuery; - UINT32 MinimumCyclesPerQuantum; - UINT32 MaximumCyclesPerQuantum; - UINT32 MemoryUsageInBytes; - UINT32 CurrentLatencyInSamples; - UINT32 GlitchesSinceEngineStarted; - UINT32 ActiveSourceVoiceCount; - UINT32 TotalSourceVoiceCount; - UINT32 ActiveSubmixVoiceCount; - UINT32 ActiveResamplerCount; - UINT32 ActiveMatrixMixCount; - UINT32 ActiveXmaSourceVoices; - UINT32 ActiveXmaStreams; -} XAUDIO2_PERFORMANCE_DATA; -typedef struct XAUDIO22_PERFORMANCE_DATA { - UINT64 AudioCyclesSinceLastQuery; - UINT64 TotalCyclesSinceLastQuery; - UINT32 MinimumCyclesPerQuantum; - UINT32 MaximumCyclesPerQuantum; - UINT32 MemoryUsageInBytes; - UINT32 CurrentLatencyInSamples; - UINT32 GlitchesSinceEngineStarted; - UINT32 ActiveSourceVoiceCount; - UINT32 TotalSourceVoiceCount; - UINT32 ActiveSubmixVoiceCount; - UINT32 TotalSubmixVoiceCount; - UINT32 ActiveXmaSourceVoices; - UINT32 ActiveXmaStreams; -} XAUDIO22_PERFORMANCE_DATA; -typedef struct XAUDIO20_PERFORMANCE_DATA { - UINT64 AudioCyclesSinceLastQuery; - UINT64 TotalCyclesSinceLastQuery; - UINT32 MinimumCyclesPerQuantum; - UINT32 MaximumCyclesPerQuantum; - UINT32 MemoryUsageInBytes; - UINT32 CurrentLatencyInSamples; - UINT32 GlitchesSinceLastQuery; - UINT32 ActiveSourceVoiceCount; - UINT32 TotalSourceVoiceCount; - UINT32 ActiveSubmixVoiceCount; - UINT32 TotalSubmixVoiceCount; - UINT32 ActiveXmaSourceVoices; - UINT32 ActiveXmaStreams; -} XAUDIO20_PERFORMANCE_DATA; -typedef enum XAUDIO2_DEVICE_ROLE { - NotDefaultDevice = 0x0, - DefaultConsoleDevice = 0x1, - DefaultMultimediaDevice = 0x2, - DefaultCommunicationsDevice = 0x4, - DefaultGameDevice = 0x8, - GlobalDefaultDevice = 0xf, - InvalidDeviceRole = ~GlobalDefaultDevice -} XAUDIO2_DEVICE_ROLE; -typedef struct XAUDIO2_DEVICE_DETAILS { - WCHAR DeviceID[256]; - WCHAR DisplayName[256]; - XAUDIO2_DEVICE_ROLE Role; - WAVEFORMATEXTENSIBLE OutputFormat; -} XAUDIO2_DEVICE_DETAILS; -typedef struct XAUDIO2_VOICE_DETAILS { - UINT32 CreationFlags; - UINT32 InputChannels; - UINT32 InputSampleRate; -} XAUDIO2_VOICE_DETAILS; -typedef struct XAUDIO2_SEND_DESCRIPTOR { - UINT32 Flags; - IXAudio2Voice *pOutputVoice; -} XAUDIO2_SEND_DESCRIPTOR; -typedef struct XAUDIO23_VOICE_SENDS { - UINT32 OutputCount; - IXAudio2Voice **pOutputVoices; -} XAUDIO23_VOICE_SENDS; -typedef struct XAUDIO2_VOICE_SENDS { - UINT32 SendCount; - XAUDIO2_SEND_DESCRIPTOR *pSends; -} XAUDIO2_VOICE_SENDS; -typedef struct XAUDIO2_EFFECT_DESCRIPTOR { - IUnknown *pEffect; - BOOL InitialState; - UINT32 OutputChannels; -} XAUDIO2_EFFECT_DESCRIPTOR; -typedef struct XAUDIO2_EFFECT_CHAIN { - UINT32 EffectCount; - XAUDIO2_EFFECT_DESCRIPTOR *pEffectDescriptors; -} XAUDIO2_EFFECT_CHAIN; -#define XAUDIO2_MAX_BUFFER_BYTES (0x80000000) - -#define XAUDIO2_MAX_QUEUED_BUFFERS (64) - -#define XAUDIO2_MAX_BUFFERS_SYSTEM (2) - -#define XAUDIO2_MAX_AUDIO_CHANNELS (64) - -#define XAUDIO2_MIN_SAMPLE_RATE (1000) - -#define XAUDIO2_MAX_SAMPLE_RATE (200000) - -#define XAUDIO2_MAX_VOLUME_LEVEL (16777216.0000000) - -#define XAUDIO2_MIN_FREQ_RATIO (1 / 1024.00000000000) - -#define XAUDIO2_MAX_FREQ_RATIO (1024.00000000000) - -#define XAUDIO2_DEFAULT_FREQ_RATIO (2.00000000000000) - -#define XAUDIO2_MAX_FILTER_ONEOVERQ (1.50000000000000) - -#define XAUDIO2_MAX_FILTER_FREQUENCY (1.00000000000000) - -#define XAUDIO2_MAX_LOOP_COUNT (254) - -#define XAUDIO20_MAX_LOOP_COUNT (0x100000) - -#define XAUDIO2_COMMIT_NOW (0) - -#define XAUDIO2_COMMIT_ALL (0) - -#define XAUDIO2_INVALID_OPSET (0xffffffff) - -#define XAUDIO2_NO_LOOP_REGION (0) - -#define XAUDIO2_LOOP_INFINITE (255) - -#define XAUDIO20_LOOP_INFINITE ((UINT)-1) - -#define XAUDIO2_DEFAULT_CHANNELS (0) - -#define XAUDIO2_DEFAULT_SAMPLERATE (0) - -/***************************************************************************** - * IXAudio2EngineCallback interface - */ -#ifndef __IXAudio2EngineCallback_INTERFACE_DEFINED__ -#define __IXAudio2EngineCallback_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio2EngineCallback -{ - - BEGIN_INTERFACE - - virtual void STDMETHODCALLTYPE OnProcessingPassStart( - ) = 0; - - virtual void STDMETHODCALLTYPE OnProcessingPassEnd( - ) = 0; - - virtual void STDMETHODCALLTYPE OnCriticalError( - HRESULT Error) = 0; - - END_INTERFACE - -}; -#else -typedef struct IXAudio2EngineCallbackVtbl { - BEGIN_INTERFACE - - /*** IXAudio2EngineCallback methods ***/ - void (STDMETHODCALLTYPE *OnProcessingPassStart)( - IXAudio2EngineCallback *This); - - void (STDMETHODCALLTYPE *OnProcessingPassEnd)( - IXAudio2EngineCallback *This); - - void (STDMETHODCALLTYPE *OnCriticalError)( - IXAudio2EngineCallback *This, - HRESULT Error); - - END_INTERFACE -} IXAudio2EngineCallbackVtbl; - -interface IXAudio2EngineCallback { - CONST_VTBL IXAudio2EngineCallbackVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio2EngineCallback methods ***/ -#define IXAudio2EngineCallback_OnProcessingPassStart(This) (This)->lpVtbl->OnProcessingPassStart(This) -#define IXAudio2EngineCallback_OnProcessingPassEnd(This) (This)->lpVtbl->OnProcessingPassEnd(This) -#define IXAudio2EngineCallback_OnCriticalError(This,Error) (This)->lpVtbl->OnCriticalError(This,Error) -#else -/*** IXAudio2EngineCallback methods ***/ -static FORCEINLINE void IXAudio2EngineCallback_OnProcessingPassStart(IXAudio2EngineCallback* This) { - This->lpVtbl->OnProcessingPassStart(This); -} -static FORCEINLINE void IXAudio2EngineCallback_OnProcessingPassEnd(IXAudio2EngineCallback* This) { - This->lpVtbl->OnProcessingPassEnd(This); -} -static FORCEINLINE void IXAudio2EngineCallback_OnCriticalError(IXAudio2EngineCallback* This,HRESULT Error) { - This->lpVtbl->OnCriticalError(This,Error); -} -#endif -#endif - -#endif - -void STDMETHODCALLTYPE IXAudio2EngineCallback_OnProcessingPassStart_Proxy( - IXAudio2EngineCallback* This); -void __RPC_STUB IXAudio2EngineCallback_OnProcessingPassStart_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2EngineCallback_OnProcessingPassEnd_Proxy( - IXAudio2EngineCallback* This); -void __RPC_STUB IXAudio2EngineCallback_OnProcessingPassEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2EngineCallback_OnCriticalError_Proxy( - IXAudio2EngineCallback* This, - HRESULT Error); -void __RPC_STUB IXAudio2EngineCallback_OnCriticalError_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio2EngineCallback_INTERFACE_DEFINED__ */ - -typedef enum XAUDIO2_FILTER_TYPE { - LowPassFilter = 0, - BandPassFilter = 1, - HighPassFilter = 2, - NotchFilter = 3 -} XAUDIO2_FILTER_TYPE; -typedef struct XAUDIO2_FILTER_PARAMETERS { - XAUDIO2_FILTER_TYPE Type; - float Frequency; - float OneOverQ; -} XAUDIO2_FILTER_PARAMETERS; -/***************************************************************************** - * IXAudio20Voice interface - */ -#ifndef __IXAudio20Voice_INTERFACE_DEFINED__ -#define __IXAudio20Voice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio20Voice -{ - - BEGIN_INTERFACE - - virtual void STDMETHODCALLTYPE GetVoiceDetails( - XAUDIO2_VOICE_DETAILS *pVoiceDetails) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOutputVoices( - const XAUDIO23_VOICE_SENDS *pSendList) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEffectChain( - const XAUDIO2_EFFECT_CHAIN *pEffectChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableEffect( - UINT32 EffectIndex, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisableEffect( - UINT32 EffectIndex, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetEffectState( - UINT32 EffectIndex, - BOOL *pEnabled) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEffectParameters( - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEffectParameters( - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFilterParameters( - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetFilterParameters( - XAUDIO2_FILTER_PARAMETERS *pParameters) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVolume( - float Volume, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetVolume( - float *pVolume) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetChannelVolumes( - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetChannelVolumes( - UINT32 Channels, - float *pVolumes) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOutputMatrix( - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOutputMatrix( - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix) = 0; - - virtual void STDMETHODCALLTYPE DestroyVoice( - ) = 0; - - END_INTERFACE - -}; -#else -typedef struct IXAudio20VoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio20Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio20Voice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio20Voice *This, - const XAUDIO23_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio20Voice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio20Voice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio20Voice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio20Voice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio20Voice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio20Voice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio20Voice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio20Voice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio20Voice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio20Voice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio20Voice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio20Voice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio20Voice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio20Voice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio20Voice *This); - - END_INTERFACE -} IXAudio20VoiceVtbl; - -interface IXAudio20Voice { - CONST_VTBL IXAudio20VoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio20Voice methods ***/ -#define IXAudio20Voice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio20Voice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio20Voice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio20Voice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio20Voice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio20Voice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio20Voice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio20Voice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio20Voice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio20Voice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio20Voice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio20Voice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio20Voice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio20Voice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio20Voice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio20Voice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio20Voice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -#else -/*** IXAudio20Voice methods ***/ -static FORCEINLINE void IXAudio20Voice_GetVoiceDetails(IXAudio20Voice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio20Voice_SetOutputVoices(IXAudio20Voice* This,const XAUDIO23_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio20Voice_SetEffectChain(IXAudio20Voice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio20Voice_EnableEffect(IXAudio20Voice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20Voice_DisableEffect(IXAudio20Voice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio20Voice_GetEffectState(IXAudio20Voice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio20Voice_SetEffectParameters(IXAudio20Voice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20Voice_GetEffectParameters(IXAudio20Voice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio20Voice_SetFilterParameters(IXAudio20Voice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio20Voice_GetFilterParameters(IXAudio20Voice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio20Voice_SetVolume(IXAudio20Voice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio20Voice_GetVolume(IXAudio20Voice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio20Voice_SetChannelVolumes(IXAudio20Voice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio20Voice_GetChannelVolumes(IXAudio20Voice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio20Voice_SetOutputMatrix(IXAudio20Voice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20Voice_GetOutputMatrix(IXAudio20Voice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - return This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio20Voice_DestroyVoice(IXAudio20Voice* This) { - This->lpVtbl->DestroyVoice(This); -} -#endif -#endif - -#endif - -void STDMETHODCALLTYPE IXAudio20Voice_GetVoiceDetails_Proxy( - IXAudio20Voice* This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); -void __RPC_STUB IXAudio20Voice_GetVoiceDetails_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_SetOutputVoices_Proxy( - IXAudio20Voice* This, - const XAUDIO23_VOICE_SENDS *pSendList); -void __RPC_STUB IXAudio20Voice_SetOutputVoices_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_SetEffectChain_Proxy( - IXAudio20Voice* This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio20Voice_SetEffectChain_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_EnableEffect_Proxy( - IXAudio20Voice* This, - UINT32 EffectIndex, - UINT32 OperationSet); -void __RPC_STUB IXAudio20Voice_EnableEffect_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_DisableEffect_Proxy( - IXAudio20Voice* This, - UINT32 EffectIndex, - UINT32 OperationSet); -void __RPC_STUB IXAudio20Voice_DisableEffect_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20Voice_GetEffectState_Proxy( - IXAudio20Voice* This, - UINT32 EffectIndex, - BOOL *pEnabled); -void __RPC_STUB IXAudio20Voice_GetEffectState_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_SetEffectParameters_Proxy( - IXAudio20Voice* This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); -void __RPC_STUB IXAudio20Voice_SetEffectParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_GetEffectParameters_Proxy( - IXAudio20Voice* This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); -void __RPC_STUB IXAudio20Voice_GetEffectParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_SetFilterParameters_Proxy( - IXAudio20Voice* This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); -void __RPC_STUB IXAudio20Voice_SetFilterParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20Voice_GetFilterParameters_Proxy( - IXAudio20Voice* This, - XAUDIO2_FILTER_PARAMETERS *pParameters); -void __RPC_STUB IXAudio20Voice_GetFilterParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_SetVolume_Proxy( - IXAudio20Voice* This, - float Volume, - UINT32 OperationSet); -void __RPC_STUB IXAudio20Voice_SetVolume_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20Voice_GetVolume_Proxy( - IXAudio20Voice* This, - float *pVolume); -void __RPC_STUB IXAudio20Voice_GetVolume_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_SetChannelVolumes_Proxy( - IXAudio20Voice* This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); -void __RPC_STUB IXAudio20Voice_SetChannelVolumes_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20Voice_GetChannelVolumes_Proxy( - IXAudio20Voice* This, - UINT32 Channels, - float *pVolumes); -void __RPC_STUB IXAudio20Voice_GetChannelVolumes_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_SetOutputMatrix_Proxy( - IXAudio20Voice* This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); -void __RPC_STUB IXAudio20Voice_SetOutputMatrix_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20Voice_GetOutputMatrix_Proxy( - IXAudio20Voice* This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); -void __RPC_STUB IXAudio20Voice_GetOutputMatrix_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20Voice_DestroyVoice_Proxy( - IXAudio20Voice* This); -void __RPC_STUB IXAudio20Voice_DestroyVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio20Voice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio23Voice interface - */ -#ifndef __IXAudio23Voice_INTERFACE_DEFINED__ -#define __IXAudio23Voice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio23Voice -{ - - BEGIN_INTERFACE - - virtual void STDMETHODCALLTYPE GetVoiceDetails( - XAUDIO2_VOICE_DETAILS *pVoiceDetails) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOutputVoices( - const XAUDIO23_VOICE_SENDS *pSendList) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEffectChain( - const XAUDIO2_EFFECT_CHAIN *pEffectChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableEffect( - UINT32 EffectIndex, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisableEffect( - UINT32 EffectIndex, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetEffectState( - UINT32 EffectIndex, - BOOL *pEnabled) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEffectParameters( - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEffectParameters( - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFilterParameters( - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetFilterParameters( - XAUDIO2_FILTER_PARAMETERS *pParameters) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVolume( - float Volume, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetVolume( - float *pVolume) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetChannelVolumes( - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetChannelVolumes( - UINT32 Channels, - float *pVolumes) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOutputMatrix( - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetOutputMatrix( - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix) = 0; - - virtual void STDMETHODCALLTYPE DestroyVoice( - ) = 0; - - END_INTERFACE - -}; -#else -typedef struct IXAudio23VoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio23Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio23Voice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio23Voice *This, - const XAUDIO23_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio23Voice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio23Voice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio23Voice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio23Voice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio23Voice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio23Voice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio23Voice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio23Voice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio23Voice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio23Voice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio23Voice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio23Voice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio23Voice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio23Voice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio23Voice *This); - - END_INTERFACE -} IXAudio23VoiceVtbl; - -interface IXAudio23Voice { - CONST_VTBL IXAudio23VoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio23Voice methods ***/ -#define IXAudio23Voice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio23Voice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio23Voice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio23Voice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio23Voice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio23Voice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio23Voice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio23Voice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio23Voice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio23Voice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio23Voice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio23Voice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio23Voice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio23Voice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio23Voice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio23Voice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio23Voice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -#else -/*** IXAudio23Voice methods ***/ -static FORCEINLINE void IXAudio23Voice_GetVoiceDetails(IXAudio23Voice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio23Voice_SetOutputVoices(IXAudio23Voice* This,const XAUDIO23_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio23Voice_SetEffectChain(IXAudio23Voice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio23Voice_EnableEffect(IXAudio23Voice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23Voice_DisableEffect(IXAudio23Voice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio23Voice_GetEffectState(IXAudio23Voice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio23Voice_SetEffectParameters(IXAudio23Voice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23Voice_GetEffectParameters(IXAudio23Voice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio23Voice_SetFilterParameters(IXAudio23Voice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio23Voice_GetFilterParameters(IXAudio23Voice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio23Voice_SetVolume(IXAudio23Voice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio23Voice_GetVolume(IXAudio23Voice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio23Voice_SetChannelVolumes(IXAudio23Voice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio23Voice_GetChannelVolumes(IXAudio23Voice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio23Voice_SetOutputMatrix(IXAudio23Voice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio23Voice_GetOutputMatrix(IXAudio23Voice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio23Voice_DestroyVoice(IXAudio23Voice* This) { - This->lpVtbl->DestroyVoice(This); -} -#endif -#endif - -#endif - -void STDMETHODCALLTYPE IXAudio23Voice_GetVoiceDetails_Proxy( - IXAudio23Voice* This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); -void __RPC_STUB IXAudio23Voice_GetVoiceDetails_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_SetOutputVoices_Proxy( - IXAudio23Voice* This, - const XAUDIO23_VOICE_SENDS *pSendList); -void __RPC_STUB IXAudio23Voice_SetOutputVoices_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_SetEffectChain_Proxy( - IXAudio23Voice* This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio23Voice_SetEffectChain_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_EnableEffect_Proxy( - IXAudio23Voice* This, - UINT32 EffectIndex, - UINT32 OperationSet); -void __RPC_STUB IXAudio23Voice_EnableEffect_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_DisableEffect_Proxy( - IXAudio23Voice* This, - UINT32 EffectIndex, - UINT32 OperationSet); -void __RPC_STUB IXAudio23Voice_DisableEffect_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio23Voice_GetEffectState_Proxy( - IXAudio23Voice* This, - UINT32 EffectIndex, - BOOL *pEnabled); -void __RPC_STUB IXAudio23Voice_GetEffectState_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_SetEffectParameters_Proxy( - IXAudio23Voice* This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); -void __RPC_STUB IXAudio23Voice_SetEffectParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_GetEffectParameters_Proxy( - IXAudio23Voice* This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); -void __RPC_STUB IXAudio23Voice_GetEffectParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_SetFilterParameters_Proxy( - IXAudio23Voice* This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); -void __RPC_STUB IXAudio23Voice_SetFilterParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio23Voice_GetFilterParameters_Proxy( - IXAudio23Voice* This, - XAUDIO2_FILTER_PARAMETERS *pParameters); -void __RPC_STUB IXAudio23Voice_GetFilterParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_SetVolume_Proxy( - IXAudio23Voice* This, - float Volume, - UINT32 OperationSet); -void __RPC_STUB IXAudio23Voice_SetVolume_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio23Voice_GetVolume_Proxy( - IXAudio23Voice* This, - float *pVolume); -void __RPC_STUB IXAudio23Voice_GetVolume_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_SetChannelVolumes_Proxy( - IXAudio23Voice* This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); -void __RPC_STUB IXAudio23Voice_SetChannelVolumes_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio23Voice_GetChannelVolumes_Proxy( - IXAudio23Voice* This, - UINT32 Channels, - float *pVolumes); -void __RPC_STUB IXAudio23Voice_GetChannelVolumes_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23Voice_SetOutputMatrix_Proxy( - IXAudio23Voice* This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); -void __RPC_STUB IXAudio23Voice_SetOutputMatrix_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio23Voice_GetOutputMatrix_Proxy( - IXAudio23Voice* This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); -void __RPC_STUB IXAudio23Voice_GetOutputMatrix_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio23Voice_DestroyVoice_Proxy( - IXAudio23Voice* This); -void __RPC_STUB IXAudio23Voice_DestroyVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio23Voice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio2Voice interface - */ -#ifndef __IXAudio2Voice_INTERFACE_DEFINED__ -#define __IXAudio2Voice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio2Voice -{ - - BEGIN_INTERFACE - - virtual void STDMETHODCALLTYPE GetVoiceDetails( - XAUDIO2_VOICE_DETAILS *pVoiceDetails) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOutputVoices( - const XAUDIO2_VOICE_SENDS *pSendList) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEffectChain( - const XAUDIO2_EFFECT_CHAIN *pEffectChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableEffect( - UINT32 EffectIndex, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisableEffect( - UINT32 EffectIndex, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetEffectState( - UINT32 EffectIndex, - BOOL *pEnabled) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEffectParameters( - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEffectParameters( - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFilterParameters( - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetFilterParameters( - XAUDIO2_FILTER_PARAMETERS *pParameters) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOutputFilterParameters( - IXAudio2Voice *pDestinationVoice, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetOutputFilterParameters( - IXAudio2Voice *pDestinationVoice, - XAUDIO2_FILTER_PARAMETERS *pParameters) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVolume( - float Volume, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetVolume( - float *pVolume) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetChannelVolumes( - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetChannelVolumes( - UINT32 Channels, - float *pVolumes) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOutputMatrix( - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetOutputMatrix( - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix) = 0; - - virtual void STDMETHODCALLTYPE DestroyVoice( - ) = 0; - - END_INTERFACE - -}; -#else -typedef struct IXAudio2VoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio2Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio2Voice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio2Voice *This, - const XAUDIO2_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio2Voice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio2Voice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio2Voice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio2Voice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio2Voice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio2Voice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio2Voice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio2Voice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetOutputFilterParameters)( - IXAudio2Voice *This, - IXAudio2Voice *pDestinationVoice, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputFilterParameters)( - IXAudio2Voice *This, - IXAudio2Voice *pDestinationVoice, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio2Voice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio2Voice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio2Voice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio2Voice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio2Voice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio2Voice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio2Voice *This); - - END_INTERFACE -} IXAudio2VoiceVtbl; - -interface IXAudio2Voice { - CONST_VTBL IXAudio2VoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio2Voice methods ***/ -#define IXAudio2Voice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio2Voice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio2Voice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio2Voice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio2Voice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio2Voice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio2Voice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio2Voice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio2Voice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio2Voice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio2Voice_SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) (This)->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) -#define IXAudio2Voice_GetOutputFilterParameters(This,pDestinationVoice,pParameters) (This)->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters) -#define IXAudio2Voice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio2Voice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio2Voice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio2Voice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio2Voice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio2Voice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio2Voice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -#else -/*** IXAudio2Voice methods ***/ -static FORCEINLINE void IXAudio2Voice_GetVoiceDetails(IXAudio2Voice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio2Voice_SetOutputVoices(IXAudio2Voice* This,const XAUDIO2_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio2Voice_SetEffectChain(IXAudio2Voice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio2Voice_EnableEffect(IXAudio2Voice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2Voice_DisableEffect(IXAudio2Voice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio2Voice_GetEffectState(IXAudio2Voice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio2Voice_SetEffectParameters(IXAudio2Voice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2Voice_GetEffectParameters(IXAudio2Voice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio2Voice_SetFilterParameters(IXAudio2Voice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio2Voice_GetFilterParameters(IXAudio2Voice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio2Voice_SetOutputFilterParameters(IXAudio2Voice* This,IXAudio2Voice *pDestinationVoice,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio2Voice_GetOutputFilterParameters(IXAudio2Voice* This,IXAudio2Voice *pDestinationVoice,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters); -} -static FORCEINLINE HRESULT IXAudio2Voice_SetVolume(IXAudio2Voice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio2Voice_GetVolume(IXAudio2Voice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio2Voice_SetChannelVolumes(IXAudio2Voice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio2Voice_GetChannelVolumes(IXAudio2Voice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio2Voice_SetOutputMatrix(IXAudio2Voice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio2Voice_GetOutputMatrix(IXAudio2Voice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio2Voice_DestroyVoice(IXAudio2Voice* This) { - This->lpVtbl->DestroyVoice(This); -} -#endif -#endif - -#endif - -void STDMETHODCALLTYPE IXAudio2Voice_GetVoiceDetails_Proxy( - IXAudio2Voice* This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); -void __RPC_STUB IXAudio2Voice_GetVoiceDetails_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_SetOutputVoices_Proxy( - IXAudio2Voice* This, - const XAUDIO2_VOICE_SENDS *pSendList); -void __RPC_STUB IXAudio2Voice_SetOutputVoices_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_SetEffectChain_Proxy( - IXAudio2Voice* This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio2Voice_SetEffectChain_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_EnableEffect_Proxy( - IXAudio2Voice* This, - UINT32 EffectIndex, - UINT32 OperationSet); -void __RPC_STUB IXAudio2Voice_EnableEffect_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_DisableEffect_Proxy( - IXAudio2Voice* This, - UINT32 EffectIndex, - UINT32 OperationSet); -void __RPC_STUB IXAudio2Voice_DisableEffect_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2Voice_GetEffectState_Proxy( - IXAudio2Voice* This, - UINT32 EffectIndex, - BOOL *pEnabled); -void __RPC_STUB IXAudio2Voice_GetEffectState_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_SetEffectParameters_Proxy( - IXAudio2Voice* This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); -void __RPC_STUB IXAudio2Voice_SetEffectParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_GetEffectParameters_Proxy( - IXAudio2Voice* This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); -void __RPC_STUB IXAudio2Voice_GetEffectParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_SetFilterParameters_Proxy( - IXAudio2Voice* This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); -void __RPC_STUB IXAudio2Voice_SetFilterParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2Voice_GetFilterParameters_Proxy( - IXAudio2Voice* This, - XAUDIO2_FILTER_PARAMETERS *pParameters); -void __RPC_STUB IXAudio2Voice_GetFilterParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_SetOutputFilterParameters_Proxy( - IXAudio2Voice* This, - IXAudio2Voice *pDestinationVoice, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); -void __RPC_STUB IXAudio2Voice_SetOutputFilterParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2Voice_GetOutputFilterParameters_Proxy( - IXAudio2Voice* This, - IXAudio2Voice *pDestinationVoice, - XAUDIO2_FILTER_PARAMETERS *pParameters); -void __RPC_STUB IXAudio2Voice_GetOutputFilterParameters_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_SetVolume_Proxy( - IXAudio2Voice* This, - float Volume, - UINT32 OperationSet); -void __RPC_STUB IXAudio2Voice_SetVolume_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2Voice_GetVolume_Proxy( - IXAudio2Voice* This, - float *pVolume); -void __RPC_STUB IXAudio2Voice_GetVolume_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_SetChannelVolumes_Proxy( - IXAudio2Voice* This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); -void __RPC_STUB IXAudio2Voice_SetChannelVolumes_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2Voice_GetChannelVolumes_Proxy( - IXAudio2Voice* This, - UINT32 Channels, - float *pVolumes); -void __RPC_STUB IXAudio2Voice_GetChannelVolumes_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2Voice_SetOutputMatrix_Proxy( - IXAudio2Voice* This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); -void __RPC_STUB IXAudio2Voice_SetOutputMatrix_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2Voice_GetOutputMatrix_Proxy( - IXAudio2Voice* This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); -void __RPC_STUB IXAudio2Voice_GetOutputMatrix_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2Voice_DestroyVoice_Proxy( - IXAudio2Voice* This); -void __RPC_STUB IXAudio2Voice_DestroyVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio2Voice_INTERFACE_DEFINED__ */ - -typedef struct XAUDIO2_BUFFER { - UINT32 Flags; - UINT32 AudioBytes; - const BYTE *pAudioData; - UINT32 PlayBegin; - UINT32 PlayLength; - UINT32 LoopBegin; - UINT32 LoopLength; - UINT32 LoopCount; - void *pContext; -} XAUDIO2_BUFFER; -typedef struct XAUDIO2_BUFFER_WMA { - const UINT32 *pDecodedPacketCumulativeBytes; - UINT32 PacketCount; -} XAUDIO2_BUFFER_WMA; -typedef struct XAUDIO2_VOICE_STATE { - void *pCurrentBufferContext; - UINT32 BuffersQueued; - UINT64 SamplesPlayed; -} XAUDIO2_VOICE_STATE; -/***************************************************************************** - * IXAudio20SourceVoice interface - */ -#ifndef __IXAudio20SourceVoice_INTERFACE_DEFINED__ -#define __IXAudio20SourceVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio20SourceVoice : public IXAudio20Voice -{ - virtual HRESULT STDMETHODCALLTYPE Start( - UINT32 Flags = 0, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stop( - UINT32 Flags = 0, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE SubmitSourceBuffer( - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE FlushSourceBuffers( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE Discontinuity( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitLoop( - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetState( - XAUDIO2_VOICE_STATE *pVoiceState) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFrequencyRatio( - float Ratio, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetFrequencyRatio( - float *pRatio) = 0; - -}; -#else -typedef struct IXAudio20SourceVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio20Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio20SourceVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio20SourceVoice *This, - const XAUDIO23_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio20SourceVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio20SourceVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio20SourceVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio20SourceVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio20SourceVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio20SourceVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio20SourceVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio20SourceVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio20SourceVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio20SourceVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio20SourceVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio20SourceVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio20SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio20SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio20SourceVoice *This); - - /*** IXAudio20SourceVoice methods ***/ - HRESULT (STDMETHODCALLTYPE *Start)( - IXAudio20SourceVoice *This, - UINT32 Flags, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *Stop)( - IXAudio20SourceVoice *This, - UINT32 Flags, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *SubmitSourceBuffer)( - IXAudio20SourceVoice *This, - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA); - - HRESULT (STDMETHODCALLTYPE *FlushSourceBuffers)( - IXAudio20SourceVoice *This); - - HRESULT (STDMETHODCALLTYPE *Discontinuity)( - IXAudio20SourceVoice *This); - - HRESULT (STDMETHODCALLTYPE *ExitLoop)( - IXAudio20SourceVoice *This, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetState)( - IXAudio20SourceVoice *This, - XAUDIO2_VOICE_STATE *pVoiceState); - - HRESULT (STDMETHODCALLTYPE *SetFrequencyRatio)( - IXAudio20SourceVoice *This, - float Ratio, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFrequencyRatio)( - IXAudio20SourceVoice *This, - float *pRatio); - - END_INTERFACE -} IXAudio20SourceVoiceVtbl; - -interface IXAudio20SourceVoice { - CONST_VTBL IXAudio20SourceVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio20Voice methods ***/ -#define IXAudio20SourceVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio20SourceVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio20SourceVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio20SourceVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio20SourceVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio20SourceVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio20SourceVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio20SourceVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio20SourceVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio20SourceVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio20SourceVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio20SourceVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio20SourceVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio20SourceVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio20SourceVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio20SourceVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio20SourceVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -/*** IXAudio20SourceVoice methods ***/ -#define IXAudio20SourceVoice_Start(This,Flags,OperationSet) (This)->lpVtbl->Start(This,Flags,OperationSet) -#define IXAudio20SourceVoice_Stop(This,Flags,OperationSet) (This)->lpVtbl->Stop(This,Flags,OperationSet) -#define IXAudio20SourceVoice_SubmitSourceBuffer(This,pBuffer,pBufferWMA) (This)->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA) -#define IXAudio20SourceVoice_FlushSourceBuffers(This) (This)->lpVtbl->FlushSourceBuffers(This) -#define IXAudio20SourceVoice_Discontinuity(This) (This)->lpVtbl->Discontinuity(This) -#define IXAudio20SourceVoice_ExitLoop(This,OperationSet) (This)->lpVtbl->ExitLoop(This,OperationSet) -#define IXAudio20SourceVoice_GetState(This,pVoiceState) (This)->lpVtbl->GetState(This,pVoiceState) -#define IXAudio20SourceVoice_SetFrequencyRatio(This,Ratio,OperationSet) (This)->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet) -#define IXAudio20SourceVoice_GetFrequencyRatio(This,pRatio) (This)->lpVtbl->GetFrequencyRatio(This,pRatio) -#else -/*** IXAudio20Voice methods ***/ -static FORCEINLINE void IXAudio20SourceVoice_GetVoiceDetails(IXAudio20SourceVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SetOutputVoices(IXAudio20SourceVoice* This,const XAUDIO23_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SetEffectChain(IXAudio20SourceVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_EnableEffect(IXAudio20SourceVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_DisableEffect(IXAudio20SourceVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio20SourceVoice_GetEffectState(IXAudio20SourceVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SetEffectParameters(IXAudio20SourceVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_GetEffectParameters(IXAudio20SourceVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SetFilterParameters(IXAudio20SourceVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio20SourceVoice_GetFilterParameters(IXAudio20SourceVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SetVolume(IXAudio20SourceVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio20SourceVoice_GetVolume(IXAudio20SourceVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SetChannelVolumes(IXAudio20SourceVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio20SourceVoice_GetChannelVolumes(IXAudio20SourceVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SetOutputMatrix(IXAudio20SourceVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_GetOutputMatrix(IXAudio20SourceVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - return This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio20SourceVoice_DestroyVoice(IXAudio20SourceVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -/*** IXAudio20SourceVoice methods ***/ -static FORCEINLINE HRESULT IXAudio20SourceVoice_Start(IXAudio20SourceVoice* This,UINT32 Flags,UINT32 OperationSet) { - return This->lpVtbl->Start(This,Flags,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_Stop(IXAudio20SourceVoice* This,UINT32 Flags,UINT32 OperationSet) { - return This->lpVtbl->Stop(This,Flags,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SubmitSourceBuffer(IXAudio20SourceVoice* This,const XAUDIO2_BUFFER *pBuffer,const XAUDIO2_BUFFER_WMA *pBufferWMA) { - return This->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_FlushSourceBuffers(IXAudio20SourceVoice* This) { - return This->lpVtbl->FlushSourceBuffers(This); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_Discontinuity(IXAudio20SourceVoice* This) { - return This->lpVtbl->Discontinuity(This); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_ExitLoop(IXAudio20SourceVoice* This,UINT32 OperationSet) { - return This->lpVtbl->ExitLoop(This,OperationSet); -} -static FORCEINLINE void IXAudio20SourceVoice_GetState(IXAudio20SourceVoice* This,XAUDIO2_VOICE_STATE *pVoiceState) { - This->lpVtbl->GetState(This,pVoiceState); -} -static FORCEINLINE HRESULT IXAudio20SourceVoice_SetFrequencyRatio(IXAudio20SourceVoice* This,float Ratio,UINT32 OperationSet) { - return This->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet); -} -static FORCEINLINE void IXAudio20SourceVoice_GetFrequencyRatio(IXAudio20SourceVoice* This,float *pRatio) { - This->lpVtbl->GetFrequencyRatio(This,pRatio); -} -#endif -#endif - -#endif - -HRESULT STDMETHODCALLTYPE IXAudio20SourceVoice_Start_Proxy( - IXAudio20SourceVoice* This, - UINT32 Flags, - UINT32 OperationSet); -void __RPC_STUB IXAudio20SourceVoice_Start_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20SourceVoice_Stop_Proxy( - IXAudio20SourceVoice* This, - UINT32 Flags, - UINT32 OperationSet); -void __RPC_STUB IXAudio20SourceVoice_Stop_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20SourceVoice_SubmitSourceBuffer_Proxy( - IXAudio20SourceVoice* This, - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA); -void __RPC_STUB IXAudio20SourceVoice_SubmitSourceBuffer_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20SourceVoice_FlushSourceBuffers_Proxy( - IXAudio20SourceVoice* This); -void __RPC_STUB IXAudio20SourceVoice_FlushSourceBuffers_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20SourceVoice_Discontinuity_Proxy( - IXAudio20SourceVoice* This); -void __RPC_STUB IXAudio20SourceVoice_Discontinuity_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20SourceVoice_ExitLoop_Proxy( - IXAudio20SourceVoice* This, - UINT32 OperationSet); -void __RPC_STUB IXAudio20SourceVoice_ExitLoop_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20SourceVoice_GetState_Proxy( - IXAudio20SourceVoice* This, - XAUDIO2_VOICE_STATE *pVoiceState); -void __RPC_STUB IXAudio20SourceVoice_GetState_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20SourceVoice_SetFrequencyRatio_Proxy( - IXAudio20SourceVoice* This, - float Ratio, - UINT32 OperationSet); -void __RPC_STUB IXAudio20SourceVoice_SetFrequencyRatio_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20SourceVoice_GetFrequencyRatio_Proxy( - IXAudio20SourceVoice* This, - float *pRatio); -void __RPC_STUB IXAudio20SourceVoice_GetFrequencyRatio_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio20SourceVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio23SourceVoice interface - */ -#ifndef __IXAudio23SourceVoice_INTERFACE_DEFINED__ -#define __IXAudio23SourceVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio23SourceVoice : public IXAudio23Voice -{ - virtual HRESULT STDMETHODCALLTYPE Start( - UINT32 Flags = 0, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stop( - UINT32 Flags = 0, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE SubmitSourceBuffer( - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE FlushSourceBuffers( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE Discontinuity( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitLoop( - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetState( - XAUDIO2_VOICE_STATE *pVoiceState) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFrequencyRatio( - float Ratio, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetFrequencyRatio( - float *pRatio) = 0; - -}; -#else -typedef struct IXAudio23SourceVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio23Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio23SourceVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio23SourceVoice *This, - const XAUDIO23_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio23SourceVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio23SourceVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio23SourceVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio23SourceVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio23SourceVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio23SourceVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio23SourceVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio23SourceVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio23SourceVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio23SourceVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio23SourceVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio23SourceVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio23SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio23SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio23SourceVoice *This); - - /*** IXAudio23SourceVoice methods ***/ - HRESULT (STDMETHODCALLTYPE *Start)( - IXAudio23SourceVoice *This, - UINT32 Flags, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *Stop)( - IXAudio23SourceVoice *This, - UINT32 Flags, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *SubmitSourceBuffer)( - IXAudio23SourceVoice *This, - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA); - - HRESULT (STDMETHODCALLTYPE *FlushSourceBuffers)( - IXAudio23SourceVoice *This); - - HRESULT (STDMETHODCALLTYPE *Discontinuity)( - IXAudio23SourceVoice *This); - - HRESULT (STDMETHODCALLTYPE *ExitLoop)( - IXAudio23SourceVoice *This, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetState)( - IXAudio23SourceVoice *This, - XAUDIO2_VOICE_STATE *pVoiceState); - - HRESULT (STDMETHODCALLTYPE *SetFrequencyRatio)( - IXAudio23SourceVoice *This, - float Ratio, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFrequencyRatio)( - IXAudio23SourceVoice *This, - float *pRatio); - - END_INTERFACE -} IXAudio23SourceVoiceVtbl; - -interface IXAudio23SourceVoice { - CONST_VTBL IXAudio23SourceVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio23Voice methods ***/ -#define IXAudio23SourceVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio23SourceVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio23SourceVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio23SourceVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio23SourceVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio23SourceVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio23SourceVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio23SourceVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio23SourceVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio23SourceVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio23SourceVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio23SourceVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio23SourceVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio23SourceVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio23SourceVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio23SourceVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio23SourceVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -/*** IXAudio23SourceVoice methods ***/ -#define IXAudio23SourceVoice_Start(This,Flags,OperationSet) (This)->lpVtbl->Start(This,Flags,OperationSet) -#define IXAudio23SourceVoice_Stop(This,Flags,OperationSet) (This)->lpVtbl->Stop(This,Flags,OperationSet) -#define IXAudio23SourceVoice_SubmitSourceBuffer(This,pBuffer,pBufferWMA) (This)->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA) -#define IXAudio23SourceVoice_FlushSourceBuffers(This) (This)->lpVtbl->FlushSourceBuffers(This) -#define IXAudio23SourceVoice_Discontinuity(This) (This)->lpVtbl->Discontinuity(This) -#define IXAudio23SourceVoice_ExitLoop(This,OperationSet) (This)->lpVtbl->ExitLoop(This,OperationSet) -#define IXAudio23SourceVoice_GetState(This,pVoiceState) (This)->lpVtbl->GetState(This,pVoiceState) -#define IXAudio23SourceVoice_SetFrequencyRatio(This,Ratio,OperationSet) (This)->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet) -#define IXAudio23SourceVoice_GetFrequencyRatio(This,pRatio) (This)->lpVtbl->GetFrequencyRatio(This,pRatio) -#else -/*** IXAudio23Voice methods ***/ -static FORCEINLINE void IXAudio23SourceVoice_GetVoiceDetails(IXAudio23SourceVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SetOutputVoices(IXAudio23SourceVoice* This,const XAUDIO23_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SetEffectChain(IXAudio23SourceVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_EnableEffect(IXAudio23SourceVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_DisableEffect(IXAudio23SourceVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio23SourceVoice_GetEffectState(IXAudio23SourceVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SetEffectParameters(IXAudio23SourceVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_GetEffectParameters(IXAudio23SourceVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SetFilterParameters(IXAudio23SourceVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio23SourceVoice_GetFilterParameters(IXAudio23SourceVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SetVolume(IXAudio23SourceVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio23SourceVoice_GetVolume(IXAudio23SourceVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SetChannelVolumes(IXAudio23SourceVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio23SourceVoice_GetChannelVolumes(IXAudio23SourceVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SetOutputMatrix(IXAudio23SourceVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio23SourceVoice_GetOutputMatrix(IXAudio23SourceVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio23SourceVoice_DestroyVoice(IXAudio23SourceVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -/*** IXAudio23SourceVoice methods ***/ -static FORCEINLINE HRESULT IXAudio23SourceVoice_Start(IXAudio23SourceVoice* This,UINT32 Flags,UINT32 OperationSet) { - return This->lpVtbl->Start(This,Flags,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_Stop(IXAudio23SourceVoice* This,UINT32 Flags,UINT32 OperationSet) { - return This->lpVtbl->Stop(This,Flags,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SubmitSourceBuffer(IXAudio23SourceVoice* This,const XAUDIO2_BUFFER *pBuffer,const XAUDIO2_BUFFER_WMA *pBufferWMA) { - return This->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_FlushSourceBuffers(IXAudio23SourceVoice* This) { - return This->lpVtbl->FlushSourceBuffers(This); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_Discontinuity(IXAudio23SourceVoice* This) { - return This->lpVtbl->Discontinuity(This); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_ExitLoop(IXAudio23SourceVoice* This,UINT32 OperationSet) { - return This->lpVtbl->ExitLoop(This,OperationSet); -} -static FORCEINLINE void IXAudio23SourceVoice_GetState(IXAudio23SourceVoice* This,XAUDIO2_VOICE_STATE *pVoiceState) { - This->lpVtbl->GetState(This,pVoiceState); -} -static FORCEINLINE HRESULT IXAudio23SourceVoice_SetFrequencyRatio(IXAudio23SourceVoice* This,float Ratio,UINT32 OperationSet) { - return This->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet); -} -static FORCEINLINE void IXAudio23SourceVoice_GetFrequencyRatio(IXAudio23SourceVoice* This,float *pRatio) { - This->lpVtbl->GetFrequencyRatio(This,pRatio); -} -#endif -#endif - -#endif - -HRESULT STDMETHODCALLTYPE IXAudio23SourceVoice_Start_Proxy( - IXAudio23SourceVoice* This, - UINT32 Flags, - UINT32 OperationSet); -void __RPC_STUB IXAudio23SourceVoice_Start_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23SourceVoice_Stop_Proxy( - IXAudio23SourceVoice* This, - UINT32 Flags, - UINT32 OperationSet); -void __RPC_STUB IXAudio23SourceVoice_Stop_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23SourceVoice_SubmitSourceBuffer_Proxy( - IXAudio23SourceVoice* This, - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA); -void __RPC_STUB IXAudio23SourceVoice_SubmitSourceBuffer_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23SourceVoice_FlushSourceBuffers_Proxy( - IXAudio23SourceVoice* This); -void __RPC_STUB IXAudio23SourceVoice_FlushSourceBuffers_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23SourceVoice_Discontinuity_Proxy( - IXAudio23SourceVoice* This); -void __RPC_STUB IXAudio23SourceVoice_Discontinuity_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23SourceVoice_ExitLoop_Proxy( - IXAudio23SourceVoice* This, - UINT32 OperationSet); -void __RPC_STUB IXAudio23SourceVoice_ExitLoop_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio23SourceVoice_GetState_Proxy( - IXAudio23SourceVoice* This, - XAUDIO2_VOICE_STATE *pVoiceState); -void __RPC_STUB IXAudio23SourceVoice_GetState_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio23SourceVoice_SetFrequencyRatio_Proxy( - IXAudio23SourceVoice* This, - float Ratio, - UINT32 OperationSet); -void __RPC_STUB IXAudio23SourceVoice_SetFrequencyRatio_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio23SourceVoice_GetFrequencyRatio_Proxy( - IXAudio23SourceVoice* This, - float *pRatio); -void __RPC_STUB IXAudio23SourceVoice_GetFrequencyRatio_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio23SourceVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio27SourceVoice interface - */ -#ifndef __IXAudio27SourceVoice_INTERFACE_DEFINED__ -#define __IXAudio27SourceVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio27SourceVoice : public IXAudio2Voice -{ - virtual HRESULT STDMETHODCALLTYPE Start( - UINT32 Flags = 0, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stop( - UINT32 Flags = 0, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE SubmitSourceBuffer( - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE FlushSourceBuffers( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE Discontinuity( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitLoop( - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetState( - XAUDIO2_VOICE_STATE *pVoiceState) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFrequencyRatio( - float Ratio, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetFrequencyRatio( - float *pRatio) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSourceSampleRate( - UINT32 NewSourceSampleRate) = 0; - -}; -#else -typedef struct IXAudio27SourceVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio2Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio27SourceVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio27SourceVoice *This, - const XAUDIO2_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio27SourceVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio27SourceVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio27SourceVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio27SourceVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio27SourceVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio27SourceVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio27SourceVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio27SourceVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetOutputFilterParameters)( - IXAudio27SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputFilterParameters)( - IXAudio27SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio27SourceVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio27SourceVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio27SourceVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio27SourceVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio27SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio27SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio27SourceVoice *This); - - /*** IXAudio27SourceVoice methods ***/ - HRESULT (STDMETHODCALLTYPE *Start)( - IXAudio27SourceVoice *This, - UINT32 Flags, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *Stop)( - IXAudio27SourceVoice *This, - UINT32 Flags, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *SubmitSourceBuffer)( - IXAudio27SourceVoice *This, - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA); - - HRESULT (STDMETHODCALLTYPE *FlushSourceBuffers)( - IXAudio27SourceVoice *This); - - HRESULT (STDMETHODCALLTYPE *Discontinuity)( - IXAudio27SourceVoice *This); - - HRESULT (STDMETHODCALLTYPE *ExitLoop)( - IXAudio27SourceVoice *This, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetState)( - IXAudio27SourceVoice *This, - XAUDIO2_VOICE_STATE *pVoiceState); - - HRESULT (STDMETHODCALLTYPE *SetFrequencyRatio)( - IXAudio27SourceVoice *This, - float Ratio, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFrequencyRatio)( - IXAudio27SourceVoice *This, - float *pRatio); - - HRESULT (STDMETHODCALLTYPE *SetSourceSampleRate)( - IXAudio27SourceVoice *This, - UINT32 NewSourceSampleRate); - - END_INTERFACE -} IXAudio27SourceVoiceVtbl; - -interface IXAudio27SourceVoice { - CONST_VTBL IXAudio27SourceVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio2Voice methods ***/ -#define IXAudio27SourceVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio27SourceVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio27SourceVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio27SourceVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio27SourceVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio27SourceVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio27SourceVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio27SourceVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio27SourceVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio27SourceVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio27SourceVoice_SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) (This)->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) -#define IXAudio27SourceVoice_GetOutputFilterParameters(This,pDestinationVoice,pParameters) (This)->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters) -#define IXAudio27SourceVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio27SourceVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio27SourceVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio27SourceVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio27SourceVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio27SourceVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio27SourceVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -/*** IXAudio27SourceVoice methods ***/ -#define IXAudio27SourceVoice_Start(This,Flags,OperationSet) (This)->lpVtbl->Start(This,Flags,OperationSet) -#define IXAudio27SourceVoice_Stop(This,Flags,OperationSet) (This)->lpVtbl->Stop(This,Flags,OperationSet) -#define IXAudio27SourceVoice_SubmitSourceBuffer(This,pBuffer,pBufferWMA) (This)->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA) -#define IXAudio27SourceVoice_FlushSourceBuffers(This) (This)->lpVtbl->FlushSourceBuffers(This) -#define IXAudio27SourceVoice_Discontinuity(This) (This)->lpVtbl->Discontinuity(This) -#define IXAudio27SourceVoice_ExitLoop(This,OperationSet) (This)->lpVtbl->ExitLoop(This,OperationSet) -#define IXAudio27SourceVoice_GetState(This,pVoiceState) (This)->lpVtbl->GetState(This,pVoiceState) -#define IXAudio27SourceVoice_SetFrequencyRatio(This,Ratio,OperationSet) (This)->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet) -#define IXAudio27SourceVoice_GetFrequencyRatio(This,pRatio) (This)->lpVtbl->GetFrequencyRatio(This,pRatio) -#define IXAudio27SourceVoice_SetSourceSampleRate(This,NewSourceSampleRate) (This)->lpVtbl->SetSourceSampleRate(This,NewSourceSampleRate) -#else -/*** IXAudio2Voice methods ***/ -static FORCEINLINE void IXAudio27SourceVoice_GetVoiceDetails(IXAudio27SourceVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetOutputVoices(IXAudio27SourceVoice* This,const XAUDIO2_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetEffectChain(IXAudio27SourceVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_EnableEffect(IXAudio27SourceVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_DisableEffect(IXAudio27SourceVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio27SourceVoice_GetEffectState(IXAudio27SourceVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetEffectParameters(IXAudio27SourceVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_GetEffectParameters(IXAudio27SourceVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetFilterParameters(IXAudio27SourceVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio27SourceVoice_GetFilterParameters(IXAudio27SourceVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetOutputFilterParameters(IXAudio27SourceVoice* This,IXAudio2Voice *pDestinationVoice,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio27SourceVoice_GetOutputFilterParameters(IXAudio27SourceVoice* This,IXAudio2Voice *pDestinationVoice,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetVolume(IXAudio27SourceVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio27SourceVoice_GetVolume(IXAudio27SourceVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetChannelVolumes(IXAudio27SourceVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio27SourceVoice_GetChannelVolumes(IXAudio27SourceVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetOutputMatrix(IXAudio27SourceVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio27SourceVoice_GetOutputMatrix(IXAudio27SourceVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio27SourceVoice_DestroyVoice(IXAudio27SourceVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -/*** IXAudio27SourceVoice methods ***/ -static FORCEINLINE HRESULT IXAudio27SourceVoice_Start(IXAudio27SourceVoice* This,UINT32 Flags,UINT32 OperationSet) { - return This->lpVtbl->Start(This,Flags,OperationSet); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_Stop(IXAudio27SourceVoice* This,UINT32 Flags,UINT32 OperationSet) { - return This->lpVtbl->Stop(This,Flags,OperationSet); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SubmitSourceBuffer(IXAudio27SourceVoice* This,const XAUDIO2_BUFFER *pBuffer,const XAUDIO2_BUFFER_WMA *pBufferWMA) { - return This->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_FlushSourceBuffers(IXAudio27SourceVoice* This) { - return This->lpVtbl->FlushSourceBuffers(This); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_Discontinuity(IXAudio27SourceVoice* This) { - return This->lpVtbl->Discontinuity(This); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_ExitLoop(IXAudio27SourceVoice* This,UINT32 OperationSet) { - return This->lpVtbl->ExitLoop(This,OperationSet); -} -static FORCEINLINE void IXAudio27SourceVoice_GetState(IXAudio27SourceVoice* This,XAUDIO2_VOICE_STATE *pVoiceState) { - This->lpVtbl->GetState(This,pVoiceState); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetFrequencyRatio(IXAudio27SourceVoice* This,float Ratio,UINT32 OperationSet) { - return This->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet); -} -static FORCEINLINE void IXAudio27SourceVoice_GetFrequencyRatio(IXAudio27SourceVoice* This,float *pRatio) { - This->lpVtbl->GetFrequencyRatio(This,pRatio); -} -static FORCEINLINE HRESULT IXAudio27SourceVoice_SetSourceSampleRate(IXAudio27SourceVoice* This,UINT32 NewSourceSampleRate) { - return This->lpVtbl->SetSourceSampleRate(This,NewSourceSampleRate); -} -#endif -#endif - -#endif - -HRESULT STDMETHODCALLTYPE IXAudio27SourceVoice_Start_Proxy( - IXAudio27SourceVoice* This, - UINT32 Flags, - UINT32 OperationSet); -void __RPC_STUB IXAudio27SourceVoice_Start_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27SourceVoice_Stop_Proxy( - IXAudio27SourceVoice* This, - UINT32 Flags, - UINT32 OperationSet); -void __RPC_STUB IXAudio27SourceVoice_Stop_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27SourceVoice_SubmitSourceBuffer_Proxy( - IXAudio27SourceVoice* This, - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA); -void __RPC_STUB IXAudio27SourceVoice_SubmitSourceBuffer_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27SourceVoice_FlushSourceBuffers_Proxy( - IXAudio27SourceVoice* This); -void __RPC_STUB IXAudio27SourceVoice_FlushSourceBuffers_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27SourceVoice_Discontinuity_Proxy( - IXAudio27SourceVoice* This); -void __RPC_STUB IXAudio27SourceVoice_Discontinuity_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27SourceVoice_ExitLoop_Proxy( - IXAudio27SourceVoice* This, - UINT32 OperationSet); -void __RPC_STUB IXAudio27SourceVoice_ExitLoop_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio27SourceVoice_GetState_Proxy( - IXAudio27SourceVoice* This, - XAUDIO2_VOICE_STATE *pVoiceState); -void __RPC_STUB IXAudio27SourceVoice_GetState_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27SourceVoice_SetFrequencyRatio_Proxy( - IXAudio27SourceVoice* This, - float Ratio, - UINT32 OperationSet); -void __RPC_STUB IXAudio27SourceVoice_SetFrequencyRatio_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio27SourceVoice_GetFrequencyRatio_Proxy( - IXAudio27SourceVoice* This, - float *pRatio); -void __RPC_STUB IXAudio27SourceVoice_GetFrequencyRatio_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27SourceVoice_SetSourceSampleRate_Proxy( - IXAudio27SourceVoice* This, - UINT32 NewSourceSampleRate); -void __RPC_STUB IXAudio27SourceVoice_SetSourceSampleRate_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio27SourceVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio2SourceVoice interface - */ -#ifndef __IXAudio2SourceVoice_INTERFACE_DEFINED__ -#define __IXAudio2SourceVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio2SourceVoice : public IXAudio2Voice -{ - virtual HRESULT STDMETHODCALLTYPE Start( - UINT32 Flags = 0, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stop( - UINT32 Flags = 0, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual HRESULT STDMETHODCALLTYPE SubmitSourceBuffer( - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE FlushSourceBuffers( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE Discontinuity( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitLoop( - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetState( - XAUDIO2_VOICE_STATE *pVoiceState, - UINT32 Flags = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFrequencyRatio( - float Ratio, - UINT32 OperationSet = XAUDIO2_COMMIT_NOW) = 0; - - virtual void STDMETHODCALLTYPE GetFrequencyRatio( - float *pRatio) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSourceSampleRate( - UINT32 NewSourceSampleRate) = 0; - -}; -#else -typedef struct IXAudio2SourceVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio2Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio2SourceVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio2SourceVoice *This, - const XAUDIO2_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio2SourceVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio2SourceVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio2SourceVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio2SourceVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio2SourceVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio2SourceVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio2SourceVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio2SourceVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetOutputFilterParameters)( - IXAudio2SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputFilterParameters)( - IXAudio2SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio2SourceVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio2SourceVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio2SourceVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio2SourceVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio2SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio2SourceVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio2SourceVoice *This); - - /*** IXAudio2SourceVoice methods ***/ - HRESULT (STDMETHODCALLTYPE *Start)( - IXAudio2SourceVoice *This, - UINT32 Flags, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *Stop)( - IXAudio2SourceVoice *This, - UINT32 Flags, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *SubmitSourceBuffer)( - IXAudio2SourceVoice *This, - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA); - - HRESULT (STDMETHODCALLTYPE *FlushSourceBuffers)( - IXAudio2SourceVoice *This); - - HRESULT (STDMETHODCALLTYPE *Discontinuity)( - IXAudio2SourceVoice *This); - - HRESULT (STDMETHODCALLTYPE *ExitLoop)( - IXAudio2SourceVoice *This, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetState)( - IXAudio2SourceVoice *This, - XAUDIO2_VOICE_STATE *pVoiceState, - UINT32 Flags); - - HRESULT (STDMETHODCALLTYPE *SetFrequencyRatio)( - IXAudio2SourceVoice *This, - float Ratio, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFrequencyRatio)( - IXAudio2SourceVoice *This, - float *pRatio); - - HRESULT (STDMETHODCALLTYPE *SetSourceSampleRate)( - IXAudio2SourceVoice *This, - UINT32 NewSourceSampleRate); - - END_INTERFACE -} IXAudio2SourceVoiceVtbl; - -interface IXAudio2SourceVoice { - CONST_VTBL IXAudio2SourceVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio2Voice methods ***/ -#define IXAudio2SourceVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio2SourceVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio2SourceVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio2SourceVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio2SourceVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio2SourceVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio2SourceVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio2SourceVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio2SourceVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio2SourceVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio2SourceVoice_SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) (This)->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) -#define IXAudio2SourceVoice_GetOutputFilterParameters(This,pDestinationVoice,pParameters) (This)->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters) -#define IXAudio2SourceVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio2SourceVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio2SourceVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio2SourceVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio2SourceVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio2SourceVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio2SourceVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -/*** IXAudio2SourceVoice methods ***/ -#define IXAudio2SourceVoice_Start(This,Flags,OperationSet) (This)->lpVtbl->Start(This,Flags,OperationSet) -#define IXAudio2SourceVoice_Stop(This,Flags,OperationSet) (This)->lpVtbl->Stop(This,Flags,OperationSet) -#define IXAudio2SourceVoice_SubmitSourceBuffer(This,pBuffer,pBufferWMA) (This)->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA) -#define IXAudio2SourceVoice_FlushSourceBuffers(This) (This)->lpVtbl->FlushSourceBuffers(This) -#define IXAudio2SourceVoice_Discontinuity(This) (This)->lpVtbl->Discontinuity(This) -#define IXAudio2SourceVoice_ExitLoop(This,OperationSet) (This)->lpVtbl->ExitLoop(This,OperationSet) -#define IXAudio2SourceVoice_GetState(This,pVoiceState,Flags) (This)->lpVtbl->GetState(This,pVoiceState,Flags) -#define IXAudio2SourceVoice_SetFrequencyRatio(This,Ratio,OperationSet) (This)->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet) -#define IXAudio2SourceVoice_GetFrequencyRatio(This,pRatio) (This)->lpVtbl->GetFrequencyRatio(This,pRatio) -#define IXAudio2SourceVoice_SetSourceSampleRate(This,NewSourceSampleRate) (This)->lpVtbl->SetSourceSampleRate(This,NewSourceSampleRate) -#else -/*** IXAudio2Voice methods ***/ -static FORCEINLINE void IXAudio2SourceVoice_GetVoiceDetails(IXAudio2SourceVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetOutputVoices(IXAudio2SourceVoice* This,const XAUDIO2_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetEffectChain(IXAudio2SourceVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_EnableEffect(IXAudio2SourceVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_DisableEffect(IXAudio2SourceVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio2SourceVoice_GetEffectState(IXAudio2SourceVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetEffectParameters(IXAudio2SourceVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_GetEffectParameters(IXAudio2SourceVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetFilterParameters(IXAudio2SourceVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio2SourceVoice_GetFilterParameters(IXAudio2SourceVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetOutputFilterParameters(IXAudio2SourceVoice* This,IXAudio2Voice *pDestinationVoice,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio2SourceVoice_GetOutputFilterParameters(IXAudio2SourceVoice* This,IXAudio2Voice *pDestinationVoice,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetVolume(IXAudio2SourceVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio2SourceVoice_GetVolume(IXAudio2SourceVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetChannelVolumes(IXAudio2SourceVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio2SourceVoice_GetChannelVolumes(IXAudio2SourceVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetOutputMatrix(IXAudio2SourceVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio2SourceVoice_GetOutputMatrix(IXAudio2SourceVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio2SourceVoice_DestroyVoice(IXAudio2SourceVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -/*** IXAudio2SourceVoice methods ***/ -static FORCEINLINE HRESULT IXAudio2SourceVoice_Start(IXAudio2SourceVoice* This,UINT32 Flags,UINT32 OperationSet) { - return This->lpVtbl->Start(This,Flags,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_Stop(IXAudio2SourceVoice* This,UINT32 Flags,UINT32 OperationSet) { - return This->lpVtbl->Stop(This,Flags,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SubmitSourceBuffer(IXAudio2SourceVoice* This,const XAUDIO2_BUFFER *pBuffer,const XAUDIO2_BUFFER_WMA *pBufferWMA) { - return This->lpVtbl->SubmitSourceBuffer(This,pBuffer,pBufferWMA); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_FlushSourceBuffers(IXAudio2SourceVoice* This) { - return This->lpVtbl->FlushSourceBuffers(This); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_Discontinuity(IXAudio2SourceVoice* This) { - return This->lpVtbl->Discontinuity(This); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_ExitLoop(IXAudio2SourceVoice* This,UINT32 OperationSet) { - return This->lpVtbl->ExitLoop(This,OperationSet); -} -static FORCEINLINE void IXAudio2SourceVoice_GetState(IXAudio2SourceVoice* This,XAUDIO2_VOICE_STATE *pVoiceState,UINT32 Flags) { - This->lpVtbl->GetState(This,pVoiceState,Flags); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetFrequencyRatio(IXAudio2SourceVoice* This,float Ratio,UINT32 OperationSet) { - return This->lpVtbl->SetFrequencyRatio(This,Ratio,OperationSet); -} -static FORCEINLINE void IXAudio2SourceVoice_GetFrequencyRatio(IXAudio2SourceVoice* This,float *pRatio) { - This->lpVtbl->GetFrequencyRatio(This,pRatio); -} -static FORCEINLINE HRESULT IXAudio2SourceVoice_SetSourceSampleRate(IXAudio2SourceVoice* This,UINT32 NewSourceSampleRate) { - return This->lpVtbl->SetSourceSampleRate(This,NewSourceSampleRate); -} -#endif -#endif - -#endif - -HRESULT STDMETHODCALLTYPE IXAudio2SourceVoice_Start_Proxy( - IXAudio2SourceVoice* This, - UINT32 Flags, - UINT32 OperationSet); -void __RPC_STUB IXAudio2SourceVoice_Start_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2SourceVoice_Stop_Proxy( - IXAudio2SourceVoice* This, - UINT32 Flags, - UINT32 OperationSet); -void __RPC_STUB IXAudio2SourceVoice_Stop_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2SourceVoice_SubmitSourceBuffer_Proxy( - IXAudio2SourceVoice* This, - const XAUDIO2_BUFFER *pBuffer, - const XAUDIO2_BUFFER_WMA *pBufferWMA); -void __RPC_STUB IXAudio2SourceVoice_SubmitSourceBuffer_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2SourceVoice_FlushSourceBuffers_Proxy( - IXAudio2SourceVoice* This); -void __RPC_STUB IXAudio2SourceVoice_FlushSourceBuffers_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2SourceVoice_Discontinuity_Proxy( - IXAudio2SourceVoice* This); -void __RPC_STUB IXAudio2SourceVoice_Discontinuity_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2SourceVoice_ExitLoop_Proxy( - IXAudio2SourceVoice* This, - UINT32 OperationSet); -void __RPC_STUB IXAudio2SourceVoice_ExitLoop_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2SourceVoice_GetState_Proxy( - IXAudio2SourceVoice* This, - XAUDIO2_VOICE_STATE *pVoiceState, - UINT32 Flags); -void __RPC_STUB IXAudio2SourceVoice_GetState_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2SourceVoice_SetFrequencyRatio_Proxy( - IXAudio2SourceVoice* This, - float Ratio, - UINT32 OperationSet); -void __RPC_STUB IXAudio2SourceVoice_SetFrequencyRatio_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2SourceVoice_GetFrequencyRatio_Proxy( - IXAudio2SourceVoice* This, - float *pRatio); -void __RPC_STUB IXAudio2SourceVoice_GetFrequencyRatio_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2SourceVoice_SetSourceSampleRate_Proxy( - IXAudio2SourceVoice* This, - UINT32 NewSourceSampleRate); -void __RPC_STUB IXAudio2SourceVoice_SetSourceSampleRate_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio2SourceVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio20SubmixVoice interface - */ -#ifndef __IXAudio20SubmixVoice_INTERFACE_DEFINED__ -#define __IXAudio20SubmixVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio20SubmixVoice : public IXAudio20Voice -{ -}; -#else -typedef struct IXAudio20SubmixVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio20Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio20SubmixVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio20SubmixVoice *This, - const XAUDIO23_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio20SubmixVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio20SubmixVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio20SubmixVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio20SubmixVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio20SubmixVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio20SubmixVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio20SubmixVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio20SubmixVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio20SubmixVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio20SubmixVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio20SubmixVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio20SubmixVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio20SubmixVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio20SubmixVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio20SubmixVoice *This); - - END_INTERFACE -} IXAudio20SubmixVoiceVtbl; - -interface IXAudio20SubmixVoice { - CONST_VTBL IXAudio20SubmixVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio20Voice methods ***/ -#define IXAudio20SubmixVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio20SubmixVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio20SubmixVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio20SubmixVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio20SubmixVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio20SubmixVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio20SubmixVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio20SubmixVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio20SubmixVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio20SubmixVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio20SubmixVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio20SubmixVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio20SubmixVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio20SubmixVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio20SubmixVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio20SubmixVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio20SubmixVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -#else -/*** IXAudio20Voice methods ***/ -static FORCEINLINE void IXAudio20SubmixVoice_GetVoiceDetails(IXAudio20SubmixVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_SetOutputVoices(IXAudio20SubmixVoice* This,const XAUDIO23_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_SetEffectChain(IXAudio20SubmixVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_EnableEffect(IXAudio20SubmixVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_DisableEffect(IXAudio20SubmixVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio20SubmixVoice_GetEffectState(IXAudio20SubmixVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_SetEffectParameters(IXAudio20SubmixVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_GetEffectParameters(IXAudio20SubmixVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_SetFilterParameters(IXAudio20SubmixVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio20SubmixVoice_GetFilterParameters(IXAudio20SubmixVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_SetVolume(IXAudio20SubmixVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio20SubmixVoice_GetVolume(IXAudio20SubmixVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_SetChannelVolumes(IXAudio20SubmixVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio20SubmixVoice_GetChannelVolumes(IXAudio20SubmixVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_SetOutputMatrix(IXAudio20SubmixVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20SubmixVoice_GetOutputMatrix(IXAudio20SubmixVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - return This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio20SubmixVoice_DestroyVoice(IXAudio20SubmixVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -#endif -#endif - -#endif - - -#endif /* __IXAudio20SubmixVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio23SubmixVoice interface - */ -#ifndef __IXAudio23SubmixVoice_INTERFACE_DEFINED__ -#define __IXAudio23SubmixVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio23SubmixVoice : public IXAudio23Voice -{ -}; -#else -typedef struct IXAudio23SubmixVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio23Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio23SubmixVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio23SubmixVoice *This, - const XAUDIO23_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio23SubmixVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio23SubmixVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio23SubmixVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio23SubmixVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio23SubmixVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio23SubmixVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio23SubmixVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio23SubmixVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio23SubmixVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio23SubmixVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio23SubmixVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio23SubmixVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio23SubmixVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio23SubmixVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio23SubmixVoice *This); - - END_INTERFACE -} IXAudio23SubmixVoiceVtbl; - -interface IXAudio23SubmixVoice { - CONST_VTBL IXAudio23SubmixVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio23Voice methods ***/ -#define IXAudio23SubmixVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio23SubmixVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio23SubmixVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio23SubmixVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio23SubmixVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio23SubmixVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio23SubmixVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio23SubmixVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio23SubmixVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio23SubmixVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio23SubmixVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio23SubmixVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio23SubmixVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio23SubmixVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio23SubmixVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio23SubmixVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio23SubmixVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -#else -/*** IXAudio23Voice methods ***/ -static FORCEINLINE void IXAudio23SubmixVoice_GetVoiceDetails(IXAudio23SubmixVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_SetOutputVoices(IXAudio23SubmixVoice* This,const XAUDIO23_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_SetEffectChain(IXAudio23SubmixVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_EnableEffect(IXAudio23SubmixVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_DisableEffect(IXAudio23SubmixVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio23SubmixVoice_GetEffectState(IXAudio23SubmixVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_SetEffectParameters(IXAudio23SubmixVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_GetEffectParameters(IXAudio23SubmixVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_SetFilterParameters(IXAudio23SubmixVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio23SubmixVoice_GetFilterParameters(IXAudio23SubmixVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_SetVolume(IXAudio23SubmixVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio23SubmixVoice_GetVolume(IXAudio23SubmixVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_SetChannelVolumes(IXAudio23SubmixVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio23SubmixVoice_GetChannelVolumes(IXAudio23SubmixVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio23SubmixVoice_SetOutputMatrix(IXAudio23SubmixVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio23SubmixVoice_GetOutputMatrix(IXAudio23SubmixVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio23SubmixVoice_DestroyVoice(IXAudio23SubmixVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -#endif -#endif - -#endif - - -#endif /* __IXAudio23SubmixVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio2SubmixVoice interface - */ -#ifndef __IXAudio2SubmixVoice_INTERFACE_DEFINED__ -#define __IXAudio2SubmixVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio2SubmixVoice : public IXAudio2Voice -{ -}; -#else -typedef struct IXAudio2SubmixVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio2Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio2SubmixVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio2SubmixVoice *This, - const XAUDIO2_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio2SubmixVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio2SubmixVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio2SubmixVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio2SubmixVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio2SubmixVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio2SubmixVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio2SubmixVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio2SubmixVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetOutputFilterParameters)( - IXAudio2SubmixVoice *This, - IXAudio2Voice *pDestinationVoice, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputFilterParameters)( - IXAudio2SubmixVoice *This, - IXAudio2Voice *pDestinationVoice, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio2SubmixVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio2SubmixVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio2SubmixVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio2SubmixVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio2SubmixVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio2SubmixVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio2SubmixVoice *This); - - END_INTERFACE -} IXAudio2SubmixVoiceVtbl; - -interface IXAudio2SubmixVoice { - CONST_VTBL IXAudio2SubmixVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio2Voice methods ***/ -#define IXAudio2SubmixVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio2SubmixVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio2SubmixVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio2SubmixVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio2SubmixVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio2SubmixVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio2SubmixVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio2SubmixVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio2SubmixVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio2SubmixVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio2SubmixVoice_SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) (This)->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) -#define IXAudio2SubmixVoice_GetOutputFilterParameters(This,pDestinationVoice,pParameters) (This)->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters) -#define IXAudio2SubmixVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio2SubmixVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio2SubmixVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio2SubmixVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio2SubmixVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio2SubmixVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio2SubmixVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -#else -/*** IXAudio2Voice methods ***/ -static FORCEINLINE void IXAudio2SubmixVoice_GetVoiceDetails(IXAudio2SubmixVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_SetOutputVoices(IXAudio2SubmixVoice* This,const XAUDIO2_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_SetEffectChain(IXAudio2SubmixVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_EnableEffect(IXAudio2SubmixVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_DisableEffect(IXAudio2SubmixVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio2SubmixVoice_GetEffectState(IXAudio2SubmixVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_SetEffectParameters(IXAudio2SubmixVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_GetEffectParameters(IXAudio2SubmixVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_SetFilterParameters(IXAudio2SubmixVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio2SubmixVoice_GetFilterParameters(IXAudio2SubmixVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_SetOutputFilterParameters(IXAudio2SubmixVoice* This,IXAudio2Voice *pDestinationVoice,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio2SubmixVoice_GetOutputFilterParameters(IXAudio2SubmixVoice* This,IXAudio2Voice *pDestinationVoice,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_SetVolume(IXAudio2SubmixVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio2SubmixVoice_GetVolume(IXAudio2SubmixVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_SetChannelVolumes(IXAudio2SubmixVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio2SubmixVoice_GetChannelVolumes(IXAudio2SubmixVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio2SubmixVoice_SetOutputMatrix(IXAudio2SubmixVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio2SubmixVoice_GetOutputMatrix(IXAudio2SubmixVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio2SubmixVoice_DestroyVoice(IXAudio2SubmixVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -#endif -#endif - -#endif - - -#endif /* __IXAudio2SubmixVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio20MasteringVoice interface - */ -#ifndef __IXAudio20MasteringVoice_INTERFACE_DEFINED__ -#define __IXAudio20MasteringVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio20MasteringVoice : public IXAudio20Voice -{ -}; -#else -typedef struct IXAudio20MasteringVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio20Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio20MasteringVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio20MasteringVoice *This, - const XAUDIO23_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio20MasteringVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio20MasteringVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio20MasteringVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio20MasteringVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio20MasteringVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio20MasteringVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio20MasteringVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio20MasteringVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio20MasteringVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio20MasteringVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio20MasteringVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio20MasteringVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio20MasteringVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio20MasteringVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio20MasteringVoice *This); - - END_INTERFACE -} IXAudio20MasteringVoiceVtbl; - -interface IXAudio20MasteringVoice { - CONST_VTBL IXAudio20MasteringVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio20Voice methods ***/ -#define IXAudio20MasteringVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio20MasteringVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio20MasteringVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio20MasteringVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio20MasteringVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio20MasteringVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio20MasteringVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio20MasteringVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio20MasteringVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio20MasteringVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio20MasteringVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio20MasteringVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio20MasteringVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio20MasteringVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio20MasteringVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio20MasteringVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio20MasteringVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -#else -/*** IXAudio20Voice methods ***/ -static FORCEINLINE void IXAudio20MasteringVoice_GetVoiceDetails(IXAudio20MasteringVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_SetOutputVoices(IXAudio20MasteringVoice* This,const XAUDIO23_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_SetEffectChain(IXAudio20MasteringVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_EnableEffect(IXAudio20MasteringVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_DisableEffect(IXAudio20MasteringVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio20MasteringVoice_GetEffectState(IXAudio20MasteringVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_SetEffectParameters(IXAudio20MasteringVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_GetEffectParameters(IXAudio20MasteringVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_SetFilterParameters(IXAudio20MasteringVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio20MasteringVoice_GetFilterParameters(IXAudio20MasteringVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_SetVolume(IXAudio20MasteringVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio20MasteringVoice_GetVolume(IXAudio20MasteringVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_SetChannelVolumes(IXAudio20MasteringVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio20MasteringVoice_GetChannelVolumes(IXAudio20MasteringVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_SetOutputMatrix(IXAudio20MasteringVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE HRESULT IXAudio20MasteringVoice_GetOutputMatrix(IXAudio20MasteringVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - return This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio20MasteringVoice_DestroyVoice(IXAudio20MasteringVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -#endif -#endif - -#endif - - -#endif /* __IXAudio20MasteringVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio23MasteringVoice interface - */ -#ifndef __IXAudio23MasteringVoice_INTERFACE_DEFINED__ -#define __IXAudio23MasteringVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio23MasteringVoice : public IXAudio23Voice -{ -}; -#else -typedef struct IXAudio23MasteringVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio23Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio23MasteringVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio23MasteringVoice *This, - const XAUDIO23_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio23MasteringVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio23MasteringVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio23MasteringVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio23MasteringVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio23MasteringVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio23MasteringVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio23MasteringVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio23MasteringVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio23MasteringVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio23MasteringVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio23MasteringVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio23MasteringVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio23MasteringVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio23MasteringVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio23MasteringVoice *This); - - END_INTERFACE -} IXAudio23MasteringVoiceVtbl; - -interface IXAudio23MasteringVoice { - CONST_VTBL IXAudio23MasteringVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio23Voice methods ***/ -#define IXAudio23MasteringVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio23MasteringVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio23MasteringVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio23MasteringVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio23MasteringVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio23MasteringVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio23MasteringVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio23MasteringVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio23MasteringVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio23MasteringVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio23MasteringVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio23MasteringVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio23MasteringVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio23MasteringVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio23MasteringVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio23MasteringVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio23MasteringVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -#else -/*** IXAudio23Voice methods ***/ -static FORCEINLINE void IXAudio23MasteringVoice_GetVoiceDetails(IXAudio23MasteringVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_SetOutputVoices(IXAudio23MasteringVoice* This,const XAUDIO23_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_SetEffectChain(IXAudio23MasteringVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_EnableEffect(IXAudio23MasteringVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_DisableEffect(IXAudio23MasteringVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio23MasteringVoice_GetEffectState(IXAudio23MasteringVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_SetEffectParameters(IXAudio23MasteringVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_GetEffectParameters(IXAudio23MasteringVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_SetFilterParameters(IXAudio23MasteringVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio23MasteringVoice_GetFilterParameters(IXAudio23MasteringVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_SetVolume(IXAudio23MasteringVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio23MasteringVoice_GetVolume(IXAudio23MasteringVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_SetChannelVolumes(IXAudio23MasteringVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio23MasteringVoice_GetChannelVolumes(IXAudio23MasteringVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio23MasteringVoice_SetOutputMatrix(IXAudio23MasteringVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio23MasteringVoice_GetOutputMatrix(IXAudio23MasteringVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio23MasteringVoice_DestroyVoice(IXAudio23MasteringVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -#endif -#endif - -#endif - - -#endif /* __IXAudio23MasteringVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio2MasteringVoice interface - */ -#ifndef __IXAudio2MasteringVoice_INTERFACE_DEFINED__ -#define __IXAudio2MasteringVoice_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio2MasteringVoice : public IXAudio2Voice -{ - virtual void STDMETHODCALLTYPE GetChannelMask( - DWORD *pChannelMask) = 0; - -}; -#else -typedef struct IXAudio2MasteringVoiceVtbl { - BEGIN_INTERFACE - - /*** IXAudio2Voice methods ***/ - void (STDMETHODCALLTYPE *GetVoiceDetails)( - IXAudio2MasteringVoice *This, - XAUDIO2_VOICE_DETAILS *pVoiceDetails); - - HRESULT (STDMETHODCALLTYPE *SetOutputVoices)( - IXAudio2MasteringVoice *This, - const XAUDIO2_VOICE_SENDS *pSendList); - - HRESULT (STDMETHODCALLTYPE *SetEffectChain)( - IXAudio2MasteringVoice *This, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *EnableEffect)( - IXAudio2MasteringVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *DisableEffect)( - IXAudio2MasteringVoice *This, - UINT32 EffectIndex, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetEffectState)( - IXAudio2MasteringVoice *This, - UINT32 EffectIndex, - BOOL *pEnabled); - - HRESULT (STDMETHODCALLTYPE *SetEffectParameters)( - IXAudio2MasteringVoice *This, - UINT32 EffectIndex, - const void *pParameters, - UINT32 ParametersByteSize, - UINT32 OperationSet); - - HRESULT (STDMETHODCALLTYPE *GetEffectParameters)( - IXAudio2MasteringVoice *This, - UINT32 EffectIndex, - void *pParameters, - UINT32 ParametersByteSize); - - HRESULT (STDMETHODCALLTYPE *SetFilterParameters)( - IXAudio2MasteringVoice *This, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetFilterParameters)( - IXAudio2MasteringVoice *This, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetOutputFilterParameters)( - IXAudio2MasteringVoice *This, - IXAudio2Voice *pDestinationVoice, - const XAUDIO2_FILTER_PARAMETERS *pParameters, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputFilterParameters)( - IXAudio2MasteringVoice *This, - IXAudio2Voice *pDestinationVoice, - XAUDIO2_FILTER_PARAMETERS *pParameters); - - HRESULT (STDMETHODCALLTYPE *SetVolume)( - IXAudio2MasteringVoice *This, - float Volume, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetVolume)( - IXAudio2MasteringVoice *This, - float *pVolume); - - HRESULT (STDMETHODCALLTYPE *SetChannelVolumes)( - IXAudio2MasteringVoice *This, - UINT32 Channels, - const float *pVolumes, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetChannelVolumes)( - IXAudio2MasteringVoice *This, - UINT32 Channels, - float *pVolumes); - - HRESULT (STDMETHODCALLTYPE *SetOutputMatrix)( - IXAudio2MasteringVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - const float *pLevelMatrix, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetOutputMatrix)( - IXAudio2MasteringVoice *This, - IXAudio2Voice *pDestinationVoice, - UINT32 SourceChannels, - UINT32 DestinationChannels, - float *pLevelMatrix); - - void (STDMETHODCALLTYPE *DestroyVoice)( - IXAudio2MasteringVoice *This); - - /*** IXAudio2MasteringVoice methods ***/ - void (STDMETHODCALLTYPE *GetChannelMask)( - IXAudio2MasteringVoice *This, - DWORD *pChannelMask); - - END_INTERFACE -} IXAudio2MasteringVoiceVtbl; - -interface IXAudio2MasteringVoice { - CONST_VTBL IXAudio2MasteringVoiceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio2Voice methods ***/ -#define IXAudio2MasteringVoice_GetVoiceDetails(This,pVoiceDetails) (This)->lpVtbl->GetVoiceDetails(This,pVoiceDetails) -#define IXAudio2MasteringVoice_SetOutputVoices(This,pSendList) (This)->lpVtbl->SetOutputVoices(This,pSendList) -#define IXAudio2MasteringVoice_SetEffectChain(This,pEffectChain) (This)->lpVtbl->SetEffectChain(This,pEffectChain) -#define IXAudio2MasteringVoice_EnableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->EnableEffect(This,EffectIndex,OperationSet) -#define IXAudio2MasteringVoice_DisableEffect(This,EffectIndex,OperationSet) (This)->lpVtbl->DisableEffect(This,EffectIndex,OperationSet) -#define IXAudio2MasteringVoice_GetEffectState(This,EffectIndex,pEnabled) (This)->lpVtbl->GetEffectState(This,EffectIndex,pEnabled) -#define IXAudio2MasteringVoice_SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) (This)->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet) -#define IXAudio2MasteringVoice_GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) (This)->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize) -#define IXAudio2MasteringVoice_SetFilterParameters(This,pParameters,OperationSet) (This)->lpVtbl->SetFilterParameters(This,pParameters,OperationSet) -#define IXAudio2MasteringVoice_GetFilterParameters(This,pParameters) (This)->lpVtbl->GetFilterParameters(This,pParameters) -#define IXAudio2MasteringVoice_SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) (This)->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet) -#define IXAudio2MasteringVoice_GetOutputFilterParameters(This,pDestinationVoice,pParameters) (This)->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters) -#define IXAudio2MasteringVoice_SetVolume(This,Volume,OperationSet) (This)->lpVtbl->SetVolume(This,Volume,OperationSet) -#define IXAudio2MasteringVoice_GetVolume(This,pVolume) (This)->lpVtbl->GetVolume(This,pVolume) -#define IXAudio2MasteringVoice_SetChannelVolumes(This,Channels,pVolumes,OperationSet) (This)->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet) -#define IXAudio2MasteringVoice_GetChannelVolumes(This,Channels,pVolumes) (This)->lpVtbl->GetChannelVolumes(This,Channels,pVolumes) -#define IXAudio2MasteringVoice_SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) (This)->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet) -#define IXAudio2MasteringVoice_GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) (This)->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix) -#define IXAudio2MasteringVoice_DestroyVoice(This) (This)->lpVtbl->DestroyVoice(This) -/*** IXAudio2MasteringVoice methods ***/ -#define IXAudio2MasteringVoice_GetChannelMask(This,pChannelMask) (This)->lpVtbl->GetChannelMask(This,pChannelMask) -#else -/*** IXAudio2Voice methods ***/ -static FORCEINLINE void IXAudio2MasteringVoice_GetVoiceDetails(IXAudio2MasteringVoice* This,XAUDIO2_VOICE_DETAILS *pVoiceDetails) { - This->lpVtbl->GetVoiceDetails(This,pVoiceDetails); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_SetOutputVoices(IXAudio2MasteringVoice* This,const XAUDIO2_VOICE_SENDS *pSendList) { - return This->lpVtbl->SetOutputVoices(This,pSendList); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_SetEffectChain(IXAudio2MasteringVoice* This,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->SetEffectChain(This,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_EnableEffect(IXAudio2MasteringVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->EnableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_DisableEffect(IXAudio2MasteringVoice* This,UINT32 EffectIndex,UINT32 OperationSet) { - return This->lpVtbl->DisableEffect(This,EffectIndex,OperationSet); -} -static FORCEINLINE void IXAudio2MasteringVoice_GetEffectState(IXAudio2MasteringVoice* This,UINT32 EffectIndex,BOOL *pEnabled) { - This->lpVtbl->GetEffectState(This,EffectIndex,pEnabled); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_SetEffectParameters(IXAudio2MasteringVoice* This,UINT32 EffectIndex,const void *pParameters,UINT32 ParametersByteSize,UINT32 OperationSet) { - return This->lpVtbl->SetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize,OperationSet); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_GetEffectParameters(IXAudio2MasteringVoice* This,UINT32 EffectIndex,void *pParameters,UINT32 ParametersByteSize) { - return This->lpVtbl->GetEffectParameters(This,EffectIndex,pParameters,ParametersByteSize); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_SetFilterParameters(IXAudio2MasteringVoice* This,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetFilterParameters(This,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio2MasteringVoice_GetFilterParameters(IXAudio2MasteringVoice* This,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetFilterParameters(This,pParameters); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_SetOutputFilterParameters(IXAudio2MasteringVoice* This,IXAudio2Voice *pDestinationVoice,const XAUDIO2_FILTER_PARAMETERS *pParameters,UINT32 OperationSet) { - return This->lpVtbl->SetOutputFilterParameters(This,pDestinationVoice,pParameters,OperationSet); -} -static FORCEINLINE void IXAudio2MasteringVoice_GetOutputFilterParameters(IXAudio2MasteringVoice* This,IXAudio2Voice *pDestinationVoice,XAUDIO2_FILTER_PARAMETERS *pParameters) { - This->lpVtbl->GetOutputFilterParameters(This,pDestinationVoice,pParameters); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_SetVolume(IXAudio2MasteringVoice* This,float Volume,UINT32 OperationSet) { - return This->lpVtbl->SetVolume(This,Volume,OperationSet); -} -static FORCEINLINE void IXAudio2MasteringVoice_GetVolume(IXAudio2MasteringVoice* This,float *pVolume) { - This->lpVtbl->GetVolume(This,pVolume); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_SetChannelVolumes(IXAudio2MasteringVoice* This,UINT32 Channels,const float *pVolumes,UINT32 OperationSet) { - return This->lpVtbl->SetChannelVolumes(This,Channels,pVolumes,OperationSet); -} -static FORCEINLINE void IXAudio2MasteringVoice_GetChannelVolumes(IXAudio2MasteringVoice* This,UINT32 Channels,float *pVolumes) { - This->lpVtbl->GetChannelVolumes(This,Channels,pVolumes); -} -static FORCEINLINE HRESULT IXAudio2MasteringVoice_SetOutputMatrix(IXAudio2MasteringVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,const float *pLevelMatrix,UINT32 OperationSet) { - return This->lpVtbl->SetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix,OperationSet); -} -static FORCEINLINE void IXAudio2MasteringVoice_GetOutputMatrix(IXAudio2MasteringVoice* This,IXAudio2Voice *pDestinationVoice,UINT32 SourceChannels,UINT32 DestinationChannels,float *pLevelMatrix) { - This->lpVtbl->GetOutputMatrix(This,pDestinationVoice,SourceChannels,DestinationChannels,pLevelMatrix); -} -static FORCEINLINE void IXAudio2MasteringVoice_DestroyVoice(IXAudio2MasteringVoice* This) { - This->lpVtbl->DestroyVoice(This); -} -/*** IXAudio2MasteringVoice methods ***/ -static FORCEINLINE void IXAudio2MasteringVoice_GetChannelMask(IXAudio2MasteringVoice* This,DWORD *pChannelMask) { - This->lpVtbl->GetChannelMask(This,pChannelMask); -} -#endif -#endif - -#endif - -void STDMETHODCALLTYPE IXAudio2MasteringVoice_GetChannelMask_Proxy( - IXAudio2MasteringVoice* This, - DWORD *pChannelMask); -void __RPC_STUB IXAudio2MasteringVoice_GetChannelMask_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio2MasteringVoice_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio20VoiceCallback interface - */ -#ifndef __IXAudio20VoiceCallback_INTERFACE_DEFINED__ -#define __IXAudio20VoiceCallback_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio20VoiceCallback -{ - - BEGIN_INTERFACE - - virtual void STDMETHODCALLTYPE OnVoiceProcessingPassStart( - ) = 0; - - virtual void STDMETHODCALLTYPE OnVoiceProcessingPassEnd( - ) = 0; - - virtual void STDMETHODCALLTYPE OnStreamEnd( - ) = 0; - - virtual void STDMETHODCALLTYPE OnBufferStart( - void *pBufferContext) = 0; - - virtual void STDMETHODCALLTYPE OnBufferEnd( - void *pBufferContext) = 0; - - virtual void STDMETHODCALLTYPE OnLoopEnd( - void *pBufferContext) = 0; - - virtual void STDMETHODCALLTYPE OnVoiceError( - void *pBuffercontext, - HRESULT Error) = 0; - - END_INTERFACE - -}; -#else -typedef struct IXAudio20VoiceCallbackVtbl { - BEGIN_INTERFACE - - /*** IXAudio20VoiceCallback methods ***/ - void (STDMETHODCALLTYPE *OnVoiceProcessingPassStart)( - IXAudio20VoiceCallback *This); - - void (STDMETHODCALLTYPE *OnVoiceProcessingPassEnd)( - IXAudio20VoiceCallback *This); - - void (STDMETHODCALLTYPE *OnStreamEnd)( - IXAudio20VoiceCallback *This); - - void (STDMETHODCALLTYPE *OnBufferStart)( - IXAudio20VoiceCallback *This, - void *pBufferContext); - - void (STDMETHODCALLTYPE *OnBufferEnd)( - IXAudio20VoiceCallback *This, - void *pBufferContext); - - void (STDMETHODCALLTYPE *OnLoopEnd)( - IXAudio20VoiceCallback *This, - void *pBufferContext); - - void (STDMETHODCALLTYPE *OnVoiceError)( - IXAudio20VoiceCallback *This, - void *pBuffercontext, - HRESULT Error); - - END_INTERFACE -} IXAudio20VoiceCallbackVtbl; - -interface IXAudio20VoiceCallback { - CONST_VTBL IXAudio20VoiceCallbackVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio20VoiceCallback methods ***/ -#define IXAudio20VoiceCallback_OnVoiceProcessingPassStart(This) (This)->lpVtbl->OnVoiceProcessingPassStart(This) -#define IXAudio20VoiceCallback_OnVoiceProcessingPassEnd(This) (This)->lpVtbl->OnVoiceProcessingPassEnd(This) -#define IXAudio20VoiceCallback_OnStreamEnd(This) (This)->lpVtbl->OnStreamEnd(This) -#define IXAudio20VoiceCallback_OnBufferStart(This,pBufferContext) (This)->lpVtbl->OnBufferStart(This,pBufferContext) -#define IXAudio20VoiceCallback_OnBufferEnd(This,pBufferContext) (This)->lpVtbl->OnBufferEnd(This,pBufferContext) -#define IXAudio20VoiceCallback_OnLoopEnd(This,pBufferContext) (This)->lpVtbl->OnLoopEnd(This,pBufferContext) -#define IXAudio20VoiceCallback_OnVoiceError(This,pBuffercontext,Error) (This)->lpVtbl->OnVoiceError(This,pBuffercontext,Error) -#else -/*** IXAudio20VoiceCallback methods ***/ -static FORCEINLINE void IXAudio20VoiceCallback_OnVoiceProcessingPassStart(IXAudio20VoiceCallback* This) { - This->lpVtbl->OnVoiceProcessingPassStart(This); -} -static FORCEINLINE void IXAudio20VoiceCallback_OnVoiceProcessingPassEnd(IXAudio20VoiceCallback* This) { - This->lpVtbl->OnVoiceProcessingPassEnd(This); -} -static FORCEINLINE void IXAudio20VoiceCallback_OnStreamEnd(IXAudio20VoiceCallback* This) { - This->lpVtbl->OnStreamEnd(This); -} -static FORCEINLINE void IXAudio20VoiceCallback_OnBufferStart(IXAudio20VoiceCallback* This,void *pBufferContext) { - This->lpVtbl->OnBufferStart(This,pBufferContext); -} -static FORCEINLINE void IXAudio20VoiceCallback_OnBufferEnd(IXAudio20VoiceCallback* This,void *pBufferContext) { - This->lpVtbl->OnBufferEnd(This,pBufferContext); -} -static FORCEINLINE void IXAudio20VoiceCallback_OnLoopEnd(IXAudio20VoiceCallback* This,void *pBufferContext) { - This->lpVtbl->OnLoopEnd(This,pBufferContext); -} -static FORCEINLINE void IXAudio20VoiceCallback_OnVoiceError(IXAudio20VoiceCallback* This,void *pBuffercontext,HRESULT Error) { - This->lpVtbl->OnVoiceError(This,pBuffercontext,Error); -} -#endif -#endif - -#endif - -void STDMETHODCALLTYPE IXAudio20VoiceCallback_OnVoiceProcessingPassStart_Proxy( - IXAudio20VoiceCallback* This); -void __RPC_STUB IXAudio20VoiceCallback_OnVoiceProcessingPassStart_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20VoiceCallback_OnVoiceProcessingPassEnd_Proxy( - IXAudio20VoiceCallback* This); -void __RPC_STUB IXAudio20VoiceCallback_OnVoiceProcessingPassEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20VoiceCallback_OnStreamEnd_Proxy( - IXAudio20VoiceCallback* This); -void __RPC_STUB IXAudio20VoiceCallback_OnStreamEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20VoiceCallback_OnBufferStart_Proxy( - IXAudio20VoiceCallback* This, - void *pBufferContext); -void __RPC_STUB IXAudio20VoiceCallback_OnBufferStart_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20VoiceCallback_OnBufferEnd_Proxy( - IXAudio20VoiceCallback* This, - void *pBufferContext); -void __RPC_STUB IXAudio20VoiceCallback_OnBufferEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20VoiceCallback_OnLoopEnd_Proxy( - IXAudio20VoiceCallback* This, - void *pBufferContext); -void __RPC_STUB IXAudio20VoiceCallback_OnLoopEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20VoiceCallback_OnVoiceError_Proxy( - IXAudio20VoiceCallback* This, - void *pBuffercontext, - HRESULT Error); -void __RPC_STUB IXAudio20VoiceCallback_OnVoiceError_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio20VoiceCallback_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio2VoiceCallback interface - */ -#ifndef __IXAudio2VoiceCallback_INTERFACE_DEFINED__ -#define __IXAudio2VoiceCallback_INTERFACE_DEFINED__ - -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IXAudio2VoiceCallback -{ - - BEGIN_INTERFACE - - virtual void STDMETHODCALLTYPE OnVoiceProcessingPassStart( - UINT32 BytesRequired) = 0; - - virtual void STDMETHODCALLTYPE OnVoiceProcessingPassEnd( - ) = 0; - - virtual void STDMETHODCALLTYPE OnStreamEnd( - ) = 0; - - virtual void STDMETHODCALLTYPE OnBufferStart( - void *pBufferContext) = 0; - - virtual void STDMETHODCALLTYPE OnBufferEnd( - void *pBufferContext) = 0; - - virtual void STDMETHODCALLTYPE OnLoopEnd( - void *pBufferContext) = 0; - - virtual void STDMETHODCALLTYPE OnVoiceError( - void *pBuffercontext, - HRESULT Error) = 0; - - END_INTERFACE - -}; -#else -typedef struct IXAudio2VoiceCallbackVtbl { - BEGIN_INTERFACE - - /*** IXAudio2VoiceCallback methods ***/ - void (STDMETHODCALLTYPE *OnVoiceProcessingPassStart)( - IXAudio2VoiceCallback *This, - UINT32 BytesRequired); - - void (STDMETHODCALLTYPE *OnVoiceProcessingPassEnd)( - IXAudio2VoiceCallback *This); - - void (STDMETHODCALLTYPE *OnStreamEnd)( - IXAudio2VoiceCallback *This); - - void (STDMETHODCALLTYPE *OnBufferStart)( - IXAudio2VoiceCallback *This, - void *pBufferContext); - - void (STDMETHODCALLTYPE *OnBufferEnd)( - IXAudio2VoiceCallback *This, - void *pBufferContext); - - void (STDMETHODCALLTYPE *OnLoopEnd)( - IXAudio2VoiceCallback *This, - void *pBufferContext); - - void (STDMETHODCALLTYPE *OnVoiceError)( - IXAudio2VoiceCallback *This, - void *pBuffercontext, - HRESULT Error); - - END_INTERFACE -} IXAudio2VoiceCallbackVtbl; - -interface IXAudio2VoiceCallback { - CONST_VTBL IXAudio2VoiceCallbackVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IXAudio2VoiceCallback methods ***/ -#define IXAudio2VoiceCallback_OnVoiceProcessingPassStart(This,BytesRequired) (This)->lpVtbl->OnVoiceProcessingPassStart(This,BytesRequired) -#define IXAudio2VoiceCallback_OnVoiceProcessingPassEnd(This) (This)->lpVtbl->OnVoiceProcessingPassEnd(This) -#define IXAudio2VoiceCallback_OnStreamEnd(This) (This)->lpVtbl->OnStreamEnd(This) -#define IXAudio2VoiceCallback_OnBufferStart(This,pBufferContext) (This)->lpVtbl->OnBufferStart(This,pBufferContext) -#define IXAudio2VoiceCallback_OnBufferEnd(This,pBufferContext) (This)->lpVtbl->OnBufferEnd(This,pBufferContext) -#define IXAudio2VoiceCallback_OnLoopEnd(This,pBufferContext) (This)->lpVtbl->OnLoopEnd(This,pBufferContext) -#define IXAudio2VoiceCallback_OnVoiceError(This,pBuffercontext,Error) (This)->lpVtbl->OnVoiceError(This,pBuffercontext,Error) -#else -/*** IXAudio2VoiceCallback methods ***/ -static FORCEINLINE void IXAudio2VoiceCallback_OnVoiceProcessingPassStart(IXAudio2VoiceCallback* This,UINT32 BytesRequired) { - This->lpVtbl->OnVoiceProcessingPassStart(This,BytesRequired); -} -static FORCEINLINE void IXAudio2VoiceCallback_OnVoiceProcessingPassEnd(IXAudio2VoiceCallback* This) { - This->lpVtbl->OnVoiceProcessingPassEnd(This); -} -static FORCEINLINE void IXAudio2VoiceCallback_OnStreamEnd(IXAudio2VoiceCallback* This) { - This->lpVtbl->OnStreamEnd(This); -} -static FORCEINLINE void IXAudio2VoiceCallback_OnBufferStart(IXAudio2VoiceCallback* This,void *pBufferContext) { - This->lpVtbl->OnBufferStart(This,pBufferContext); -} -static FORCEINLINE void IXAudio2VoiceCallback_OnBufferEnd(IXAudio2VoiceCallback* This,void *pBufferContext) { - This->lpVtbl->OnBufferEnd(This,pBufferContext); -} -static FORCEINLINE void IXAudio2VoiceCallback_OnLoopEnd(IXAudio2VoiceCallback* This,void *pBufferContext) { - This->lpVtbl->OnLoopEnd(This,pBufferContext); -} -static FORCEINLINE void IXAudio2VoiceCallback_OnVoiceError(IXAudio2VoiceCallback* This,void *pBuffercontext,HRESULT Error) { - This->lpVtbl->OnVoiceError(This,pBuffercontext,Error); -} -#endif -#endif - -#endif - -void STDMETHODCALLTYPE IXAudio2VoiceCallback_OnVoiceProcessingPassStart_Proxy( - IXAudio2VoiceCallback* This, - UINT32 BytesRequired); -void __RPC_STUB IXAudio2VoiceCallback_OnVoiceProcessingPassStart_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2VoiceCallback_OnVoiceProcessingPassEnd_Proxy( - IXAudio2VoiceCallback* This); -void __RPC_STUB IXAudio2VoiceCallback_OnVoiceProcessingPassEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2VoiceCallback_OnStreamEnd_Proxy( - IXAudio2VoiceCallback* This); -void __RPC_STUB IXAudio2VoiceCallback_OnStreamEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2VoiceCallback_OnBufferStart_Proxy( - IXAudio2VoiceCallback* This, - void *pBufferContext); -void __RPC_STUB IXAudio2VoiceCallback_OnBufferStart_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2VoiceCallback_OnBufferEnd_Proxy( - IXAudio2VoiceCallback* This, - void *pBufferContext); -void __RPC_STUB IXAudio2VoiceCallback_OnBufferEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2VoiceCallback_OnLoopEnd_Proxy( - IXAudio2VoiceCallback* This, - void *pBufferContext); -void __RPC_STUB IXAudio2VoiceCallback_OnLoopEnd_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2VoiceCallback_OnVoiceError_Proxy( - IXAudio2VoiceCallback* This, - void *pBuffercontext, - HRESULT Error); -void __RPC_STUB IXAudio2VoiceCallback_OnVoiceError_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio2VoiceCallback_INTERFACE_DEFINED__ */ - -typedef struct XAUDIO2_DEBUG_CONFIGURATION { - UINT32 TraceMask; - UINT32 BreakMask; - BOOL LogThreadID; - BOOL LogFileline; - BOOL LogFunctionName; - BOOL LogTiming; -} XAUDIO2_DEBUG_CONFIGURATION; -/***************************************************************************** - * IXAudio20 interface - */ -#ifndef __IXAudio20_INTERFACE_DEFINED__ -#define __IXAudio20_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IXAudio20, 0x8bcf1f58, 0x9fe7, 0x4583, 0x8a,0xc6, 0xe2,0xad,0xc4,0x65,0xc8,0xbb); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("8bcf1f58-9fe7-4583-8ac6-e2adc465c8bb") -IXAudio20 : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetDeviceCount( - UINT32 *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDeviceDetails( - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails) = 0; - - virtual HRESULT STDMETHODCALLTYPE Initialize( - UINT32 Flags = 0, - XAUDIO2_PROCESSOR XAudio2Processor = XAUDIO2_DEFAULT_PROCESSOR) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterForCallbacks( - IXAudio2EngineCallback *pCallback) = 0; - - virtual void STDMETHODCALLTYPE UnregisterForCallbacks( - IXAudio2EngineCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSourceVoice( - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags = 0, - float MaxFrequencyRatio = XAUDIO2_DEFAULT_FREQ_RATIO, - IXAudio2VoiceCallback *pCallback = 0, - const XAUDIO2_VOICE_SENDS *pSendList = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSubmixVoice( - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags = 0, - UINT32 ProcessingStage = 0, - const XAUDIO2_VOICE_SENDS *pSendList = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateMasteringVoice( - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels = XAUDIO2_DEFAULT_CHANNELS, - UINT32 InputSampleRate = XAUDIO2_DEFAULT_SAMPLERATE, - UINT32 Flags = 0, - UINT32 DeviceIndex = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE StartEngine( - ) = 0; - - virtual void STDMETHODCALLTYPE StopEngine( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommitChanges( - UINT32 OperationSet) = 0; - - virtual void STDMETHODCALLTYPE GetPerformanceData( - XAUDIO20_PERFORMANCE_DATA *pPerfData) = 0; - - virtual void STDMETHODCALLTYPE SetDebugConfiguration( - const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration, - void *pReserved = 0) = 0; - -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IXAudio20, 0x8bcf1f58, 0x9fe7, 0x4583, 0x8a,0xc6, 0xe2,0xad,0xc4,0x65,0xc8,0xbb) -#endif -#else -typedef struct IXAudio20Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IXAudio20 *This, - REFIID riid, - void **ppvObject); - - ULONG (STDMETHODCALLTYPE *AddRef)( - IXAudio20 *This); - - ULONG (STDMETHODCALLTYPE *Release)( - IXAudio20 *This); - - /*** IXAudio20 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetDeviceCount)( - IXAudio20 *This, - UINT32 *pCount); - - HRESULT (STDMETHODCALLTYPE *GetDeviceDetails)( - IXAudio20 *This, - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails); - - HRESULT (STDMETHODCALLTYPE *Initialize)( - IXAudio20 *This, - UINT32 Flags, - XAUDIO2_PROCESSOR XAudio2Processor); - - HRESULT (STDMETHODCALLTYPE *RegisterForCallbacks)( - IXAudio20 *This, - IXAudio2EngineCallback *pCallback); - - void (STDMETHODCALLTYPE *UnregisterForCallbacks)( - IXAudio20 *This, - IXAudio2EngineCallback *pCallback); - - HRESULT (STDMETHODCALLTYPE *CreateSourceVoice)( - IXAudio20 *This, - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags, - float MaxFrequencyRatio, - IXAudio2VoiceCallback *pCallback, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *CreateSubmixVoice)( - IXAudio20 *This, - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 ProcessingStage, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *CreateMasteringVoice)( - IXAudio20 *This, - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 DeviceIndex, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *StartEngine)( - IXAudio20 *This); - - void (STDMETHODCALLTYPE *StopEngine)( - IXAudio20 *This); - - HRESULT (STDMETHODCALLTYPE *CommitChanges)( - IXAudio20 *This, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetPerformanceData)( - IXAudio20 *This, - XAUDIO20_PERFORMANCE_DATA *pPerfData); - - void (STDMETHODCALLTYPE *SetDebugConfiguration)( - IXAudio20 *This, - const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration, - void *pReserved); - - END_INTERFACE -} IXAudio20Vtbl; - -interface IXAudio20 { - CONST_VTBL IXAudio20Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IXAudio20_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IXAudio20_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IXAudio20_Release(This) (This)->lpVtbl->Release(This) -/*** IXAudio20 methods ***/ -#define IXAudio20_GetDeviceCount(This,pCount) (This)->lpVtbl->GetDeviceCount(This,pCount) -#define IXAudio20_GetDeviceDetails(This,Index,pDeviceDetails) (This)->lpVtbl->GetDeviceDetails(This,Index,pDeviceDetails) -#define IXAudio20_Initialize(This,Flags,XAudio2Processor) (This)->lpVtbl->Initialize(This,Flags,XAudio2Processor) -#define IXAudio20_RegisterForCallbacks(This,pCallback) (This)->lpVtbl->RegisterForCallbacks(This,pCallback) -#define IXAudio20_UnregisterForCallbacks(This,pCallback) (This)->lpVtbl->UnregisterForCallbacks(This,pCallback) -#define IXAudio20_CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) (This)->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) -#define IXAudio20_CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) (This)->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) -#define IXAudio20_CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain) (This)->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain) -#define IXAudio20_StartEngine(This) (This)->lpVtbl->StartEngine(This) -#define IXAudio20_StopEngine(This) (This)->lpVtbl->StopEngine(This) -#define IXAudio20_CommitChanges(This,OperationSet) (This)->lpVtbl->CommitChanges(This,OperationSet) -#define IXAudio20_GetPerformanceData(This,pPerfData) (This)->lpVtbl->GetPerformanceData(This,pPerfData) -#define IXAudio20_SetDebugConfiguration(This,pDebugConfiguration,pReserved) (This)->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved) -#else -/*** IUnknown methods ***/ -static FORCEINLINE HRESULT IXAudio20_QueryInterface(IXAudio20* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); -} -static FORCEINLINE ULONG IXAudio20_AddRef(IXAudio20* This) { - return This->lpVtbl->AddRef(This); -} -static FORCEINLINE ULONG IXAudio20_Release(IXAudio20* This) { - return This->lpVtbl->Release(This); -} -/*** IXAudio20 methods ***/ -static FORCEINLINE HRESULT IXAudio20_GetDeviceCount(IXAudio20* This,UINT32 *pCount) { - return This->lpVtbl->GetDeviceCount(This,pCount); -} -static FORCEINLINE HRESULT IXAudio20_GetDeviceDetails(IXAudio20* This,UINT32 Index,XAUDIO2_DEVICE_DETAILS *pDeviceDetails) { - return This->lpVtbl->GetDeviceDetails(This,Index,pDeviceDetails); -} -static FORCEINLINE HRESULT IXAudio20_Initialize(IXAudio20* This,UINT32 Flags,XAUDIO2_PROCESSOR XAudio2Processor) { - return This->lpVtbl->Initialize(This,Flags,XAudio2Processor); -} -static FORCEINLINE HRESULT IXAudio20_RegisterForCallbacks(IXAudio20* This,IXAudio2EngineCallback *pCallback) { - return This->lpVtbl->RegisterForCallbacks(This,pCallback); -} -static FORCEINLINE void IXAudio20_UnregisterForCallbacks(IXAudio20* This,IXAudio2EngineCallback *pCallback) { - This->lpVtbl->UnregisterForCallbacks(This,pCallback); -} -static FORCEINLINE HRESULT IXAudio20_CreateSourceVoice(IXAudio20* This,IXAudio2SourceVoice **ppSourceVoice,const WAVEFORMATEX *pSourceFormat,UINT32 Flags,float MaxFrequencyRatio,IXAudio2VoiceCallback *pCallback,const XAUDIO2_VOICE_SENDS *pSendList,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio20_CreateSubmixVoice(IXAudio20* This,IXAudio2SubmixVoice **ppSubmixVoice,UINT32 InputChannels,UINT32 InputSampleRate,UINT32 Flags,UINT32 ProcessingStage,const XAUDIO2_VOICE_SENDS *pSendList,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio20_CreateMasteringVoice(IXAudio20* This,IXAudio2MasteringVoice **ppMasteringVoice,UINT32 InputChannels,UINT32 InputSampleRate,UINT32 Flags,UINT32 DeviceIndex,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio20_StartEngine(IXAudio20* This) { - return This->lpVtbl->StartEngine(This); -} -static FORCEINLINE void IXAudio20_StopEngine(IXAudio20* This) { - This->lpVtbl->StopEngine(This); -} -static FORCEINLINE HRESULT IXAudio20_CommitChanges(IXAudio20* This,UINT32 OperationSet) { - return This->lpVtbl->CommitChanges(This,OperationSet); -} -static FORCEINLINE void IXAudio20_GetPerformanceData(IXAudio20* This,XAUDIO20_PERFORMANCE_DATA *pPerfData) { - This->lpVtbl->GetPerformanceData(This,pPerfData); -} -static FORCEINLINE void IXAudio20_SetDebugConfiguration(IXAudio20* This,const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration,void *pReserved) { - This->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved); -} -#endif -#endif - -#endif - -HRESULT STDMETHODCALLTYPE IXAudio20_GetDeviceCount_Proxy( - IXAudio20* This, - UINT32 *pCount); -void __RPC_STUB IXAudio20_GetDeviceCount_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20_GetDeviceDetails_Proxy( - IXAudio20* This, - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails); -void __RPC_STUB IXAudio20_GetDeviceDetails_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20_Initialize_Proxy( - IXAudio20* This, - UINT32 Flags, - XAUDIO2_PROCESSOR XAudio2Processor); -void __RPC_STUB IXAudio20_Initialize_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20_RegisterForCallbacks_Proxy( - IXAudio20* This, - IXAudio2EngineCallback *pCallback); -void __RPC_STUB IXAudio20_RegisterForCallbacks_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20_UnregisterForCallbacks_Proxy( - IXAudio20* This, - IXAudio2EngineCallback *pCallback); -void __RPC_STUB IXAudio20_UnregisterForCallbacks_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20_CreateSourceVoice_Proxy( - IXAudio20* This, - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags, - float MaxFrequencyRatio, - IXAudio2VoiceCallback *pCallback, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio20_CreateSourceVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20_CreateSubmixVoice_Proxy( - IXAudio20* This, - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 ProcessingStage, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio20_CreateSubmixVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20_CreateMasteringVoice_Proxy( - IXAudio20* This, - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 DeviceIndex, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio20_CreateMasteringVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20_StartEngine_Proxy( - IXAudio20* This); -void __RPC_STUB IXAudio20_StartEngine_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20_StopEngine_Proxy( - IXAudio20* This); -void __RPC_STUB IXAudio20_StopEngine_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio20_CommitChanges_Proxy( - IXAudio20* This, - UINT32 OperationSet); -void __RPC_STUB IXAudio20_CommitChanges_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio20_GetPerformanceData_Proxy( - IXAudio20* This, - XAUDIO20_PERFORMANCE_DATA *pPerfData); -void __RPC_STUB IXAudio20_GetPerformanceData_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio20_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio22 interface - */ -#ifndef __IXAudio22_INTERFACE_DEFINED__ -#define __IXAudio22_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IXAudio22, 0x8bcf1f58, 0x9fe7, 0x4583, 0x8a,0xc6, 0xe2,0xad,0xc4,0x65,0xc8,0xbb); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("8bcf1f58-9fe7-4583-8ac6-e2adc465c8bb") -IXAudio22 : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetDeviceCount( - UINT32 *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDeviceDetails( - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails) = 0; - - virtual HRESULT STDMETHODCALLTYPE Initialize( - UINT32 Flags = 0, - XAUDIO2_PROCESSOR XAudio2Processor = XAUDIO2_DEFAULT_PROCESSOR) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterForCallbacks( - IXAudio2EngineCallback *pCallback) = 0; - - virtual void STDMETHODCALLTYPE UnregisterForCallbacks( - IXAudio2EngineCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSourceVoice( - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags = 0, - float MaxFrequencyRatio = XAUDIO2_DEFAULT_FREQ_RATIO, - IXAudio2VoiceCallback *pCallback = 0, - const XAUDIO2_VOICE_SENDS *pSendList = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSubmixVoice( - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags = 0, - UINT32 ProcessingStage = 0, - const XAUDIO2_VOICE_SENDS *pSendList = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateMasteringVoice( - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels = XAUDIO2_DEFAULT_CHANNELS, - UINT32 InputSampleRate = XAUDIO2_DEFAULT_SAMPLERATE, - UINT32 Flags = 0, - UINT32 DeviceIndex = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE StartEngine( - ) = 0; - - virtual void STDMETHODCALLTYPE StopEngine( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommitChanges( - UINT32 OperationSet) = 0; - - virtual void STDMETHODCALLTYPE GetPerformanceData( - XAUDIO22_PERFORMANCE_DATA *pPerfData) = 0; - - virtual void STDMETHODCALLTYPE SetDebugConfiguration( - const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration, - void *pReserved = 0) = 0; - -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IXAudio22, 0x8bcf1f58, 0x9fe7, 0x4583, 0x8a,0xc6, 0xe2,0xad,0xc4,0x65,0xc8,0xbb) -#endif -#else -typedef struct IXAudio22Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IXAudio22 *This, - REFIID riid, - void **ppvObject); - - ULONG (STDMETHODCALLTYPE *AddRef)( - IXAudio22 *This); - - ULONG (STDMETHODCALLTYPE *Release)( - IXAudio22 *This); - - /*** IXAudio22 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetDeviceCount)( - IXAudio22 *This, - UINT32 *pCount); - - HRESULT (STDMETHODCALLTYPE *GetDeviceDetails)( - IXAudio22 *This, - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails); - - HRESULT (STDMETHODCALLTYPE *Initialize)( - IXAudio22 *This, - UINT32 Flags, - XAUDIO2_PROCESSOR XAudio2Processor); - - HRESULT (STDMETHODCALLTYPE *RegisterForCallbacks)( - IXAudio22 *This, - IXAudio2EngineCallback *pCallback); - - void (STDMETHODCALLTYPE *UnregisterForCallbacks)( - IXAudio22 *This, - IXAudio2EngineCallback *pCallback); - - HRESULT (STDMETHODCALLTYPE *CreateSourceVoice)( - IXAudio22 *This, - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags, - float MaxFrequencyRatio, - IXAudio2VoiceCallback *pCallback, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *CreateSubmixVoice)( - IXAudio22 *This, - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 ProcessingStage, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *CreateMasteringVoice)( - IXAudio22 *This, - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 DeviceIndex, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *StartEngine)( - IXAudio22 *This); - - void (STDMETHODCALLTYPE *StopEngine)( - IXAudio22 *This); - - HRESULT (STDMETHODCALLTYPE *CommitChanges)( - IXAudio22 *This, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetPerformanceData)( - IXAudio22 *This, - XAUDIO22_PERFORMANCE_DATA *pPerfData); - - void (STDMETHODCALLTYPE *SetDebugConfiguration)( - IXAudio22 *This, - const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration, - void *pReserved); - - END_INTERFACE -} IXAudio22Vtbl; - -interface IXAudio22 { - CONST_VTBL IXAudio22Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IXAudio22_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IXAudio22_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IXAudio22_Release(This) (This)->lpVtbl->Release(This) -/*** IXAudio22 methods ***/ -#define IXAudio22_GetDeviceCount(This,pCount) (This)->lpVtbl->GetDeviceCount(This,pCount) -#define IXAudio22_GetDeviceDetails(This,Index,pDeviceDetails) (This)->lpVtbl->GetDeviceDetails(This,Index,pDeviceDetails) -#define IXAudio22_Initialize(This,Flags,XAudio2Processor) (This)->lpVtbl->Initialize(This,Flags,XAudio2Processor) -#define IXAudio22_RegisterForCallbacks(This,pCallback) (This)->lpVtbl->RegisterForCallbacks(This,pCallback) -#define IXAudio22_UnregisterForCallbacks(This,pCallback) (This)->lpVtbl->UnregisterForCallbacks(This,pCallback) -#define IXAudio22_CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) (This)->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) -#define IXAudio22_CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) (This)->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) -#define IXAudio22_CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain) (This)->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain) -#define IXAudio22_StartEngine(This) (This)->lpVtbl->StartEngine(This) -#define IXAudio22_StopEngine(This) (This)->lpVtbl->StopEngine(This) -#define IXAudio22_CommitChanges(This,OperationSet) (This)->lpVtbl->CommitChanges(This,OperationSet) -#define IXAudio22_GetPerformanceData(This,pPerfData) (This)->lpVtbl->GetPerformanceData(This,pPerfData) -#define IXAudio22_SetDebugConfiguration(This,pDebugConfiguration,pReserved) (This)->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved) -#else -/*** IUnknown methods ***/ -static FORCEINLINE HRESULT IXAudio22_QueryInterface(IXAudio22* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); -} -static FORCEINLINE ULONG IXAudio22_AddRef(IXAudio22* This) { - return This->lpVtbl->AddRef(This); -} -static FORCEINLINE ULONG IXAudio22_Release(IXAudio22* This) { - return This->lpVtbl->Release(This); -} -/*** IXAudio22 methods ***/ -static FORCEINLINE HRESULT IXAudio22_GetDeviceCount(IXAudio22* This,UINT32 *pCount) { - return This->lpVtbl->GetDeviceCount(This,pCount); -} -static FORCEINLINE HRESULT IXAudio22_GetDeviceDetails(IXAudio22* This,UINT32 Index,XAUDIO2_DEVICE_DETAILS *pDeviceDetails) { - return This->lpVtbl->GetDeviceDetails(This,Index,pDeviceDetails); -} -static FORCEINLINE HRESULT IXAudio22_Initialize(IXAudio22* This,UINT32 Flags,XAUDIO2_PROCESSOR XAudio2Processor) { - return This->lpVtbl->Initialize(This,Flags,XAudio2Processor); -} -static FORCEINLINE HRESULT IXAudio22_RegisterForCallbacks(IXAudio22* This,IXAudio2EngineCallback *pCallback) { - return This->lpVtbl->RegisterForCallbacks(This,pCallback); -} -static FORCEINLINE void IXAudio22_UnregisterForCallbacks(IXAudio22* This,IXAudio2EngineCallback *pCallback) { - This->lpVtbl->UnregisterForCallbacks(This,pCallback); -} -static FORCEINLINE HRESULT IXAudio22_CreateSourceVoice(IXAudio22* This,IXAudio2SourceVoice **ppSourceVoice,const WAVEFORMATEX *pSourceFormat,UINT32 Flags,float MaxFrequencyRatio,IXAudio2VoiceCallback *pCallback,const XAUDIO2_VOICE_SENDS *pSendList,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio22_CreateSubmixVoice(IXAudio22* This,IXAudio2SubmixVoice **ppSubmixVoice,UINT32 InputChannels,UINT32 InputSampleRate,UINT32 Flags,UINT32 ProcessingStage,const XAUDIO2_VOICE_SENDS *pSendList,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio22_CreateMasteringVoice(IXAudio22* This,IXAudio2MasteringVoice **ppMasteringVoice,UINT32 InputChannels,UINT32 InputSampleRate,UINT32 Flags,UINT32 DeviceIndex,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio22_StartEngine(IXAudio22* This) { - return This->lpVtbl->StartEngine(This); -} -static FORCEINLINE void IXAudio22_StopEngine(IXAudio22* This) { - This->lpVtbl->StopEngine(This); -} -static FORCEINLINE HRESULT IXAudio22_CommitChanges(IXAudio22* This,UINT32 OperationSet) { - return This->lpVtbl->CommitChanges(This,OperationSet); -} -static FORCEINLINE void IXAudio22_GetPerformanceData(IXAudio22* This,XAUDIO22_PERFORMANCE_DATA *pPerfData) { - This->lpVtbl->GetPerformanceData(This,pPerfData); -} -static FORCEINLINE void IXAudio22_SetDebugConfiguration(IXAudio22* This,const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration,void *pReserved) { - This->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved); -} -#endif -#endif - -#endif - -HRESULT STDMETHODCALLTYPE IXAudio22_GetDeviceCount_Proxy( - IXAudio22* This, - UINT32 *pCount); -void __RPC_STUB IXAudio22_GetDeviceCount_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio22_GetDeviceDetails_Proxy( - IXAudio22* This, - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails); -void __RPC_STUB IXAudio22_GetDeviceDetails_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio22_Initialize_Proxy( - IXAudio22* This, - UINT32 Flags, - XAUDIO2_PROCESSOR XAudio2Processor); -void __RPC_STUB IXAudio22_Initialize_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio22_RegisterForCallbacks_Proxy( - IXAudio22* This, - IXAudio2EngineCallback *pCallback); -void __RPC_STUB IXAudio22_RegisterForCallbacks_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio22_UnregisterForCallbacks_Proxy( - IXAudio22* This, - IXAudio2EngineCallback *pCallback); -void __RPC_STUB IXAudio22_UnregisterForCallbacks_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio22_CreateSourceVoice_Proxy( - IXAudio22* This, - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags, - float MaxFrequencyRatio, - IXAudio2VoiceCallback *pCallback, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio22_CreateSourceVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio22_CreateSubmixVoice_Proxy( - IXAudio22* This, - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 ProcessingStage, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio22_CreateSubmixVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio22_CreateMasteringVoice_Proxy( - IXAudio22* This, - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 DeviceIndex, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio22_CreateMasteringVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio22_StartEngine_Proxy( - IXAudio22* This); -void __RPC_STUB IXAudio22_StartEngine_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio22_StopEngine_Proxy( - IXAudio22* This); -void __RPC_STUB IXAudio22_StopEngine_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio22_CommitChanges_Proxy( - IXAudio22* This, - UINT32 OperationSet); -void __RPC_STUB IXAudio22_CommitChanges_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio22_GetPerformanceData_Proxy( - IXAudio22* This, - XAUDIO22_PERFORMANCE_DATA *pPerfData); -void __RPC_STUB IXAudio22_GetPerformanceData_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio22_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IXAudio27 interface - */ -#ifndef __IXAudio27_INTERFACE_DEFINED__ -#define __IXAudio27_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IXAudio27, 0x8bcf1f58, 0x9fe7, 0x4583, 0x8a,0xc6, 0xe2,0xad,0xc4,0x65,0xc8,0xbb); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("8bcf1f58-9fe7-4583-8ac6-e2adc465c8bb") -IXAudio27 : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetDeviceCount( - UINT32 *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDeviceDetails( - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails) = 0; - - virtual HRESULT STDMETHODCALLTYPE Initialize( - UINT32 Flags = 0, - XAUDIO2_PROCESSOR XAudio2Processor = XAUDIO2_DEFAULT_PROCESSOR) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterForCallbacks( - IXAudio2EngineCallback *pCallback) = 0; - - virtual void STDMETHODCALLTYPE UnregisterForCallbacks( - IXAudio2EngineCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSourceVoice( - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags = 0, - float MaxFrequencyRatio = XAUDIO2_DEFAULT_FREQ_RATIO, - IXAudio2VoiceCallback *pCallback = 0, - const XAUDIO2_VOICE_SENDS *pSendList = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSubmixVoice( - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags = 0, - UINT32 ProcessingStage = 0, - const XAUDIO2_VOICE_SENDS *pSendList = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateMasteringVoice( - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels = XAUDIO2_DEFAULT_CHANNELS, - UINT32 InputSampleRate = XAUDIO2_DEFAULT_SAMPLERATE, - UINT32 Flags = 0, - UINT32 DeviceIndex = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE StartEngine( - ) = 0; - - virtual void STDMETHODCALLTYPE StopEngine( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommitChanges( - UINT32 OperationSet) = 0; - - virtual void STDMETHODCALLTYPE GetPerformanceData( - XAUDIO2_PERFORMANCE_DATA *pPerfData) = 0; - - virtual void STDMETHODCALLTYPE SetDebugConfiguration( - const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration, - void *pReserved = 0) = 0; - -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IXAudio27, 0x8bcf1f58, 0x9fe7, 0x4583, 0x8a,0xc6, 0xe2,0xad,0xc4,0x65,0xc8,0xbb) -#endif -#else -typedef struct IXAudio27Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IXAudio27 *This, - REFIID riid, - void **ppvObject); - - ULONG (STDMETHODCALLTYPE *AddRef)( - IXAudio27 *This); - - ULONG (STDMETHODCALLTYPE *Release)( - IXAudio27 *This); - - /*** IXAudio27 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetDeviceCount)( - IXAudio27 *This, - UINT32 *pCount); - - HRESULT (STDMETHODCALLTYPE *GetDeviceDetails)( - IXAudio27 *This, - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails); - - HRESULT (STDMETHODCALLTYPE *Initialize)( - IXAudio27 *This, - UINT32 Flags, - XAUDIO2_PROCESSOR XAudio2Processor); - - HRESULT (STDMETHODCALLTYPE *RegisterForCallbacks)( - IXAudio27 *This, - IXAudio2EngineCallback *pCallback); - - void (STDMETHODCALLTYPE *UnregisterForCallbacks)( - IXAudio27 *This, - IXAudio2EngineCallback *pCallback); - - HRESULT (STDMETHODCALLTYPE *CreateSourceVoice)( - IXAudio27 *This, - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags, - float MaxFrequencyRatio, - IXAudio2VoiceCallback *pCallback, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *CreateSubmixVoice)( - IXAudio27 *This, - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 ProcessingStage, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *CreateMasteringVoice)( - IXAudio27 *This, - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 DeviceIndex, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *StartEngine)( - IXAudio27 *This); - - void (STDMETHODCALLTYPE *StopEngine)( - IXAudio27 *This); - - HRESULT (STDMETHODCALLTYPE *CommitChanges)( - IXAudio27 *This, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetPerformanceData)( - IXAudio27 *This, - XAUDIO2_PERFORMANCE_DATA *pPerfData); - - void (STDMETHODCALLTYPE *SetDebugConfiguration)( - IXAudio27 *This, - const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration, - void *pReserved); - - END_INTERFACE -} IXAudio27Vtbl; - -interface IXAudio27 { - CONST_VTBL IXAudio27Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IXAudio27_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IXAudio27_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IXAudio27_Release(This) (This)->lpVtbl->Release(This) -/*** IXAudio27 methods ***/ -#define IXAudio27_GetDeviceCount(This,pCount) (This)->lpVtbl->GetDeviceCount(This,pCount) -#define IXAudio27_GetDeviceDetails(This,Index,pDeviceDetails) (This)->lpVtbl->GetDeviceDetails(This,Index,pDeviceDetails) -#define IXAudio27_Initialize(This,Flags,XAudio2Processor) (This)->lpVtbl->Initialize(This,Flags,XAudio2Processor) -#define IXAudio27_RegisterForCallbacks(This,pCallback) (This)->lpVtbl->RegisterForCallbacks(This,pCallback) -#define IXAudio27_UnregisterForCallbacks(This,pCallback) (This)->lpVtbl->UnregisterForCallbacks(This,pCallback) -#define IXAudio27_CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) (This)->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) -#define IXAudio27_CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) (This)->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) -#define IXAudio27_CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain) (This)->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain) -#define IXAudio27_StartEngine(This) (This)->lpVtbl->StartEngine(This) -#define IXAudio27_StopEngine(This) (This)->lpVtbl->StopEngine(This) -#define IXAudio27_CommitChanges(This,OperationSet) (This)->lpVtbl->CommitChanges(This,OperationSet) -#define IXAudio27_GetPerformanceData(This,pPerfData) (This)->lpVtbl->GetPerformanceData(This,pPerfData) -#define IXAudio27_SetDebugConfiguration(This,pDebugConfiguration,pReserved) (This)->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved) -#else -/*** IUnknown methods ***/ -static FORCEINLINE HRESULT IXAudio27_QueryInterface(IXAudio27* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); -} -static FORCEINLINE ULONG IXAudio27_AddRef(IXAudio27* This) { - return This->lpVtbl->AddRef(This); -} -static FORCEINLINE ULONG IXAudio27_Release(IXAudio27* This) { - return This->lpVtbl->Release(This); -} -/*** IXAudio27 methods ***/ -static FORCEINLINE HRESULT IXAudio27_GetDeviceCount(IXAudio27* This,UINT32 *pCount) { - return This->lpVtbl->GetDeviceCount(This,pCount); -} -static FORCEINLINE HRESULT IXAudio27_GetDeviceDetails(IXAudio27* This,UINT32 Index,XAUDIO2_DEVICE_DETAILS *pDeviceDetails) { - return This->lpVtbl->GetDeviceDetails(This,Index,pDeviceDetails); -} -static FORCEINLINE HRESULT IXAudio27_Initialize(IXAudio27* This,UINT32 Flags,XAUDIO2_PROCESSOR XAudio2Processor) { - return This->lpVtbl->Initialize(This,Flags,XAudio2Processor); -} -static FORCEINLINE HRESULT IXAudio27_RegisterForCallbacks(IXAudio27* This,IXAudio2EngineCallback *pCallback) { - return This->lpVtbl->RegisterForCallbacks(This,pCallback); -} -static FORCEINLINE void IXAudio27_UnregisterForCallbacks(IXAudio27* This,IXAudio2EngineCallback *pCallback) { - This->lpVtbl->UnregisterForCallbacks(This,pCallback); -} -static FORCEINLINE HRESULT IXAudio27_CreateSourceVoice(IXAudio27* This,IXAudio2SourceVoice **ppSourceVoice,const WAVEFORMATEX *pSourceFormat,UINT32 Flags,float MaxFrequencyRatio,IXAudio2VoiceCallback *pCallback,const XAUDIO2_VOICE_SENDS *pSendList,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio27_CreateSubmixVoice(IXAudio27* This,IXAudio2SubmixVoice **ppSubmixVoice,UINT32 InputChannels,UINT32 InputSampleRate,UINT32 Flags,UINT32 ProcessingStage,const XAUDIO2_VOICE_SENDS *pSendList,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio27_CreateMasteringVoice(IXAudio27* This,IXAudio2MasteringVoice **ppMasteringVoice,UINT32 InputChannels,UINT32 InputSampleRate,UINT32 Flags,UINT32 DeviceIndex,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceIndex,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio27_StartEngine(IXAudio27* This) { - return This->lpVtbl->StartEngine(This); -} -static FORCEINLINE void IXAudio27_StopEngine(IXAudio27* This) { - This->lpVtbl->StopEngine(This); -} -static FORCEINLINE HRESULT IXAudio27_CommitChanges(IXAudio27* This,UINT32 OperationSet) { - return This->lpVtbl->CommitChanges(This,OperationSet); -} -static FORCEINLINE void IXAudio27_GetPerformanceData(IXAudio27* This,XAUDIO2_PERFORMANCE_DATA *pPerfData) { - This->lpVtbl->GetPerformanceData(This,pPerfData); -} -static FORCEINLINE void IXAudio27_SetDebugConfiguration(IXAudio27* This,const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration,void *pReserved) { - This->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved); -} -#endif -#endif - -#endif - -HRESULT STDMETHODCALLTYPE IXAudio27_GetDeviceCount_Proxy( - IXAudio27* This, - UINT32 *pCount); -void __RPC_STUB IXAudio27_GetDeviceCount_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27_GetDeviceDetails_Proxy( - IXAudio27* This, - UINT32 Index, - XAUDIO2_DEVICE_DETAILS *pDeviceDetails); -void __RPC_STUB IXAudio27_GetDeviceDetails_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27_Initialize_Proxy( - IXAudio27* This, - UINT32 Flags, - XAUDIO2_PROCESSOR XAudio2Processor); -void __RPC_STUB IXAudio27_Initialize_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27_RegisterForCallbacks_Proxy( - IXAudio27* This, - IXAudio2EngineCallback *pCallback); -void __RPC_STUB IXAudio27_RegisterForCallbacks_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio27_UnregisterForCallbacks_Proxy( - IXAudio27* This, - IXAudio2EngineCallback *pCallback); -void __RPC_STUB IXAudio27_UnregisterForCallbacks_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27_CreateSourceVoice_Proxy( - IXAudio27* This, - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags, - float MaxFrequencyRatio, - IXAudio2VoiceCallback *pCallback, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio27_CreateSourceVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27_CreateSubmixVoice_Proxy( - IXAudio27* This, - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 ProcessingStage, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio27_CreateSubmixVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27_CreateMasteringVoice_Proxy( - IXAudio27* This, - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 DeviceIndex, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio27_CreateMasteringVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27_StartEngine_Proxy( - IXAudio27* This); -void __RPC_STUB IXAudio27_StartEngine_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio27_StopEngine_Proxy( - IXAudio27* This); -void __RPC_STUB IXAudio27_StopEngine_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio27_CommitChanges_Proxy( - IXAudio27* This, - UINT32 OperationSet); -void __RPC_STUB IXAudio27_CommitChanges_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio27_GetPerformanceData_Proxy( - IXAudio27* This, - XAUDIO2_PERFORMANCE_DATA *pPerfData); -void __RPC_STUB IXAudio27_GetPerformanceData_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio27_INTERFACE_DEFINED__ */ - -DEFINE_GUID(IID_IXAudio28, 0x60d8dac8, 0x5aa1, 0x4e8e, 0xb5, 0x97, 0x2f, 0x5e, 0x28, 0x83, 0xd4, 0x84); -/***************************************************************************** - * IXAudio2 interface - */ -#ifndef __IXAudio2_INTERFACE_DEFINED__ -#define __IXAudio2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IXAudio2, 0x2b02e3cf, 0x2e0b, 0x4ec3, 0xbe,0x45, 0x1b,0x2a,0x3f,0xe7,0x21,0x0d); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("2b02e3cf-2e0b-4ec3-be45-1b2a3fe7210d") -IXAudio2 : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE RegisterForCallbacks( - IXAudio2EngineCallback *pCallback) = 0; - - virtual void STDMETHODCALLTYPE UnregisterForCallbacks( - IXAudio2EngineCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSourceVoice( - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags = 0, - float MaxFrequencyRatio = XAUDIO2_DEFAULT_FREQ_RATIO, - IXAudio2VoiceCallback *pCallback = 0, - const XAUDIO2_VOICE_SENDS *pSendList = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSubmixVoice( - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags = 0, - UINT32 ProcessingStage = 0, - const XAUDIO2_VOICE_SENDS *pSendList = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateMasteringVoice( - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels = XAUDIO2_DEFAULT_CHANNELS, - UINT32 InputSampleRate = XAUDIO2_DEFAULT_SAMPLERATE, - UINT32 Flags = 0, - LPCWSTR DeviceId = 0, - const XAUDIO2_EFFECT_CHAIN *pEffectChain = 0, - AUDIO_STREAM_CATEGORY StreamCategory = AudioCategory_GameEffects) = 0; - - virtual HRESULT STDMETHODCALLTYPE StartEngine( - ) = 0; - - virtual void STDMETHODCALLTYPE StopEngine( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommitChanges( - UINT32 OperationSet) = 0; - - virtual void STDMETHODCALLTYPE GetPerformanceData( - XAUDIO2_PERFORMANCE_DATA *pPerfData) = 0; - - virtual void STDMETHODCALLTYPE SetDebugConfiguration( - const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration, - void *pReserved = 0) = 0; - -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IXAudio2, 0x2b02e3cf, 0x2e0b, 0x4ec3, 0xbe,0x45, 0x1b,0x2a,0x3f,0xe7,0x21,0x0d) -#endif -#else -typedef struct IXAudio2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IXAudio2 *This, - REFIID riid, - void **ppvObject); - - ULONG (STDMETHODCALLTYPE *AddRef)( - IXAudio2 *This); - - ULONG (STDMETHODCALLTYPE *Release)( - IXAudio2 *This); - - /*** IXAudio2 methods ***/ - HRESULT (STDMETHODCALLTYPE *RegisterForCallbacks)( - IXAudio2 *This, - IXAudio2EngineCallback *pCallback); - - void (STDMETHODCALLTYPE *UnregisterForCallbacks)( - IXAudio2 *This, - IXAudio2EngineCallback *pCallback); - - HRESULT (STDMETHODCALLTYPE *CreateSourceVoice)( - IXAudio2 *This, - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags, - float MaxFrequencyRatio, - IXAudio2VoiceCallback *pCallback, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *CreateSubmixVoice)( - IXAudio2 *This, - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 ProcessingStage, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); - - HRESULT (STDMETHODCALLTYPE *CreateMasteringVoice)( - IXAudio2 *This, - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - LPCWSTR DeviceId, - const XAUDIO2_EFFECT_CHAIN *pEffectChain, - AUDIO_STREAM_CATEGORY StreamCategory); - - HRESULT (STDMETHODCALLTYPE *StartEngine)( - IXAudio2 *This); - - void (STDMETHODCALLTYPE *StopEngine)( - IXAudio2 *This); - - HRESULT (STDMETHODCALLTYPE *CommitChanges)( - IXAudio2 *This, - UINT32 OperationSet); - - void (STDMETHODCALLTYPE *GetPerformanceData)( - IXAudio2 *This, - XAUDIO2_PERFORMANCE_DATA *pPerfData); - - void (STDMETHODCALLTYPE *SetDebugConfiguration)( - IXAudio2 *This, - const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration, - void *pReserved); - - END_INTERFACE -} IXAudio2Vtbl; - -interface IXAudio2 { - CONST_VTBL IXAudio2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IXAudio2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IXAudio2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IXAudio2_Release(This) (This)->lpVtbl->Release(This) -/*** IXAudio2 methods ***/ -#define IXAudio2_RegisterForCallbacks(This,pCallback) (This)->lpVtbl->RegisterForCallbacks(This,pCallback) -#define IXAudio2_UnregisterForCallbacks(This,pCallback) (This)->lpVtbl->UnregisterForCallbacks(This,pCallback) -#define IXAudio2_CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) (This)->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain) -#define IXAudio2_CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) (This)->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain) -#define IXAudio2_CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceId,pEffectChain,StreamCategory) (This)->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceId,pEffectChain,StreamCategory) -#define IXAudio2_StartEngine(This) (This)->lpVtbl->StartEngine(This) -#define IXAudio2_StopEngine(This) (This)->lpVtbl->StopEngine(This) -#define IXAudio2_CommitChanges(This,OperationSet) (This)->lpVtbl->CommitChanges(This,OperationSet) -#define IXAudio2_GetPerformanceData(This,pPerfData) (This)->lpVtbl->GetPerformanceData(This,pPerfData) -#define IXAudio2_SetDebugConfiguration(This,pDebugConfiguration,pReserved) (This)->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved) -#else -/*** IUnknown methods ***/ -static FORCEINLINE HRESULT IXAudio2_QueryInterface(IXAudio2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); -} -static FORCEINLINE ULONG IXAudio2_AddRef(IXAudio2* This) { - return This->lpVtbl->AddRef(This); -} -static FORCEINLINE ULONG IXAudio2_Release(IXAudio2* This) { - return This->lpVtbl->Release(This); -} -/*** IXAudio2 methods ***/ -static FORCEINLINE HRESULT IXAudio2_RegisterForCallbacks(IXAudio2* This,IXAudio2EngineCallback *pCallback) { - return This->lpVtbl->RegisterForCallbacks(This,pCallback); -} -static FORCEINLINE void IXAudio2_UnregisterForCallbacks(IXAudio2* This,IXAudio2EngineCallback *pCallback) { - This->lpVtbl->UnregisterForCallbacks(This,pCallback); -} -static FORCEINLINE HRESULT IXAudio2_CreateSourceVoice(IXAudio2* This,IXAudio2SourceVoice **ppSourceVoice,const WAVEFORMATEX *pSourceFormat,UINT32 Flags,float MaxFrequencyRatio,IXAudio2VoiceCallback *pCallback,const XAUDIO2_VOICE_SENDS *pSendList,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateSourceVoice(This,ppSourceVoice,pSourceFormat,Flags,MaxFrequencyRatio,pCallback,pSendList,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio2_CreateSubmixVoice(IXAudio2* This,IXAudio2SubmixVoice **ppSubmixVoice,UINT32 InputChannels,UINT32 InputSampleRate,UINT32 Flags,UINT32 ProcessingStage,const XAUDIO2_VOICE_SENDS *pSendList,const XAUDIO2_EFFECT_CHAIN *pEffectChain) { - return This->lpVtbl->CreateSubmixVoice(This,ppSubmixVoice,InputChannels,InputSampleRate,Flags,ProcessingStage,pSendList,pEffectChain); -} -static FORCEINLINE HRESULT IXAudio2_CreateMasteringVoice(IXAudio2* This,IXAudio2MasteringVoice **ppMasteringVoice,UINT32 InputChannels,UINT32 InputSampleRate,UINT32 Flags,LPCWSTR DeviceId,const XAUDIO2_EFFECT_CHAIN *pEffectChain,AUDIO_STREAM_CATEGORY StreamCategory) { - return This->lpVtbl->CreateMasteringVoice(This,ppMasteringVoice,InputChannels,InputSampleRate,Flags,DeviceId,pEffectChain,StreamCategory); -} -static FORCEINLINE HRESULT IXAudio2_StartEngine(IXAudio2* This) { - return This->lpVtbl->StartEngine(This); -} -static FORCEINLINE void IXAudio2_StopEngine(IXAudio2* This) { - This->lpVtbl->StopEngine(This); -} -static FORCEINLINE HRESULT IXAudio2_CommitChanges(IXAudio2* This,UINT32 OperationSet) { - return This->lpVtbl->CommitChanges(This,OperationSet); -} -static FORCEINLINE void IXAudio2_GetPerformanceData(IXAudio2* This,XAUDIO2_PERFORMANCE_DATA *pPerfData) { - This->lpVtbl->GetPerformanceData(This,pPerfData); -} -static FORCEINLINE void IXAudio2_SetDebugConfiguration(IXAudio2* This,const XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration,void *pReserved) { - This->lpVtbl->SetDebugConfiguration(This,pDebugConfiguration,pReserved); -} -#endif -#endif - -#endif - -HRESULT STDMETHODCALLTYPE IXAudio2_RegisterForCallbacks_Proxy( - IXAudio2* This, - IXAudio2EngineCallback *pCallback); -void __RPC_STUB IXAudio2_RegisterForCallbacks_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2_UnregisterForCallbacks_Proxy( - IXAudio2* This, - IXAudio2EngineCallback *pCallback); -void __RPC_STUB IXAudio2_UnregisterForCallbacks_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2_CreateSourceVoice_Proxy( - IXAudio2* This, - IXAudio2SourceVoice **ppSourceVoice, - const WAVEFORMATEX *pSourceFormat, - UINT32 Flags, - float MaxFrequencyRatio, - IXAudio2VoiceCallback *pCallback, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio2_CreateSourceVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2_CreateSubmixVoice_Proxy( - IXAudio2* This, - IXAudio2SubmixVoice **ppSubmixVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - UINT32 ProcessingStage, - const XAUDIO2_VOICE_SENDS *pSendList, - const XAUDIO2_EFFECT_CHAIN *pEffectChain); -void __RPC_STUB IXAudio2_CreateSubmixVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2_CreateMasteringVoice_Proxy( - IXAudio2* This, - IXAudio2MasteringVoice **ppMasteringVoice, - UINT32 InputChannels, - UINT32 InputSampleRate, - UINT32 Flags, - LPCWSTR DeviceId, - const XAUDIO2_EFFECT_CHAIN *pEffectChain, - AUDIO_STREAM_CATEGORY StreamCategory); -void __RPC_STUB IXAudio2_CreateMasteringVoice_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2_StartEngine_Proxy( - IXAudio2* This); -void __RPC_STUB IXAudio2_StartEngine_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2_StopEngine_Proxy( - IXAudio2* This); -void __RPC_STUB IXAudio2_StopEngine_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT STDMETHODCALLTYPE IXAudio2_CommitChanges_Proxy( - IXAudio2* This, - UINT32 OperationSet); -void __RPC_STUB IXAudio2_CommitChanges_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -void STDMETHODCALLTYPE IXAudio2_GetPerformanceData_Proxy( - IXAudio2* This, - XAUDIO2_PERFORMANCE_DATA *pPerfData); -void __RPC_STUB IXAudio2_GetPerformanceData_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IXAudio2_INTERFACE_DEFINED__ */ - -#define XAUDIO2_DEBUG_ENGINE (1) - -#define XAUDIO2_VOICE_NOPITCH (2) - -#define XAUDIO2_VOICE_NOSRC (4) - -#define XAUDIO2_VOICE_USEFILTER (8) - -#define XAUDIO2_VOICE_MUSIC (16) - -#define XAUDIO2_PLAY_TAILS (32) - -#define XAUDIO2_END_OF_STREAM (64) - -#define XAUDIO2_SEND_USEFILTER (128) - -#define XAUDIO2_VOICE_NOSAMPLESPLAYED (256) - -#define XAUDIO2_DEFAULT_FILTER_TYPE (LowPassFilter) - -#define XAUDIO2_DEFAULT_FILTER_FREQUENCY (XAUDIO2_MAX_FILTER_FREQUENCY) - -#define XAUDIO2_DEFAULT_FILTER_ONEOVERQ (1.00000000000000) - -#define XAUDIO2_QUANTUM_NUMERATOR (1) - -#define XAUDIO2_QUANTUM_DENOMINATOR (100) - -#define XAUDIO2_QUANTUM_MS ((1000.00000000000 * XAUDIO2_QUANTUM_NUMERATOR) / XAUDIO2_QUANTUM_DENOMINATOR) - -#define XAUDIO2_E_INVALID_CALL (0x88960001) - -#define XAUDIO2_E_XMA_DECODER_ERROR (0x88960002) - -#define XAUDIO2_E_XAPO_CREATION_FAILED (0x88960003) - -#define XAUDIO2_E_DEVICE_INVALIDATED (0x88960004) - -#define XAUDIO20_E_XMA_DECODER_ERROR (0x88960001) - -#define XAUDIO20_E_XAPO_CREATION_FAILED (0x88960002) - -#define XAUDIO20_E_DEVICE_INVALIDATED (0x88960003) - -#ifdef XAUDIO2_HELPER_FUNCTIONS -#define _USE_MATH_DEFINES -#include -inline static float XAudio2DecibelsToAmplitudeRatio(float decibels) { return powf(10.0f, decibels/20.0f); } -inline static float XAudio2AmplitudeRatioToDecibels(float volume) { if (volume == 0) { return -3.402823466e+38f; } return 20.0f * log10f(volume); } -inline static float XAudio2SemitonesToFrequencyRatio(float semitones) { return powf(2.0f, semitones/12.0f); } -inline static float XAudio2FrequencyRatioToSemitones(float freqratio) { return 39.86313713864835f * log10f(freqratio); } -inline static float XAudio2CutoffFrequencyToRadians(float cutofffreq, UINT32 samplerate) { if ((UINT32)(cutofffreq * 6.0f) >= samplerate) { return XAUDIO2_MAX_FILTER_FREQUENCY; } return 2.0f * sinf((float)M_PI * cutofffreq / samplerate); } -inline static float XAudio2RadiansToCutoffFrequency(float radians, float samplerate) { return samplerate * asinf(radians/2.0f) / (float)M_PI; } -#endif -HRESULT WINAPI XAudio2Create(IXAudio2** pxaudio2, UINT32 flags, XAUDIO2_PROCESSOR processor); -#include -/* Begin additional prototypes for all interfaces */ - - -/* End additional prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __xaudio2_h__ */ diff --git a/3rdparty/wine/Include/xaudio2.idl b/3rdparty/wine/Include/xaudio2.idl deleted file mode 100644 index 9d8ace2395b..00000000000 --- a/3rdparty/wine/Include/xaudio2.idl +++ /dev/null @@ -1,1098 +0,0 @@ -/* - * Copyright (c) 2015 Mark Harmstone - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -import "unknwn.idl"; -import "mmdeviceapi.idl"; - -import "audiosessiontypes.h"; - -cpp_quote("#include ") - -[ - uuid(fac23f48-31f5-45a8-b49b-5225d61401aa) -] -coclass XAudio20 { - interface IUnknown; -} - -[ - uuid(e21a7345-eb21-468e-be50-804db97cf708) -] -coclass XAudio21 { - interface IUnknown; -} - -[ - uuid(b802058a-464a-42db-bc10-b650d6f2586a) -] -coclass XAudio22 { - interface IUnknown; -} - -[ - uuid(4c5e637a-16c7-4de3-9c46-5ed22181962d) -] -coclass XAudio23 { - interface IUnknown; -} - -[ - uuid(03219e78-5bc3-44d1-b92e-f63d89cc6526) -] -coclass XAudio24 { - interface IUnknown; -} - -[ - uuid(4c9b6dde-6809-46e6-a278-9b6a97588670) -] -coclass XAudio25 { - interface IUnknown; -} - -[ - uuid(3eda9b49-2085-498b-9bb2-39a6778493de) -] -coclass XAudio26 { - interface IUnknown; -} - -[ - uuid(5a508685-a254-4fba-9b82-9a24b00306af) -] -coclass XAudio27 { - interface IUnknown; -} - -[ - uuid(db05ea35-0329-4d4b-a53a-6dead03d3852) -] -coclass XAudio2Debug { - interface IUnknown; -} - -cpp_quote("#if 0") -typedef struct WAVEFORMATEX -{ - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wBitsPerSample; - WORD cbSize; -} WAVEFORMATEX; - -typedef struct { - WAVEFORMATEX Format; - union { - WORD wValidBitsPerSample; - WORD wSamplesPerBlock; - WORD wReserved; - } Samples; - DWORD dwChannelMask; - GUID SubFormat; -} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE; -cpp_quote("#else") -cpp_quote("#include ") -cpp_quote("#endif") - -interface IXAudio2Voice; - -typedef enum XAUDIO2_WINDOWS_PROCESSOR_SPECIFIER -{ - Processor1 = 0x00000001, - Processor2 = 0x00000002, - Processor3 = 0x00000004, - Processor4 = 0x00000008, - Processor5 = 0x00000010, - Processor6 = 0x00000020, - Processor7 = 0x00000040, - Processor8 = 0x00000080, - Processor9 = 0x00000100, - Processor10 = 0x00000200, - Processor11 = 0x00000400, - Processor12 = 0x00000800, - Processor13 = 0x00001000, - Processor14 = 0x00002000, - Processor15 = 0x00004000, - Processor16 = 0x00008000, - Processor17 = 0x00010000, - Processor18 = 0x00020000, - Processor19 = 0x00040000, - Processor20 = 0x00080000, - Processor21 = 0x00100000, - Processor22 = 0x00200000, - Processor23 = 0x00400000, - Processor24 = 0x00800000, - Processor25 = 0x01000000, - Processor26 = 0x02000000, - Processor27 = 0x04000000, - Processor28 = 0x08000000, - Processor29 = 0x10000000, - Processor30 = 0x20000000, - Processor31 = 0x40000000, - Processor32 = 0x80000000, - XAUDIO2_ANY_PROCESSOR = 0xffffffff, - XAUDIO2_DEFAULT_PROCESSOR = XAUDIO2_ANY_PROCESSOR -} XAUDIO2_WINDOWS_PROCESSOR_SPECIFIER, XAUDIO2_PROCESSOR; - -typedef struct XAUDIO2_PERFORMANCE_DATA -{ - UINT64 AudioCyclesSinceLastQuery; - UINT64 TotalCyclesSinceLastQuery; - UINT32 MinimumCyclesPerQuantum; - UINT32 MaximumCyclesPerQuantum; - UINT32 MemoryUsageInBytes; - UINT32 CurrentLatencyInSamples; - UINT32 GlitchesSinceEngineStarted; - UINT32 ActiveSourceVoiceCount; - UINT32 TotalSourceVoiceCount; - UINT32 ActiveSubmixVoiceCount; - UINT32 ActiveResamplerCount; - UINT32 ActiveMatrixMixCount; - UINT32 ActiveXmaSourceVoices; - UINT32 ActiveXmaStreams; -} XAUDIO2_PERFORMANCE_DATA; - -typedef struct XAUDIO22_PERFORMANCE_DATA -{ - UINT64 AudioCyclesSinceLastQuery; - UINT64 TotalCyclesSinceLastQuery; - UINT32 MinimumCyclesPerQuantum; - UINT32 MaximumCyclesPerQuantum; - UINT32 MemoryUsageInBytes; - UINT32 CurrentLatencyInSamples; - UINT32 GlitchesSinceEngineStarted; - UINT32 ActiveSourceVoiceCount; - UINT32 TotalSourceVoiceCount; - UINT32 ActiveSubmixVoiceCount; - UINT32 TotalSubmixVoiceCount; - UINT32 ActiveXmaSourceVoices; - UINT32 ActiveXmaStreams; -} XAUDIO22_PERFORMANCE_DATA; - -typedef struct XAUDIO20_PERFORMANCE_DATA -{ - UINT64 AudioCyclesSinceLastQuery; - UINT64 TotalCyclesSinceLastQuery; - UINT32 MinimumCyclesPerQuantum; - UINT32 MaximumCyclesPerQuantum; - UINT32 MemoryUsageInBytes; - UINT32 CurrentLatencyInSamples; - UINT32 GlitchesSinceLastQuery; - UINT32 ActiveSourceVoiceCount; - UINT32 TotalSourceVoiceCount; - UINT32 ActiveSubmixVoiceCount; - UINT32 TotalSubmixVoiceCount; - UINT32 ActiveXmaSourceVoices; - UINT32 ActiveXmaStreams; -} XAUDIO20_PERFORMANCE_DATA; - -typedef enum XAUDIO2_DEVICE_ROLE -{ - NotDefaultDevice = 0x0, - DefaultConsoleDevice = 0x1, - DefaultMultimediaDevice = 0x2, - DefaultCommunicationsDevice = 0x4, - DefaultGameDevice = 0x8, - GlobalDefaultDevice = 0xf, - InvalidDeviceRole = ~GlobalDefaultDevice -} XAUDIO2_DEVICE_ROLE; - -typedef struct XAUDIO2_DEVICE_DETAILS -{ - WCHAR DeviceID[256]; - WCHAR DisplayName[256]; - XAUDIO2_DEVICE_ROLE Role; - WAVEFORMATEXTENSIBLE OutputFormat; -} XAUDIO2_DEVICE_DETAILS; - -typedef struct XAUDIO2_VOICE_DETAILS -{ - UINT32 CreationFlags; - UINT32 InputChannels; - UINT32 InputSampleRate; -} XAUDIO2_VOICE_DETAILS; - -typedef struct XAUDIO2_SEND_DESCRIPTOR -{ - UINT32 Flags; - IXAudio2Voice* pOutputVoice; -} XAUDIO2_SEND_DESCRIPTOR; - -/* XAudio2 2.3's XAUDIO2_VOICE_SENDS struct */ -typedef struct XAUDIO23_VOICE_SENDS -{ - UINT32 OutputCount; - IXAudio2Voice **pOutputVoices; -} XAUDIO23_VOICE_SENDS; - -typedef struct XAUDIO2_VOICE_SENDS -{ - UINT32 SendCount; - XAUDIO2_SEND_DESCRIPTOR* pSends; -} XAUDIO2_VOICE_SENDS; - -typedef struct XAUDIO2_EFFECT_DESCRIPTOR -{ - IUnknown* pEffect; - BOOL InitialState; - UINT32 OutputChannels; -} XAUDIO2_EFFECT_DESCRIPTOR; - -typedef struct XAUDIO2_EFFECT_CHAIN -{ - UINT32 EffectCount; - XAUDIO2_EFFECT_DESCRIPTOR* pEffectDescriptors; -} XAUDIO2_EFFECT_CHAIN; - -const UINT32 XAUDIO2_MAX_BUFFER_BYTES = 0x80000000; -const UINT32 XAUDIO2_MAX_QUEUED_BUFFERS = 64; -const UINT32 XAUDIO2_MAX_BUFFERS_SYSTEM = 2; -const UINT32 XAUDIO2_MAX_AUDIO_CHANNELS = 64; -const UINT32 XAUDIO2_MIN_SAMPLE_RATE = 1000; -const UINT32 XAUDIO2_MAX_SAMPLE_RATE = 200000; -const float XAUDIO2_MAX_VOLUME_LEVEL = 16777216.0; -const float XAUDIO2_MIN_FREQ_RATIO = (1/1024.0); -const float XAUDIO2_MAX_FREQ_RATIO = 1024.0; -const float XAUDIO2_DEFAULT_FREQ_RATIO = 2.0; -const float XAUDIO2_MAX_FILTER_ONEOVERQ = 1.5; -const float XAUDIO2_MAX_FILTER_FREQUENCY = 1.0; -const UINT32 XAUDIO2_MAX_LOOP_COUNT = 254; -const UINT32 XAUDIO20_MAX_LOOP_COUNT = 0x100000; /* xaudio 2.0 */ - -const UINT32 XAUDIO2_COMMIT_NOW = 0; -const UINT32 XAUDIO2_COMMIT_ALL = 0; -const UINT32 XAUDIO2_INVALID_OPSET = 0xffffffff; -const UINT32 XAUDIO2_NO_LOOP_REGION = 0; -const UINT32 XAUDIO2_LOOP_INFINITE = 255; -const UINT32 XAUDIO20_LOOP_INFINITE = ((UINT)-1); /* xaudio 2.0 */ -const UINT32 XAUDIO2_DEFAULT_CHANNELS = 0; -const UINT32 XAUDIO2_DEFAULT_SAMPLERATE = 0; - -[ - object, - local -] -interface IXAudio2EngineCallback -{ - void OnProcessingPassStart(); - - void OnProcessingPassEnd(); - - void OnCriticalError([in] HRESULT Error); -} - -typedef enum XAUDIO2_FILTER_TYPE -{ - LowPassFilter, - BandPassFilter, - HighPassFilter, - NotchFilter -} XAUDIO2_FILTER_TYPE; - -typedef struct XAUDIO2_FILTER_PARAMETERS -{ - XAUDIO2_FILTER_TYPE Type; - float Frequency; - float OneOverQ; -} XAUDIO2_FILTER_PARAMETERS; - -/* XAudio 2.0's IXAudio2Voice */ -/* XAudio2 2.0's IXAudio2Voice interface. Actually called - * IXAudio2Voice in the Mar 2008 DX SDK */ -[ - object, - local -] -interface IXAudio20Voice -{ - void GetVoiceDetails([out] XAUDIO2_VOICE_DETAILS* pVoiceDetails); - - HRESULT SetOutputVoices([in] const XAUDIO23_VOICE_SENDS* pSendList); - - HRESULT SetEffectChain([in] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT EnableEffect( - [in] UINT32 EffectIndex, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT DisableEffect( - [in] UINT32 EffectIndex, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetEffectState( - [in] UINT32 EffectIndex, - [out] BOOL* pEnabled); - - HRESULT SetEffectParameters( - [in] UINT32 EffectIndex, - [in] const void* pParameters, - [in] UINT32 ParametersByteSize, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT GetEffectParameters( - [in] UINT32 EffectIndex, - [out] void* pParameters, - [in] UINT32 ParametersByteSize); - - HRESULT SetFilterParameters( - [in] const XAUDIO2_FILTER_PARAMETERS* pParameters, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetFilterParameters([out] XAUDIO2_FILTER_PARAMETERS* pParameters); - - HRESULT SetVolume( - [in] float Volume, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetVolume([out] float* pVolume); - - HRESULT SetChannelVolumes( - [in] UINT32 Channels, - [in, size_is(Channels)] const float* pVolumes, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetChannelVolumes( - [in] UINT32 Channels, - [out, size_is(Channels)] float* pVolumes); - - HRESULT SetOutputMatrix( - [in] IXAudio2Voice* pDestinationVoice, - [in] UINT32 SourceChannels, - [in] UINT32 DestinationChannels, - [in, size_is(SourceChannels * DestinationChannels)] const float* pLevelMatrix, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT GetOutputMatrix( - [in] IXAudio2Voice* pDestinationVoice, - [in] UINT32 SourceChannels, - [in] UINT32 DestinationChannels, - [out, size_is(SourceChannels * DestinationChannels)] float* pLevelMatrix); - - void DestroyVoice(); -} - -/* XAudio 2.3's IXAudio2Voice */ -/* XAudio2 2.3's IXAudio2Voice interface. Actually called - * IXAudio2Voice in the Nov 2008 DX SDK */ -[ - object, - local -] -interface IXAudio23Voice -{ - void GetVoiceDetails([out] XAUDIO2_VOICE_DETAILS* pVoiceDetails); - - HRESULT SetOutputVoices([in] const XAUDIO23_VOICE_SENDS* pSendList); - - HRESULT SetEffectChain([in] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT EnableEffect( - [in] UINT32 EffectIndex, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT DisableEffect( - [in] UINT32 EffectIndex, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetEffectState( - [in] UINT32 EffectIndex, - [out] BOOL* pEnabled); - - HRESULT SetEffectParameters( - [in] UINT32 EffectIndex, - [in] const void* pParameters, - [in] UINT32 ParametersByteSize, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT GetEffectParameters( - [in] UINT32 EffectIndex, - [out] void* pParameters, - [in] UINT32 ParametersByteSize); - - HRESULT SetFilterParameters( - [in] const XAUDIO2_FILTER_PARAMETERS* pParameters, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetFilterParameters([out] XAUDIO2_FILTER_PARAMETERS* pParameters); - - HRESULT SetVolume( - [in] float Volume, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetVolume([out] float* pVolume); - - HRESULT SetChannelVolumes( - [in] UINT32 Channels, - [in, size_is(Channels)] const float* pVolumes, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetChannelVolumes( - [in] UINT32 Channels, - [out, size_is(Channels)] float* pVolumes); - - HRESULT SetOutputMatrix( - [in] IXAudio2Voice* pDestinationVoice, - [in] UINT32 SourceChannels, - [in] UINT32 DestinationChannels, - [in, size_is(SourceChannels * DestinationChannels)] const float* pLevelMatrix, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetOutputMatrix( - [in] IXAudio2Voice* pDestinationVoice, - [in] UINT32 SourceChannels, - [in] UINT32 DestinationChannels, - [out, size_is(SourceChannels * DestinationChannels)] float* pLevelMatrix); - - void DestroyVoice(); -} - -[ - object, - local -] -interface IXAudio2Voice -{ - void GetVoiceDetails([out] XAUDIO2_VOICE_DETAILS* pVoiceDetails); - - HRESULT SetOutputVoices([in] const XAUDIO2_VOICE_SENDS* pSendList); - - HRESULT SetEffectChain([in] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT EnableEffect( - [in] UINT32 EffectIndex, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT DisableEffect( - [in] UINT32 EffectIndex, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetEffectState( - [in] UINT32 EffectIndex, - [out] BOOL* pEnabled); - - HRESULT SetEffectParameters( - [in] UINT32 EffectIndex, - [in] const void* pParameters, - [in] UINT32 ParametersByteSize, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT GetEffectParameters( - [in] UINT32 EffectIndex, - [out] void* pParameters, - [in] UINT32 ParametersByteSize); - - HRESULT SetFilterParameters( - [in] const XAUDIO2_FILTER_PARAMETERS* pParameters, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetFilterParameters([out] XAUDIO2_FILTER_PARAMETERS* pParameters); - - HRESULT SetOutputFilterParameters( - [in] IXAudio2Voice* pDestinationVoice, - [in] const XAUDIO2_FILTER_PARAMETERS* pParameters, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetOutputFilterParameters( - [in] IXAudio2Voice* pDestinationVoice, - [out] XAUDIO2_FILTER_PARAMETERS* pParameters); - - HRESULT SetVolume( - [in] float Volume, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetVolume([out] float* pVolume); - - HRESULT SetChannelVolumes( - [in] UINT32 Channels, - [in, size_is(Channels)] const float* pVolumes, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetChannelVolumes( - [in] UINT32 Channels, - [out, size_is(Channels)] float* pVolumes); - - HRESULT SetOutputMatrix( - [in] IXAudio2Voice* pDestinationVoice, - [in] UINT32 SourceChannels, - [in] UINT32 DestinationChannels, - [in, size_is(SourceChannels * DestinationChannels)] const float* pLevelMatrix, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetOutputMatrix( - [in] IXAudio2Voice* pDestinationVoice, - [in] UINT32 SourceChannels, - [in] UINT32 DestinationChannels, - [out, size_is(SourceChannels * DestinationChannels)] float* pLevelMatrix); - - void DestroyVoice(); -} - -typedef struct XAUDIO2_BUFFER -{ - UINT32 Flags; - UINT32 AudioBytes; - const BYTE* pAudioData; - UINT32 PlayBegin; - UINT32 PlayLength; - UINT32 LoopBegin; - UINT32 LoopLength; - UINT32 LoopCount; - void* pContext; -} XAUDIO2_BUFFER; - -typedef struct XAUDIO2_BUFFER_WMA -{ - const UINT32* pDecodedPacketCumulativeBytes; - UINT32 PacketCount; -} XAUDIO2_BUFFER_WMA; - -typedef struct XAUDIO2_VOICE_STATE -{ - void* pCurrentBufferContext; - UINT32 BuffersQueued; - UINT64 SamplesPlayed; -} XAUDIO2_VOICE_STATE; - -[ - local -] -/* XAudio2 2.0's IXAudio2SourceVoice interface. Actually called - * IXAudio2SourceVoice in the Mar 2008 DX SDK */ -interface IXAudio20SourceVoice : IXAudio20Voice -{ - HRESULT Start( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT Stop( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT SubmitSourceBuffer( - [in] const XAUDIO2_BUFFER* pBuffer, - [in, defaultvalue(NULL)] const XAUDIO2_BUFFER_WMA* pBufferWMA); - - HRESULT FlushSourceBuffers(); - - HRESULT Discontinuity(); - - HRESULT ExitLoop([in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetState([out] XAUDIO2_VOICE_STATE* pVoiceState); - - HRESULT SetFrequencyRatio( - [in] float Ratio, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetFrequencyRatio([out] float* pRatio); -} - -[ - local -] -/* XAudio2 2.3's IXAudio2SourceVoice interface. Actually called - * IXAudio2SourceVoice in the Nov 2008 DX SDK */ -interface IXAudio23SourceVoice : IXAudio23Voice -{ - HRESULT Start( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT Stop( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT SubmitSourceBuffer( - [in] const XAUDIO2_BUFFER* pBuffer, - [in, defaultvalue(NULL)] const XAUDIO2_BUFFER_WMA* pBufferWMA); - - HRESULT FlushSourceBuffers(); - - HRESULT Discontinuity(); - - HRESULT ExitLoop([in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetState([out] XAUDIO2_VOICE_STATE* pVoiceState); - - HRESULT SetFrequencyRatio( - [in] float Ratio, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetFrequencyRatio([out] float* pRatio); -} - -[ - local -] -/* XAudio2 2.7's IXAudio2SourceVoice interface. Actually called - * IXAudio2SourceVoice in the Jun 2010 DX SDK */ -interface IXAudio27SourceVoice : IXAudio2Voice -{ - HRESULT Start( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT Stop( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT SubmitSourceBuffer( - [in] const XAUDIO2_BUFFER* pBuffer, - [in, defaultvalue(NULL)] const XAUDIO2_BUFFER_WMA* pBufferWMA); - - HRESULT FlushSourceBuffers(); - - HRESULT Discontinuity(); - - HRESULT ExitLoop([in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetState([out] XAUDIO2_VOICE_STATE* pVoiceState); - - HRESULT SetFrequencyRatio( - [in] float Ratio, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetFrequencyRatio([out] float* pRatio); - - HRESULT SetSourceSampleRate([in] UINT32 NewSourceSampleRate); -} - -[ - local -] -/* XAudio2 2.8's IXAudio2SourceVoice interface. */ -interface IXAudio2SourceVoice : IXAudio2Voice -{ - HRESULT Start( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT Stop( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - HRESULT SubmitSourceBuffer( - [in] const XAUDIO2_BUFFER* pBuffer, - [in, defaultvalue(NULL)] const XAUDIO2_BUFFER_WMA* pBufferWMA); - - HRESULT FlushSourceBuffers(); - - HRESULT Discontinuity(); - - HRESULT ExitLoop([in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetState([out] XAUDIO2_VOICE_STATE* pVoiceState, [in, defaultvalue(0)] UINT32 Flags); - - HRESULT SetFrequencyRatio( - [in] float Ratio, - [in, defaultvalue(XAUDIO2_COMMIT_NOW)] UINT32 OperationSet); - - void GetFrequencyRatio([out] float* pRatio); - - HRESULT SetSourceSampleRate([in] UINT32 NewSourceSampleRate); -} - -[ - local -] -/* XAudio2 2.0's IXAudio2SubmixVoice interface. Actually called - * IXAudio2SubmixVoice in the Mar 2008 DX SDK */ -interface IXAudio20SubmixVoice : IXAudio20Voice -{ -} - -[ - local -] -/* XAudio2 2.3's IXAudio2SubmixVoice interface. Actually called - * IXAudio2SubmixVoice in the Nov 2008 DX SDK */ -interface IXAudio23SubmixVoice : IXAudio23Voice -{ -} - -[ - local -] -interface IXAudio2SubmixVoice : IXAudio2Voice -{ -} - -[ - local -] -/* XAudio2 2.0's IXAudio2MasteringVoice interface. Actually called - * IXAudio2MasteringVoice in the Mar 2008 DX SDK */ -interface IXAudio20MasteringVoice : IXAudio20Voice -{ -} - -[ - local -] -/* XAudio2 2.3's IXAudio2MasteringVoice interface. Actually called - * IXAudio2MasteringVoice in the Nov 2008 DX SDK */ -interface IXAudio23MasteringVoice : IXAudio23Voice -{ -} - -[ - local -] -interface IXAudio2MasteringVoice : IXAudio2Voice -{ - /* not present in XAudio2 2.7 */ - void GetChannelMask([out] DWORD *pChannelMask); -} - -[ - object, - local -] -interface IXAudio20VoiceCallback -{ - void OnVoiceProcessingPassStart(); - - void OnVoiceProcessingPassEnd(); - - void OnStreamEnd(); - - void OnBufferStart([in] void* pBufferContext); - - void OnBufferEnd([in] void* pBufferContext); - - void OnLoopEnd([in] void* pBufferContext); - - void OnVoiceError( - [in] void* pBuffercontext, - [in] HRESULT Error); -} - -[ - object, - local -] -interface IXAudio2VoiceCallback -{ - void OnVoiceProcessingPassStart([in] UINT32 BytesRequired); - - void OnVoiceProcessingPassEnd(); - - void OnStreamEnd(); - - void OnBufferStart([in] void* pBufferContext); - - void OnBufferEnd([in] void* pBufferContext); - - void OnLoopEnd([in] void* pBufferContext); - - void OnVoiceError( - [in] void* pBuffercontext, - [in] HRESULT Error); -} - -typedef struct XAUDIO2_DEBUG_CONFIGURATION -{ - UINT32 TraceMask; - UINT32 BreakMask; - BOOL LogThreadID; - BOOL LogFileline; - BOOL LogFunctionName; - BOOL LogTiming; -} XAUDIO2_DEBUG_CONFIGURATION; - -[ - object, - uuid(8bcf1f58-9fe7-4583-8ac6-e2adc465c8bb), /* all versions before 28 share IID_IXAudio */ -] -/* XAudio2 2.0's IXAudio2 interface. Actually called IXAudio2 in the Mar 2008 - * DX SDK */ -interface IXAudio20 : IUnknown -{ - HRESULT GetDeviceCount([out] UINT32* pCount); - - HRESULT GetDeviceDetails( - [in] UINT32 Index, - [out] XAUDIO2_DEVICE_DETAILS* pDeviceDetails); - - HRESULT Initialize( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_DEFAULT_PROCESSOR)] XAUDIO2_PROCESSOR XAudio2Processor); - - HRESULT RegisterForCallbacks([in] IXAudio2EngineCallback* pCallback); - - void UnregisterForCallbacks([in] IXAudio2EngineCallback* pCallback); - - HRESULT CreateSourceVoice( - [out] IXAudio2SourceVoice** ppSourceVoice, - [in] const WAVEFORMATEX* pSourceFormat, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_DEFAULT_FREQ_RATIO)] float MaxFrequencyRatio, - [in, defaultvalue(NULL)] IXAudio2VoiceCallback* pCallback, - [in, defaultvalue(NULL)] const XAUDIO2_VOICE_SENDS* pSendList, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT CreateSubmixVoice( - [out] IXAudio2SubmixVoice** ppSubmixVoice, - [in] UINT32 InputChannels, - [in] UINT32 InputSampleRate, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(0)] UINT32 ProcessingStage, - [in, defaultvalue(NULL)] const XAUDIO2_VOICE_SENDS* pSendList, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT CreateMasteringVoice( - [out] IXAudio2MasteringVoice** ppMasteringVoice, - [in, defaultvalue(XAUDIO2_DEFAULT_CHANNELS)] UINT32 InputChannels, - [in, defaultvalue(XAUDIO2_DEFAULT_SAMPLERATE)] UINT32 InputSampleRate, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(0)] UINT32 DeviceIndex, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT StartEngine(); - - void StopEngine(); - - HRESULT CommitChanges([in] UINT32 OperationSet); - - void GetPerformanceData([out] XAUDIO20_PERFORMANCE_DATA* pPerfData); - - [local] void SetDebugConfiguration( - [in] const XAUDIO2_DEBUG_CONFIGURATION* pDebugConfiguration, - [in, defaultvalue(NULL)] void* pReserved); -} - -[ - object, - uuid(8bcf1f58-9fe7-4583-8ac6-e2adc465c8bb), /* all versions before 28 share IID_IXAudio */ -] -/* XAudio2 2.2's IXAudio2 interface. Actually called IXAudio2 in the Jun 2010 - * DX SDK */ -interface IXAudio22 : IUnknown -{ - HRESULT GetDeviceCount([out] UINT32* pCount); - - HRESULT GetDeviceDetails( - [in] UINT32 Index, - [out] XAUDIO2_DEVICE_DETAILS* pDeviceDetails); - - HRESULT Initialize( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_DEFAULT_PROCESSOR)] XAUDIO2_PROCESSOR XAudio2Processor); - - HRESULT RegisterForCallbacks([in] IXAudio2EngineCallback* pCallback); - - void UnregisterForCallbacks([in] IXAudio2EngineCallback* pCallback); - - HRESULT CreateSourceVoice( - [out] IXAudio2SourceVoice** ppSourceVoice, - [in] const WAVEFORMATEX* pSourceFormat, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_DEFAULT_FREQ_RATIO)] float MaxFrequencyRatio, - [in, defaultvalue(NULL)] IXAudio2VoiceCallback* pCallback, - [in, defaultvalue(NULL)] const XAUDIO2_VOICE_SENDS* pSendList, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT CreateSubmixVoice( - [out] IXAudio2SubmixVoice** ppSubmixVoice, - [in] UINT32 InputChannels, - [in] UINT32 InputSampleRate, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(0)] UINT32 ProcessingStage, - [in, defaultvalue(NULL)] const XAUDIO2_VOICE_SENDS* pSendList, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT CreateMasteringVoice( - [out] IXAudio2MasteringVoice** ppMasteringVoice, - [in, defaultvalue(XAUDIO2_DEFAULT_CHANNELS)] UINT32 InputChannels, - [in, defaultvalue(XAUDIO2_DEFAULT_SAMPLERATE)] UINT32 InputSampleRate, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(0)] UINT32 DeviceIndex, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT StartEngine(); - - void StopEngine(); - - HRESULT CommitChanges([in] UINT32 OperationSet); - - void GetPerformanceData([out] XAUDIO22_PERFORMANCE_DATA* pPerfData); - - [local] void SetDebugConfiguration( - [in] const XAUDIO2_DEBUG_CONFIGURATION* pDebugConfiguration, - [in, defaultvalue(NULL)] void* pReserved); -} - -[ - object, - uuid(8bcf1f58-9fe7-4583-8ac6-e2adc465c8bb), -] -/* XAudio2 2.7's IXAudio2 interface. Actually called IXAudio2 in the Jun 2010 - * DX SDK */ -interface IXAudio27 : IUnknown -{ - HRESULT GetDeviceCount([out] UINT32* pCount); - - HRESULT GetDeviceDetails( - [in] UINT32 Index, - [out] XAUDIO2_DEVICE_DETAILS* pDeviceDetails); - - HRESULT Initialize( - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_DEFAULT_PROCESSOR)] XAUDIO2_PROCESSOR XAudio2Processor); - - HRESULT RegisterForCallbacks([in] IXAudio2EngineCallback* pCallback); - - void UnregisterForCallbacks([in] IXAudio2EngineCallback* pCallback); - - HRESULT CreateSourceVoice( - [out] IXAudio2SourceVoice** ppSourceVoice, - [in] const WAVEFORMATEX* pSourceFormat, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_DEFAULT_FREQ_RATIO)] float MaxFrequencyRatio, - [in, defaultvalue(NULL)] IXAudio2VoiceCallback* pCallback, - [in, defaultvalue(NULL)] const XAUDIO2_VOICE_SENDS* pSendList, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT CreateSubmixVoice( - [out] IXAudio2SubmixVoice** ppSubmixVoice, - [in] UINT32 InputChannels, - [in] UINT32 InputSampleRate, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(0)] UINT32 ProcessingStage, - [in, defaultvalue(NULL)] const XAUDIO2_VOICE_SENDS* pSendList, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT CreateMasteringVoice( - [out] IXAudio2MasteringVoice** ppMasteringVoice, - [in, defaultvalue(XAUDIO2_DEFAULT_CHANNELS)] UINT32 InputChannels, - [in, defaultvalue(XAUDIO2_DEFAULT_SAMPLERATE)] UINT32 InputSampleRate, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(0)] UINT32 DeviceIndex, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT StartEngine(); - - void StopEngine(); - - HRESULT CommitChanges([in] UINT32 OperationSet); - - void GetPerformanceData([out] XAUDIO2_PERFORMANCE_DATA* pPerfData); - - [local] void SetDebugConfiguration( - [in] const XAUDIO2_DEBUG_CONFIGURATION* pDebugConfiguration, - [in, defaultvalue(NULL)] void* pReserved); -} - -/* XAudio2 2.8's IXAudio2 is identical to 2.9's */ -cpp_quote("DEFINE_GUID(IID_IXAudio28, 0x60d8dac8, 0x5aa1, 0x4e8e, 0xb5, 0x97, 0x2f, 0x5e, 0x28, 0x83, 0xd4, 0x84);") - -[ - object, - uuid(2b02e3cf-2e0b-4ec3-be45-1b2a3fe7210d) -] -/* XAudio2 2.9's IXAudio2 interface. */ -interface IXAudio2 : IUnknown -{ - HRESULT RegisterForCallbacks([in] IXAudio2EngineCallback* pCallback); - - void UnregisterForCallbacks([in] IXAudio2EngineCallback* pCallback); - - HRESULT CreateSourceVoice( - [out] IXAudio2SourceVoice** ppSourceVoice, - [in] const WAVEFORMATEX* pSourceFormat, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(XAUDIO2_DEFAULT_FREQ_RATIO)] float MaxFrequencyRatio, - [in, defaultvalue(NULL)] IXAudio2VoiceCallback* pCallback, - [in, defaultvalue(NULL)] const XAUDIO2_VOICE_SENDS* pSendList, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT CreateSubmixVoice( - [out] IXAudio2SubmixVoice** ppSubmixVoice, - [in] UINT32 InputChannels, - [in] UINT32 InputSampleRate, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(0)] UINT32 ProcessingStage, - [in, defaultvalue(NULL)] const XAUDIO2_VOICE_SENDS* pSendList, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain); - - HRESULT CreateMasteringVoice( - [out] IXAudio2MasteringVoice** ppMasteringVoice, - [in, defaultvalue(XAUDIO2_DEFAULT_CHANNELS)] UINT32 InputChannels, - [in, defaultvalue(XAUDIO2_DEFAULT_SAMPLERATE)] UINT32 InputSampleRate, - [in, defaultvalue(0)] UINT32 Flags, - [in, defaultvalue(NULL)] LPCWSTR DeviceId, - [in, defaultvalue(NULL)] const XAUDIO2_EFFECT_CHAIN* pEffectChain, - [in, defaultvalue(AudioCategory_GameEffects)] AUDIO_STREAM_CATEGORY StreamCategory); - - HRESULT StartEngine(); - - void StopEngine(); - - HRESULT CommitChanges([in] UINT32 OperationSet); - - void GetPerformanceData([out] XAUDIO2_PERFORMANCE_DATA* pPerfData); - - [local] void SetDebugConfiguration( - [in] const XAUDIO2_DEBUG_CONFIGURATION* pDebugConfiguration, - [in, defaultvalue(NULL)] void* pReserved); -} - -const UINT32 XAUDIO2_DEBUG_ENGINE = 1; -const UINT32 XAUDIO2_VOICE_NOPITCH = 2; -const UINT32 XAUDIO2_VOICE_NOSRC = 4; -const UINT32 XAUDIO2_VOICE_USEFILTER = 8; -const UINT32 XAUDIO2_VOICE_MUSIC = 16; -const UINT32 XAUDIO2_PLAY_TAILS = 32; -const UINT32 XAUDIO2_END_OF_STREAM = 64; -const UINT32 XAUDIO2_SEND_USEFILTER = 128; -const UINT32 XAUDIO2_VOICE_NOSAMPLESPLAYED = 256; - -const XAUDIO2_FILTER_TYPE XAUDIO2_DEFAULT_FILTER_TYPE = LowPassFilter; -const float XAUDIO2_DEFAULT_FILTER_FREQUENCY = XAUDIO2_MAX_FILTER_FREQUENCY; -const float XAUDIO2_DEFAULT_FILTER_ONEOVERQ = 1.0; -const UINT32 XAUDIO2_QUANTUM_NUMERATOR = 1; -const UINT32 XAUDIO2_QUANTUM_DENOMINATOR = 100; -const float XAUDIO2_QUANTUM_MS = (1000.0 * XAUDIO2_QUANTUM_NUMERATOR / XAUDIO2_QUANTUM_DENOMINATOR); - -const HRESULT XAUDIO2_E_INVALID_CALL = 0x88960001; -const HRESULT XAUDIO2_E_XMA_DECODER_ERROR = 0x88960002; -const HRESULT XAUDIO2_E_XAPO_CREATION_FAILED = 0x88960003; -const HRESULT XAUDIO2_E_DEVICE_INVALIDATED = 0x88960004; - -/* xaudio 2.0 error codes */ -const HRESULT XAUDIO20_E_XMA_DECODER_ERROR = 0x88960001; -const HRESULT XAUDIO20_E_XAPO_CREATION_FAILED = 0x88960002; -const HRESULT XAUDIO20_E_DEVICE_INVALIDATED = 0x88960003; - -cpp_quote("#ifdef XAUDIO2_HELPER_FUNCTIONS") -cpp_quote("#define _USE_MATH_DEFINES") -cpp_quote("#include ") -cpp_quote("inline static float XAudio2DecibelsToAmplitudeRatio(float decibels) { return powf(10.0f, decibels/20.0f); }") -cpp_quote("inline static float XAudio2AmplitudeRatioToDecibels(float volume) { if (volume == 0) { return -3.402823466e+38f; } return 20.0f * log10f(volume); }") -cpp_quote("inline static float XAudio2SemitonesToFrequencyRatio(float semitones) { return powf(2.0f, semitones/12.0f); }") -cpp_quote("inline static float XAudio2FrequencyRatioToSemitones(float freqratio) { return 39.86313713864835f * log10f(freqratio); }") -cpp_quote("inline static float XAudio2CutoffFrequencyToRadians(float cutofffreq, UINT32 samplerate) { if ((UINT32)(cutofffreq * 6.0f) >= samplerate) { return XAUDIO2_MAX_FILTER_FREQUENCY; } return 2.0f * sinf((float)M_PI * cutofffreq / samplerate); }") -cpp_quote("inline static float XAudio2RadiansToCutoffFrequency(float radians, float samplerate) { return samplerate * asinf(radians/2.0f) / (float)M_PI; }") -cpp_quote("#endif") - -cpp_quote("HRESULT WINAPI XAudio2Create(IXAudio2** pxaudio2, UINT32 flags, XAUDIO2_PROCESSOR processor);") - -cpp_quote("#include ") diff --git a/makefile b/makefile index 8721f0566f3..dc19443e627 100644 --- a/makefile +++ b/makefile @@ -25,6 +25,7 @@ # USE_DISPATCH_GL = 0 # MODERN_WIN_API = 0 +# USE_XAUDIO2 = 0 # DIRECTINPUT = 7 # USE_SDL = 1 # SDL_INI_PATH = .;$HOME/.mame/;ini; @@ -576,6 +577,10 @@ ifdef MODERN_WIN_API PARAMS += --MODERN_WIN_API='$(MODERN_WIN_API)' endif +ifdef USE_XAUDIO2 +PARAMS += --USE_XAUDIO2='$(USE_XAUDIO2)' +endif + ifdef DIRECTINPUT PARAMS += --DIRECTINPUT='$(DIRECTINPUT)' endif diff --git a/scripts/src/osd/modules.lua b/scripts/src/osd/modules.lua index f3426f4635e..54443d4f618 100644 --- a/scripts/src/osd/modules.lua +++ b/scripts/src/osd/modules.lua @@ -89,7 +89,6 @@ function osdmodulesbuild() if _OPTIONS["targetos"]=="windows" then includedirs { MAME_DIR .. "3rdparty/winpcap/Include", - MAME_DIR .. "3rdparty/wine/Include", } end @@ -432,6 +431,29 @@ newoption { }, } +newoption { + trigger = "USE_XAUDIO2", + description = "Use XAudio2 API for audio", + allowed = { + { "0", "Disable XAudio2" }, + { "1", "Enable XAudio2" }, + }, +} + +if _OPTIONS["USE_XAUDIO2"]=="1" then + _OPTIONS["MODERN_WIN_API"] = "1", + defines { + "USE_XAUDIO2=1", + }, + includedirs { + MAME_DIR .. "3rdparty/win81sdk/Include/um", + } +else + defines { + "USE_XAUDIO2=0", + } +end + newoption { trigger = "USE_QTDEBUG", description = "Use QT debugger", diff --git a/src/osd/modules/sound/xaudio2_sound.cpp b/src/osd/modules/sound/xaudio2_sound.cpp index 9621baaef61..9dc3d0461be 100644 --- a/src/osd/modules/sound/xaudio2_sound.cpp +++ b/src/osd/modules/sound/xaudio2_sound.cpp @@ -9,17 +9,26 @@ #include "sound_module.h" #include "modules/osdmodule.h" -#if defined(OSD_WINDOWS) && (_WIN32_WINNT >= 0x0602) +#if (defined(OSD_WINDOWS) && USE_XAUDIO2) // standard windows headers #define WIN32_LEAN_AND_MEAN #include +#include +#pragma warning( push ) +#pragma warning( disable: 4068 ) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wattributes" // XAudio2 include #include +#pragma GCC diagnostic pop +#pragma warning( pop ) + + +#include // stdlib includes -#include #include #include @@ -28,6 +37,7 @@ // MAME headers #include "emu.h" #include "osdepend.h" +#include "emuopts.h" //============================================================ // Constants @@ -219,11 +229,11 @@ public: m_buffer_size(0), m_buffer_count(0), m_writepos(0), - m_hEventBufferCompleted(nullptr), - m_hEventDataAvailable(nullptr), - m_hEventExiting(nullptr), + m_hEventBufferCompleted(NULL), + m_hEventDataAvailable(NULL), + m_hEventExiting(NULL), m_buffer_pool(nullptr), - m_xaudio2_module(nullptr), + m_xaudio2_module(NULL), m_pfnxaudio2create(nullptr), m_overflows(0), m_underflows(0), @@ -231,27 +241,27 @@ public: { } - int init(osd_options const &options) override; - void exit() override; + virtual int init(osd_options const &options) override; + virtual void exit() override; // sound_module - void update_audio_stream(bool is_throttled, INT16 const *buffer, int samples_this_frame) override; - void set_mastervolume(int attenuation) override; + virtual void update_audio_stream(bool is_throttled, INT16 const *buffer, int samples_this_frame) override; + virtual void set_mastervolume(int attenuation) override; // Xaudio callbacks - void STDMETHODCALLTYPE OnVoiceProcessingPassStart(UINT32 bytes_required) override; - void STDMETHODCALLTYPE OnVoiceProcessingPassEnd() override {} - void STDMETHODCALLTYPE OnStreamEnd() override {} - void STDMETHODCALLTYPE OnBufferStart(void* pBufferContext) override {} - void STDMETHODCALLTYPE OnLoopEnd(void* pBufferContext) override {} - void STDMETHODCALLTYPE OnVoiceError(void* pBufferContext, HRESULT error) override {} - void STDMETHODCALLTYPE OnBufferEnd(void *pBufferContext) override; + void OnVoiceProcessingPassStart(UINT32 bytes_required) override; + void OnVoiceProcessingPassEnd() override {} + void OnStreamEnd() override {} + void OnBufferStart(void* pBufferContext) override {} + void OnLoopEnd(void* pBufferContext) override {} + void OnVoiceError(void* pBufferContext, HRESULT error) override {} + void OnBufferEnd(void *pBufferContext) override; private: void create_buffers(const WAVEFORMATEX &format); HRESULT create_voices(const WAVEFORMATEX &format); void process_audio(); - void submit_buffer(std::unique_ptr audioData, DWORD audioLength) const; + void submit_buffer(std::unique_ptr audioData, DWORD audioLength); void submit_needed(); HRESULT xaudio2_create(IXAudio2 ** xaudio2_interface); void roll_buffer(); @@ -264,7 +274,7 @@ private: int sound_xaudio2::init(osd_options const &options) { - HRESULT result; + HRESULT result = S_OK; // Create the IXAudio2 object IXAudio2 *temp_xaudio2 = nullptr; @@ -282,13 +292,20 @@ int sound_xaudio2::init(osd_options const &options) m_sample_bytes = format.nBlockAlign; +#if defined(_DEBUG) + XAUDIO2_DEBUG_CONFIGURATION debugConfig = { 0 }; + debugConfig.TraceMask = XAUDIO2_LOG_WARNINGS | XAUDIO2_LOG_TIMING | XAUDIO2_LOG_STREAMING; + debugConfig.LogFunctionName = TRUE; + m_xAudio2->SetDebugConfiguration(&debugConfig); +#endif + // Create the buffers create_buffers(format); // Initialize our events - m_hEventBufferCompleted = CreateEvent(nullptr, FALSE, FALSE, nullptr); - m_hEventDataAvailable = CreateEvent(nullptr, FALSE, FALSE, nullptr); - m_hEventExiting = CreateEvent(nullptr, FALSE, FALSE, nullptr); + m_hEventBufferCompleted = CreateEvent(NULL, FALSE, FALSE, NULL); + m_hEventDataAvailable = CreateEvent(NULL, FALSE, FALSE, NULL); + m_hEventExiting = CreateEvent(NULL, FALSE, FALSE, NULL); // create the voices and start them HR_RET1(create_voices(format)); @@ -396,7 +413,7 @@ void sound_xaudio2::set_mastervolume(int attenuation) // The XAudio2 voice callback triggered when a buffer finishes playing void sound_xaudio2::OnBufferEnd(void *pBufferContext) { - BYTE* completed_buffer = static_cast(pBufferContext); + BYTE* completed_buffer = (BYTE*)pBufferContext; if (completed_buffer != nullptr) { std::lock_guard lock(m_buffer_lock); @@ -442,18 +459,18 @@ HRESULT sound_xaudio2::xaudio2_create(IXAudio2 ** ppxaudio2_interface) { if (nullptr == m_xaudio2_module) { - m_xaudio2_module = LoadLibrary(L"xaudio2_8.dll"); + m_xaudio2_module = LoadLibrary(XAUDIO2_DLL); if (nullptr == m_xaudio2_module) { - osd_printf_error("Failed to load module '%S', error: 0x%X\n", L"xaudio2_8.dll", static_cast(GetLastError())); + osd_printf_error("Failed to load module '%S', error: 0x%X\n", XAUDIO2_DLL, (unsigned int)GetLastError()); HR_RETHR(E_FAIL); } } - m_pfnxaudio2create = reinterpret_cast(GetProcAddress(m_xaudio2_module, "XAudio2Create")); + m_pfnxaudio2create = (PFN_XAUDIO2CREATE)GetProcAddress(m_xaudio2_module, "XAudio2Create"); if (nullptr == m_pfnxaudio2create) { - osd_printf_error("Failed to get adddress of exported function XAudio2Create, error: 0x%X\n", static_cast(GetLastError())); + osd_printf_error("Failed to get adddress of exported function XAudio2Create, error: 0x%X\n", (unsigned int)GetLastError()); HR_RETHR(E_FAIL); } } @@ -493,9 +510,9 @@ void sound_xaudio2::create_buffers(const WAVEFORMATEX &format) osd_printf_verbose( "Sound: XAudio2 created initial buffers. total size: %u, count %u, size each %u\n", - static_cast(total_buffer_size), - static_cast(m_buffer_count), - static_cast(m_buffer_size)); + (unsigned int)total_buffer_size, + (unsigned int)m_buffer_count, + (unsigned int)m_buffer_size); // reset buffer states m_writepos = 0; @@ -591,7 +608,7 @@ void sound_xaudio2::submit_needed() // submit_buffer //============================================================ -void sound_xaudio2::submit_buffer(std::unique_ptr audioData, DWORD audioLength) const +void sound_xaudio2::submit_buffer(std::unique_ptr audioData, DWORD audioLength) { assert(audioLength != 0); @@ -606,7 +623,7 @@ void sound_xaudio2::submit_buffer(std::unique_ptr audioData, DWORD audio HRESULT result; if (FAILED(result = m_sourceVoice->SubmitSourceBuffer(&buf))) { - osd_printf_verbose("Sound: XAudio2 failed to submit source buffer (non-fatal). Error: 0x%X\n", static_cast(result)); + osd_printf_verbose("Sound: XAudio2 failed to submit source buffer (non-fatal). Error: 0x%X\n", (unsigned int)result); m_buffer_pool->return_to_pool(audioData.release()); return; }