6using System.Runtime.InteropServices;
11 public static partial class HAR
17 public static bool Init()
19 UnityEngine.Debug.LogWarning(
"Unity Editor in iOS will have dummy implementation of the Interhaptics Engine. To correctly debug in editor use a Windows version of the Editor.");
24 public static void Quit()
29 public static void SetGlobalIntensity(
double _intensity)
34 public static double GetGlobalIntensity()
40 public static int AddParametricEffect([In]
double[] _amplitude,
int _amplitudeSize, [In]
double[] _pitch,
int _pitchSize,
double _freqMin,
double _freqMax, [In]
double[] _transient,
int _transientSize,
bool _isLooping)
46 public static void SetEventIntensity(
int _hMaterialId,
double _intensity)
51 public static void SetEventLoop(
int _hMaterialId,
int _loops)
61 private static int AddHM(
string _content)
67 private static bool UpdateHM(
int _id,
string _content)
73 public static double GetVibrationAmp(
int _id,
double _step,
int _mode = 0)
79 public static double GetVibrationFreq(
int _id,
double _step)
85 public static double GetVibrationLength(
int _id)
91 public static double GetTextureAmp(
int _id,
double _step,
int _mode = 0)
97 public static double GetTextureFreq(
int _id,
double _step)
103 public static double GetTextureLength(
int _id)
109 public static double GetStiffnessAmp(
int _id,
double _step)
115 public static double GetStiffnessFreq(
int _id,
double _step)
121 public static void ClearOutputBuffers(
bool _resetClips)
153 public static void PlayEvent(
int _hMaterialId,
double _vibrationOffset,
double _textureOffset,
double _stiffnessOffset)
158 public static void StopEvent(
int _hMaterialId)
163 public static void StopAllEvents()
168 public static void ClearActiveEvents()
173 public static void ClearInactiveEvents()
178 public static void ClearEvent(
int _hMaterialId)
183 public static void SetEventOffsets(
int _hMaterialId,
double _vibrationOffset,
double _textureOffset,
double _stiffnessOffset)
193 public static void ComputeAllEvents(
double _curTime)
208 public static void RemoveAllTargetsFromEvent(
int _hMaterialId)
218#if (UNITY_IOS || UNITY_SWITCH) && !UNITY_EDITOR
219 const string DLL_NAME =
"__Internal";
221 const string DLL_NAME =
"HAR";
231 [DllImport(DLL_NAME)]
232 public static extern bool Init();
237 [DllImport(DLL_NAME)]
238 public static extern void Quit();
243 [DllImport(DLL_NAME)]
244 public static extern void SetGlobalIntensity(
double _intensity);
249 [DllImport(DLL_NAME)]
250 public static extern double GetGlobalIntensity();
264 [DllImport(DLL_NAME)]
265 public static extern int AddParametricEffect([In]
double[] _amplitude,
int _amplitudeSize, [In]
double[] _pitch,
int _pitchSize,
double _freqMin,
double _freqMax, [In]
double[] _transient,
int _transientSize,
bool _isLooping);
271 [DllImport(DLL_NAME)]
272 public static extern void SetEventIntensity(
int _hMaterialId,
double _intensity);
279 [DllImport(DLL_NAME)]
280 public static extern void SetEventLoop(
int _hMaterialID,
int _numberOfLoops);
288 [DllImport(DLL_NAME)]
295 [DllImport(DLL_NAME)]
296 private static extern int AddHM(
string _content);
304 [DllImport(DLL_NAME)]
305 private static extern bool UpdateHM(
int _id,
string _content);
307 [DllImport(DLL_NAME)]
308 public static extern double GetVibrationAmp(
int _id,
double _step,
int _mode = 0);
310 [DllImport(DLL_NAME)]
311 public static extern double GetVibrationFreq(
int _id,
double _step);
317 [DllImport(DLL_NAME)]
318 public static extern double GetVibrationLength(
int _id);
319 [DllImport(DLL_NAME)]
320 public static extern double GetTextureAmp(
int _id,
double _step,
int _mode = 0);
321 [DllImport(DLL_NAME)]
322 public static extern double GetTextureFreq(
int _id,
double _step);
323 [DllImport(DLL_NAME)]
324 public static extern double GetTextureLength(
int _id);
325 [DllImport(DLL_NAME)]
326 public static extern double GetStiffnessAmp(
int _id,
double _step);
327 [DllImport(DLL_NAME)]
328 public static extern double GetStiffnessFreq(
int _id,
double _step);
333 [DllImport(DLL_NAME)]
334 public static extern void ClearOutputBuffers(
bool _resetClips =
false);
335 [DllImport(DLL_NAME)]
337 [DllImport(DLL_NAME)]
339 [DllImport(DLL_NAME)]
341 [DllImport(DLL_NAME)]
342 public static extern void AddBodyPart(
Interhaptics.
HapticBodyMapping.Perception _perception,
Interhaptics.
HapticBodyMapping.BodyPartID _bodyPartID,
int _xDimension,
int _yDimension,
int _zDimension,
double _sampleRate,
bool _hd,
bool _splitFrequency,
bool _splitTransient,
bool realTime);
343 [DllImport(DLL_NAME)]
356 [DllImport(DLL_NAME)]
357 public static extern void PlayEvent(
int _hMaterialId,
double _vibrationOffset,
double _textureOffset,
double _stiffnessOffset);
362 [DllImport(DLL_NAME)]
363 public static extern void StopEvent(
int _hMaterialId);
367 [DllImport(DLL_NAME)]
368 public static extern void StopAllEvents();
369 [DllImport(DLL_NAME)]
373 public static extern void ClearActiveEvents();
374 [DllImport(DLL_NAME)]
379 public static extern void ClearInactiveEvents();
384 [DllImport(DLL_NAME)]
385 public static extern void ClearEvent(
int _hMaterialId);
393 [DllImport(DLL_NAME)]
394 public static extern void SetEventOffsets(
int _hMaterialId,
double _vibrationOffset,
double _textureOffset,
double _stiffnessOffset);
403 [DllImport(DLL_NAME)]
413 [DllImport(DLL_NAME)]
414 public static extern void ComputeAllEvents(
double _curTime);
422 [DllImport(DLL_NAME)]
431 [DllImport(DLL_NAME)]
437 [DllImport(DLL_NAME)]
438 public static extern void RemoveAllTargetsFromEvent(
int _hMaterialId);
Structure for command data in haptic systems.