Add a class for keyboard input

Removes the windows-specific hack from sceCtrl
to read keyboard input and instead add a hack to
PPSSPPWindows.

The input mapping is still hardcoded and is the same
as it was in sceCtrl.

Add an std::list to WindowsHost that, curretly, contains
a hardcoded list of preferred `InputDevice`s. Devices
are tried in-order until one of them reports success.
Xinput is preferred over Keyboard. Keyboard always
returns success. Pointers are stored in the std::list
for polymorphism.

Change XinputDevice to report failure as soon as a
device can't be queried, instead of only a frame later.
This commit is contained in:
Diogo Franco (Kovensky) committed 2012-11-12 17:49:40 +00:00
1 parent 2210b19244
commit 7e7e9a0452
10 files changed
+91 -46

No files matched your search

+13
View File
@@ -0,0 +1,13 @@
#include "InputDevice.h"
#include "XinputDevice.h"
#include "KeyboardDevice.h"
#include <list>
#include <memory>
#define PUSH_BACK(Cls) do { list.push_back(std::shared_ptr<InputDevice>(new Cls())); } while (0)
std::list<std::shared_ptr<InputDevice>> getInputDevices() {
std::list<std::shared_ptr<InputDevice>> list;
PUSH_BACK(XinputDevice);
PUSH_BACK(KeyboardDevice);
return list;
}