@@ -463,7 +463,10 @@ public void DisplayToast((string Title, string Text) message)
463463 if ( ! Initialized || OpenVR . System is null ) return true ; // Sanity check
464464
465465 // Auto-returns null if the service is null
466- DriverService ? . RequestVrRestart ( reason ) ;
466+ if ( IsEmulationEnabled )
467+ _00driverService ? . RequestVrRestart ( reason ) ;
468+ else _driverService ? . RequestVrRestart ( reason ) ;
469+
467470 return true ; // Wait and return
468471 }
469472 catch ( Exception )
@@ -572,7 +575,10 @@ public TrackerBase GetTrackerPose(string contains, bool canBeFromAmethyst = true
572575
573576 var enumTrackerBases = trackerBases . ToList ( ) ;
574577 foreach ( var trackerBase in enumTrackerBases . ToList ( ) )
575- DriverService ? . SetTrackerState ( trackerBase . ComTracker ( ) ) ;
578+ if ( IsEmulationEnabled )
579+ _00driverService ? . SetTrackerState ( trackerBase . ComTracker00 ( ) ) ;
580+ else
581+ _driverService ? . SetTrackerState ( trackerBase . ComTracker ( ) ) ;
576582
577583 return Task . FromResult ( wantReply ? enumTrackerBases . Select ( x => ( x , true ) ) : null ) ;
578584 }
@@ -596,7 +602,10 @@ public TrackerBase GetTrackerPose(string contains, bool canBeFromAmethyst = true
596602
597603 var enumTrackerBases = trackerBases . ToList ( ) ;
598604 foreach ( var trackerBase in enumTrackerBases . ToList ( ) )
599- DriverService ? . UpdateTracker ( trackerBase . ComTracker ( ) ) ;
605+ if ( IsEmulationEnabled )
606+ _00driverService ? . UpdateTracker ( trackerBase . ComTracker00 ( ) ) ;
607+ else
608+ _driverService ? . UpdateTracker ( trackerBase . ComTracker ( ) ) ;
600609
601610 return Task . FromResult ( wantReply ? enumTrackerBases . Select ( x => ( x , true ) ) : null ) ;
602611 }
@@ -631,13 +640,16 @@ public Task ProcessKeyInput(IKeyInputAction action, object data, TrackerType? re
631640 switch ( data )
632641 {
633642 case bool boolData :
634- DriverService ? . UpdateInputBoolean ( ( driver_00Amethyst . dTrackerType ) trackerType , action . Guid , Convert . ToSByte ( boolData ) ) ;
643+ if ( IsEmulationEnabled )
644+ _00driverService ? . UpdateInputBoolean ( ( driver_00Amethyst . dTrackerType ) trackerType , action . Guid , Convert . ToSByte ( boolData ) ) ;
635645 break ;
636646 case float scalarData :
637- DriverService ? . UpdateInputScalar ( ( driver_00Amethyst . dTrackerType ) trackerType , action . Guid , scalarData ) ;
647+ if ( IsEmulationEnabled )
648+ _00driverService ? . UpdateInputScalar ( ( driver_00Amethyst . dTrackerType ) trackerType , action . Guid , scalarData ) ;
638649 break ;
639650 case double scalarData :
640- DriverService ? . UpdateInputScalar ( ( driver_00Amethyst . dTrackerType ) trackerType , action . Guid , ( float ) scalarData ) ;
651+ if ( IsEmulationEnabled )
652+ _00driverService ? . UpdateInputScalar ( ( driver_00Amethyst . dTrackerType ) trackerType , action . Guid , ( float ) scalarData ) ;
641653 break ;
642654 default :
643655 Host ? . Log ( $ "Data { data } with type { data . GetType ( ) } was not processed because its type is not supported.") ;
@@ -1084,6 +1096,23 @@ public static driver_Amethyst.dTrackerBase ComTracker(this TrackerBase tracker)
10841096 } ;
10851097 }
10861098
1099+ public static driver_00Amethyst . dTrackerBase ComTracker00 ( this TrackerBase tracker )
1100+ {
1101+ return new driver_00Amethyst . dTrackerBase
1102+ {
1103+ ConnectionState = Convert . ToSByte ( tracker . ConnectionState ) ,
1104+ TrackingState = Convert . ToSByte ( tracker . TrackingState == TrackedJointState . StateTracked ) ,
1105+ Serial = tracker . Serial ,
1106+ Role = ( driver_00Amethyst . dTrackerType ) tracker . Role ,
1107+ Position = tracker . Position . ComVector00 ( ) ,
1108+ Orientation = tracker . Orientation . ComQuaternion00 ( ) ,
1109+ Velocity = tracker . Velocity . ComVector00 ( ) ,
1110+ Acceleration = tracker . Acceleration . ComVector00 ( ) ,
1111+ AngularVelocity = tracker . AngularVelocity . ComVector00 ( ) ,
1112+ AngularAcceleration = tracker . AngularAcceleration . ComVector00 ( )
1113+ } ;
1114+ }
1115+
10871116 public static driver_Amethyst . dVector3 ComVector ( this Vector3 v )
10881117 {
10891118 return new driver_Amethyst . dVector3 { X = v . X , Y = v . Y , Z = v . Z } ;
@@ -1100,6 +1129,22 @@ public static driver_Amethyst.dQuaternion ComQuaternion(this Quaternion q)
11001129 return new driver_Amethyst . dQuaternion { X = q . X , Y = q . Y , Z = q . Z , W = q . W } ;
11011130 }
11021131
1132+ public static driver_00Amethyst . dVector3 ComVector00 ( this Vector3 v )
1133+ {
1134+ return new driver_00Amethyst . dVector3 { X = v . X , Y = v . Y , Z = v . Z } ;
1135+ }
1136+
1137+ public static driver_00Amethyst . dVector3Nullable ComVector00 ( this Vector3 ? v )
1138+ {
1139+ return new driver_00Amethyst . dVector3Nullable
1140+ { HasValue = Convert . ToSByte ( v . HasValue ) , Value = v ? . ComVector00 ( ) ?? new driver_00Amethyst . dVector3 ( ) } ;
1141+ }
1142+
1143+ public static driver_00Amethyst . dQuaternion ComQuaternion00 ( this Quaternion q )
1144+ {
1145+ return new driver_00Amethyst . dQuaternion { X = q . X , Y = q . Y , Z = q . Z , W = q . W } ;
1146+ }
1147+
11031148 public static Vector3 GetPosition ( this HmdMatrix34_t mat )
11041149 {
11051150 return new Vector3 ( mat . m3 , mat . m7 , mat . m11 ) ;
0 commit comments