From a607f7ddfbddcf1c0c6aee01ff486525c71c0daf Mon Sep 17 00:00:00 2001
From: netpro2k <netpro2k@gmail.com>
Date: Thu, 8 Nov 2018 17:22:53 -0800
Subject: [PATCH] Update Go bindings with new priority style

---
 .../userinput/bindings/oculus-go-user.js      | 113 +++++++++---------
 1 file changed, 56 insertions(+), 57 deletions(-)

diff --git a/src/systems/userinput/bindings/oculus-go-user.js b/src/systems/userinput/bindings/oculus-go-user.js
index 048eaf750..4bdeba3ec 100644
--- a/src/systems/userinput/bindings/oculus-go-user.js
+++ b/src/systems/userinput/bindings/oculus-go-user.js
@@ -4,8 +4,10 @@ import { xforms } from "./xforms";
 import { addSetsToBindings } from "./utils";
 
 const touchpad = "/vars/oculusgo/touchpad";
-const touchpadPressed = "/vars/oculusgo/touchpadPressed";
-const touchpadReleased = "/vars/oculusgo/touchpadReleased";
+const touchpadRising = "/vars/oculusgo/touchpad/rising";
+const touchpadFalling = "/vars/oculusgo/touchpad/falling";
+const triggerRising = "/vars/oculusgo/trigger/rising";
+const triggerFalling = "/vars/oculusgo/trigger/falling";
 const dpadNorth = "/vars/oculusgo/dpad/north";
 const dpadSouth = "/vars/oculusgo/dpad/south";
 const dpadEast = "/vars/oculusgo/dpad/east";
@@ -13,19 +15,12 @@ const dpadWest = "/vars/oculusgo/dpad/west";
 const dpadCenter = "/vars/oculusgo/dpad/center";
 const dpadCenterStrip = "/vars/oculusgo/dpad/centerStrip";
 
-const triggerRisingRoot = "oculusGoTriggerRising";
-const triggerFallingRoot = "oculusGoTriggerFalling";
-const dpadEastRoot = "oculusGoDpadEast";
-const dpadWestRoot = "oculusGoDpadWest";
-const rootForFrozenOverrideWhenHolding = "rootForFrozenOverrideWhenHolding";
-
 const grabBinding = {
   src: {
-    value: paths.device.oculusgo.button("trigger").pressed
+    value: triggerRising
   },
   dest: { value: paths.actions.cursor.grab },
-  xform: xforms.rising,
-  root: triggerRisingRoot,
+  xform: xforms.copy,
   priority: 200
 };
 
