diff options
| author | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2011-05-09 05:38:48 +0000 |
|---|---|---|
| committer | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2011-05-09 05:38:48 +0000 |
| commit | 2f0f4c038428171244fd4e188a04df3aa07b241a (patch) | |
| tree | 04157330145c9fc1cbd28e2c61d50778b28a7b6d /plugins/dfinput/pad.c | |
| parent | 8f4da5b653f91eaca82f02565a9932ae0ef371f8 (diff) | |
| download | pcsxr-2f0f4c038428171244fd4e188a04df3aa07b241a.tar.gz | |
dfinput, mouse (experimental).
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@66705 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins/dfinput/pad.c')
| -rw-r--r-- | plugins/dfinput/pad.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/plugins/dfinput/pad.c b/plugins/dfinput/pad.c index a4cd908a..fcb86b5e 100644 --- a/plugins/dfinput/pad.c +++ b/plugins/dfinput/pad.c @@ -26,7 +26,7 @@ static void (*gpuVisualVibration)(uint32_t, uint32_t) = NULL;
char *PSEgetLibName(void) {
- return _("Gamepad/Keyboard Input");
+ return _("Gamepad/Keyboard/Mouse Input");
}
uint32_t PSEgetLibType(void) {
@@ -34,13 +34,21 @@ uint32_t PSEgetLibType(void) { }
uint32_t PSEgetLibVersion(void) {
- return (1 << 16) | (1 << 8);
+ return (1 << 16) | (2 << 8);
}
+static int padDataLenght[] = {0, 2, 3, 1, 1, 3, 3, 3};
void PADsetMode(const int pad, const int mode) {
g.PadState[pad].PadMode = mode;
- g.PadState[pad].PadID = mode ? 0x73 : 0x41;
-
+
+ if (g.cfg.PadDef[pad].Type == PSE_PAD_TYPE_ANALOGPAD) {
+ g.PadState[pad].PadID = mode ? 0x73 : 0x41;
+ }
+ else {
+ g.PadState[pad].PadID = (g.cfg.PadDef[pad].Type << 4) |
+ padDataLenght[g.cfg.PadDef[pad].Type];
+ }
+
g.PadState[pad].Vib0 = 0;
g.PadState[pad].Vib1 = 0;
g.PadState[pad].VibF[0] = 0;
@@ -414,8 +422,6 @@ unsigned char PADpoll(unsigned char value) { case CMD_READ_DATA_AND_VIBRATE:
default:
- UpdateInput();
-
n = g.PadState[CurPad].KeyStatus;
n &= g.PadState[CurPad].JoyKeyStatus;
@@ -429,7 +435,15 @@ unsigned char PADpoll(unsigned char value) { stdpar[CurPad][5] = g.PadState[CurPad].AnalogStatus[ANALOG_RIGHT][1];
stdpar[CurPad][6] = g.PadState[CurPad].AnalogStatus[ANALOG_LEFT][0];
stdpar[CurPad][7] = g.PadState[CurPad].AnalogStatus[ANALOG_LEFT][1];
- } else {
+ }
+ else if(g.PadState[CurPad].PadID == 0x12)
+ {
+ CmdLen = 6;
+
+ stdpar[CurPad][4] = g.PadState[0].MouseAxis[0][0];
+ stdpar[CurPad][5] = g.PadState[0].MouseAxis[0][1];
+ }
+ else {
CmdLen = 4;
}
@@ -595,8 +609,11 @@ long PADreadPort2(PadDataS *pad) { long PADkeypressed(void) {
long s;
-
- CheckKeyboard();
+
+ static int frame = 0;
+ if( !frame )
+ UpdateInput();
+ frame ^= 1;
s = g.KeyLeftOver;
g.KeyLeftOver = 0;
|
