winamp/Src/Plugins/DSP/dsp_sps/dxi/AudioPlugIn.h
2024-09-24 14:54:57 +02:00

48 lines
1.3 KiB
C++

// AudioPlugIn.h: interface for the CAudioPlugIn class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_AUDIOPLUGIN_H__D9177ACC_DFF4_4C13_8FB9_F949C35BFEF0__INCLUDED_)
#define AFX_AUDIOPLUGIN_H__D9177ACC_DFF4_4C13_8FB9_F949C35BFEF0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
struct DXiEvent;
struct MfxEvent;
#include "DXi.h"
// TODO: #define PROCESS_IN_PLACE to FALSE if necessary, i.e., for plug-ins
// which convert mono to stereo.
#define PROCESS_IN_PLACE (TRUE)
class CAudioPlugIn :
public CDXi
{
public:
CAudioPlugIn( HRESULT* phr );
virtual ~CAudioPlugIn();
HRESULT Initialize();
HRESULT IsValidInputFormat( const WAVEFORMATEX* pwfx ) const;
HRESULT IsValidOutputFormat( const WAVEFORMATEX* pwfx ) const;
HRESULT IsValidTransform( const WAVEFORMATEX* pwfxIn, const WAVEFORMATEX* pwfxOut ) const;
HRESULT SuggestOutputFormat( WAVEFORMATEX* pwfx ) const;
HRESULT Process( LONGLONG llSampAudioTimestamp,
AudioBuffer* pbufIn,
AudioBuffer* pbufOut );
HRESULT AllocateResources();
HRESULT FreeResources();
int PersistGetSize() const;
HRESULT PersistLoad( IStream* pStream );
HRESULT PersistSave( IStream* pStream );
};
#endif // !defined(AFX_AUDIOPLUGIN_H__D9177ACC_DFF4_4C13_8FB9_F949C35BFEF0__INCLUDED_)