vdr/dvbdevice.h
Klaus Schmidinger c23992b807 Version 1.3.42
- Removed leftover 'needsBufferReserve' variable from cTransfer (thanks to Marco
  Schlüßler).
- Fixed setting "No title" for broken event data (reported by Ronny Kornexl).
- Fixed channel up/down switching on single card systems (reported by Stefan
  Huelswitt).
- Fixed handling "pending" timers that blocked others that actually could record
  (reported by Thomas Koch).
- Speeded up cVideoRepacker (thanks to Reinhard Nissl).
- Added an 'Id' parameter to cDevice::PlayAudio() to allow plugins to easier
  process the audio data (thanks to Marco Schlüßler).
- Added Czech language texts (thanks to Vladimír Bárta).
  Plugin authors may want to add the new entries to their I18N texts and contact
  the translators to have their texts translated. Note that there are now 21
  different OSD languages, so please make sure you have 21 versions for each of
  your texts.
- Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski).
- Fixed auto advance in string entry fields when pressing Up/Down in insert mode
  (reported by Udo Richter).
- Fixed handling the "Setup/OSD/Menu button closes" option when set to 'yes' in
  case a replay is active (thanks to Udo Richter).
- Improved cUnbufferedFile; USE_FADVISE is now defined in tools.c by default, so
  if you don't want to use "fadvise" you need to comment out that line (thanks to
  Artur Skawina).
- Fixed a missing ',' in the Swedish OSD texts (thanks to Arthur Konovalov).
- cDevice::Transferring() can now be used to determine whether the (primary)
  device is currently playing in Transfer Mode (based on a suggestion by
  Reinhard Nissl).
- The 'runvdr' script no longer uses the $VDRUSR environment variable to set
  the user id under which 'vdr' shall run. Just add the '-u username' option
  when you call 'runvdr'.
- Fixed multiple entries of the same subdirectory in the "Recordings" menu
  (reported by Christian Jacobsen).
- Enabled generating a core dump if VDR is run with a different user id (thanks
  to Ville Skyttä).
- Fixed handling the "Blue" key in the "Schedule" menu for the current channel
  (thanks to Rolf Ahrenberg).
- Renamed the Makefile target 'plugins-clean' to 'clean-plugins' (suggested by
  Sebastian Frei).
- Made all font and image data 'const' (thanks to Darren Salt).
- Fixed scrolling with Up/Down in case there are non-selectable items at the
  beginning or end of the menu (reported by Helmut Auer).
- Added cSkin::GetTextAreaWidth() and cSkin::GetTextAreaFont(), so that a plugin
  that wants to do special text formatting can do so (thanks to Alexander Rieger).
2006-02-05 18:00:00 +01:00

145 lines
3.7 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.38 2006/02/04 10:21:51 kls Exp $
*/
#ifndef __DVBDEVICE_H
#define __DVBDEVICE_H
#include <linux/dvb/frontend.h>
#include <linux/dvb/version.h>
#include "device.h"
#include "dvbspu.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 {
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, fd_stc;
protected:
virtual void MakePrimaryDevice(bool On);
public:
cDvbDevice(int n);
virtual ~cDvbDevice();
virtual bool Ready(void);
virtual int ProvidesCa(const cChannel *Channel) const;
virtual bool HasDecoder(void) const;
// SPU facilities
private:
cDvbSpuDecoder *spuDecoder;
public:
virtual cSpuDecoder *GetSpuDecoder(void);
// Channel facilities
private:
cDvbTuner *dvbTuner;
void TurnOffLiveMode(bool LiveView);
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);
public:
virtual bool HasLock(int TimeoutMs = 0);
// PID handle facilities
private:
bool SetAudioBypass(bool On);
protected:
virtual bool SetPid(cPidHandle *Handle, int Type, bool On);
// Section filter facilities
protected:
virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask);
// 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);
// Track facilities
protected:
virtual void SetAudioTrackDevice(eTrackType Type);
// Audio facilities
private:
bool digitalAudio;
static bool setTransferModeForDolbyDigital;
protected:
virtual int GetAudioChannelDevice(void);
virtual void SetAudioChannelDevice(int AudioChannel);
virtual void SetVolumeDevice(int Volume);
virtual void SetDigitalAudioDevice(bool On);
public:
static void SetTransferModeForDolbyDigital(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);
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);
// Receiver facilities
private:
cTSBuffer *tsBuffer;
protected:
virtual bool OpenDvr(void);
virtual void CloseDvr(void);
virtual bool GetTSPacket(uchar *&Data);
};
#endif //__DVBDEVICE_H