]> source.dussan.org Git - tigervnc.git/commitdiff
Improved RfbPlayer implementation.
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Wed, 9 Feb 2005 16:34:51 +0000 (16:34 +0000)
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Wed, 9 Feb 2005 16:34:51 +0000 (16:34 +0000)
The reading thread must resume playback itself when destoying.

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

rfbplayer/rfbSessionReader.h
rfbplayer/rfbplayer.cxx

index f42a9eee0aa1ef66129b84b9c69b103d8610b07c..acf91880b3563bad11803c22cad325510f2cafcf 100644 (file)
@@ -35,6 +35,7 @@ public:
   }
 
   virtual Thread* join() {
+    ((FbsInputStream*)(rfbSession->getInStream()))->resumePlayback();
     fStop = true;
     return Thread::join();
   }
index 60c1c3be3e06fcb5f92a9c1d2a4e1f226401b01f..ad0607faea9d66f8f1a90780ecfda271fb17fd58 100644 (file)
@@ -93,9 +93,6 @@ LRESULT CALLBACK RfbPlayerProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
     SetWindowLong(hwnd, GWL_USERDATA, (long)((CREATESTRUCT*)lParam)->lpCreateParams);
   else if (msg == WM_DESTROY) {
     RfbPlayer* _this = (RfbPlayer*) GetWindowLong(hwnd, GWL_USERDATA);
-
-    // Resume playback (It's need to quit from FbsInputStream::waitWhilePaused())
-    _this->setPaused(false);
     SetWindowLong(hwnd, GWL_USERDATA, 0);
   }
   RfbPlayer* _this = (RfbPlayer*) GetWindowLong(hwnd, GWL_USERDATA);
@@ -362,7 +359,6 @@ RfbPlayer::processMainMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
       }
       break;
     case ID_EXIT:
-      if (is) is->resumePlayback();
       PostQuitMessage(0);
       break;
     case ID_HELP_COMMANDLINESWITCHES:
@@ -906,8 +902,8 @@ void RfbPlayer::openSessionFile(char *_fileName) {
 
   // Close the previous reading thread
   if (rfbReader) {
-    is->resumePlayback();
     delete rfbReader->join();
+    rfbReader = 0;
   }
   blankBuffer();
   newSession(fileName);