summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2010-10-01 18:55:43 -0700
committerJeff Brown <jeffbrown@google.com>2010-10-01 18:55:43 -0700
commit1ad00e96fe0d10c4fa9b870b42f3ea90b17a2d7f (patch)
tree37d6e953936e4d9615d079366a1914f668eaed03 /include
parent2806e381cf08ef3073634b1fdd1f656c1750a7eb (diff)
downloadframeworks_native-1ad00e96fe0d10c4fa9b870b42f3ea90b17a2d7f.zip
frameworks_native-1ad00e96fe0d10c4fa9b870b42f3ea90b17a2d7f.tar.gz
frameworks_native-1ad00e96fe0d10c4fa9b870b42f3ea90b17a2d7f.tar.bz2
Wait for initial device scan to finish before updating config.
This change narrows the opportunity for a race condition setting the resource Configuration while devices are being updated. Change-Id: I58efa563f4129ab0fce7108511d16a99dff7e451
Diffstat (limited to 'include')
-rw-r--r--include/ui/EventHub.h16
-rw-r--r--include/ui/InputReader.h6
2 files changed, 14 insertions, 8 deletions
diff --git a/include/ui/EventHub.h b/include/ui/EventHub.h
index d077d0e..d78e35f 100644
--- a/include/ui/EventHub.h
+++ b/include/ui/EventHub.h
@@ -142,8 +142,13 @@ protected:
public:
// Synthetic raw event type codes produced when devices are added or removed.
enum {
+ // Sent when a device is added.
DEVICE_ADDED = 0x10000000,
- DEVICE_REMOVED = 0x20000000
+ // Sent when a device is removed.
+ DEVICE_REMOVED = 0x20000000,
+ // Sent when all added/removed devices from the most recent scan have been reported.
+ // This event is always sent at least once.
+ FINISHED_DEVICE_SCAN = 0x30000000,
};
virtual uint32_t getDeviceClasses(int32_t deviceId) const = 0;
@@ -221,10 +226,10 @@ protected:
private:
bool openPlatformInput(void);
- int open_device(const char *device);
- int close_device(const char *device);
- int scan_dir(const char *dirname);
- int read_notify(int nfd);
+ int openDevice(const char *device);
+ int closeDevice(const char *device);
+ int scanDir(const char *dirname);
+ int readNotify(int nfd);
status_t mError;
@@ -273,6 +278,7 @@ private:
int mFDCount;
bool mOpened;
+ bool mNeedToSendFinishedDeviceScan;
List<String8> mExcludedDevices;
// device ids that report particular switches.
diff --git a/include/ui/InputReader.h b/include/ui/InputReader.h
index 2209cb8..3619189 100644
--- a/include/ui/InputReader.h
+++ b/include/ui/InputReader.h
@@ -279,14 +279,14 @@ private:
// low-level input event decoding and device management
void process(const RawEvent* rawEvent);
- void addDevice(nsecs_t when, int32_t deviceId);
- void removeDevice(nsecs_t when, int32_t deviceId);
+ void addDevice(int32_t deviceId);
+ void removeDevice(int32_t deviceId);
InputDevice* createDevice(int32_t deviceId, const String8& name, uint32_t classes);
void configureExcludedDevices();
void consumeEvent(const RawEvent* rawEvent);
- void handleConfigurationChanged(nsecs_t when);
+ void handleConfigurationChanged();
// state management for all devices
Mutex mStateLock;