diff options
author | Alan Jeffrey <ajeffrey@mozilla.com> | 2018-10-31 17:59:14 -0500 |
---|---|---|
committer | Alan Jeffrey <ajeffrey@mozilla.com> | 2018-11-01 12:16:01 -0500 |
commit | 3970c4ffbe2d0101041d3f8b377b4b02b6276188 (patch) | |
tree | 9e195e719376533c5e579b2ca27d6591105e140f /support/magicleap/Servo2D/code/src | |
parent | 95bfaa0a770479fb3bf6bf0b1f85c9ae343e66ff (diff) | |
download | servo-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.cpp | 20 |
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; } |