123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- #ifndef _SAPXFERNODE_H_
- #define _SAPXFERNODE_H_
- // SapXferNode.h : header file
- //
- #include "SapClassBasicDef.h"
- //
- // SapXferParams class declaration
- //
- class SAPCLASSBASIC_CLASS SapXferParams
- {
- public:
- // Transfer frame types
- typedef int FrameType;
- enum _FrameType
- {
- FrameInterlaced = CORXFER_VAL_FRAME_INTERLACED,
- FrameProgressive = CORXFER_VAL_FRAME_NON_INTERLACED
- };
- // Transfer field order
- typedef int FieldOrder;
- enum _FieldOrder
- {
- FieldOrderOddEven = CORXFER_VAL_FIELD_ORDER_ODD_EVEN,
- FieldOrderEvenOdd = CORXFER_VAL_FIELD_ORDER_EVEN_ODD,
- FieldOrderNext = CORXFER_VAL_FIELD_ORDER_NEXT_FIELD
- };
- public:
- // Constructor/destructor
- SapXferParams();
- ~SapXferParams();
- // Access to implementation
- FrameType GetFrameType() const { return m_Frame; }
- FieldOrder GetFieldOrder() const { return m_FieldOrder; }
- int GetWidth() const { return m_Width; }
- int GetHeight() const { return m_Height; }
- SapFormat GetFormat() const { return m_Format; }
- int GetPixelDepth() const { return m_PixelDepth; }
- int GetPixelShift() const { return m_PixelShift; }
- void GetParameters(FrameType *frame, FieldOrder *fieldOrder, int *width, int *height, SapFormat *format, int *pixelDepth, int *pixelShift) const;
- void SetFrameType(FrameType frameType) { m_Frame = frameType; }
- void SetFieldOrder(FieldOrder fieldOrder) { m_FieldOrder = fieldOrder; }
- void SetWidth(int width) { m_Width = width; }
- void SetHeight(int height) { m_Height = height; }
- void SetFormat(SapFormat format) { m_Format = format; SetPixelDepth(CorManGetPixelDepthMax(m_Format)); }
- void SetPixelDepth(int pixelDepth) { m_PixelDepth = pixelDepth; SetPixelShift(CorManGetPixelDepthMax(m_Format) - pixelDepth); }
- void SetPixelShift(int pixelShift) { m_PixelShift = pixelShift; }
- void SetParameters(FrameType frame, FieldOrder fieldOrder, int width, int height, SapFormat format, int pixelDepth, int pixelShift);
- // Utility
- operator CORXFER_DESC();
- // Obsolete methods
- FrameType GetFrame() const { return GetFrameType(); }
- void Get(FrameType *frame, FieldOrder *fieldOrder, int *width, int *height, SapFormat *format, int *pixelDepth, int *pixelShift) const;
- void SetFrame(FrameType frame) { SetFrameType(frame); }
- void Set(FrameType frame, FieldOrder fieldOrder, int width, int height, SapFormat format, int pixelDepth, int pixelShift);
- protected:
- FrameType m_Frame;
- FieldOrder m_FieldOrder;
- int m_Width;
- int m_Height;
- SapFormat m_Format;
- int m_PixelDepth;
- int m_PixelShift;
- };
- //
- // SapXferNode class declaration
- //
- class SAPCLASSBASIC_CLASS SapXferNode : public SapManager
- {
- public:
- // Possible types for derived classes
- enum XferNodeType
- {
- NodeTypeUnknown,
- NodeTypeAcqDevice,
- NodeTypeAcquisition,
- NodeTypeBuffer,
- NodeTypeCab,
- NodeTypeObsolete1,
- NodeTypePixPro,
- NodeTypeRTPro,
- NodeTypeBufferMulti
- };
- // Various constants
- enum MiscValues
- {
- MaxXferParams = 32
- };
- public:
- // Constructor/Destructor
- SapXferNode(SapLocation location)
- { m_Location = location; m_pSrcNode = NULL; m_SrcPort = 0; m_hServer = m_handle = CORHANDLE_NULL; }
- SapXferNode(SapLocation location, SapXferNode *pSrcNode)
- { m_Location = location; m_pSrcNode = pSrcNode; m_SrcPort = 0; m_hServer = m_handle = CORHANDLE_NULL; }
- SapXferNode(SapLocation location, SapXferParams xferParams)
- { m_Location = location; m_pSrcNode = NULL; m_SrcPort = 0; m_XferParams[0] = xferParams; m_hServer = m_handle = CORHANDLE_NULL; }
- //should copy all xferParams
- SapXferNode(const SapXferNode& node)
- { m_Location = node.m_Location; m_pSrcNode = node.m_pSrcNode; m_SrcPort = node.m_SrcPort;m_XferParams[0] = node.m_XferParams[0]; m_hServer = m_handle = CORHANDLE_NULL; }
- virtual ~SapXferNode() {}
- SapXferNode& operator= (const SapXferNode& node)
- {
- m_Location = node.m_Location; m_pSrcNode = node.m_pSrcNode; m_SrcPort = node.m_SrcPort; m_XferParams[0] = node.m_XferParams[0]; m_bInitOK = FALSE; m_hServer = m_handle = CORHANDLE_NULL;
- return *this;
- }
- // Creation/destruction
- virtual BOOL Create() = 0;
- virtual BOOL Destroy() = 0;
- public:
- // Access to implementation
- SapLocation GetLocation() const { return m_Location; }
- SapXferNode *GetSrcNode() const { return m_pSrcNode; }
- int GetSrcPort() const { return m_SrcPort; }
- CORSERVER GetServer() const { return m_hServer; }
- virtual SapXferParams GetXferParams(int portIndex = 0) const { return m_XferParams[CORXFER_PORT_INDEX_MASK(portIndex)]; }
- virtual SapXferParams GetInputXferParams(int portIndex = 0) const { return GetXferParams(CORXFER_PORT_INDEX_MASK(portIndex)); }
- virtual SapXferParams GetOutputXferParams(int portIndex = 0) const { return GetXferParams(CORXFER_PORT_INDEX_MASK(portIndex)); }
- BOOL SetLocation(SapLocation loc) { if( m_bInitOK) return FALSE; m_Location = loc; return TRUE;}
- virtual BOOL SetSrcNode(SapXferNode *pSrcNode, int srcPort = 0) { if( m_bInitOK) return FALSE; m_pSrcNode = pSrcNode; m_SrcPort = srcPort; return TRUE;}
- virtual BOOL SetXferParams(SapXferParams xferParams, int portIndex = 0) { if( m_bInitOK) return FALSE; m_XferParams[portIndex] = xferParams; return TRUE;}
- virtual BOOL SetInputXferParams(SapXferParams params, int portIndex = 0) { return SetXferParams(params, CORXFER_PORT_INDEX_MASK(portIndex)); }
- virtual BOOL SetOutputXferParams(SapXferParams params, int portIndex = 0) { return SetXferParams(params, CORXFER_PORT_INDEX_MASK(portIndex)); }
- virtual CORHANDLE GetHandle() const { return m_handle; }
- virtual void GetXferParamsFromSrcNode()
- { if (m_pSrcNode) SetInputXferParams(m_pSrcNode->GetOutputXferParams( m_SrcPort)); }
- // All classes derived from SapXferNode need to implement this
- virtual XferNodeType GetXferNodeType() = 0;
- // Obsolete method
- virtual BOOL IsBuffer() { return GetXferNodeType() == NodeTypeBuffer; }
- public:
- // Cycling specific methods
- virtual CORHANDLE GetHandle(int index) const { return index == 0 ? m_handle : CORHANDLE_NULL; }
- virtual CORHANDLE operator[] (int index) const { return GetHandle(index); }
- virtual int GetCount() const { return 1; }
- virtual int GetIndex() const { return 0; }
- virtual BOOL SetIndex(int index) { return TRUE; }
- virtual void ResetIndex() {}
- virtual void Next() {}
- virtual CORHANDLE GetTrash() const { return CORHANDLE_NULL; }
- // Obsolete methods
- virtual BOOL Empty() { return TRUE; }
- virtual BOOL Empty(int index) { return TRUE; }
- virtual BOOL EmptyAll() { return TRUE; }
- protected:
- // Parameters
- SapLocation m_Location;
- SapXferNode *m_pSrcNode;
- int m_SrcPort;
- SapXferParams m_XferParams[MaxXferParams];
- CORSERVER m_hServer;
- CORHANDLE m_handle;
- };
- #endif // _SAPXFERNODE_H_
|