Text field in the ButtonPanel to show current time offset in seconds.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2507 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/ButtonPanel.java b/java/src/com/tightvnc/rfbplayer/ButtonPanel.java
index e7cabb5..62fa88b 100644
--- a/java/src/com/tightvnc/rfbplayer/ButtonPanel.java
+++ b/java/src/com/tightvnc/rfbplayer/ButtonPanel.java
@@ -26,6 +26,9 @@
   protected RfbPlayer player;
   protected Button playButton;
   protected Button pauseButton;
+  protected TextField posText;
+
+  protected int lastPos = -1;
 
   ButtonPanel(RfbPlayer player) {
     this.player = player;
@@ -41,6 +44,10 @@
     pauseButton.setEnabled(false);
     add(pauseButton);
     pauseButton.addActionListener(this);
+
+    posText = new TextField(4);
+    posText.setEditable(false);
+    add(posText);
   }
 
   public void setMode(int mode) {
@@ -68,6 +75,19 @@
     player.setMode(mode);
   }
 
+  public void setPos(int pos) {
+    if (pos != lastPos) {
+      lastPos = pos;
+      char[] zeroes = {'0', '0', '0', '0'};
+      String text = String.valueOf(pos);
+      if (text.length() < 4) {
+	text = new String(zeroes, 0, 4 - text.length()) + text;
+      }
+      posText.setText(text);
+      posText.setCaretPosition(text.length());
+    }
+  }
+
   //
   // Event processing.
   //
diff --git a/java/src/com/tightvnc/rfbplayer/FbsInputStream.java b/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
index fab854b..59418d9 100644
--- a/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
+++ b/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
@@ -101,6 +101,11 @@
   // Methods providing additional functionality.
   //
 
+  public int getPos()
+  {
+    return (int)(timeOffset / 1000);
+  }
+
   public void resumeReading()
   {
     startTime = System.currentTimeMillis() - timeOffset;
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index 58d4d64..741736e 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -194,6 +194,10 @@
     }
   }
 
+  public void updatePos() {
+    buttonPanel.setPos(fbsStream.getPos());
+  }
+
   //
   // readParameters() - read parameters from the html source or from the
   // command line.  On the command line, the arguments are just a sequence of
diff --git a/java/src/com/tightvnc/rfbplayer/VncCanvas.java b/java/src/com/tightvnc/rfbplayer/VncCanvas.java
index 58d24de..f421df5 100644
--- a/java/src/com/tightvnc/rfbplayer/VncCanvas.java
+++ b/java/src/com/tightvnc/rfbplayer/VncCanvas.java
@@ -208,6 +208,8 @@
     zlibInflater = new Inflater();
     tightInflaters = new Inflater[4];
 
+    player.updatePos();
+
     // Main dispatch loop.
 
     while (true) {
@@ -482,6 +484,8 @@
 	throw new IOException("Unknown RFB message type " + msgType);
       }
 
+      player.updatePos();
+
       if (player.getMode() == player.MODE_STOPPED) {
 	throw new EOFException("Playback stopped");
       }