From 1a84fd1fb7a51f3fe4f8865e1cdd09f3490f696c Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Thu, 2 Jun 2011 01:26:32 -0700 Subject: Add a preference panel for mouse speed. Bug: 4124987 Change-Id: I3ce175d268a1d043cf5878481261b1049a15a149 --- services/input/InputReader.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'services/input/InputReader.cpp') diff --git a/services/input/InputReader.cpp b/services/input/InputReader.cpp index 724af39e998b..a22ec1c0f11b 100644 --- a/services/input/InputReader.cpp +++ b/services/input/InputReader.cpp @@ -38,6 +38,7 @@ #include "InputReader.h" +#include #include #include #include @@ -219,10 +220,9 @@ InputReader::InputReader(const sp& eventHub, const sp& policy, const sp& dispatcher) : mEventHub(eventHub), mPolicy(policy), mDispatcher(dispatcher), - mGlobalMetaState(0), mDisableVirtualKeysTimeout(LLONG_MIN), mNextTimeout(LLONG_MAX) { - mPolicy->getReaderConfiguration(&mConfig); - - configureExcludedDevices(); + mGlobalMetaState(0), mDisableVirtualKeysTimeout(LLONG_MIN), mNextTimeout(LLONG_MAX), + mRefreshConfiguration(0) { + configure(true /*firstTime*/); updateGlobalMetaState(); updateInputConfiguration(); } @@ -234,6 +234,11 @@ InputReader::~InputReader() { } void InputReader::loopOnce() { + if (android_atomic_acquire_load(&mRefreshConfiguration)) { + android_atomic_release_store(0, &mRefreshConfiguration); + configure(false /*firstTime*/); + } + int32_t timeoutMillis = -1; if (mNextTimeout != LLONG_MAX) { nsecs_t now = systemTime(SYSTEM_TIME_MONOTONIC); @@ -454,9 +459,12 @@ void InputReader::handleConfigurationChanged(nsecs_t when) { mDispatcher->notifyConfigurationChanged(when); } -void InputReader::configureExcludedDevices() { - for (size_t i = 0; i < mConfig.excludedDeviceNames.size(); i++) { - mEventHub->addExcludedDevice(mConfig.excludedDeviceNames[i]); +void InputReader::configure(bool firstTime) { + mPolicy->getReaderConfiguration(&mConfig); + mEventHub->setExcludedDevices(mConfig.excludedDeviceNames); + + if (!firstTime) { + mEventHub->reopenDevices(); } } @@ -677,6 +685,10 @@ bool InputReader::markSupportedKeyCodes(int32_t deviceId, uint32_t sourceMask, s } // release device registy reader lock } +void InputReader::refreshConfiguration() { + android_atomic_release_store(1, &mRefreshConfiguration); +} + void InputReader::dump(String8& dump) { mEventHub->dump(dump); dump.append("\n"); -- cgit v1.2.3-59-g8ed1b