diff options
Diffstat (limited to 'plugins/streamdev/streamdev-cvs/client/device.h')
| -rw-r--r-- | plugins/streamdev/streamdev-cvs/client/device.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/plugins/streamdev/streamdev-cvs/client/device.h b/plugins/streamdev/streamdev-cvs/client/device.h new file mode 100644 index 0000000..e96b05f --- /dev/null +++ b/plugins/streamdev/streamdev-cvs/client/device.h @@ -0,0 +1,68 @@ +/* + * $Id: device.h,v 1.9 2009/06/23 10:26:54 schmirl Exp $ + */ + +#ifndef VDR_STREAMDEV_DEVICE_H +#define VDR_STREAMDEV_DEVICE_H + +#include <vdr/device.h> + +#include "client/socket.h" +#include "client/filter.h" + +class cTBString; + +#define CMD_LOCK_OBJ(x) cMutexLock CmdLock((cMutex*)&(x)->m_Mutex) + +class cStreamdevDevice: public cDevice { + friend class cRemoteRecordings; + +private: + const cChannel *m_Channel; + cTSBuffer *m_TSBuffer; + cStreamdevFilters *m_Filters; + int m_Pids; + bool m_DvrClosed; + + static cStreamdevDevice *m_Device; + + bool OpenDvrInt(void); + void CloseDvrInt(void); + +protected: + virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); + virtual bool HasLock(int TimeoutMs) + { + //printf("HasLock is %d\n", (ClientSocket.DataSocket(siLive) != NULL)); + //return ClientSocket.DataSocket(siLive) != NULL; + return true; + } + + virtual bool SetPid(cPidHandle *Handle, int Type, bool On); + virtual bool OpenDvr(void); + virtual void CloseDvr(void); + virtual bool GetTSPacket(uchar *&Data); + + virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask); + +public: + cStreamdevDevice(void); + virtual ~cStreamdevDevice(); + + virtual bool HasInternalCam(void) { return true; } + virtual bool ProvidesSource(int Source) const; + virtual bool ProvidesTransponder(const cChannel *Channel) const; + virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, + bool *NeedsDetachReceivers = NULL) const; +#if APIVERSNUM >= 10700 + virtual int NumProvidedSystems(void) const { return 1; } +#endif + virtual bool IsTunedToTransponder(const cChannel *Channel); + + static bool Init(void); + static bool ReInit(void); + + static cStreamdevDevice *GetDevice(void) { return m_Device; } +}; + +#endif // VDR_STREAMDEV_DEVICE_H |
