mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
- Updated the required driver version in INSTALL (thanks to Jens Groth for reporting this one). - Fixed missing channel info after an incomplete channel group switch (thanks to Andreas Trauer). - Fixed handling a channels.conf that contains a ":@nnn" line as its last entry (thanks to Ralf Klueber). - Fixed detecting the /dev/videoN devices for GRAB in case there are others before the DVB devices (thanks to Andreas Kool). - Updated 'channels.conf.terr' for Berlin (thanks to Markus Hardt). - Fixed handling rc key learning in case cRemote::Initialize() returns 'false' (thanks to Oliver Endriss). - Fixed initializing the highlight area in cDvbSpuDecoder (thanks to Sven Goethel). - Now trying to get a timer's channel without RID when loading 'timers.conf' (thanks to Thomas Rausch). - Removed the unused 0x73 (TOT) filter in eit.c (thanks to Andreas Trauer). - Fixed extracting the ES data in cDvbDevice::StillPicture() (thanks to Stefan Huelswitt). - Added MPEG1 handling to cDvbDevice::StillPicture() (thanks to Thomas Heiligenmann). - Changed the default "Lifetime" to 99, which means that recordings will never be deleted automatically in case the disk runs full (suggested by Oliver Endriss). Note that in an existing VDR installation the current value as set in 'setup.conf' will still be used - this change only affects new VDR installations. - Edited recordings will now never be deleted automatically if the disk runs full (suggested by Emil Naepflein). - Channel IDs are now checked when reading 'channels.conf' to avoid later problems with timers.
131 lines
3.2 KiB
C++
131 lines
3.2 KiB
C++
/*
|
|
* dvbdevice.h: The DVB device interface
|
|
*
|
|
* See the main source file 'vdr.c' for copyright information and
|
|
* how to reach the author.
|
|
*
|
|
* $Id: dvbdevice.h 1.23 2003/10/04 11:54:50 kls Exp $
|
|
*/
|
|
|
|
#ifndef __DVBDEVICE_H
|
|
#define __DVBDEVICE_H
|
|
|
|
#include <linux/dvb/frontend.h>
|
|
#include <linux/dvb/version.h>
|
|
#include "device.h"
|
|
#include "dvbspu.h"
|
|
#include "eit.h"
|
|
|
|
#if DVB_API_VERSION != 3
|
|
#error VDR requires Linux DVB driver API version 3!
|
|
#endif
|
|
|
|
#define MAXDVBDEVICES 4
|
|
|
|
class cDvbTuner;
|
|
|
|
/// The cDvbDevice implements a DVB device which can be accessed through the Linux DVB driver API.
|
|
|
|
class cDvbDevice : public cDevice {
|
|
friend class cDvbOsd;
|
|
private:
|
|
static bool Probe(const char *FileName);
|
|
///< Probes for existing DVB devices.
|
|
public:
|
|
static bool Initialize(void);
|
|
///< Initializes the DVB devices.
|
|
///< Must be called before accessing any DVB functions.
|
|
///< \return True if any devices are available.
|
|
private:
|
|
fe_type_t frontendType;
|
|
int fd_osd, fd_audio, fd_video, fd_dvr;
|
|
int OsdDeviceHandle(void) const { return fd_osd; }
|
|
protected:
|
|
virtual void MakePrimaryDevice(bool On);
|
|
public:
|
|
cDvbDevice(int n);
|
|
virtual ~cDvbDevice();
|
|
virtual bool HasDecoder(void) const;
|
|
|
|
// OSD facilities
|
|
|
|
private:
|
|
cDvbSpuDecoder *spuDecoder;
|
|
public:
|
|
cOsdBase *NewOsd(int x, int y);
|
|
virtual cSpuDecoder *GetSpuDecoder(void);
|
|
|
|
// Channel facilities
|
|
|
|
private:
|
|
cDvbTuner *dvbTuner;
|
|
void TurnOffLiveMode(void);
|
|
public:
|
|
virtual bool ProvidesSource(int Source) const;
|
|
virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL) const;
|
|
protected:
|
|
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
|
|
|
|
// PID handle facilities
|
|
|
|
protected:
|
|
virtual bool SetPid(cPidHandle *Handle, int Type, bool On);
|
|
|
|
// Image Grab facilities
|
|
|
|
private:
|
|
static int devVideoOffset;
|
|
int devVideoIndex;
|
|
public:
|
|
virtual bool GrabImage(const char *FileName, bool Jpeg = true, int Quality = -1, int SizeX = -1, int SizeY = -1);
|
|
|
|
// Video format facilities
|
|
|
|
public:
|
|
virtual void SetVideoFormat(bool VideoFormat16_9);
|
|
virtual eVideoSystem GetVideoSystem(void);
|
|
|
|
// Audio facilities
|
|
|
|
private:
|
|
int aPid1, aPid2;
|
|
protected:
|
|
virtual void SetVolumeDevice(int Volume);
|
|
virtual int NumAudioTracksDevice(void) const;
|
|
virtual const char **GetAudioTracksDevice(int *CurrentTrack = NULL) const;
|
|
virtual void SetAudioTrackDevice(int Index);
|
|
|
|
// EIT facilities
|
|
|
|
private:
|
|
cSIProcessor *siProcessor;
|
|
|
|
// Player facilities
|
|
|
|
protected:
|
|
ePlayMode playMode;
|
|
virtual bool CanReplay(void) const;
|
|
virtual bool SetPlayMode(ePlayMode PlayMode);
|
|
public:
|
|
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 int PlayVideo(const uchar *Data, int Length);
|
|
virtual void PlayAudio(const uchar *Data, int Length);
|
|
|
|
// Receiver facilities
|
|
|
|
private:
|
|
cTSBuffer *tsBuffer;
|
|
protected:
|
|
virtual bool OpenDvr(void);
|
|
virtual void CloseDvr(void);
|
|
virtual bool GetTSPacket(uchar *&Data);
|
|
};
|
|
|
|
#endif //__DVBDEVICE_H
|