diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2009-12-31 15:38:18 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2009-12-31 15:38:18 +0100 |
commit | 2b7c81f72dfa4f53b2b5e2e54d709e8515e76788 (patch) | |
tree | 0ba62c895f94c372f6464aed04e58fadbba4da7a /PLUGINS/src/dvbsddevice/dvbsdffdevice.h | |
parent | 3d7338de5a2e93431296ecfed30821e007d3419b (diff) | |
download | vdr-2b7c81f72dfa4f53b2b5e2e54d709e8515e76788.tar.gz vdr-2b7c81f72dfa4f53b2b5e2e54d709e8515e76788.tar.bz2 |
Moved support for full featured DVB cards of the TT/FuSi design into the new plugin 'dvbsddevice'
Diffstat (limited to 'PLUGINS/src/dvbsddevice/dvbsdffdevice.h')
-rw-r--r-- | PLUGINS/src/dvbsddevice/dvbsdffdevice.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/PLUGINS/src/dvbsddevice/dvbsdffdevice.h b/PLUGINS/src/dvbsddevice/dvbsdffdevice.h new file mode 100644 index 00000000..ea5f9ffa --- /dev/null +++ b/PLUGINS/src/dvbsddevice/dvbsdffdevice.h @@ -0,0 +1,107 @@ +/* + * dvbsdffdevice.h: The DVB SD Full Featured device interface + * + * See the README file for copyright information and how to reach the author. + * + * $Id: dvbsdffdevice.h 2.10 2009/12/31 15:36:56 kls Exp $ + */ + +#ifndef __DVBSDFFDEVICE_H +#define __DVBSDFFDEVICE_H + +#include "vdr/dvbdevice.h" +#include "vdr/dvbspu.h" + +/// The cDvbSdFfDevice implements a DVB device which can be accessed through the Linux DVB driver API. + +class cDvbSdFfDevice : public cDvbDevice { +private: + int fd_osd, fd_audio, fd_video, fd_stc; +protected: + virtual void MakePrimaryDevice(bool On); +public: + cDvbSdFfDevice(int n); + virtual ~cDvbSdFfDevice(); + virtual bool HasDecoder(void) const; + +// SPU facilities + +private: + cDvbSpuDecoder *spuDecoder; +public: + virtual cSpuDecoder *GetSpuDecoder(void); + +// Channel facilities + +private: + void TurnOffLiveMode(bool LiveView); +protected: + virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); + +// PID handle facilities + +private: + bool SetAudioBypass(bool On); +protected: + virtual bool SetPid(cPidHandle *Handle, int Type, bool On); + +// Image Grab facilities + +private: + static int devVideoOffset; + int devVideoIndex; +public: + virtual uchar *GrabImage(int &Size, bool Jpeg = true, int Quality = -1, int SizeX = -1, int SizeY = -1); + +// Video format facilities + +public: + virtual void SetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat); + virtual void SetVideoFormat(bool VideoFormat16_9); + virtual eVideoSystem GetVideoSystem(void); + virtual void GetVideoSize(int &Width, int &Height, double &VideoAspect); + virtual void GetOsdSize(int &Width, int &Height, double &PixelAspect); + +// Track facilities + +protected: + virtual void SetAudioTrackDevice(eTrackType Type); + +// Audio facilities + +private: + bool digitalAudio; +protected: + virtual int GetAudioChannelDevice(void); + virtual void SetAudioChannelDevice(int AudioChannel); + virtual void SetVolumeDevice(int Volume); + virtual void SetDigitalAudioDevice(bool On); + +// Player facilities + +protected: + ePlayMode playMode; + virtual bool CanReplay(void) const; + virtual bool SetPlayMode(ePlayMode PlayMode); + virtual int PlayVideo(const uchar *Data, int Length); + virtual int PlayAudio(const uchar *Data, int Length, uchar Id); + virtual int PlayTsVideo(const uchar *Data, int Length); + virtual int PlayTsAudio(const uchar *Data, int Length); +public: + virtual int64_t GetSTC(void); + virtual void TrickSpeed(int Speed); + virtual void Clear(void); + virtual void Play(void); + virtual void Freeze(void); + virtual void Mute(void); + virtual void StillPicture(const uchar *Data, int Length); + virtual bool Poll(cPoller &Poller, int TimeoutMs = 0); + virtual bool Flush(int TimeoutMs = 0); + }; + +class cDvbSdFfDeviceProbe : public cDvbDeviceProbe { +public: + virtual bool Probe(int Adapter); + }; + +#endif //__DVBSDFFDEVICE_H |