summaryrefslogtreecommitdiff
path: root/libs/input/PointerController.h
diff options
context:
space:
mode:
authorJun Mukai <mukai@google.com>2015-10-28 16:46:44 -0700
committerJun Mukai <mukai@google.com>2015-11-17 17:36:08 -0800
commit808196f139e93395f1f331f6c7e92ddd66c05979 (patch)
treed49536f01f2148eb381101f7883abaffedf9fff7 /libs/input/PointerController.h
parentff814adfdda376ceeeff5765cd50195b88e567ad (diff)
Introduce animated pointer icon for STYLE_WAIT.
Change-Id: I893f8276e09351db6187c553f349008794b95690
Diffstat (limited to 'libs/input/PointerController.h')
-rw-r--r--libs/input/PointerController.h21
1 files changed, 16 insertions, 5 deletions
diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h
index 6d840db0ec5c..b6c01d2903a9 100644
--- a/libs/input/PointerController.h
+++ b/libs/input/PointerController.h
@@ -20,6 +20,7 @@
#include "SpriteController.h"
#include <map>
+#include <vector>
#include <ui/DisplayInfo.h>
#include <input/Input.h>
@@ -30,8 +31,6 @@
#include <utils/String8.h>
#include <gui/DisplayEventReceiver.h>
-#include <SkBitmap.h>
-
namespace android {
/*
@@ -43,6 +42,11 @@ struct PointerResources {
SpriteIcon spotAnchor;
};
+struct PointerAnimation {
+ std::vector<SpriteIcon> animationFrames;
+ nsecs_t durationPerFrame;
+};
+
/*
* Pointer controller policy interface.
*
@@ -59,7 +63,8 @@ protected:
public:
virtual void loadPointerResources(PointerResources* outResources) = 0;
- virtual void loadAdditionalMouseResources(std::map<int32_t, SpriteIcon>* outResources) = 0;
+ virtual void loadAdditionalMouseResources(std::map<int32_t, SpriteIcon>* outResources,
+ std::map<int32_t, PointerAnimation>* outAnimationResources) = 0;
virtual int32_t getDefaultPointerIconId() = 0;
};
@@ -98,7 +103,7 @@ public:
const uint32_t* spotIdToIndex, BitSet32 spotIdBits);
virtual void clearSpots();
- void updatePointerShape(int iconId);
+ void updatePointerShape(int32_t iconId);
void setDisplayViewport(int32_t width, int32_t height, int32_t orientation);
void setPointerIcon(const SpriteIcon& icon);
void setInactivityTimeout(InactivityTimeout inactivityTimeout);
@@ -145,6 +150,9 @@ private:
bool animationPending;
nsecs_t animationTime;
+ size_t animationFrameIndex;
+ nsecs_t lastFrameUpdatedTime;
+
int32_t displayWidth;
int32_t displayHeight;
int32_t displayOrientation;
@@ -162,7 +170,8 @@ private:
SpriteIcon pointerIcon;
bool pointerIconChanged;
- std::map<int, SpriteIcon> additionalMouseResources;
+ std::map<int32_t, SpriteIcon> additionalMouseResources;
+ std::map<int32_t, PointerAnimation> animationResources;
int32_t requestedPointerShape;
@@ -178,6 +187,8 @@ private:
void handleMessage(const Message& message);
int handleEvent(int fd, int events, void* data);
void doAnimate(nsecs_t timestamp);
+ bool doFadingAnimationLocked(nsecs_t timestamp);
+ bool doBitmapAnimationLocked(nsecs_t timestamp);
void doInactivityTimeout();
void startAnimationLocked();