From 744849128df1318b70349223685d9fce8cf805c5 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 15 Jul 2000 16:07:20 +0200 Subject: Clearing buffer in search forward/back --- HISTORY | 3 ++- dvbapi.c | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/HISTORY b/HISTORY index c67c13b8..6e97495e 100644 --- a/HISTORY +++ b/HISTORY @@ -65,4 +65,5 @@ Video Disk Recorder Revision History work immediately even if there is no actual remote control). - Fixed small bug in dvbapi.c that was causing some channels (many on hotbird) not to be correctly tuned (thanks to Plamen Ganev!). - +- Now clearing the replay buffer in search forward/back, which results in + faster reaction. diff --git a/dvbapi.c b/dvbapi.c index 1f18b8be..d8d2e57a 100644 --- a/dvbapi.c +++ b/dvbapi.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbapi.c 1.12 2000/07/15 13:33:04 kls Exp $ + * $Id: dvbapi.c 1.13 2000/07/15 16:03:13 kls Exp $ */ #include "dvbapi.h" @@ -1569,17 +1569,25 @@ bool cDvbApi::StartReplay(const char *FileName, const char *Title) Buffer->Stop(); break; case dvbPauseReplay: SetReplayMode(Paused ? VID_PLAY_NORMAL : VID_PLAY_PAUSE); Paused = !Paused; + if (FastForward || FastRewind) { + SetReplayMode(VID_PLAY_CLEAR_BUFFER); + Buffer->Clear(); + } FastForward = FastRewind = false; Buffer->SetMode(rmPlay); break; - case dvbFastForward: SetReplayMode(VID_PLAY_NORMAL); + case dvbFastForward: SetReplayMode(VID_PLAY_CLEAR_BUFFER); + SetReplayMode(VID_PLAY_NORMAL); FastForward = !FastForward; FastRewind = Paused = false; + Buffer->Clear(); Buffer->SetMode(FastForward ? rmFastForward : rmPlay); break; - case dvbFastRewind: SetReplayMode(VID_PLAY_NORMAL); + case dvbFastRewind: SetReplayMode(VID_PLAY_CLEAR_BUFFER); + SetReplayMode(VID_PLAY_NORMAL); FastRewind = !FastRewind; FastForward = Paused = false; + Buffer->Clear(); Buffer->SetMode(FastRewind ? rmFastRewind : rmPlay); break; case dvbSkip: { @@ -1592,6 +1600,7 @@ bool cDvbApi::StartReplay(const char *FileName, const char *Title) Buffer->SkipSeconds(Seconds); } } + break; case dvbGetIndex: { int Current, Total; Buffer->GetIndex(Current, Total); -- cgit v1.2.3