aboutsummaryrefslogtreecommitdiff
path: root/backends/events/symbiansdl/symbiansdl-events.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/events/symbiansdl/symbiansdl-events.cpp')
-rw-r--r--backends/events/symbiansdl/symbiansdl-events.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/backends/events/symbiansdl/symbiansdl-events.cpp b/backends/events/symbiansdl/symbiansdl-events.cpp
index 4649f9f90a..0ae5824681 100644
--- a/backends/events/symbiansdl/symbiansdl-events.cpp
+++ b/backends/events/symbiansdl/symbiansdl-events.cpp
@@ -31,6 +31,8 @@
#include <bautils.h>
+#define JOY_DEADZONE 3200
+
SymbianSdlEventSource::zoneDesc SymbianSdlEventSource::_zones[TOTAL_ZONES] = {
{ 0, 0, 320, 145 },
{ 0, 145, 150, 55 },
@@ -200,4 +202,38 @@ bool SymbianSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return false;
}
+bool SymbianSdlEventSource::handleAxisToMouseMotion(int16 xAxis, int16 yAxis) {
+ // Symbian wants dialog joystick i.e cursor for movement/selection
+
+ if (xAxis > JOY_DEADZONE) {
+ xAxis -= JOY_DEADZONE;
+ } else if (xAxis < -JOY_DEADZONE) {
+ xAxis += JOY_DEADZONE;
+ } else
+ xAxis = 0;
+ if (yAxis > JOY_DEADZONE) {
+ yAxis -= JOY_DEADZONE;
+ } else if (yAxis < -JOY_DEADZONE) {
+ yAxis += JOY_DEADZONE;
+ } else
+ yAxis = 0;
+
+ if (xAxis != 0) {
+ _km.x_vel = (xAxis > 0) ? 1 * MULTIPLIER:-1 * MULTIPLIER;
+ _km.x_down_count = 1;
+ } else {
+ _km.x_vel = 0;
+ _km.x_down_count = 0;
+ }
+ if (yAxis != 0) {
+ _km.y_vel = (yAxis > 0) ? 1 * MULTIPLIER: -1 * MULTIPLIER;
+ _km.y_down_count = 1;
+ } else {
+ _km.y_vel = 0;
+ _km.y_down_count = 0;
+ }
+
+ return false;
+}
+
#endif