Added rfbSessionReader class to RfbPlayer class.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@134 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfbplayer/rfbSessionReader.h b/rfbplayer/rfbSessionReader.h
index 90c0672..06941b1 100644
--- a/rfbplayer/rfbSessionReader.h
+++ b/rfbplayer/rfbSessionReader.h
@@ -16,7 +16,7 @@
* USA.
*/
-// -=- RfbProto.h
+// -=- rfbSessionReader.h
#include <rfb/Threading.h>
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index 0993654..41f36ca 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -203,7 +203,7 @@
autoplay(_autoplay), showControls(_showControls), buffer(0), client_size(0, 0, 32, 32),
window_size(0, 0, 32, 32), cutText(0), seekMode(false), fileName(_fileName),
serverInitTime(0), lastPos(0), timeStatic(0), speedEdit(0), speedTrackBar(0),
- speedUpDown(0), acceptBell(_acceptBell) {
+ speedUpDown(0), acceptBell(_acceptBell), rfbReader(0) {
if (showControls)
CTRL_BAR_HEIGHT = 28;
@@ -229,6 +229,11 @@
RfbPlayer::~RfbPlayer() {
vlog.debug("~RfbPlayer");
+ if (rfbReader) {
+ rfbReader->stop();
+ delete rfbReader->join();
+ rfbReader = 0;
+ }
if (mainHwnd) {
setVisible(false);
DestroyWindow(mainHwnd);
diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h
index 04a14ee..062c715 100644
--- a/rfbplayer/rfbplayer.h
+++ b/rfbplayer/rfbplayer.h
@@ -22,8 +22,9 @@
#include <rfb_win32/DIBSectionBuffer.h>
-#include <rfbplayer/RfbProto.h>
+//#include <rfbplayer/RfbProto.h>
#include <rfbplayer/ToolBar.h>
+#include <rfbplayer/rfbSessionReader.h>
using namespace rfb;
using namespace rfb::win32;
@@ -135,6 +136,8 @@
int CTRL_BAR_HEIGHT;
protected:
+ // rfbReader is a class which used to reading the rfb data from the file
+ rfbSessionReader *rfbReader;
// Returns true if part of the supplied rect is visible, false otherwise
bool invalidateBufferRect(const Rect& crect);