Added support for new "Position" parameter.
Fixed a NullPointerException with "Show Controls"="no".
Documented all supported parameters.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2512 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index 099148b..0d87006 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -59,6 +59,7 @@
VncCanvas vc;
String sessionURL;
+ long initialTimeOffset;
boolean showControls;
int deferScreenUpdates;
@@ -158,9 +159,11 @@
while (true) {
try {
- buttonPanel.setPaused(true);
+ setPaused(true);
+ fbsStream.setTimeOffset(initialTimeOffset);
vc.processNormalProtocol();
} catch (EOFException e) {
+ initialTimeOffset = 0;
fbsStream.close();
fbsStream = new FbsInputStream(url.openStream());
rfb.newInputStream(fbsStream);
@@ -177,6 +180,8 @@
}
public void setPaused(boolean paused) {
+ if (showControls)
+ buttonPanel.setPaused(paused);
if (fbsStream != null) {
if (paused) {
fbsStream.pausePlayback();
@@ -191,7 +196,8 @@
}
public void updatePos() {
- buttonPanel.setPos((int)(fbsStream.getTimeOffset() / 1000));
+ if (showControls)
+ buttonPanel.setPos((int)(fbsStream.getTimeOffset() / 1000));
}
//
@@ -204,6 +210,7 @@
public void readParameters() {
sessionURL = readParameter("URL", true);
+ initialTimeOffset = readLongParameter("Position", 0);
showControls = true;
String str = readParameter("Show Controls", false);
@@ -217,7 +224,9 @@
}
// Fine tuning options.
- deferScreenUpdates = readIntParameter("Defer screen updates", 20);
+ deferScreenUpdates = (int)readLongParameter("Defer screen updates", 20);
+ if (deferScreenUpdates < 0)
+ deferScreenUpdates = 0; // Just in case.
}
public String readParameter(String name, boolean required) {
@@ -247,12 +256,12 @@
return null;
}
- int readIntParameter(String name, int defaultValue) {
+ long readLongParameter(String name, long defaultValue) {
String str = readParameter(name, false);
- int result = defaultValue;
+ long result = defaultValue;
if (str != null) {
try {
- result = Integer.parseInt(str);
+ result = Long.parseLong(str);
} catch (NumberFormatException e) { }
}
return result;