From 5c13c669b2684007c473ae4c1aa7a120c10f3d52 Mon Sep 17 00:00:00 2001 From: george82 Date: Thu, 27 Jan 2005 14:48:23 +0000 Subject: [PATCH] Implemented the play, pause, stop button proccessing. Changed some rfbplayer's defines. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@126 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- rfbplayer/resource.h | 35 ++++++++++------------ rfbplayer/rfbplayer.cxx | 64 +++++++++++++++++++++++++++++++++++++---- rfbplayer/rfbplayer.rc | 46 ++++++++++++++--------------- 3 files changed, 97 insertions(+), 48 deletions(-) diff --git a/rfbplayer/resource.h b/rfbplayer/resource.h index f6e935b1..54ab200a 100644 --- a/rfbplayer/resource.h +++ b/rfbplayer/resource.h @@ -6,36 +6,31 @@ #define IDR_MENU 128 #define IDR_ACCELERATOR 131 #define IDB_TOOLBAR 132 -#define ID_FILE_OPENFILE 40011 -#define ID_FILE_CLOSEFILE 40012 -#define ID_FILE_EXIT 40013 -#define ID_VIEW_FULLSCREEN 40014 -#define ID_VIEW_ZOOM_50 40015 -#define ID_VIEW_ZOOM_100 40016 -#define ID_VIEW_ZOOM_200 40017 -#define ID_PLAY_PLAYPAUSE 40018 -#define ID_PLAY_STOP 40019 -#define ID_PLAY_GOTO 40020 -#define ID_PLAY_SETSPEED 40021 -#define ID_PLAY_LOOP 40022 -#define ID_FRAME_COPYTOCLIPBOARD 40023 -#define ID_FRAME_EXTRACT 40024 +#define ID_OPENFILE 40011 +#define ID_CLOSEFILE 40012 +#define ID_EXIT 40013 +#define ID_FULLSCREEN 40014 +#define ID_ZOOM_50 40015 +#define ID_ZOOM_100 40016 +#define ID_ZOOM_200 40017 +#define ID_PLAYPAUSE 40018 +#define ID_STOP 40019 +#define ID_GOTO 40020 +#define ID_SETSPEED 40021 +#define ID_LOOP 40022 +#define ID_COPYTOCLIPBOARD 40023 +#define ID_FRAMEEXTRACT 40024 #define ID_HELP_HOMEPAGE 40025 #define ID_HELP_COMMANDLINESEITCHES 40026 #define ID_HELP_ABOUT 40027 #define ID_OPTIONS 40029 -#define ID_FULLSCREEN 40030 -#define ID_STOP 40031 -#define ID_GOTO 40032 -#define ID_SETSPEED 40033 -#define ID_LOOP 40034 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 133 -#define _APS_NEXT_COMMAND_VALUE 40035 +#define _APS_NEXT_COMMAND_VALUE 40044 #define _APS_NEXT_CONTROL_VALUE 1003 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx index 4fd2d278..bcdd6315 100644 --- a/rfbplayer/rfbplayer.cxx +++ b/rfbplayer/rfbplayer.cxx @@ -241,6 +241,8 @@ RfbPlayer::~RfbPlayer() { LRESULT RfbPlayer::processMainMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + static HMENU hmenu; // handle to main menu + switch (msg) { // -=- Process standard window messages @@ -254,14 +256,60 @@ RfbPlayer::processMainMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) createToolBar(hwnd); + hmenu = GetMenu(hwnd); + return 0; } // Process the main menu and toolbar's messages case WM_COMMAND: - { - + switch (LOWORD(wParam)) { + case ID_PLAY: + setPaused(false); + tb.checkButton(ID_PLAY, true); + tb.checkButton(ID_STOP, false); + tb.checkButton(ID_PAUSE, false); + CheckMenuItem(hmenu, ID_PLAYPAUSE, MF_CHECKED); + CheckMenuItem(hmenu, ID_STOP, MF_UNCHECKED); + break; + case ID_PAUSE: + setPaused(true); + tb.checkButton(ID_PAUSE, true); + tb.checkButton(ID_PLAY, false); + tb.checkButton(ID_STOP, false); + CheckMenuItem(hmenu, ID_PLAYPAUSE, MF_CHECKED); + CheckMenuItem(hmenu, ID_STOP, MF_UNCHECKED); + break; + case ID_STOP: + if (getTimeOffset() != 0) { + setPaused(true); + setPos(0); + } + tb.checkButton(ID_STOP, true); + tb.checkButton(ID_PLAY, false); + tb.checkButton(ID_PAUSE, false); + CheckMenuItem(hmenu, ID_STOP, MF_CHECKED); + CheckMenuItem(hmenu, ID_PLAYPAUSE, MF_UNCHECKED); + break; + case ID_PLAYPAUSE: + if (isPaused()) { + setPaused(false); + tb.checkButton(ID_PLAY, true); + tb.checkButton(ID_STOP, false); + tb.checkButton(ID_PAUSE, false); + } else { + setPaused(true); + tb.checkButton(ID_PAUSE, true); + tb.checkButton(ID_PLAY, false); + tb.checkButton(ID_STOP, false); + } + CheckMenuItem(hmenu, ID_PLAYPAUSE, MF_CHECKED); + CheckMenuItem(hmenu, ID_STOP, MF_UNCHECKED); + break; + case ID_FULLSCREEN: + MessageBox(getMainHandle(), "It is not working yet!", "RfbPlayer", MB_OK); + break; } break; @@ -400,6 +448,12 @@ void RfbPlayer::run() { long initTime = -1; long update_time = GetTickCount(); + // Check the play button if autoplay + if (autoplay) { + tb.checkButton(ID_PLAY, true); + CheckMenuItem(GetMenu(getMainHandle()), ID_PLAYPAUSE, MF_CHECKED); + } + // Process the rfb messages while (fRun) { try { @@ -416,6 +470,9 @@ void RfbPlayer::run() { if (strcmp(e.str(), "[End Of File]") == 0) { rewind(); setPaused(true); + tb.checkButton(ID_STOP, true); + tb.checkButton(ID_PAUSE, false); + tb.checkButton(ID_PLAY, false); continue; } // It's a special exception to perform backward seeking. @@ -652,9 +709,6 @@ void RfbPlayer::serverInit() { // Set the window title and show it setTitle(cp.name()); - - // Set the player's param - applyOptions(); } void RfbPlayer::setColourMapEntries(int first, int count, U16* rgbs) { diff --git a/rfbplayer/rfbplayer.rc b/rfbplayer/rfbplayer.rc index e349cf8b..8ac1ea3c 100644 --- a/rfbplayer/rfbplayer.rc +++ b/rfbplayer/rfbplayer.rc @@ -123,24 +123,24 @@ IDR_MENU MENU DISCARDABLE BEGIN POPUP "File" BEGIN - MENUITEM "Open File...\tCtrl+O", ID_FILE_OPENFILE - MENUITEM "Close File...\tCtrl+Q", ID_FILE_CLOSEFILE + MENUITEM "Open File...\tCtrl+O", ID_OPENFILE + MENUITEM "Close File...\tCtrl+Q", ID_CLOSEFILE MENUITEM SEPARATOR - MENUITEM "Exit\tAlt+X", ID_FILE_EXIT + MENUITEM "Exit\tAlt+X", ID_EXIT END POPUP "View" BEGIN MENUITEM "Full Screen\tAlt+Enter", ID_FULLSCREEN POPUP "Zoom" BEGIN - MENUITEM "50%\tF5", ID_VIEW_ZOOM_50 - MENUITEM "100%\tF6", ID_VIEW_ZOOM_100 - MENUITEM "200%\tF7", ID_VIEW_ZOOM_200 + MENUITEM "50%\tF5", ID_ZOOM_50 + MENUITEM "100%\tF6", ID_ZOOM_100 + MENUITEM "200%\tF7", ID_ZOOM_200 END END POPUP "Play" BEGIN - MENUITEM "Play/Pause\tSpace", ID_PLAY_PLAYPAUSE + MENUITEM "Play/Pause\tSpace", ID_PLAYPAUSE MENUITEM "Stop\tC", ID_STOP MENUITEM "Go To...\tCtrl+G", ID_GOTO MENUITEM "Set Speed...\tCtrl+S", ID_SETSPEED @@ -149,9 +149,9 @@ BEGIN END POPUP "Frame" BEGIN - MENUITEM "Copy To Clipboard\tCtrl+C", ID_FRAME_COPYTOCLIPBOARD + MENUITEM "Copy To Clipboard\tCtrl+C", ID_COPYTOCLIPBOARD MENUITEM SEPARATOR - MENUITEM "Extract...\tAlt+C", ID_FRAME_EXTRACT + MENUITEM "Extract...\tAlt+C", ID_FRAMEEXTRACT END MENUITEM "Options", 65535 POPUP "Help" @@ -171,21 +171,21 @@ END IDR_ACCELERATOR ACCELERATORS DISCARDABLE BEGIN - "C", ID_PLAY_STOP, VIRTKEY, NOINVERT - "C", ID_FRAME_COPYTOCLIPBOARD, VIRTKEY, CONTROL, NOINVERT - "C", ID_FRAME_EXTRACT, VIRTKEY, ALT, NOINVERT - "G", ID_PLAY_GOTO, VIRTKEY, CONTROL, NOINVERT - "L", ID_PLAY_LOOP, VIRTKEY, CONTROL, NOINVERT - "O", ID_FILE_OPENFILE, VIRTKEY, CONTROL, NOINVERT + "C", ID_STOP, VIRTKEY, NOINVERT + "C", ID_COPYTOCLIPBOARD, VIRTKEY, CONTROL, NOINVERT + "C", ID_FRAMEEXTRACT, VIRTKEY, ALT, NOINVERT + "G", ID_GOTO, VIRTKEY, CONTROL, NOINVERT + "L", ID_LOOP, VIRTKEY, CONTROL, NOINVERT + "O", ID_OPENFILE, VIRTKEY, CONTROL, NOINVERT "P", ID_OPTIONS, VIRTKEY, CONTROL, NOINVERT - "Q", ID_FILE_CLOSEFILE, VIRTKEY, CONTROL, NOINVERT - "S", ID_PLAY_SETSPEED, VIRTKEY, CONTROL, NOINVERT - VK_F5, ID_VIEW_ZOOM_50, VIRTKEY, NOINVERT - VK_F6, ID_VIEW_ZOOM_100, VIRTKEY, NOINVERT - VK_F7, ID_VIEW_ZOOM_200, VIRTKEY, NOINVERT - VK_RETURN, ID_VIEW_FULLSCREEN, VIRTKEY, ALT, NOINVERT - VK_SPACE, ID_PLAY_PLAYPAUSE, VIRTKEY, NOINVERT - "X", ID_FILE_EXIT, VIRTKEY, ALT, NOINVERT + "Q", ID_CLOSEFILE, VIRTKEY, CONTROL, NOINVERT + "S", ID_SETSPEED, VIRTKEY, CONTROL, NOINVERT + VK_F5, ID_ZOOM_50, VIRTKEY, NOINVERT + VK_F6, ID_ZOOM_100, VIRTKEY, NOINVERT + VK_F7, ID_ZOOM_200, VIRTKEY, NOINVERT + VK_RETURN, ID_FULLSCREEN, VIRTKEY, ALT, NOINVERT + VK_SPACE, ID_PLAYPAUSE, VIRTKEY, NOINVERT + "X", ID_EXIT, VIRTKEY, ALT, NOINVERT END -- 2.39.5