OSDN Git Service

Add logging for switch state
authorMichael Wright <michaelwr@google.com>
Fri, 29 Aug 2014 21:31:32 +0000 (14:31 -0700)
committerMichael Wright <michaelwr@google.com>
Fri, 29 Aug 2014 21:31:32 +0000 (14:31 -0700)
Bug: 17004602
Change-Id: I15c9feb7b28274183742936c20e34e7fb07e0b70

services/inputflinger/InputReader.cpp
services/inputflinger/InputReader.h

index 8295c4c..b7c7ff4 100644 (file)
@@ -1815,7 +1815,7 @@ void InputMapper::dumpRawAbsoluteAxisInfo(String8& dump,
 // --- SwitchInputMapper ---
 
 SwitchInputMapper::SwitchInputMapper(InputDevice* device) :
-        InputMapper(device), mUpdatedSwitchValues(0), mUpdatedSwitchMask(0) {
+        InputMapper(device), mSwitchValues(0), mUpdatedSwitchMask(0) {
 }
 
 SwitchInputMapper::~SwitchInputMapper() {
@@ -1841,7 +1841,9 @@ void SwitchInputMapper::process(const RawEvent* rawEvent) {
 void SwitchInputMapper::processSwitch(int32_t switchCode, int32_t switchValue) {
     if (switchCode >= 0 && switchCode < 32) {
         if (switchValue) {
-            mUpdatedSwitchValues |= 1 << switchCode;
+            mSwitchValues |= 1 << switchCode;
+        } else {
+            mSwitchValues &= ~(1 << switchCode);
         }
         mUpdatedSwitchMask |= 1 << switchCode;
     }
@@ -1849,10 +1851,10 @@ void SwitchInputMapper::processSwitch(int32_t switchCode, int32_t switchValue) {
 
 void SwitchInputMapper::sync(nsecs_t when) {
     if (mUpdatedSwitchMask) {
-        NotifySwitchArgs args(when, 0, mUpdatedSwitchValues, mUpdatedSwitchMask);
+        int32_t updatedSwitchValues = mSwitchValues & mUpdatedSwitchMask;
+        NotifySwitchArgs args(when, 0, updatedSwitchValues, mUpdatedSwitchMask);
         getListener()->notifySwitch(&args);
 
-        mUpdatedSwitchValues = 0;
         mUpdatedSwitchMask = 0;
     }
 }
@@ -1861,6 +1863,10 @@ int32_t SwitchInputMapper::getSwitchState(uint32_t sourceMask, int32_t switchCod
     return getEventHub()->getSwitchState(getDeviceId(), switchCode);
 }
 
+void SwitchInputMapper::dump(String8& dump) {
+    dump.append(INDENT2 "Switch Input Mapper:\n");
+    dump.appendFormat(INDENT3 "SwitchValues: %x\n", mSwitchValues);
+}
 
 // --- VibratorInputMapper ---
 
index 9e36e35..c5896d4 100644 (file)
@@ -999,9 +999,10 @@ public:
     virtual void process(const RawEvent* rawEvent);
 
     virtual int32_t getSwitchState(uint32_t sourceMask, int32_t switchCode);
+    virtual void dump(String8& dump);
 
 private:
-    uint32_t mUpdatedSwitchValues;
+    uint32_t mSwitchValues;
     uint32_t mUpdatedSwitchMask;
 
     void processSwitch(int32_t switchCode, int32_t switchValue);