]> source.dussan.org Git - tigervnc.git/commitdiff
Added RfbPlayer::openSessionFile().
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Mon, 31 Jan 2005 16:01:02 +0000 (16:01 +0000)
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Mon, 31 Jan 2005 16:01:02 +0000 (16:01 +0000)
It opens the rfb session file and starts reading the data.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@136 3789f03b-4d11-0410-bbf8-ca57d06f2519

rfbplayer/rfbplayer.cxx
rfbplayer/rfbplayer.h

index 627de14589b7ee0ca0fd82ec59d6ee7e32fb0e01..169d716143cf2953cfcd0710f3aa19f9537a9c2b 100644 (file)
@@ -225,6 +225,11 @@ RfbPlayer::RfbPlayer(char *_fileName, long _initTime = 0, double _playbackSpeed
   // Create the backing buffer
   buffer = new win32::DIBSectionBuffer(getFrameHandle());
   setVisible(true);
+  
+  // Open the session file
+  if (fileName) {
+    openSessionFile(fileName);
+  }
 }
 
 RfbPlayer::~RfbPlayer() {
@@ -810,6 +815,21 @@ bool RfbPlayer::invalidateBufferRect(const Rect& crect) {
   return true;
 }
 
+void RfbPlayer::openSessionFile(char *_fileName) {
+  fileName = strDup(_fileName);
+
+  // Close the previous reading thread
+  if (rfbReader) {
+    rfbReader->stop();
+    delete rfbReader->join();
+  }
+  blankBuffer();
+  newSession(fileName);
+  setSpeed(playbackSpeed);
+  rfbReader = new rfbSessionReader(this);
+  rfbReader->start();
+}
+
 void RfbPlayer::setPaused(bool paused) {
   if (paused) {
     is->pausePlayback();
index e40265ec340cb2600038ad0687bbea9cc8a6d2f4..6b717ef9803069b9e8130ce381d586ffa48c17d4 100644 (file)
@@ -110,6 +110,9 @@ class RfbPlayer : public RfbProto {
 
     // -=- Player functions
 
+    // openSessionFile() opens the new session file and starts play it
+    void openSessionFile(char *fileName);
+
     // skipHandshaking() - is implemented to skip the initial handshaking when
     // perform backward seeking OR replaying.
     void skipHandshaking();