diff options
Diffstat (limited to 'win32/plugins/dfxvideo/winsrc/key.c')
| -rw-r--r-- | win32/plugins/dfxvideo/winsrc/key.c | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/win32/plugins/dfxvideo/winsrc/key.c b/win32/plugins/dfxvideo/winsrc/key.c new file mode 100644 index 00000000..ad624243 --- /dev/null +++ b/win32/plugins/dfxvideo/winsrc/key.c @@ -0,0 +1,137 @@ +/*************************************************************************** + key.c - description + ------------------- + begin : Sun Oct 28 2001 + copyright : (C) 2001 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +#define _IN_KEY + +#include "externals.h" +#include "menu.h" +#include "gpu.h" +#include "draw.h" +#include "key.h" + +#include "record.h" + +//////////////////////////////////////////////////////////////////////// +// KeyBoard handler stuff +//////////////////////////////////////////////////////////////////////// + +WNDPROC wpOrgWndProc=0; +unsigned long ulKeybits=0; +char szGPUKeys[11]; +
+//////////////////////////////////////////////////////////////////////// +// keyboard handler +//////////////////////////////////////////////////////////////////////// + +void CALLBACK GPUshowScreenPic(unsigned char * pMem); +void CALLBACK GPUgetScreenPic(unsigned char * pMem); + +LRESULT CALLBACK KeyWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) +{ + switch(message) + { + //--------------------------------------------------// + case WM_ACTIVATE: // some scanline window mode fixing stuff + case WM_MOVE: + { + if(!iUseScanLines) break; + if(!iWindowMode) break; + if(bIsFirstFrame) break; + MoveScanLineArea(hwnd); + }break; + //--------------------------------------------------// + case WM_KEYDOWN: // keydown + if(wParam==(WPARAM)szGPUKeys[2]) ulKeybits|=KEY_RESETTEXSTORE; + break; + //--------------------------------------------------// + case WM_SYSKEYUP: // alt+enter + if(wParam==VK_RETURN) bChangeWinMode=TRUE; + break; + //--------------------------------------------------// + case WM_KEYUP: // key up
+
+ if(iDebugMode && wParam==(WPARAM)szGPUKeys[9])
+ iFVDisplay=!iFVDisplay;
+ + if(wParam==(WPARAM)szGPUKeys[0]) + { + if(ulKeybits&KEY_SHOWFPS) + { + DestroyPic(); + ulKeybits&=~KEY_SHOWFPS; + DoClearScreenBuffer(); + } + else + { + ulKeybits|=KEY_SHOWFPS; + szDispBuf[0]=0; + BuildDispMenu(0); + } + break; + } + if(wParam==(WPARAM)szGPUKeys[1]) {ShowGpuPic();break;} + + if(wParam==(WPARAM)szGPUKeys[6]) + { + if(RECORD_RECORDING==TRUE) + {RECORD_RECORDING=FALSE;RECORD_Stop();} + else + {RECORD_RECORDING=TRUE;RECORD_Start();} + BuildDispMenu(0); + break; + } + + if(wParam==(WPARAM)szGPUKeys[2]) {SwitchDispMenu(-1); break;} + if(wParam==(WPARAM)szGPUKeys[3]) {SwitchDispMenu(1); break;} + if(wParam==(WPARAM)szGPUKeys[4]) {BuildDispMenu(-1); break;} + if(wParam==(WPARAM)szGPUKeys[5]) {BuildDispMenu( 1); break;} + if(wParam==(WPARAM)szGPUKeys[7]) {bVsync_Key = bVsync_Key==TRUE ? FALSE : TRUE; BuildDispMenu(0);break;} + if(wParam==(WPARAM)szGPUKeys[8])
+ {
+ iFastFwd = 1 - iFastFwd;
+ bSkipNextFrame = FALSE;
+ UseFrameSkip=iFastFwd;
+ BuildDispMenu(0);
+ break;
+ }
+ break; + //--------------------------------------------------// + } + return wpOrgWndProc( hwnd, message, wParam, lParam ); +} + +//////////////////////////////////////////////////////////////////////// + +void SetKeyHandler(void) +{ + if(!wpOrgWndProc) // setup keyhandler + { + wpOrgWndProc = (WNDPROC)GetWindowLong(hWGPU, GWL_WNDPROC ); + SetWindowLong(hWGPU, GWL_WNDPROC, (long)KeyWndProc); + } +} + +//////////////////////////////////////////////////////////////////////// + +void ReleaseKeyHandler(void) +{ + if(wpOrgWndProc) + SetWindowLong(hWGPU,GWL_WNDPROC, // set old proc + (long)wpOrgWndProc); + wpOrgWndProc = 0; +} |
