vdr  2.0.2
dvbsdffdevice.h
Go to the documentation of this file.
1 /*
2  * dvbsdffdevice.h: The DVB SD Full Featured device interface
3  *
4  * See the README file for copyright information and how to reach the author.
5  *
6  * $Id: dvbsdffdevice.h 2.16 2013/02/17 13:16:29 kls Exp $
7  */
8 
9 #ifndef __DVBSDFFDEVICE_H
10 #define __DVBSDFFDEVICE_H
11 
12 #include <vdr/dvbdevice.h>
13 #include <vdr/dvbspu.h>
14 
16 
17 class cDvbSdFfDevice : public cDvbDevice {
18 private:
20  bool outputOnly;
21 protected:
22  virtual void MakePrimaryDevice(bool On);
23 public:
24  cDvbSdFfDevice(int Adapter, int Frontend, bool OutputOnly);
25  virtual ~cDvbSdFfDevice();
26  virtual bool HasDecoder(void) const;
27  virtual bool AvoidRecording(void) const;
28 
29 // SPU facilities
30 
31 private:
33 public:
34  virtual cSpuDecoder *GetSpuDecoder(void);
35 
36 // Channel facilities
37 
38 public:
39  virtual bool ProvidesSource(int Source) const;
40  virtual int NumProvidedSystems(void) const;
41 private:
42  void TurnOffLiveMode(bool LiveView);
43 protected:
44  virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
45 
46 // PID handle facilities
47 
48 private:
49  bool SetAudioBypass(bool On);
50 protected:
51  virtual bool SetPid(cPidHandle *Handle, int Type, bool On);
52 
53 // Image Grab facilities
54 
55 private:
56  static int devVideoOffset;
58 public:
59  virtual uchar *GrabImage(int &Size, bool Jpeg = true, int Quality = -1, int SizeX = -1, int SizeY = -1);
60 
61 // Video format facilities
62 
63 public:
64  virtual void SetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat);
65  virtual void SetVideoFormat(bool VideoFormat16_9);
66  virtual eVideoSystem GetVideoSystem(void);
67  virtual void GetVideoSize(int &Width, int &Height, double &VideoAspect);
68  virtual void GetOsdSize(int &Width, int &Height, double &PixelAspect);
69 
70 // Track facilities
71 
72 protected:
73  virtual void SetAudioTrackDevice(eTrackType Type);
74 
75 // Audio facilities
76 
77 private:
79 protected:
80  virtual int GetAudioChannelDevice(void);
81  virtual void SetAudioChannelDevice(int AudioChannel);
82  virtual void SetVolumeDevice(int Volume);
83  virtual void SetDigitalAudioDevice(bool On);
84 
85 // Player facilities
86 
87 protected:
89  virtual bool CanReplay(void) const;
90  virtual bool SetPlayMode(ePlayMode PlayMode);
91  virtual int PlayVideo(const uchar *Data, int Length);
92  virtual int PlayAudio(const uchar *Data, int Length, uchar Id);
93  virtual int PlayTsVideo(const uchar *Data, int Length);
94  virtual int PlayTsAudio(const uchar *Data, int Length);
95 public:
96  virtual int64_t GetSTC(void);
97  virtual void TrickSpeed(int Speed);
98  virtual void Clear(void);
99  virtual void Play(void);
100  virtual void Freeze(void);
101  virtual void Mute(void);
102  virtual void StillPicture(const uchar *Data, int Length);
103  virtual bool Poll(cPoller &Poller, int TimeoutMs = 0);
104  virtual bool Flush(int TimeoutMs = 0);
105  };
106 
108 private:
110 public:
111  cDvbSdFfDeviceProbe(void);
112  void SetOutputOnly(bool On) { outputOnly = On; }
113  virtual bool Probe(int Adapter, int Frontend);
114  };
115 
116 #endif //__DVBSDFFDEVICE_H
117