From 6b87aff956e1cefecdec410c7b9ce9120546fc81 Mon Sep 17 00:00:00 2001 From: george82 Date: Sun, 13 Feb 2005 10:48:21 +0000 Subject: [PATCH] Added RfbPlayer::closeSessionFile(). It closes the session file and update the player state. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@177 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- rfbplayer/rfbplayer.cxx | 44 +++++++++++++++++++++++++++++++++++++++++ rfbplayer/rfbplayer.h | 3 +++ 2 files changed, 47 insertions(+) diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx index 89e9d5dc..6916c63d 100644 --- a/rfbplayer/rfbplayer.cxx +++ b/rfbplayer/rfbplayer.cxx @@ -943,6 +943,50 @@ long RfbPlayer::calculateSessionTime(char *filename) { return 0; } +void RfbPlayer::closeSessionFile() { + char speedStr[10]; + RECT r; + + // Uncheck all toolbar buttons + if (tb.getHandle()) { + tb.checkButton(ID_PLAY, false); + tb.checkButton(ID_PAUSE, false); + tb.checkButton(ID_STOP, false); + } + + // Stop playback and update the player state + disableTBandMenuItems(); + if (rfbReader) { + delete rfbReader->join(); + rfbReader = 0; + delete [] fileName; + fileName = 0; + } + blankBuffer(); + setTitle("None"); + playbackSpeed = 1.0; + SendMessage(speedUpDown, UDM_SETPOS, + 0, MAKELONG((short)(playbackSpeed / 0.5), 0)); + sprintf(speedStr, "%.2f", playbackSpeed); + SetWindowText(speedEdit, speedStr); + SendMessage(posTrackBar, TBM_SETRANGE, TRUE, MAKELONG(0, 0)); + + // Change the player window size and frame size to default + SetWindowPos(getMainHandle(), 0, 0, 0, + DEFAULT_PLAYER_WIDTH, DEFAULT_PLAYER_HEIGHT, + SWP_NOMOVE | SWP_NOZORDER | SWP_FRAMECHANGED); + buffer->setSize(32, 32); + calculateScrollBars(); + + // Update the cached sizing information and repaint the frame window + GetWindowRect(getFrameHandle(), &r); + window_size = Rect(r.left, r.top, r.right, r.bottom); + GetClientRect(getFrameHandle(), &r); + client_size = Rect(r.left, r.top, r.right, r.bottom); + InvalidateRect(getFrameHandle(), 0, TRUE); + UpdateWindow(getFrameHandle()); +} + void RfbPlayer::openSessionFile(char *_fileName) { fileName = strDup(_fileName); diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h index dbf80706..8e08ae22 100644 --- a/rfbplayer/rfbplayer.h +++ b/rfbplayer/rfbplayer.h @@ -115,6 +115,9 @@ class RfbPlayer : public RfbProto { // calculateSessionTime() calculates the full session time in sec long calculateSessionTime(char *fileName); + // closeSessionFile() closes the session file and blanks the frame buffer + void closeSessionFile(); + // openSessionFile() opens the new session file and starts play it void openSessionFile(char *fileName); -- 2.39.5