
#ifndef __EXPORTED_RECORDER_H__
#define __EXPORTED_RECORDER_H__

//---------------------------------------------------------------------------
// Includes
//---------------------------------------------------------------------------
#include <XnModuleCppInterface.h>
#include <XnTypes.h>

//---------------------------------------------------------------------------
// Types
//---------------------------------------------------------------------------
class ExportedRecorder : public xn::ModuleExportedProductionNode
{
public:
	ExportedRecorder();
	virtual ~ExportedRecorder();

	virtual void GetDescription(XnProductionNodeDescription* pDescription);
	virtual XnStatus EnumerateProductionTrees(xn::Context& context, xn::NodeInfoList& TreesList, xn::EnumerationErrors* pErrors);
	virtual XnStatus Create(xn::Context& context, const XnChar* strInstanceName, const XnChar* strCreationInfo, xn::NodeInfoList* pNeededTrees, const XnChar* strConfigurationDir, xn::ModuleProductionNode** ppInstance);
	virtual void Destroy(xn::ModuleProductionNode* pInstance);

private:
	//---------------------------------------------------------------------------
	// Constants
	//---------------------------------------------------------------------------
	static const char NAME[];
	static const char CREATION_INFO[];
	
	//---------------------------------------------------------------------------
	// Member Variables
	//---------------------------------------------------------------------------
	char m_strInstanceName[XN_MAX_NAME_LENGTH];
};

#endif // __EXPORTED_RECORDER_H__