summaryrefslogtreecommitdiff
path: root/services/input/SpotController.cpp
diff options
context:
space:
mode:
author Jeff Brown <jeffbrown@google.com> 2011-04-11 11:54:25 -0700
committer Jeff Brown <jeffbrown@google.com> 2011-04-11 14:08:29 -0700
commit5541de9ea3513a12d1ac2ad07e7e04a3aa7741a0 (patch)
tree3ac3cd85bf588df25aed0a0df29e70629a096547 /services/input/SpotController.cpp
parent5008e92d1fd573d926cd55c39ca723a6fbdf7c4b (diff)
Add a sprite controller.
Refactored PointerController to extract the surface management code to a new component called a SpriteController so that it can be used to move finger tracking spots around the screen as well. The SpriteController is designed to fully decouple the client from any latency introduced by surface transactions and drawing. All sprite updates are performed asynchronously on the Looper using a copy of the sprite state. Added a stub SpotController implementation for touch pad UX. It will be implemented in a subsequent patch. Fixed a little bug in pointer orientation changes when entering DISPLAY_ORIENTATION_90 the x offset was clobbered. Change-Id: Ib25d162d577c9b354cb74d5d761c3c9f9f438d42
Diffstat (limited to 'services/input/SpotController.cpp')
-rw-r--r--services/input/SpotController.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/services/input/SpotController.cpp b/services/input/SpotController.cpp
new file mode 100644
index 000000000000..dffad81009c7
--- /dev/null
+++ b/services/input/SpotController.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "SpotController"
+
+//#define LOG_NDEBUG 0
+
+// Log debug messages about spot updates
+#define DEBUG_SPOT_UPDATES 0
+
+#include "SpotController.h"
+
+#include <cutils/log.h>
+
+namespace android {
+
+// --- SpotController ---
+
+SpotController::SpotController(const sp<Looper>& looper,
+ const sp<SpriteController>& spriteController) :
+ mLooper(looper), mSpriteController(spriteController) {
+ mHandler = new WeakMessageHandler(this);
+}
+
+SpotController::~SpotController() {
+ mLooper->removeMessages(mHandler);
+}
+
+void SpotController:: handleMessage(const Message& message) {
+}
+
+} // namespace android