Show More
Commit Description:
Various UI improvements.
Commit Description:
Various UI improvements.
References:
File last commit:
Show/Diff file:
Action:
FNA/lib/FAudio/cpp/XAPOBase.h
96 lines | 2.9 KiB | text/x-c | CLexer
96 lines | 2.9 KiB | text/x-c | CLexer
r0 | #ifndef FACT_CPP_XAPOBASE_H | |||
#define FACT_CPP_XAPOBASE_H | ||||
#include "XAPO.h" | ||||
#include <FAPOBase.h> | ||||
typedef FAPORegistrationProperties XAPO_REGISTRATION_PROPERTIES; | ||||
class CXAPOBase : public IXAPO | ||||
{ | ||||
protected: | ||||
// for CXAPOParametersBase and other derived classes that wrap FAPO structs | ||||
CXAPOBase(FAPOBase *base); | ||||
public: | ||||
CXAPOBase( | ||||
const XAPO_REGISTRATION_PROPERTIES* pRegistrationProperties, | ||||
BYTE* pParameterBlocks = NULL, | ||||
UINT32 uParameterBlockByteSize = 0, | ||||
BOOL fProducer = 0); | ||||
virtual ~CXAPOBase(); | ||||
COM_METHOD(HRESULT) QueryInterface(REFIID riid, void** ppInterface); | ||||
COM_METHOD(ULONG) AddRef(); | ||||
COM_METHOD(ULONG) Release(); | ||||
COM_METHOD(HRESULT) GetRegistrationProperties (XAPO_REGISTRATION_PROPERTIES** ppRegistrationProperties); | ||||
COM_METHOD(HRESULT) IsInputFormatSupported ( | ||||
const WAVEFORMATEX* pOutputFormat, | ||||
const WAVEFORMATEX* pRequestedInputFormat, | ||||
WAVEFORMATEX** ppSupportedInputFormat); | ||||
COM_METHOD(HRESULT) IsOutputFormatSupported ( | ||||
const WAVEFORMATEX* pInputFormat, | ||||
const WAVEFORMATEX* pRequestedOutputFormat, | ||||
WAVEFORMATEX** ppSupportedOutputFormat); | ||||
COM_METHOD(HRESULT) Initialize(const void*pData, UINT32 DataByteSize); | ||||
COM_METHOD(void) Reset(); | ||||
COM_METHOD(HRESULT) LockForProcess ( | ||||
UINT32 InputLockedParameterCount, | ||||
const XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS* pInputLockedParameters, | ||||
UINT32 OutputLockedParameterCount, | ||||
const XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS* pOutputLockedParameters); | ||||
COM_METHOD(void) UnlockForProcess (); | ||||
COM_METHOD(UINT32) CalcInputFrames(UINT32 OutputFrameCount); | ||||
COM_METHOD(UINT32) CalcOutputFrames(UINT32 InputFrameCount); | ||||
protected: | ||||
virtual HRESULT ValidateFormatDefault(WAVEFORMATEX* pFormat, BOOL fOverwrite); | ||||
HRESULT ValidateFormatPair( | ||||
const WAVEFORMATEX* pSupportedFormat, | ||||
WAVEFORMATEX* pRequestedFormat, | ||||
BOOL fOverwrite); | ||||
void ProcessThru( | ||||
void* pInputBuffer, | ||||
FLOAT32* pOutputBuffer, | ||||
UINT32 FrameCount, | ||||
WORD InputChannelCount, | ||||
WORD OutputChannelCount, | ||||
BOOL MixWithOutput); | ||||
const XAPO_REGISTRATION_PROPERTIES* GetRegistrationPropertiesInternal(); | ||||
BOOL IsLocked(); | ||||
protected: | ||||
FAPOBase *fapo_base; | ||||
bool own_fapo_base; | ||||
}; | ||||
class CXAPOParametersBase : public CXAPOBase, public IXAPOParameters | ||||
{ | ||||
protected: | ||||
// for derived classes that wrap FAPO structs | ||||
CXAPOParametersBase(FAPOBase *base); | ||||
public: | ||||
CXAPOParametersBase( | ||||
const XAPO_REGISTRATION_PROPERTIES* pRegistrationProperties, | ||||
BYTE* pParameterBlocks, | ||||
UINT32 uParameterBlockByteSize, | ||||
BOOL fProducer); | ||||
virtual ~CXAPOParametersBase(); | ||||
COM_METHOD(HRESULT) QueryInterface(REFIID riid, void** ppInterface); | ||||
COM_METHOD(ULONG) AddRef(); | ||||
COM_METHOD(ULONG) Release(); | ||||
COM_METHOD(void) SetParameters (const void* pParameters, UINT32 ParameterByteSize); | ||||
COM_METHOD(void) GetParameters (void* pParameters, UINT32 ParameterByteSize); | ||||
virtual void OnSetParameters(const void*, UINT32); | ||||
BOOL ParametersChanged(); | ||||
BYTE* BeginProcess(); | ||||
void EndProcess(); | ||||
}; | ||||
#endif // FACT_CPP_XAPOBASE_H | ||||