@@ -120,7 +120,7 @@ protected override void UpdateNewConnectedInputDevice(IVRModuleDeviceStateRW sta
120120 updateFunc = UpdateWaveCRControllerState ;
121121 break ;
122122 default :
123- updateFunc = null ;
123+ updateFunc = UpdateUnknownControllerState ;
124124 break ;
125125 }
126126
@@ -176,6 +176,48 @@ private void UpdateControllerState(IVRModuleDeviceStateRW state, InputDevice dev
176176 }
177177 }
178178
179+ private void UpdateUnknownControllerState ( IVRModuleDeviceStateRW state , InputDevice device )
180+ {
181+ bool primaryButton = GetDeviceFeatureValueOrDefault ( device , CommonUsages . primaryButton ) ;
182+ bool primaryTouch = GetDeviceFeatureValueOrDefault ( device , CommonUsages . primaryTouch ) ;
183+ bool secondaryButton = GetDeviceFeatureValueOrDefault ( device , CommonUsages . secondaryButton ) ;
184+ bool secondaryTouch = GetDeviceFeatureValueOrDefault ( device , CommonUsages . secondaryTouch ) ;
185+ bool gripButton = GetDeviceFeatureValueOrDefault ( device , CommonUsages . gripButton ) ;
186+ bool triggerButton = GetDeviceFeatureValueOrDefault ( device , CommonUsages . triggerButton ) ;
187+ bool menuButton = GetDeviceFeatureValueOrDefault ( device , CommonUsages . menuButton ) ;
188+ bool primary2DAxisClick = GetDeviceFeatureValueOrDefault ( device , CommonUsages . primary2DAxisClick ) ;
189+ bool primary2DAxisTouch = GetDeviceFeatureValueOrDefault ( device , CommonUsages . primary2DAxisTouch ) ;
190+ bool secondary2DAxisClick = GetDeviceFeatureValueOrDefault ( device , CommonUsages . secondary2DAxisClick ) ;
191+ bool secondary2DAxisTouch = GetDeviceFeatureValueOrDefault ( device , CommonUsages . secondary2DAxisTouch ) ;
192+
193+ float triggerValue = GetDeviceFeatureValueOrDefault ( device , CommonUsages . trigger ) ;
194+ float gripValue = GetDeviceFeatureValueOrDefault ( device , CommonUsages . grip ) ;
195+
196+ Vector2 primary2DAxisValue = GetDeviceFeatureValueOrDefault ( device , CommonUsages . primary2DAxis ) ;
197+ Vector2 secondary2DAxisValue = GetDeviceFeatureValueOrDefault ( device , CommonUsages . secondary2DAxis ) ;
198+
199+ state . SetButtonPress ( VRModuleRawButton . A , primaryButton ) ;
200+ state . SetButtonPress ( VRModuleRawButton . ApplicationMenu , secondaryButton | menuButton ) ;
201+ state . SetButtonPress ( VRModuleRawButton . Trigger , triggerButton ) ;
202+ state . SetButtonPress ( VRModuleRawButton . Grip , gripButton ) ;
203+ state . SetButtonPress ( VRModuleRawButton . Touchpad , primary2DAxisClick ) ;
204+ state . SetButtonPress ( VRModuleRawButton . Joystick , secondary2DAxisClick ) ;
205+
206+ state . SetButtonTouch ( VRModuleRawButton . A , primaryTouch ) ;
207+ state . SetButtonTouch ( VRModuleRawButton . ApplicationMenu , secondaryTouch | menuButton ) ;
208+ state . SetButtonTouch ( VRModuleRawButton . Trigger , triggerButton ) ;
209+ state . SetButtonTouch ( VRModuleRawButton . Grip , gripButton ) ;
210+ state . SetButtonTouch ( VRModuleRawButton . Touchpad , primary2DAxisTouch ) ;
211+ state . SetButtonTouch ( VRModuleRawButton . Joystick , secondary2DAxisTouch ) ;
212+
213+ state . SetAxisValue ( VRModuleRawAxis . Trigger , triggerValue ) ;
214+ state . SetAxisValue ( VRModuleRawAxis . CapSenseGrip , gripValue ) ;
215+ state . SetAxisValue ( VRModuleRawAxis . TouchpadX , primary2DAxisValue . x ) ;
216+ state . SetAxisValue ( VRModuleRawAxis . TouchpadY , primary2DAxisValue . y ) ;
217+ state . SetAxisValue ( VRModuleRawAxis . JoystickX , secondary2DAxisValue . x ) ;
218+ state . SetAxisValue ( VRModuleRawAxis . JoystickY , secondary2DAxisValue . y ) ;
219+ }
220+
179221 private void UpdateViveControllerState ( IVRModuleDeviceStateRW state , InputDevice device )
180222 {
181223 bool menuButton = GetDeviceFeatureValueOrDefault ( device , CommonUsages . menuButton ) ;
0 commit comments