Files
2024-05-18 23:53:26 +08:00

64 lines
1.9 KiB
C++

#ifndef _SAPCAB_H_
#define _SAPCAB_H_
// SapCab.h : header file
//
#include "SapClassBasicDef.h"
//
// SapCab class declaration
//
class SAPCLASSBASIC_CLASS SapCab : public SapXferNode
{
public:
// Various constants
enum MiscValues
{
MaxPorts = 16
};
public:
// Constructor/Destructor
SapCab(SapLocation loc = SapLocation::ServerSystem, SapXferNode *pSrcNode = NULL);
SapCab(SapLocation loc, SapXferParams xferParams);
SapCab(const SapCab &cab);
virtual ~SapCab();
SapCab &operator= (const SapCab &cab);
// Module create/destroy
virtual BOOL Create();
virtual BOOL Destroy();
// SapXferNode type information
XferNodeType GetXferNodeType() { return NodeTypeCab; }
// Direct capability/parameter access
virtual BOOL GetCapability(int cap, void *pValue);
virtual BOOL GetParameter(int param, void *pValue);
virtual BOOL SetParameter(int param, int value);
virtual BOOL SetParameter(int param, void *pValue);
//cab supports only 1 xferparam
virtual SapXferParams GetXferParams(int portIndex = 0) const { return SapXferNode::GetXferParams(0); }
virtual SapXferParams GetInputXferParams(int portIndex = 0) const { return SapXferNode::GetInputXferParams(0); }
virtual SapXferParams GetOutputXferParams(int portIndex = 0) const { return SapXferNode::GetOutputXferParams(0); }
virtual BOOL SetXferParams(SapXferParams xferParams, int portIndex = 0) { return SapXferNode::SetXferParams(xferParams, 0); }
virtual BOOL SetInputXferParams(SapXferParams xferParams, int portIndex = 0) { return SapXferNode::SetInputXferParams(xferParams, 0); }
virtual BOOL SetOutputXferParams(SapXferParams xferParams, int portIndex = 0) { return SapXferNode::SetOutputXferParams(xferParams, 0); }
protected:
virtual void Construct(int transferMode, int portCount, const int *channels);
int GetBlockSize() const;
protected:
int m_TransferMode;
int m_PortCount;
int m_Channels[MaxPorts];
};
#endif // _SAPCAB_H_