6#if (UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN) && !ENABLE_METAQUEST && !ENABLE_OPENXR
7using System.Runtime.InteropServices;
13 public sealed class GameInputProvider : IHapticProvider
16 #region HAPTIC CHARACTERISTICS FIELDS
17 private const string DISPLAY_NAME =
"GameInput";
18 private const string DESCRIPTION =
"Controller APIs communication layer for GameInput";
19 private const string MANUFACTURER =
"Microsoft";
20 private const string VERSION =
"1.0";
23 #region HAPTIC CHARACTERISTICS GETTERS
24 [UnityEngine.Scripting.Preserve]
25 public string DisplayName()
30 [UnityEngine.Scripting.Preserve]
31 public string Description()
36 [UnityEngine.Scripting.Preserve]
37 public string Manufacturer()
42 [UnityEngine.Scripting.Preserve]
43 public string Version()
50 private static class GameInputProviderNative
52 const string DLL_NAME =
"Interhaptics.GameInputProvider";
55 public static extern bool ProviderInit();
57 public static extern bool ProviderIsPresent();
59 public static extern bool ProviderClean();
61 public static extern void ProviderRenderHaptics();
63 public static extern bool IsGameInputSupported();
65 public static extern void SetTriggerMode(
bool transcodeStiffness);
68 [UnityEngine.Scripting.Preserve]
71 bool res = GameInputProviderNative.ProviderInit();
73 if ((res) && (HapticManager.DebugSwitch))
75 UnityEngine.Debug.Log(
"GameInput haptic provider started.");
80 [UnityEngine.Scripting.Preserve]
81 public bool IsPresent()
83 return GameInputProviderNative.ProviderIsPresent();
86 [UnityEngine.Scripting.Preserve]
89 return GameInputProviderNative.ProviderClean();
92 [UnityEngine.Scripting.Preserve]
93 public void RenderHaptics()
95 GameInputProviderNative.ProviderRenderHaptics();
98 [UnityEngine.Scripting.Preserve]
99 public bool IsGameInputSupported()
101 return GameInputProviderNative.IsGameInputSupported();
104 [UnityEngine.Scripting.Preserve]
105 public void SetTriggerMode(
bool transcodeStiffness)
107 GameInputProviderNative.SetTriggerMode(transcodeStiffness);