@@ -33,25 +28,41 @@ export const oculusGoUserBindings = addSetsToBindings({
   [sets.global]: [
     {
       src: {
-        x: paths.device.oculusgo.axis("touchpadX"),
-        y: paths.device.oculusgo.axis("touchpadY")
+        value: paths.device.oculusgo.button("trigger").pressed
       },
-      dest: { value: touchpad },
-      xform: xforms.compose_vec2
+      dest: { value: triggerRising },
+      xform: xforms.rising
+    },
+    {
+      src: {
+        value: paths.device.oculusgo.button("trigger").pressed
+      },
+      dest: { value: triggerFalling },
+      xform: xforms.falling
     },
     {
       src: {
         value: paths.device.oculusgo.button("touchpad").pressed
       },
-      dest: { value: touchpadPressed },
-      xform: xforms.rising
+      dest: { value: touchpadRising },
+      xform: xforms.rising,
+      priority: 100
     },
     {
       src: {
         value: paths.device.oculusgo.button("touchpad").pressed
       },
-      dest: { value: touchpadReleased },
-      xform: xforms.falling
+      dest: { value: touchpadFalling },
+      xform: xforms.falling,
+      priority: 100
+    },
+    {
+      src: {
+        x: paths.device.oculusgo.axis("touchpadX"),
+        y: paths.device.oculusgo.axis("touchpadY")
+      },
+      dest: { value: touchpad },
+      xform: xforms.compose_vec2
     },
     {
       src: {
@@ -79,12 +90,11 @@ export const oculusGoUserBindings = addSetsToBindings({
       dest: {
         value: paths.actions.ensureFrozen
       },
-      root: rootForFrozenOverrideWhenHolding,
       priority: 100,
       xform: xforms.copyIfTrue
     },
     {
-      src: { value: touchpadReleased },
+      src: { value: touchpadFalling },
       dest: {
         value: paths.actions.thaw
       },
@@ -93,35 +103,32 @@ export const oculusGoUserBindings = addSetsToBindings({
     {
       src: {
         value: dpadEast,
-        bool: touchpadPressed
+        bool: touchpadRising
       },
       dest: {
         value: paths.actions.snapRotateRight
       },
       xform: xforms.copyIfTrue,
-      root: dpadEastRoot,
       priority: 100
     },
     {
       src: {
         value: dpadWest,
-        bool: touchpadPressed
+        bool: touchpadRising
       },
       dest: {
         value: paths.actions.snapRotateLeft
       },
       xform: xforms.copyIfTrue,
-      root: dpadWestRoot,
       priority: 100
     },
 
     {
       src: {
-        value: paths.device.oculusgo.button("trigger").pressed
+        value: triggerRising
       },
       dest: { value: paths.actions.rightHand.startTeleport },
-      xform: xforms.rising,
-      root: triggerRisingRoot,
+      xform: xforms.copy,
       priority: 100
     },
 
@@ -159,11 +166,10 @@ export const oculusGoUserBindings = addSetsToBindings({
   [sets.cursorHoldingInteractable]: [
     {
       src: {
-        value: paths.device.oculusgo.button("trigger").pressed
+        value: triggerFalling
       },
       dest: { value: paths.actions.cursor.drop },
-      xform: xforms.falling,
-      root: triggerFallingRoot,
+      xform: xforms.copy,
       priority: 200
     },
     {
@@ -175,22 +181,19 @@ export const oculusGoUserBindings = addSetsToBindings({
       xform: xforms.touch_axis_scroll()
     },
     {
-      src: null,
-      dest: { value: paths.actions.ensureFrozen },
-      root: rootForFrozenOverrideWhenHolding,
+      src: { value: dpadCenterStrip },
       priority: 200,
-      xform: xforms.always(false)
+      xform: xforms.noop
     }
   ],
 
   [sets.rightHandTeleporting]: [
     {
       src: {
-        value: paths.device.oculusgo.button("trigger").pressed
+        value: triggerFalling
       },
       dest: { value: paths.actions.rightHand.stopTeleport },
-      xform: xforms.falling,
-      root: triggerFallingRoot,
+      xform: xforms.copy,
       priority: 100
     }
   ],
@@ -198,20 +201,18 @@ export const oculusGoUserBindings = addSetsToBindings({
   [sets.cursorHoldingPen]: [
     {
       src: {
-        value: paths.device.oculusgo.button("trigger").pressed
+        value: triggerRising
       },
       dest: { value: paths.actions.cursor.startDrawing },
-      xform: xforms.rising,
-      root: triggerRisingRoot,
+      xform: xforms.copy,
       priority: 300
     },
     {
       src: {
-        value: paths.device.oculusgo.button("trigger").pressed
+        value: triggerFalling
       },
       dest: { value: paths.actions.cursor.stopDrawing },
-      xform: xforms.falling,
-      root: triggerFallingRoot,
+      xform: xforms.copy,
       priority: 300
     },
     {
@@ -225,33 +226,32 @@ export const oculusGoUserBindings = addSetsToBindings({
     {
       src: {
         value: dpadCenterStrip,
-        bool: touchpadReleased
+        bool: touchpadFalling
       },
       dest: { value: paths.actions.cursor.drop },
-      xform: xforms.copyIfTrue
+      xform: xforms.copyIfTrue,
+      priority: 300
     },
     {
       src: {
         value: dpadEast,
-        bool: touchpadPressed
+        bool: touchpadRising
       },
       dest: {
         value: paths.actions.cursor.penPrevColor
       },
       xform: xforms.copyIfTrue,
-      root: dpadEastRoot,
       priority: 200
     },
     {
       src: {
         value: dpadWest,
-        bool: touchpadPressed
+        bool: touchpadRising
       },
       dest: {
         value: paths.actions.cursor.penNextColor
       },
       xform: xforms.copyIfTrue,
-      root: dpadWestRoot,
       priority: 200
     }
   ],
@@ -259,28 +259,27 @@ export const oculusGoUserBindings = addSetsToBindings({
   [sets.cursorHoldingCamera]: [
     {
       src: {
-        value: paths.device.oculusgo.button("trigger").pressed
+        value: triggerRising
       },
       dest: { value: paths.actions.cursor.takeSnapshot },
-      xform: xforms.rising,
-      root: triggerRisingRoot,
+      xform: xforms.copy,
       priority: 300
     },
     {
       src: {
-        value: paths.device.oculusgo.button("trigger").pressed
+        value: triggerFalling
       },
       xform: xforms.noop,
-      root: triggerFallingRoot,
       priority: 300
     },
     {
       src: {
         value: dpadCenterStrip,
-        bool: touchpadReleased
+        bool: touchpadFalling
       },
       dest: { value: paths.actions.cursor.drop },
-      xform: xforms.copyIfTrue
+      xform: xforms.copyIfTrue,
+      priority: 300
     }
   ]
 });
-- 
GitLab