diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-07-21 18:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-07-21 18:00:00 +0200 |
commit | a4112a96a67dbeb1cd6a63d2b4fa4b837462f467 (patch) | |
tree | 5542f0478dbba7715da703b2864fbfda640d6612 /dvbplayer.c | |
parent | 54d069c95c546d6b12f6effc1af7a0274b7c31e4 (diff) | |
download | vdr-patch-lnbsharing-a4112a96a67dbeb1cd6a63d2b4fa4b837462f467.tar.gz vdr-patch-lnbsharing-a4112a96a67dbeb1cd6a63d2b4fa4b837462f467.tar.bz2 |
Version 1.1.5vdr-1.1.5
- Added direct access to the index data of cPalette (needed for displaying SPUs,
thanks to Andreas Schultz).
- The status monitor function cStatus::Replaying() now gets a 'cControl *' argument instead
of a 'cDvbPlayerControl *' in order to allow additional players to call this function.
cPlayer and cControl have been given the functions GetIndex() and GetReplayMode() to
allow access to the player's status.
- Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs).
- Changed the symantics of the Name parameter in cStatus::Recording() and
cStatus::Replaying(). It is no longer the full directory name of the recording,
but rather just the basic name. This has been changed to allow players that can't
provide a name to simply use a string that describes the player type (like, e.g.,
"DVD").
- Fixed a hangup when switching to the next file during replay.
- Fixed a possible race condition in the cDvbPlayer (thanks to Andreas Schultz
for pointing out this one).
- Disabled channels on Transponder 12070 in 'channels.conf', which apparently no longer transmits.
Diffstat (limited to 'dvbplayer.c')
-rw-r--r-- | dvbplayer.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/dvbplayer.c b/dvbplayer.c index 9ea8eb1..af6b28d 100644 --- a/dvbplayer.c +++ b/dvbplayer.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbplayer.c 1.4 2002/06/23 10:52:51 kls Exp $ + * $Id: dvbplayer.c 1.7 2002/07/14 14:30:36 kls Exp $ */ #include "dvbplayer.h" @@ -116,8 +116,8 @@ public: int SkipFrames(int Frames); void SkipSeconds(int Seconds); void Goto(int Position, bool Still = false); - void GetIndex(int &Current, int &Total, bool SnapToIFrame = false); - bool GetReplayMode(bool &Play, bool &Forward, int &Speed); + virtual bool GetIndex(int &Current, int &Total, bool SnapToIFrame = false); + virtual bool GetReplayMode(bool &Play, bool &Forward, int &Speed); }; #define MAX_VIDEO_SLOWMOTION 63 // max. arg to pass to VIDEO_SLOWMOTION // TODO is this value correct? @@ -132,7 +132,7 @@ cDvbPlayer::cDvbPlayer(const char *FileName) backTrace = NULL; index = NULL; eof = false; - active = false; + active = true; playMode = pmPlay; playDir = pdForward; trickSpeed = NORMAL_SPEED; @@ -292,7 +292,6 @@ void cDvbPlayer::Activate(bool On) void cDvbPlayer::Action(void) { - active = true; dsyslog("dvbplayer thread started (pid=%d)", getpid()); uchar b[MAXFRAMESIZE]; @@ -310,6 +309,7 @@ void cDvbPlayer::Action(void) isyslog("resuming replay at index %d (%s)", readIndex, IndexToHMSF(readIndex, true)); while (active && NextFile()) { + pfd[1].fd = replayFile; // NextFile() may have returned a new file handle! { LOCK_THREAD; @@ -593,7 +593,7 @@ void cDvbPlayer::Goto(int Index, bool Still) } } -void cDvbPlayer::GetIndex(int &Current, int &Total, bool SnapToIFrame) +bool cDvbPlayer::GetIndex(int &Current, int &Total, bool SnapToIFrame) { if (index) { if (playMode == pmStill) @@ -607,9 +607,10 @@ void cDvbPlayer::GetIndex(int &Current, int &Total, bool SnapToIFrame) } } Total = index->Last(); + return true; } - else - Current = Total = -1; + Current = Total = -1; + return false; } bool cDvbPlayer::GetReplayMode(bool &Play, bool &Forward, int &Speed) |