Code re-organization to make it easier implement backward seeking.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2515 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index a47220a..4a60016 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -49,8 +49,6 @@
RfbProto rfb;
Thread rfbThread;
- FbsInputStream fbsStream;
-
Frame vncFrame;
Container vncContainer;
ScrollPane desktopScrollPane;
@@ -121,8 +119,7 @@
try {
URL url = new URL(sessionURL);
- fbsStream = new FbsInputStream(url.openStream());
- rfb = new RfbProto(fbsStream);
+ rfb = new RfbProto(url);
vc = new VncCanvas(this);
gbc.weightx = 1.0;
@@ -161,14 +158,12 @@
while (true) {
try {
setPaused(true);
- fbsStream.setTimeOffset(initialTimeOffset);
- fbsStream.setSpeed(playbackSpeed);
+ rfb.fbs.setTimeOffset(initialTimeOffset);
+ rfb.fbs.setSpeed(playbackSpeed);
vc.processNormalProtocol();
} catch (EOFException e) {
initialTimeOffset = 0;
- fbsStream.close();
- fbsStream = new FbsInputStream(url.openStream());
- rfb.newInputStream(fbsStream);
+ rfb.newSession(url);
}
}
@@ -184,12 +179,10 @@
public void setPaused(boolean paused) {
if (showControls)
buttonPanel.setPaused(paused);
- if (fbsStream != null) {
- if (paused) {
- fbsStream.pausePlayback();
- } else {
- fbsStream.resumePlayback();
- }
+ if (paused) {
+ rfb.fbs.pausePlayback();
+ } else {
+ rfb.fbs.resumePlayback();
}
}
@@ -199,17 +192,17 @@
public void setSpeed(double speed) {
playbackSpeed = speed;
- fbsStream.setSpeed(speed);
+ rfb.fbs.setSpeed(speed);
}
public void setPos(int pos) {
- fbsStream.setTimeOffset(pos * 1000);
+ rfb.fbs.setTimeOffset(pos * 1000);
}
public void updatePos() {
if (showControls)
- buttonPanel.setPos((int)(fbsStream.getTimeOffset() / 1000));
+ buttonPanel.setPos((int)(rfb.fbs.getTimeOffset() / 1000));
}
//
diff --git a/java/src/com/tightvnc/rfbplayer/RfbProto.java b/java/src/com/tightvnc/rfbplayer/RfbProto.java
index 4cada13..2faf66c 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbProto.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbProto.java
@@ -27,7 +27,7 @@
import java.io.*;
import java.awt.*;
import java.awt.event.*;
-import java.net.Socket;
+import java.net.*;
class RfbProto {
@@ -73,6 +73,7 @@
final static int TightMinToCompress = 12;
+ FbsInputStream fbs;
DataInputStream is;
@@ -80,12 +81,16 @@
// Constructor.
//
- RfbProto(InputStream is) throws Exception {
- newInputStream(is);
+ RfbProto(URL url) throws Exception {
+ fbs = null;
+ newSession(url);
}
- public void newInputStream(InputStream is) throws Exception {
- this.is = new DataInputStream(is);
+ public void newSession(URL url) throws Exception {
+ if (fbs != null)
+ fbs.close();
+ fbs = new FbsInputStream(url.openStream());
+ is = new DataInputStream(fbs);
readVersionMsg();
if (readAuthScheme() != NoAuth) {
diff --git a/java/src/com/tightvnc/rfbplayer/VncCanvas.java b/java/src/com/tightvnc/rfbplayer/VncCanvas.java
index 6332532..b87763e 100644
--- a/java/src/com/tightvnc/rfbplayer/VncCanvas.java
+++ b/java/src/com/tightvnc/rfbplayer/VncCanvas.java
@@ -815,7 +815,7 @@
//
void scheduleRepaint(int x, int y, int w, int h) {
- if (player.fbsStream.isSeeking()) {
+ if (rfb.fbs.isSeeking()) {
// Do nothing, and remember we are seeking.
seekMode = true;
} else {