diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2003-11-07 14:16:25 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2003-11-07 14:16:25 +0100 |
commit | 85767a54058ac2de21a51fe58c33fbd1c5bb4628 (patch) | |
tree | 4cd157a7f1bf004447bb4a5ea479eaa86603c81e | |
parent | 2a7467aed5a0b96e64bc5e7493c96d89583d3a6d (diff) | |
download | vdr-85767a54058ac2de21a51fe58c33fbd1c5bb4628.tar.gz vdr-85767a54058ac2de21a51fe58c33fbd1c5bb4628.tar.bz2 |
Added cDevice::GetSTC()
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 4 | ||||
-rw-r--r-- | PLUGINS.html | 9 | ||||
-rw-r--r-- | device.c | 7 | ||||
-rw-r--r-- | device.h | 6 | ||||
-rw-r--r-- | dvbdevice.c | 17 | ||||
-rw-r--r-- | dvbdevice.h | 5 |
7 files changed, 43 insertions, 6 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 1b183a96..e87075ee 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -612,6 +612,7 @@ Thomas Sailer <sailer@scs.ch> Sven Goethel <sgoethel@jausoft.com> for making switching audio channels work without stopping/restarting the DMX for fixing initializing the highlight area in cDvbSpuDecoder + for suggesting to add cDevice::GetSTC() Jan Rieger <jan@ricomp.de> for suggestions and testing raw keyboard input @@ -2452,6 +2452,10 @@ Video Disk Recorder Revision History - Added missing 'const' to some cChannel member functions (thanks to Torsten Herz). +2003-11-07: Version 1.2.6pre5 + +- Added cDevice::GetSTC() (suggested by Sven Goethel). + 2003-10-24: Version 1.3.0 - Changed thread handling to make it work with NPTL ("Native Posix Thread Library"). diff --git a/PLUGINS.html b/PLUGINS.html index 913a9914..95ba5d79 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -6,7 +6,7 @@ <center><h1>The VDR Plugin System</h1></center> -<center><b>Version 1.2</b></center> +<center><b>Version 1.2.6</b></center> <p> <center> Copyright © 2003 Klaus Schmidinger<br> @@ -14,6 +14,10 @@ Copyright © 2003 Klaus Schmidinger<br> <a href="http://www.cadsoft.de/vdr">www.cadsoft.de/vdr</a> </center> <p> +<!--X1.1.32--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%> +Important modifications introduced in version 1.2.6 are marked like this. +<!--X1.1.32--></td></tr></table> +<p> VDR provides an easy to use plugin interface that allows additional functionality to be added to the program by implementing a dynamically loadable library file. This interface allows programmers to develop additional functionality for VDR completely @@ -1318,6 +1322,9 @@ The functions to implement replaying capabilites are virtual bool HasDecoder(void) const; virtual bool CanReplay(void) const; virtual bool SetPlayMode(ePlayMode PlayMode); +<!--X1.1.32--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%> +virtual int64_t GetSTC(void); +<!--X1.1.32--></td></tr></table> virtual void TrickSpeed(int Speed); virtual void Clear(void); virtual void Play(void); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.c 1.48 2003/10/18 12:19:39 kls Exp $ + * $Id: device.c 1.49 2003/11/07 14:15:10 kls Exp $ */ #include "device.h" @@ -500,6 +500,11 @@ bool cDevice::SetPlayMode(ePlayMode PlayMode) return false; } +int64_t cDevice::GetSTC(void) +{ + return -1; +} + void cDevice::TrickSpeed(int Speed) { } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.h 1.34 2003/08/15 13:05:50 kls Exp $ + * $Id: device.h 1.35 2003/11/07 13:15:45 kls Exp $ */ #ifndef __DEVICE_H @@ -320,6 +320,10 @@ protected: ///< Sets the device into the given play mode. ///< \return true if the operation was successful. public: + virtual int64_t GetSTC(void); + ///< Gets the current System Time Counter, which can be used to + ///< synchronize audio and video. If this device is unable to + ///< provide the STC, -1 will be returned. virtual void TrickSpeed(int Speed); ///< Sets the device into a mode where replay is done slower. ///< Every single frame shall then be displayed the given number of diff --git a/dvbdevice.c b/dvbdevice.c index b6d96b2c..953d2787 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 1.70 2003/10/24 15:45:15 kls Exp $ + * $Id: dvbdevice.c 1.71 2003/11/07 14:16:25 kls Exp $ */ #include "dvbdevice.h" @@ -325,6 +325,7 @@ cDvbDevice::cDvbDevice(int n) fd_osd = DvbOpen(DEV_DVB_OSD, n, O_RDWR); fd_video = DvbOpen(DEV_DVB_VIDEO, n, O_RDWR | O_NONBLOCK); fd_audio = DvbOpen(DEV_DVB_AUDIO, n, O_RDWR | O_NONBLOCK); + fd_stc = DvbOpen(DEV_DVB_DEMUX, n, O_RDWR); // The DVR device (will be opened and closed as needed): @@ -868,6 +869,20 @@ bool cDvbDevice::SetPlayMode(ePlayMode PlayMode) return true; } +int64_t cDvbDevice::GetSTC(void) +{ + if (fd_stc >= 0) { + struct dmx_stc stc; + stc.num = 0; + if (ioctl(fd_stc, DMX_GET_STC, &stc) == -1) { + esyslog("ERROR: stc %d: %m", CardIndex() + 1); + return -1; + } + return stc.stc / stc.base; + } + return -1; +} + void cDvbDevice::TrickSpeed(int Speed) { if (fd_video >= 0) diff --git a/dvbdevice.h b/dvbdevice.h index 78df221b..56f1c2b1 100644 --- a/dvbdevice.h +++ b/dvbdevice.h @@ -4,7 +4,7 @@ * 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 $ + * $Id: dvbdevice.h 1.24 2003/11/07 13:17:13 kls Exp $ */ #ifndef __DVBDEVICE_H @@ -38,7 +38,7 @@ public: ///< \return True if any devices are available. private: fe_type_t frontendType; - int fd_osd, fd_audio, fd_video, fd_dvr; + int fd_osd, fd_audio, fd_video, fd_dvr, fd_stc; int OsdDeviceHandle(void) const { return fd_osd; } protected: virtual void MakePrimaryDevice(bool On); @@ -107,6 +107,7 @@ protected: virtual bool CanReplay(void) const; virtual bool SetPlayMode(ePlayMode PlayMode); public: + virtual int64_t GetSTC(void); virtual void TrickSpeed(int Speed); virtual void Clear(void); virtual void Play(void); |