aboutsummaryrefslogtreecommitdiffstats
path: root/support/magicleap/Servo2D/code/src
diff options
context:
space:
mode:
authorAlan Jeffrey <ajeffrey@mozilla.com>2018-10-31 17:59:14 -0500
committerAlan Jeffrey <ajeffrey@mozilla.com>2018-11-01 12:16:01 -0500
commit3970c4ffbe2d0101041d3f8b377b4b02b6276188 (patch)
tree9e195e719376533c5e579b2ca27d6591105e140f /support/magicleap/Servo2D/code/src
parent95bfaa0a770479fb3bf6bf0b1f85c9ae343e66ff (diff)
downloadservo-3970c4ffbe2d0101041d3f8b377b4b02b6276188.tar.gz
servo-3970c4ffbe2d0101041d3f8b377b4b02b6276188.zip
Support scrolling in Magic Leap Servo
Diffstat (limited to 'support/magicleap/Servo2D/code/src')
-rw-r--r--support/magicleap/Servo2D/code/src/Servo2D.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/support/magicleap/Servo2D/code/src/Servo2D.cpp b/support/magicleap/Servo2D/code/src/Servo2D.cpp
index d24316490b6..81babf942c5 100644
--- a/support/magicleap/Servo2D/code/src/Servo2D.cpp
+++ b/support/magicleap/Servo2D/code/src/Servo2D.cpp
@@ -45,7 +45,8 @@ extern "C" ServoInstance* init_servo(EGLContext, EGLSurface, EGLDisplay,
Servo2D*, MLLogger, MLHistoryUpdate,
const char* url, int width, int height, float hidpi);
extern "C" void heartbeat_servo(ServoInstance*);
-extern "C" void cursor_servo(ServoInstance*, float x, float y, bool triggered);
+extern "C" void trigger_servo(ServoInstance*, float x, float y, bool down);
+extern "C" void move_servo(ServoInstance*, float x, float y);
extern "C" void traverse_servo(ServoInstance*, int delta);
extern "C" void navigate_servo(ServoInstance*, const char* text);
extern "C" void discard_servo(ServoInstance*);
@@ -220,8 +221,8 @@ bool Servo2D::eventListener(lumin::ServerEvent* event) {
switch (event->getServerEventType()) {
case lumin::ServerEventType::kControlTouchPadInputEvent:
return touchpadEventListener(static_cast<lumin::ControlTouchPadInputEventData*>(event));
- case lumin::ServerEventType::kKeyInputEvent:
- return keyEventListener(static_cast<lumin::KeyInputEventData*>(event));
+ case lumin::ServerEventType::kGestureInputEvent:
+ return gestureEventListener(static_cast<lumin::GestureInputEventData*>(event));
default:
return false;
}
@@ -257,14 +258,15 @@ bool Servo2D::touchpadEventListener(lumin::ControlTouchPadInputEventData* event)
return false;
}
- // Inform Servo of the trigger
- cursor_servo(servo_, pos.x, pos.y, false);
+ // Inform Servo of the move
+ move_servo(servo_, pos.x, pos.y);
return true;
}
-bool Servo2D::keyEventListener(lumin::KeyInputEventData* event) {
- // Only respond to trigger keys
- if (event->keyCode() != lumin::input::KeyCodes::AKEYCODE_EX_TRIGGER) {
+bool Servo2D::gestureEventListener(lumin::GestureInputEventData* event) {
+ // Only respond to trigger up or down
+ lumin::input::GestureType typ = event->getGesture();
+ if (typ != lumin::input::GestureType::TriggerDown && typ != lumin::input::GestureType::TriggerUp) {
return false;
}
@@ -280,7 +282,7 @@ bool Servo2D::keyEventListener(lumin::KeyInputEventData* event) {
}
// Inform Servo of the trigger
- cursor_servo(servo_, pos.x, pos.y, true);
+ trigger_servo(servo_, pos.x, pos.y, typ == lumin::input::GestureType::TriggerDown);
return true;
}