mirror of
https://github.com/rofafor/vdr-plugin-iptv.git
synced 2023-10-10 13:37:03 +02:00
60 lines
1.5 KiB
C++
60 lines
1.5 KiB
C++
/*
|
|
* device.h: IPTV plugin for the Video Disk Recorder
|
|
*
|
|
* See the README file for copyright information and how to reach the author.
|
|
*
|
|
* $Id: device.h,v 1.1 2007/09/12 17:28:59 rahrenbe Exp $
|
|
*/
|
|
|
|
#ifndef __IPTV_DEVICE_H
|
|
#define __IPTV_DEVICE_H
|
|
|
|
#include <vdr/device.h>
|
|
#include "streamer.h"
|
|
|
|
class cIptvDevice : public cDevice {
|
|
// static ones
|
|
public:
|
|
static unsigned int deviceCount;
|
|
static bool Initialize(unsigned int DeviceCount);
|
|
static unsigned int Count(void);
|
|
static cIptvDevice *Get(unsigned int DeviceIndex);
|
|
|
|
// private parts
|
|
private:
|
|
unsigned int deviceIndex;
|
|
bool isPacketDelivered;
|
|
bool isOpenDvr;
|
|
cRingBufferLinear *tsBuffer;
|
|
cIptvStreamer *pIptvStreamer;
|
|
cMutex mutex;
|
|
|
|
// constructor & destructor
|
|
public:
|
|
cIptvDevice(unsigned int DeviceIndex);
|
|
virtual ~cIptvDevice();
|
|
|
|
// for channel parsing
|
|
private:
|
|
cString GetChannelSettings(const char *Param, int *IpPort, int *Protocol);
|
|
bool ProvidesIptv(const char *Param) const;
|
|
|
|
// for channel selection
|
|
public:
|
|
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;
|
|
protected:
|
|
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
|
|
|
|
// for recording
|
|
protected:
|
|
virtual bool SetPid(cPidHandle *Handle, int Type, bool On);
|
|
virtual bool OpenDvr(void);
|
|
virtual void CloseDvr(void);
|
|
virtual bool GetTSPacket(uchar *&Data);
|
|
};
|
|
|
|
#endif // __IPTV_DEVICE_H
|
|
|