diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-08-04 18:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-08-04 18:00:00 +0200 |
commit | 527748826c8d3cfacff8a7ab3fda9551c1182590 (patch) | |
tree | 4e753aa85bc11b44e078809b643b7e5d6be5fdd9 /dvbplayer.c | |
parent | a4112a96a67dbeb1cd6a63d2b4fa4b837462f467 (diff) | |
download | vdr-patch-lnbsharing-527748826c8d3cfacff8a7ab3fda9551c1182590.tar.gz vdr-patch-lnbsharing-527748826c8d3cfacff8a7ab3fda9551c1182590.tar.bz2 |
Version 1.1.6vdr-1.1.6
- Re-visited the race condition fix in the cDvbPlayer (thanks again to Andreas
Schultz).
- Changed the VFAT handling to allow users who normally use it but have forgotten
to set it when compiling a new version of VDR to at least see their recordings
made with VFAT enabled (thanks to Christian Rienecker).
- Added some missing teletext PIDs (thanks to Joerg Riechardt).
- Fixed PID handling for cReceiver.
- Added a missing #include to ringbuffer.c (thanks to Martin Hammerschmid).
- Now using CC, CFLAGS, CXX and CXXFLAGS in Makefile.
- Changed the cDevice class to allow plugins to implement their own devices (see
PLUGINS.html for details).
Diffstat (limited to 'dvbplayer.c')
-rw-r--r-- | dvbplayer.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/dvbplayer.c b/dvbplayer.c index af6b28d..1b608dd 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.7 2002/07/14 14:30:36 kls Exp $ + * $Id: dvbplayer.c 1.8 2002/07/27 11:57:48 kls Exp $ */ #include "dvbplayer.h" @@ -90,6 +90,7 @@ private: int replayFile; bool eof; bool active; + bool running; ePlayModes playMode; ePlayDirs playDir; int trickSpeed; @@ -133,6 +134,7 @@ cDvbPlayer::cDvbPlayer(const char *FileName) index = NULL; eof = false; active = true; + running = false; playMode = pmPlay; playDir = pdForward; trickSpeed = NORMAL_SPEED; @@ -285,8 +287,9 @@ void cDvbPlayer::Activate(bool On) Start(); } else if (active) { - active = false; + running = false; Cancel(3); + active = false; } } @@ -308,7 +311,8 @@ void cDvbPlayer::Action(void) if (readIndex >= 0) isyslog("resuming replay at index %d (%s)", readIndex, IndexToHMSF(readIndex, true)); - while (active && NextFile()) { + running = true; + while (running && NextFile()) { pfd[1].fd = replayFile; // NextFile() may have returned a new file handle! { LOCK_THREAD; @@ -414,9 +418,9 @@ void cDvbPlayer::Action(void) break; } } + active = running = false; dsyslog("dvbplayer thread ended (pid=%d)", getpid()); - active = false; } void cDvbPlayer::Pause(void) |