File: XnLinkInputStream.h

package info (click to toggle)
openni2 2.2.0.33%2Bdfsg-11
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 22,216 kB
  • sloc: cpp: 111,197; ansic: 35,511; sh: 10,542; python: 1,313; java: 952; makefile: 575; xml: 12
file content (73 lines) | stat: -rw-r--r-- 1,942 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#ifndef __XNLINKINPUTSTREAM_H__
#define __XNLINKINPUTSTREAM_H__

#include "XnBitSet.h"
#include "XnLinkProtoLibDefs.h"
#include "XnLinkProtoUtils.h"

namespace xn
{

class LinkControlEndpoint;
class LinkMsgParser;
class IConnection;

class LinkInputStream
{
public:
    LinkInputStream();
    virtual ~LinkInputStream();

    virtual XnStatus Init(LinkControlEndpoint* pLinkControlEndpoint, 
                          XnStreamType streamType,
                          XnUInt16 nStreamID, 
                          IConnection* pConnection);

	virtual XnBool IsInitialized() const = 0;
    virtual void Shutdown();
    virtual void Reset();

	virtual XnStatus Start();
	virtual XnStatus Stop();
	virtual XnBool IsStreaming() const;
    virtual XnUInt16 GetStreamID() const;

	typedef void (XN_CALLBACK_TYPE* NewDataAvailableHandler)(void* pCookie);

	virtual XnStatus HandlePacket(const LinkPacketHeader& header, const XnUInt8* pData, XnBool& bPacketLoss) = 0;

	virtual void SetDumpName(const XnChar* strDumpName) = 0;
	virtual void SetDumpOn(XnBool bDumpOn) = 0;

    /* Stream Properties */
	virtual XnBool IsOutputFormatSupported(OniPixelFormat format) const;
	virtual OniPixelFormat GetOutputFormat() const;
	virtual XnStatus SetOutputFormat(OniPixelFormat format);

    virtual XnBool IsInterfaceSupported(XnUInt8 nInterfaceID) const;

    virtual XnStreamFragLevel GetStreamFragLevel() const = 0;

    virtual XnBool GetMirror() const;
    virtual XnStatus SetMirror(XnBool bMirror);

protected:
	virtual XnStatus StartImpl() = 0;
	virtual XnStatus StopImpl() = 0;

	virtual LinkMsgParser* CreateLinkMsgParser();
	LinkControlEndpoint* m_pLinkControlEndpoint;
    IConnection* m_pConnection;
    XnStreamType m_streamType;
    XnUInt16 m_nStreamID;
	OniPixelFormat m_outputFormat;
	volatile XnBool m_bStreaming;
	int m_streamingRefcount;

	xnl::BitSet m_supportedInterfaces;
	XnBool m_bMirror;
};

}

#endif // __XNLINKINPUTSTREAM_H__