summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <cyanogenmod@cerqueira.org>2012-01-31 21:58:56 +0300
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2012-01-31 21:58:56 +0300
commit4d91c2e3a1a9e92bc38f874f9ef07432eddffad8 (patch)
treefb004f664c83891671e582ab475e642c8e225608
parent90a791aef0742386a3d4f3a118b2024aa33ae25e (diff)
parentc3d10684449790e1ba3fab3483d65d2d998627a6 (diff)
downloadframeworks_base-4d91c2e3a1a9e92bc38f874f9ef07432eddffad8.zip
frameworks_base-4d91c2e3a1a9e92bc38f874f9ef07432eddffad8.tar.gz
frameworks_base-4d91c2e3a1a9e92bc38f874f9ef07432eddffad8.tar.bz2
Merge "Do not rotate keyboard D-Pad events for USB keyboards" into gingerbread
-rw-r--r--include/ui/EventHub.h10
-rw-r--r--include/ui/InputReader.h5
-rw-r--r--libs/ui/EventHub.cpp12
-rw-r--r--libs/ui/InputReader.cpp12
-rw-r--r--libs/ui/tests/InputReader_test.cpp4
5 files changed, 26 insertions, 17 deletions
diff --git a/include/ui/EventHub.h b/include/ui/EventHub.h
index 6211e9d..8a1f29b 100644
--- a/include/ui/EventHub.h
+++ b/include/ui/EventHub.h
@@ -158,7 +158,7 @@ public:
virtual String8 getDeviceName(int32_t deviceId) const = 0;
- virtual bool getDeviceBluetooth(int32_t deviceId) const = 0;
+ virtual uint32_t getDeviceBusType(int32_t deviceId) const = 0;
virtual status_t getAbsoluteAxisInfo(int32_t deviceId, int axis,
RawAbsoluteAxisInfo* outAxisInfo) const = 0;
@@ -206,7 +206,7 @@ public:
virtual String8 getDeviceName(int32_t deviceId) const;
- virtual bool getDeviceBluetooth(int32_t deviceId) const;
+ virtual uint32_t getDeviceBusType(int32_t deviceId) const;
virtual status_t getAbsoluteAxisInfo(int32_t deviceId, int axis,
RawAbsoluteAxisInfo* outAxisInfo) const;
@@ -249,10 +249,12 @@ private:
KeyLayoutMap* layoutMap;
String8 keylayoutFilename;
int fd;
+ uint32_t bustype;
bool bluetooth;
+ bool usb;
device_t* next;
-
- device_t(int32_t _id, const char* _path, const char* name, bool _bluetooth);
+
+ device_t(int32_t _id, const char* _path, const char* name, uint32_t bustype);
~device_t();
};
diff --git a/include/ui/InputReader.h b/include/ui/InputReader.h
index bc8508b..3f0d102 100644
--- a/include/ui/InputReader.h
+++ b/include/ui/InputReader.h
@@ -405,7 +405,7 @@ private:
class KeyboardInputMapper : public InputMapper {
public:
KeyboardInputMapper(InputDevice* device, int32_t associatedDisplayId, uint32_t sources,
- int32_t keyboardType, bool bluetooth = false);
+ int32_t keyboardType, uint32_t bustype = 0);
virtual ~KeyboardInputMapper();
virtual uint32_t getSources();
@@ -432,7 +432,10 @@ private:
int32_t mAssociatedDisplayId;
uint32_t mSources;
int32_t mKeyboardType;
+
+ uint32_t mBusType;
bool mBluetooth;
+ bool mUSB;
struct LockedState {
Vector<KeyDown> keyDowns; // keys that are down
diff --git a/libs/ui/EventHub.cpp b/libs/ui/EventHub.cpp
index e9cd66e..9c78a74 100644
--- a/libs/ui/EventHub.cpp
+++ b/libs/ui/EventHub.cpp
@@ -95,9 +95,11 @@ static inline const char* toString(bool value) {
return value ? "true" : "false";
}
-EventHub::device_t::device_t(int32_t _id, const char* _path, const char* name, bool _bluetooth)
+EventHub::device_t::device_t(int32_t _id, const char* _path, const char* name, uint32_t _bustype)
: id(_id), path(_path), name(name), classes(0)
- , keyBitmask(NULL), layoutMap(new KeyLayoutMap()), fd(-1), bluetooth(_bluetooth), next(NULL) {
+ , keyBitmask(NULL), layoutMap(new KeyLayoutMap()), fd(-1), bustype(_bustype), next(NULL) {
+ bluetooth = (_bustype == BUS_BLUETOOTH);
+ usb = (_bustype == BUS_USB);
}
EventHub::device_t::~device_t() {
@@ -140,11 +142,11 @@ String8 EventHub::getDeviceName(int32_t deviceId) const
return device->name;
}
-bool EventHub::getDeviceBluetooth(int32_t deviceId) const
+uint32_t EventHub::getDeviceBusType(int32_t deviceId) const
{
AutoMutex _l(mLock);
device_t* device = getDeviceLocked(deviceId);
- return device->bluetooth;
+ return device->bustype;
}
uint32_t EventHub::getDeviceClasses(int32_t deviceId) const
@@ -676,7 +678,7 @@ int EventHub::openDevice(const char *deviceName) {
version >> 16, (version >> 8) & 0xff, version & 0xff);
#endif
- device_t* device = new device_t(devid|mDevicesById[devid].seq, deviceName, name, BUS_BLUETOOTH == id.bustype);
+ device_t* device = new device_t(devid|mDevicesById[devid].seq, deviceName, name, id.bustype);
if (device == NULL) {
LOGE("out of memory");
return -1;
diff --git a/libs/ui/InputReader.cpp b/libs/ui/InputReader.cpp
index 623ba27..7626b15 100644
--- a/libs/ui/InputReader.cpp
+++ b/libs/ui/InputReader.cpp
@@ -334,8 +334,8 @@ InputDevice* InputReader::createDevice(int32_t deviceId, const String8& name, ui
}
if (keyboardSources != 0) {
- device->addMapper(new KeyboardInputMapper(device,
- associatedDisplayId, keyboardSources, keyboardType, mEventHub->getDeviceBluetooth(deviceId)));
+ device->addMapper(new KeyboardInputMapper(device, associatedDisplayId, keyboardSources,
+ keyboardType, mEventHub->getDeviceBusType(deviceId)));
}
// Trackball-like devices.
@@ -876,10 +876,12 @@ int32_t SwitchInputMapper::getSwitchState(uint32_t sourceMask, int32_t switchCod
// --- KeyboardInputMapper ---
KeyboardInputMapper::KeyboardInputMapper(InputDevice* device, int32_t associatedDisplayId,
- uint32_t sources, int32_t keyboardType, bool bluetooth) :
+ uint32_t sources, int32_t keyboardType, uint32_t bustype) :
InputMapper(device), mAssociatedDisplayId(associatedDisplayId), mSources(sources),
- mKeyboardType(keyboardType), mBluetooth(bluetooth) {
+ mKeyboardType(keyboardType), mBusType(bustype) {
initializeLocked();
+ mBluetooth = (mBusType == BUS_BLUETOOTH);
+ mUSB = (mBusType == BUS_USB);
}
KeyboardInputMapper::~KeyboardInputMapper() {
@@ -968,7 +970,7 @@ void KeyboardInputMapper::processKey(nsecs_t when, bool down, int32_t keyCode,
if (down) {
// Rotate key codes according to orientation if needed.
// Note: getDisplayInfo is non-reentrant so we can continue holding the lock.
- if (!mBluetooth && mAssociatedDisplayId >= 0) {
+ if (!mBluetooth && !mUSB && mAssociatedDisplayId >= 0) {
int32_t orientation;
if (! getPolicy()->getDisplayInfo(mAssociatedDisplayId, NULL, NULL, & orientation)) {
return;
diff --git a/libs/ui/tests/InputReader_test.cpp b/libs/ui/tests/InputReader_test.cpp
index aec7ba9..abfc157 100644
--- a/libs/ui/tests/InputReader_test.cpp
+++ b/libs/ui/tests/InputReader_test.cpp
@@ -486,8 +486,8 @@ private:
return device ? device->name : String8("unknown");
}
- virtual bool getDeviceBluetooth(int32_t deviceId) const {
- return false;
+ virtual uint32_t getDeviceBusType(int32_t deviceId) const {
+ return 0;
}
virtual status_t getAbsoluteAxisInfo(int32_t deviceId, int axis,