]> source.dussan.org Git - tigervnc.git/commitdiff
Text field in the ButtonPanel to show current time offset in seconds.
authorConstantin Kaplinsky <const@tightvnc.com>
Wed, 29 May 2002 00:52:32 +0000 (00:52 +0000)
committerConstantin Kaplinsky <const@tightvnc.com>
Wed, 29 May 2002 00:52:32 +0000 (00:52 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2507 3789f03b-4d11-0410-bbf8-ca57d06f2519

java/src/com/tightvnc/rfbplayer/ButtonPanel.java
java/src/com/tightvnc/rfbplayer/FbsInputStream.java
java/src/com/tightvnc/rfbplayer/RfbPlayer.java
java/src/com/tightvnc/rfbplayer/VncCanvas.java

index e7cabb58259178ce1f32c35437a188a60504ac4e..62fa88b32ede8700e0a9551d3bc770aec627925c 100644 (file)
@@ -26,6 +26,9 @@ class ButtonPanel extends Panel implements ActionListener {
   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 @@ class ButtonPanel extends Panel implements ActionListener {
     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 @@ class ButtonPanel extends Panel implements ActionListener {
     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.
   //
index fab854bef1eaf102f637bbd3da0b7c706196a847..59418d9e51eeb0f50ce96d224237ef9e4ed1141b 100644 (file)
@@ -101,6 +101,11 @@ class FbsInputStream extends InputStream {
   // Methods providing additional functionality.
   //
 
+  public int getPos()
+  {
+    return (int)(timeOffset / 1000);
+  }
+
   public void resumeReading()
   {
     startTime = System.currentTimeMillis() - timeOffset;
index 58d4d640a832ea40d57ed76b94a92667ccd317ed..741736eba028139bfff3b70092cb1f6c4dc7f04a 100644 (file)
@@ -194,6 +194,10 @@ public class RfbPlayer extends java.applet.Applet
     }
   }
 
+  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
index 58d24dea7bc3185c5d7846e6495c4cd7316f9aa9..f421df5979fb4999792f5b5c5bcf38a1f376730b 100644 (file)
@@ -208,6 +208,8 @@ class VncCanvas extends Canvas {
     zlibInflater = new Inflater();
     tightInflaters = new Inflater[4];
 
+    player.updatePos();
+
     // Main dispatch loop.
 
     while (true) {
@@ -482,6 +484,8 @@ class VncCanvas extends Canvas {
        throw new IOException("Unknown RFB message type " + msgType);
       }
 
+      player.updatePos();
+
       if (player.getMode() == player.MODE_STOPPED) {
        throw new EOFException("Playback stopped");
       }