Home

Dokumentation

Impressum

Dokumentation VDR
 

Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

dvbdevice.h

Go to the documentation of this file.
00001 
00010 #ifndef __DVBDEVICE_H
00011 #define __DVBDEVICE_H
00012 
00013 #include <linux/dvb/frontend.h>
00014 #include <linux/dvb/version.h>
00015 #include "device.h"
00016 #include "dvbspu.h"
00017 #include "eit.h"
00018 
00019 #if DVB_API_VERSION != 3
00020 #error VDR requires Linux DVB driver API version 3!
00021 #endif
00022 
00023 #define MAXDVBDEVICES  4
00024 
00025 class cDvbTuner;
00026 /!*
00027  * The cDvbDevice implements a DVB device which can be accessed through the
00028  * Linux DVB driver API.
00029  */
00031 class cDvbDevice : public cDevice {
00032   friend class cDvbOsd;
00033 private:
00034 
00038   static bool Probe(const char *FileName);
00039 
00040 public:
00041 
00047   static bool Initialize(void);
00048 
00049 private:
00050   fe_type_t frontendType;
00051   int fd_osd, fd_audio, fd_video, fd_dvr;
00052   int OsdDeviceHandle(void) const { return fd_osd; }
00053 protected:
00054   virtual void MakePrimaryDevice(bool On);
00055 public:
00056   cDvbDevice(int n);
00057   virtual ~cDvbDevice();
00058   virtual bool HasDecoder(void) const;
00059 
00063 private:
00064   cDvbSpuDecoder *spuDecoder;
00065 public:
00066 
00070   cOsdBase *NewOsd(int x, int y);
00071   virtual cSpuDecoder *GetSpuDecoder(void);
00072 
00076 private:
00077   cDvbTuner *dvbTuner;
00078 public:
00079   virtual bool ProvidesSource(int Source) const;
00080   virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL) const;
00081 protected:
00082   virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
00083 
00087 protected:
00088 
00092   virtual bool SetPid(cPidHandle *Handle, int Type, bool On);
00093 
00097 public:
00098   virtual bool GrabImage(const char *FileName, bool Jpeg = true, int Quality = -1, int SizeX = -1, int SizeY = -1);
00099 
00103 public:
00104 
00108   virtual void SetVideoFormat(bool VideoFormat16_9);
00109 
00113 private:
00114   int aPid1, aPid2;
00115 protected:
00116   virtual void SetVolumeDevice(int Volume);
00117   virtual int NumAudioTracksDevice(void) const;
00118   virtual const char **GetAudioTracksDevice(int *CurrentTrack = NULL) const;
00119   virtual void SetAudioTrackDevice(int Index);
00120 
00125 private:
00126   cSIProcessor *siProcessor;
00127 
00131 protected:
00132   ePlayMode playMode;
00133   virtual bool CanReplay(void) const;
00134 
00139   virtual bool SetPlayMode(ePlayMode PlayMode);
00140 public:
00141   virtual void TrickSpeed(int Speed);
00142   virtual void Clear(void);
00143   virtual void Play(void);
00144   virtual void Freeze(void);
00145   virtual void Mute(void);
00146   virtual void StillPicture(const uchar *Data, int Length);
00147   virtual bool Poll(cPoller &Poller, int TimeoutMs = 0);
00148   virtual int PlayVideo(const uchar *Data, int Length);
00149   virtual void PlayAudio(const uchar *Data, int Length);
00150 
00154 private:
00155 
00163   cTSBuffer *tsBuffer;
00164 protected:
00165 
00169   virtual bool OpenDvr(void);
00170 
00174   virtual void CloseDvr(void);
00175 
00179   virtual bool GetTSPacket(uchar *&Data);
00180   };
00181 
00182 #endif //__DVBDEVICE_H
00183 

Generated on Wed Feb 5 23:30:08 2003 for VDR by doxygen1.3-rc2