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));
}
//