Changes in architecture to support pausing in the FbsInputStream
instead of using VncCanvas for that. RfbPlayer does not need to
remember current state any more. Play/Stop button removed. Added a
field to set playback speed, non-working yet.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2509 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index 16b3889..099148b 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -49,11 +49,6 @@
   RfbProto rfb;
   Thread rfbThread;
 
-  public static final int MODE_STOPPED  = 0;
-  public static final int MODE_PLAYBACK = 1;
-  public static final int MODE_PAUSED   = 2;
-  protected int mode;
-
   FbsInputStream fbsStream;
 
   Frame vncFrame;
@@ -163,7 +158,7 @@
 
       while (true) {
 	try {
-	  buttonPanel.setMode(MODE_STOPPED);
+	  buttonPanel.setPaused(true);
 	  vc.processNormalProtocol();
 	} catch (EOFException e) {
 	  fbsStream.close();
@@ -181,25 +176,22 @@
     
   }
 
-  public int getMode() {
-    return mode;
-  }
-
-  public void setMode(int mode) {
-    this.mode = mode;
-    if (vc != null) {
-      synchronized(vc) {
-	vc.notify();
+  public void setPaused(boolean paused) {
+    if (fbsStream != null) {
+      if (paused) {
+	fbsStream.pausePlayback();
+      } else {
+	fbsStream.resumePlayback();
       }
     }
   }
 
   public void setPos(int pos) {
-    fbsStream.setPos(pos);
+    fbsStream.setTimeOffset(pos * 1000);
   }
 
   public void updatePos() {
-    buttonPanel.setPos(fbsStream.getPos());
+    buttonPanel.setPos((int)(fbsStream.getTimeOffset() / 1000));
   }
 
   //