mirror of https://github.com/PCSX2/pcsx2.git
PadNull: A bit more work on the Windows side.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1244 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
a180b105d3
commit
fea158f392
|
@ -63,11 +63,7 @@ void _PadUpdate(int pad)
|
||||||
|
|
||||||
s32 _PADOpen(void *pDsp)
|
s32 _PADOpen(void *pDsp)
|
||||||
{
|
{
|
||||||
//XKeyboardState *settings;
|
|
||||||
|
|
||||||
GSdsp = *(Display**)pDsp;
|
GSdsp = *(Display**)pDsp;
|
||||||
//XGetKeyboardControl(GSdsp, settings);
|
|
||||||
//autoRepeatMode = settings->global_auto_repeat;
|
|
||||||
XAutoRepeatOff(GSdsp);
|
XAutoRepeatOff(GSdsp);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -76,8 +72,4 @@ s32 _PADOpen(void *pDsp)
|
||||||
void _PADClose()
|
void _PADClose()
|
||||||
{
|
{
|
||||||
XAutoRepeatOn(GSdsp);
|
XAutoRepeatOn(GSdsp);
|
||||||
//XKeyboardControl *settings;
|
|
||||||
//settings->auto_repeat_mode = autoRepeatMode;
|
|
||||||
|
|
||||||
//XChangeKeyboardControl(GSdsp, KBAutoRepeatMode, settings);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,8 +106,6 @@ EXPORT_C_(s32) PADopen(void *pDsp)
|
||||||
memset(&event, 0, sizeof(event));
|
memset(&event, 0, sizeof(event));
|
||||||
|
|
||||||
return _PADOpen(pDsp);
|
return _PADOpen(pDsp);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_C_(void) PADclose()
|
EXPORT_C_(void) PADclose()
|
||||||
|
|
|
@ -18,16 +18,64 @@
|
||||||
|
|
||||||
#include "PadWin.h"
|
#include "PadWin.h"
|
||||||
|
|
||||||
|
LRESULT WINAPI PADwndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||||
|
WNDPROC GSwndProc = NULL;
|
||||||
|
HWND GShwnd = NULL;
|
||||||
|
|
||||||
|
LRESULT WINAPI PADwndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
switch (msg)
|
||||||
|
{
|
||||||
|
case WM_KEYDOWN:
|
||||||
|
if (lParam & 0x40000000)return TRUE;
|
||||||
|
|
||||||
|
event.evt = KEYPRESS;
|
||||||
|
event.key = wParam;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WM_KEYUP:
|
||||||
|
event.evt = KEYRELEASE;
|
||||||
|
event.key = wParam;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WM_DESTROY:
|
||||||
|
case WM_QUIT:
|
||||||
|
event.evt = KEYPRESS;
|
||||||
|
event.key = VK_ESCAPE;
|
||||||
|
return GSwndProc(hWnd, msg, wParam, lParam);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return GSwndProc(hWnd, msg, wParam, lParam);
|
||||||
|
};
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
void _PadUpdate(int pad)
|
void _PadUpdate(int pad)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 _PADOpen(void *pDsp)
|
s32 _PADOpen(void *pDsp)
|
||||||
{
|
{
|
||||||
|
GShwnd = (HWND)*(long*)pDsp;
|
||||||
|
|
||||||
|
if (GShwnd != NULL && GSwndProc != NULL)
|
||||||
|
{
|
||||||
|
// revert
|
||||||
|
SetWindowLongPtr(GShwnd, GWLP_WNDPROC, (LPARAM)(WNDPROC)(GSwndProc));
|
||||||
|
}
|
||||||
|
|
||||||
|
GSwndProc = (WNDPROC)GetWindowLongPtr(GShwnd, GWLP_WNDPROC);
|
||||||
|
GSwndProc = ((WNDPROC)SetWindowLongPtr(GShwnd, GWLP_WNDPROC, (LPARAM)(WNDPROC)(PADwndProc)));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _PADClose()
|
void _PADClose()
|
||||||
{
|
{
|
||||||
|
if (GShwnd != NULL && GSwndProc != NULL)
|
||||||
|
{
|
||||||
|
SetWindowLongPtr(GShwnd, GWLP_WNDPROC, (LPARAM)(WNDPROC)(GSwndProc));
|
||||||
|
GSwndProc = NULL;
|
||||||
|
GShwnd = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue