2 * (C) GraÅžvydas "notaz" Ignotas, 2011
4 * This work is licensed under the terms of any of these licenses
6 * - GNU GPL, version 2 or later.
7 * - GNU LGPL, version 2.1 or later.
8 * See the COPYING file in the top-level directory.
14 #define WIN32_LEAN_AND_MEAN
23 unsigned char CurPad, CurByte, CurCmd, CmdLen;
25 /* since this is not a proper plugin, so we'll hook emu internals in a hackish way like this */
26 extern void *PAD1_startPoll, *PAD1_poll;
27 extern void *PAD2_startPoll, *PAD2_poll;
28 extern unsigned char CALLBACK PAD1__startPoll(int pad);
29 extern unsigned char CALLBACK PAD2__startPoll(int pad);
30 extern unsigned char CALLBACK PAD1__poll(unsigned char value);
31 extern unsigned char CALLBACK PAD2__poll(unsigned char value);
33 static int old_controller_type1 = -1, old_controller_type2 = -1;
35 #define select_pad(n) \
36 if (pad.controllerType != old_controller_type##n) \
38 switch (pad.controllerType) \
40 case PSE_PAD_TYPE_ANALOGPAD: \
41 PAD##n##_startPoll = PADstartPoll_pad; \
42 PAD##n##_poll = PADpoll_pad; \
45 case PSE_PAD_TYPE_GUNCON: \
46 PAD##n##_startPoll = PADstartPoll_guncon; \
47 PAD##n##_poll = PADpoll_guncon; \
50 case PSE_PAD_TYPE_NEGCON: \
51 case PSE_PAD_TYPE_GUN: \
53 PAD##n##_startPoll = PAD##n##__startPoll; \
54 PAD##n##_poll = PAD##n##__poll; \
59 // case PSE_PAD_TYPE_NEGCON: \
60 // PAD##n##_startPoll = PADstartPoll_negcon; \
61 // PAD##n##_poll = PADpoll_negcon; \
65 void dfinput_activate(void)