From 3104aec02b8c40fee1e1f0e6607c4789ec717e26 Mon Sep 17 00:00:00 2001 From: george82 Date: Mon, 21 Feb 2005 13:20:56 +0000 Subject: [PATCH] Fixed bug with jumping to the initTime position if -pos command-line parameter was set. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@207 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- rfbplayer/rfbplayer.cxx | 20 ++++++++------------ rfbplayer/rfbplayer.h | 1 - 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx index 65c268ed..3286ccc7 100644 --- a/rfbplayer/rfbplayer.cxx +++ b/rfbplayer/rfbplayer.cxx @@ -223,10 +223,10 @@ RfbPlayer::RfbPlayer(char *_fileName, int _depth = DEPTH_AUTO, : RfbProto(_fileName), colourDepth(_depth), initTime(_initTime), playbackSpeed(_playbackSpeed), autoplay(_autoplay), buffer(0), client_size(0, 0, 32, 32), window_size(0, 0, 32, 32), cutText(0), - seekMode(false), fileName(_fileName), serverInitTime(0), lastPos(0), - timeStatic(0), speedEdit(0), posTrackBar(0), speedUpDown(0), - acceptBell(_acceptBell), rfbReader(0), sessionTimeMs(0), - sliderDraging(false), sliderStepMs(0), loopPlayback(false) { + seekMode(false), fileName(_fileName), lastPos(0), timeStatic(0), + speedEdit(0), posTrackBar(0), speedUpDown(0), acceptBell(_acceptBell), + rfbReader(0), sessionTimeMs(0), sliderDraging(false), sliderStepMs(0), + loopPlayback(false) { CTRL_BAR_HEIGHT = 28; @@ -822,10 +822,10 @@ void RfbPlayer::processMsg() { // It's a special exception to perform backward seeking. // We only rewind the stream and seek the offset if (strcmp(e.str(), "[REWIND]") == 0) { - long initTime = getSeekOffset(); + long seekOffset = getSeekOffset(); rewind(); - setPos(initTime); - updatePos(getTimeOffset()); + setPos(seekOffset); + updatePos(seekOffset); } else { MessageBox(getMainHandle(), e.str(), e.type(), MB_OK | MB_ICONERROR); return; @@ -836,9 +836,6 @@ void RfbPlayer::processMsg() { void RfbPlayer::serverInit() { RfbProto::serverInit(); - // Save the server init time for using in setPos() - serverInitTime = getTimeOffset() / getSpeed(); - // Resize the backing buffer buffer->setSize(cp.width, cp.height); @@ -1062,7 +1059,6 @@ void RfbPlayer::setSpeed(double speed) { if (speed > 0) { char speedStr[20] = "\0"; double newSpeed = min(speed, MAX_SPEED); - serverInitTime = serverInitTime * getSpeed() / newSpeed; is->setSpeed(newSpeed); playbackSpeed = newSpeed; SendMessage(speedUpDown, UDM_SETPOS, @@ -1077,7 +1073,7 @@ double RfbPlayer::getSpeed() { } void RfbPlayer::setPos(long pos) { - is->setTimeOffset(max(pos, serverInitTime)); + is->setTimeOffset(max(pos, 0)); } long RfbPlayer::getSeekOffset() { diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h index 070cd9d9..e148f146 100644 --- a/rfbplayer/rfbplayer.h +++ b/rfbplayer/rfbplayer.h @@ -173,7 +173,6 @@ class RfbPlayer : public RfbProto { int colourDepth; double playbackSpeed; long initTime; - long serverInitTime; bool acceptBell; long sessionTimeMs; bool loopPlayback; -- 2.39.5