Seeking backwards has been implemented.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2522 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index c2fa6f6..3256804 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -161,12 +161,21 @@
try {
setPaused(!autoPlay);
rfb.fbs.setSpeed(playbackSpeed);
- setPos(initialTimeOffset);
+ if (initialTimeOffset > rfb.fbs.getTimeOffset())
+ setPos(initialTimeOffset); // don't seek backwards here
vc.processNormalProtocol();
} catch (EOFException e) {
- initialTimeOffset = 0;
- autoPlay = false;
- rfb.newSession(url);
+ if (e.getMessage() != null && e.getMessage().equals("[REWIND]")) {
+ // A special type of EOFException allowing us to seek backwards.
+ initialTimeOffset = rfb.fbs.getSeekOffset();
+ autoPlay = !rfb.fbs.isPaused();
+ rfb.newSession(url);
+ } else {
+ // Return to the beginning after the playback is finished.
+ initialTimeOffset = 0;
+ autoPlay = false;
+ rfb.newSession(url);
+ }
}
}