From 81604198d9481b724027751746fb431e4dbe0077 Mon Sep 17 00:00:00 2001
From: Greg Fodor <gfodor@gmail.com>
Date: Thu, 1 Nov 2018 23:23:54 +0000
Subject: [PATCH] Attempt at oculus go scheme

---
 .../userinput/bindings/oculus-go-user.js      | 41 +++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/src/systems/userinput/bindings/oculus-go-user.js b/src/systems/userinput/bindings/oculus-go-user.js
index c0ec9199a..69f9f5ee2 100644
--- a/src/systems/userinput/bindings/oculus-go-user.js
+++ b/src/systems/userinput/bindings/oculus-go-user.js
@@ -4,16 +4,19 @@ import { xforms } from "./xforms";
 
 const touchpad = "/vars/oculusgo/touchpad";
 const touchpadPressed = "/vars/oculusgo/touchpadPressed";
+const touchpadReleased = "/vars/oculusgo/touchpadReleased";
 const dpadNorth = "/vars/oculusgo/dpad/north";
 const dpadSouth = "/vars/oculusgo/dpad/south";
 const dpadEast = "/vars/oculusgo/dpad/east";
 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: {
@@ -35,6 +38,11 @@ export const oculusGoUserBindings = {
       dest: { value: touchpad },
       xform: xforms.compose_vec2
     },
+    {
+      src: [dpadNorth, dpadSouth, dpadCenter],
+      dest: { value: dpadCenterStrip },
+      xform: xforms.any
+    },
     {
       src: {
         value: paths.device.oculusgo.button("touchpad").pressed
@@ -42,6 +50,13 @@ export const oculusGoUserBindings = {
       dest: { value: touchpadPressed },
       xform: xforms.rising
     },
+    {
+      src: {
+        value: paths.device.oculusgo.button("touchpad").pressed
+      },
+      dest: { value: touchpadReleased },
+      xform: xforms.falling
+    },
     {
       src: {
         value: touchpad
@@ -55,6 +70,25 @@ export const oculusGoUserBindings = {
       },
       xform: xforms.vec2dpad(0.8)
     },
+    {
+      src: {
+        value: dpadCenterStrip,
+        bool: paths.device.oculusgo.button("touchpad").pressed
+      },
+      dest: {
+        value: paths.actions.ensureFrozen
+      },
+      root: rootForFrozenOverrideWhenHolding,
+      priority: 100
+      xform: xforms.copyIfTrue
+    },
+    {
+      src: { value: touchpadReleased },
+      dest: {
+        value: paths.actions.thaw
+      },
+      xform: xforms.copyIfTrue
+    },
     {
       src: {
         value: dpadEast,
@@ -138,6 +172,13 @@ export const oculusGoUserBindings = {
       },
       dest: { value: paths.actions.cursor.modDelta },
       xform: xforms.touch_axis_scroll()
+    },
+    {
+      src: null,
+      dest: { value: paths.actions.ensureFrozen },
+      root: rootForFrozenOverrideWhenHolding,
+      priority: 200,
+      xform: xforms.always(false)
     }
   ],
 
-- 
GitLab