Skip to content

Commit 6e8bf81

Browse files
committed
Fixed (removed) dynamic casts
1 parent 8a58f16 commit 6e8bf81

File tree

1 file changed

+51
-6
lines changed

1 file changed

+51
-6
lines changed

plugin_OpenVR/OpenVR.cs

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)