XAudio2学习之MonitorAPO

MonitorAPO 通过一种锁无关由应用程序初始化的通讯通道的方式来将音频数据传递给主线程。将MonitorAPO添加到上一篇的源码中,给一个source voice添加了两个特效。

主要是使用管道,在APO中的DoProcess函数中将数据写入,然后在主线程中就可以读出来了。

#include "DXUTLockFreePipe.h"
typedef DXUTLockFreePipe MonitorAPOPipe;

struct MonitorAPOParams
{
    MonitorAPOPipe *pipe;
};

class __declspec( uuid("{A4945B8A-EB14-4c96-8067-DF726B528091}")) 
CMonitorAPO
: public CSampleXAPOBase
{
public:
    CMonitorAPO();
    ~CMonitorAPO();

    void DoProcess( const MonitorAPOParams&, FLOAT32* __restrict pData, UINT32 cFrames, UINT32 cChannels );
};
需要使用到模板类DXUTLockFreePipe和模板类CSampleXAPOB

你可能感兴趣的:(XAudio2,DirectX,XAudio2)