1 #pragma once 2 3 #include "../System.h" 4 5 #define JOYCONFIG_MESSAGE (WM_USER + 1000) 6 #define JOYPADS 4 7 #define MOTION_KEYS 4 8 #define KEYS_PER_PAD 13 9 #define MOTION(i) ((JOYPADS*KEYS_PER_PAD)+i) 10 #define JOYPAD(i,j) ((i*KEYS_PER_PAD)+j) 11 12 #define DEVICEOF(key) (key >> 8) 13 #define KEYOF(key) (key & 255) 14 15 typedef CList<LONG_PTR,LONG_PTR> KeyList; 16 17 enum { 18 KEY_LEFT, KEY_RIGHT, 19 KEY_UP, KEY_DOWN, 20 KEY_BUTTON_A, KEY_BUTTON_B, 21 KEY_BUTTON_START, KEY_BUTTON_SELECT, 22 KEY_BUTTON_L, KEY_BUTTON_R, 23 KEY_BUTTON_SPEED, KEY_BUTTON_CAPTURE, 24 KEY_BUTTON_GS 25 }; 26 27 class Input { 28 29 public: 30 KeyList joypaddata[JOYPADS * KEYS_PER_PAD + MOTION_KEYS]; 31 Input()32 Input() {}; ~Input()33 virtual ~Input() {}; 34 35 virtual bool initialize() = 0; 36 37 virtual bool readDevices() = 0; 38 virtual u32 readDevice(int which) = 0; 39 virtual CString getKeyName(LONG_PTR key) = 0; 40 virtual void checkKeys() = 0; 41 virtual void checkMotionKeys() = 0; 42 virtual void checkDevices() = 0; 43 virtual void activate() = 0; 44 virtual void loadSettings() = 0; 45 virtual void saveSettings() = 0; 46 }; 47