private static bool QueryDeviceStringProperty(uint deviceIndex, ETrackedDeviceProperty prop, out string propValue) { propValue = string.Empty; if (!IsValidIndex(deviceIndex)) { return(false); } var system = OpenVR.System; if (system == null) { return(false); } var error = default(ETrackedPropertyError); var capacity = (int)system.GetStringTrackedDeviceProperty(deviceIndex, prop, null, 0, ref error); if (capacity <= 1 || capacity > 128) { return(false); } system.GetStringTrackedDeviceProperty(deviceIndex, prop, s_propStrBuilder, (uint)s_propStrBuilder.EnsureCapacity(capacity), ref error); if (error != ETrackedPropertyError.TrackedProp_Success) { return(false); } propValue = s_propStrBuilder.ToString(); s_propStrBuilder.Length = 0; return(true); }
//device情報を取得する public bool GetPropertyUint64(uint idx, ETrackedDeviceProperty prop, out ulong result) { ETrackedPropertyError error = new ETrackedPropertyError(); result = openvr.GetUint64TrackedDeviceProperty(idx, prop, ref error); return(error == ETrackedPropertyError.TrackedProp_Success); }
private float GetFloatProperty(ETrackedDeviceProperty prop) { var error = ETrackedPropertyError.TrackedProp_Success; var hmd = this.ovrApplication.Hmd; return(hmd.GetFloatTrackedDeviceProperty(ValveOpenVR.k_unTrackedDeviceIndex_Hmd, prop, ref error)); }
//device情報を取得する public bool GetPropertyInt32(uint idx, ETrackedDeviceProperty prop, out int result) { ETrackedPropertyError error = new ETrackedPropertyError(); result = openvr.GetInt32TrackedDeviceProperty(idx, prop, ref error); return(error == ETrackedPropertyError.TrackedProp_Success); }
public string GetStringTrackedDeviceProperty(uint deviceIndex, ETrackedDeviceProperty property) { ETrackedPropertyError error = ETrackedPropertyError.TrackedProp_Success; uint length = OpenVR.System.GetStringTrackedDeviceProperty(deviceIndex, property, null, 0, ref error); if (error == ETrackedPropertyError.TrackedProp_UnknownProperty) { return(null); } if (error != ETrackedPropertyError.TrackedProp_Success && error != ETrackedPropertyError.TrackedProp_BufferTooSmall) { throw new OpenVRException($"Failed to get property '{property}' for device at index {deviceIndex}: {error}", property, error); } if (length > 0) { StringBuilder stringBuilder = new StringBuilder((int)length); OpenVR.System.GetStringTrackedDeviceProperty(deviceIndex, property, stringBuilder, length, ref error); if (error != ETrackedPropertyError.TrackedProp_Success) { throw new OpenVRException($"Failed to get property '{property}' for device at index {deviceIndex}: {error}", property, error); } return(stringBuilder.ToString()); } return(null); }
private string QueryDeviceStringProperty(CVRSystem system, uint deviceIndex, ETrackedDeviceProperty prop) { var error = default(ETrackedPropertyError); var capacity = (int)system.GetStringTrackedDeviceProperty(deviceIndex, prop, null, 0, ref error); if (capacity <= 1 || capacity > 128) { return(string.Empty); } if (m_sb == null) { m_sb = new StringBuilder(capacity); } else { m_sb.EnsureCapacity(capacity); } system.GetStringTrackedDeviceProperty(deviceIndex, prop, m_sb, (uint)m_sb.Capacity, ref error); if (error != ETrackedPropertyError.TrackedProp_Success) { return(string.Empty); } var result = m_sb.ToString(); m_sb.Length = 0; return(result); }
public static IEnumerable <string> TrackedDeviceStrings(this CVRSystem hmd, ETrackedDeviceProperty prop) { if (hmd == null) { throw new ArgumentNullException(nameof(hmd)); } return(DeviceIndexes.Select(i => hmd.TrackedDeviceString(i, prop)).WhereSuccess()); }
private string GetPropertyString(int device, ETrackedDeviceProperty property) { StringBuilder b = new StringBuilder(1024); ETrackedPropertyError err = ETrackedPropertyError.TrackedProp_Success; system.GetStringTrackedDeviceProperty((uint)device, property, b, (uint)b.Capacity, ref err); return(b.ToString()); }
public bool GetPropertyBool(uint idx, ETrackedDeviceProperty prop, out bool result) { ReadyCheck(); //実行可能な状態かチェック ETrackedPropertyError error = new ETrackedPropertyError(); result = openvr.GetBoolTrackedDeviceProperty(idx, prop, ref error); return(error == ETrackedPropertyError.TrackedProp_Success); }
/// <summary>Interrogate OpenVR about a property in the device property Json file. By default we are interested in the Model Number.</summary> /// <param name="deviceIndex">Used by OpenVR to identify any tracked device, from the HMD to controllers and Lighthouses.</param> /// <param name="trackedDeviceProperty">The property to retrieve from the device property Json file.</param> /// <returns> If it exists, a string matching the value of the property in the property Json file of the device.</returns> public static string GetControllerProperty(int deviceIndex, ETrackedDeviceProperty trackedDeviceProperty) { var stringBuilder = new StringBuilder(1000); ETrackedPropertyError trackedPropertyError = ETrackedPropertyError.TrackedProp_Success; CVRSystem system = OpenVR.System; system.GetStringTrackedDeviceProperty((uint)deviceIndex, trackedDeviceProperty, stringBuilder, 1000, ref trackedPropertyError); return(stringBuilder.ToString()); }
string GetStringProperty(CVRSystem system, uint deviceId, ETrackedDeviceProperty prop) { var error = ETrackedPropertyError.TrackedProp_Success; var result = new System.Text.StringBuilder(); var capacity = system.GetStringTrackedDeviceProperty(deviceId, prop, result, 64, ref error); if (capacity > 0) return result.ToString(); return string.Empty; }
private string OpenVRTrackingSystemName() { ETrackedDeviceProperty prop = ETrackedDeviceProperty.Prop_TrackingSystemName_String; uint deviceId = OpenVR.k_unTrackedDeviceIndex_Hmd; var error = ETrackedPropertyError.TrackedProp_Success; var capactiy = OpenVR.System.GetStringTrackedDeviceProperty(deviceId, prop, null, 0, ref error); var result = new System.Text.StringBuilder((int)capactiy); OpenVR.System.GetStringTrackedDeviceProperty(deviceId, prop, result, capactiy, ref error); return(result.ToString()); }
public float GetTrackedDevicePropertyFloat(uint index, ETrackedDeviceProperty property) { var error = new ETrackedPropertyError(); float value = _vr_system.GetFloatTrackedDeviceProperty(index, property, ref error); if (error == ETrackedPropertyError.TrackedProp_Success) { return(value); } return(-1); }
public string GetStringProperty(ETrackedDeviceProperty prop, uint deviceId = OpenVR.k_unTrackedDeviceIndex_Hmd) { var error = ETrackedPropertyError.TrackedProp_Success; var capactiy = hmd.GetStringTrackedDeviceProperty(deviceId, prop, null, 0, ref error); if (capactiy > 1) { var result = new System.Text.StringBuilder((int)capactiy); hmd.GetStringTrackedDeviceProperty(deviceId, prop, result, capactiy, ref error); return result.ToString(); } return (error != ETrackedPropertyError.TrackedProp_Success) ? error.ToString() : "<unknown>"; }
public string GetStringProperty(ETrackedDeviceProperty prop, uint deviceId = 0u) { ETrackedPropertyError etrackedPropertyError = ETrackedPropertyError.TrackedProp_Success; uint stringTrackedDeviceProperty = this.hmd.GetStringTrackedDeviceProperty(deviceId, prop, null, 0u, ref etrackedPropertyError); if (stringTrackedDeviceProperty > 1u) { StringBuilder stringBuilder = new StringBuilder((int)stringTrackedDeviceProperty); this.hmd.GetStringTrackedDeviceProperty(deviceId, prop, stringBuilder, stringTrackedDeviceProperty, ref etrackedPropertyError); return stringBuilder.ToString(); } return (etrackedPropertyError == ETrackedPropertyError.TrackedProp_Success) ? "<unknown>" : etrackedPropertyError.ToString(); }
public string GetTrackedDevicePropertyString(uint index, ETrackedDeviceProperty property) { var sb = new StringBuilder(); var error = new ETrackedPropertyError(); uint succeeded = _vr_system.GetStringTrackedDeviceProperty(index, property, sb, (uint)sb.Capacity, ref error); if (error == ETrackedPropertyError.TrackedProp_Success) { return(sb.ToString()); } return(null); }
public string GetPropertyString(uint idx, ETrackedDeviceProperty prop, ref ETrackedPropertyError error) { var capactiy = openvr.GetStringTrackedDeviceProperty(idx, prop, null, 0, ref error); if (capactiy > 1) { var result = new System.Text.StringBuilder((int)capactiy); openvr.GetStringTrackedDeviceProperty(idx, prop, result, capactiy, ref error); return(result.ToString()); } return((error != ETrackedPropertyError.TrackedProp_Success) ? error.ToString() : "<unknown>"); }
public static float GetFloatTrackedDeviceProperty(ETrackedDeviceProperty property, uint device = OpenVR.k_unTrackedDeviceIndex_Hmd) { ETrackedPropertyError propertyError = ETrackedPropertyError.TrackedProp_Success; float value = OpenVR.System.GetFloatTrackedDeviceProperty(device, property, ref propertyError); if (propertyError != ETrackedPropertyError.TrackedProp_Success) { throw new Exception("Failed to obtain tracked device property \"" + property + "\", error: (" + (int)propertyError + ") " + propertyError.ToString()); } return(value); }
public float GetFloatTrackedDeviceProperty(uint deviceIndex, ETrackedDeviceProperty property) { ETrackedPropertyError error = ETrackedPropertyError.TrackedProp_Success; float result = OpenVR.System.GetFloatTrackedDeviceProperty(deviceIndex, property, ref error); if (error != ETrackedPropertyError.TrackedProp_Success) { throw new OpenVRException($"Failed to get property '{property}' for device at index {deviceIndex}", property, error); } return(result); }
public static string GetControllerProperty(int deviceIndex, ETrackedDeviceProperty p) { var sbType = new StringBuilder(1000); ETrackedPropertyError err = ETrackedPropertyError.TrackedProp_Success; CVRSystem system = OpenVR.System; if (system == null) { return("SteamVR not yet initialized"); } system.GetStringTrackedDeviceProperty((uint)deviceIndex, p, sbType, 1000, ref err); return(sbType.ToString()); }
public static string GetStringProperty(uint deviceId, ETrackedDeviceProperty prop) { var error = ETrackedPropertyError.TrackedProp_Success; var bufferSize = OpenVR.System.GetStringTrackedDeviceProperty(deviceId, prop, null, 0, ref error); if (bufferSize > 1) { var result = new System.Text.StringBuilder((int)bufferSize); OpenVR.System.GetStringTrackedDeviceProperty(deviceId, prop, result, bufferSize, ref error); return(result.ToString()); } return((error != ETrackedPropertyError.TrackedProp_Success) ? error.ToString() : "<unknown>"); }
private string GetStringProperty(ETrackedDeviceProperty prop) { var error = ETrackedPropertyError.TrackedProp_Success; var capactiy = hmd.GetStringTrackedDeviceProperty(OpenVR.k_unTrackedDeviceIndex_Hmd, prop, null, 0, ref error); if (capactiy > 1) { var result = new StringBuilder((int)capactiy); hmd.GetStringTrackedDeviceProperty(OpenVR.k_unTrackedDeviceIndex_Hmd, prop, result, capactiy, ref error); return(result.ToString()); } return((error != ETrackedPropertyError.TrackedProp_Success) ? error.ToString() : "<unknown>"); }
private string GetStringProperty(ETrackedDeviceProperty prop) { ETrackedPropertyError eTrackedPropertyError = ETrackedPropertyError.TrackedProp_Success; uint stringTrackedDeviceProperty = this.hmd.GetStringTrackedDeviceProperty(0u, prop, null, 0u, ref eTrackedPropertyError); if (stringTrackedDeviceProperty > 1u) { StringBuilder stringBuilder = new StringBuilder((int)stringTrackedDeviceProperty); this.hmd.GetStringTrackedDeviceProperty(0u, prop, stringBuilder, stringTrackedDeviceProperty, ref eTrackedPropertyError); return(stringBuilder.ToString()); } return((eTrackedPropertyError == ETrackedPropertyError.TrackedProp_Success) ? "<unknown>" : eTrackedPropertyError.ToString()); }
private string getStringProperty(ETrackedDeviceProperty property) { var error = ETrackedPropertyError.TrackedProp_Success; var result = new System.Text.StringBuilder(64); OpenVR.System.GetStringTrackedDeviceProperty(index, property, result, 64, ref error); if (error != ETrackedPropertyError.TrackedProp_Success) { Debug.Log(index); Debug.Log("error while getting property " + property + " from device " + index + ": " + error); } return(result.ToString()); }
public static string GetTrackedDeviceProperty(uint index, ETrackedDeviceProperty property) { var error = ETrackedPropertyError.TrackedProp_Success; uint len = OpenVR.System.GetStringTrackedDeviceProperty(index, property, null, 0, ref error); if (len > 1) { var result = new StringBuilder((int)len); OpenVR.System.GetStringTrackedDeviceProperty(index, property, result, len, ref error); return(result.ToString()); } return(null); }
string GetStringProperty(ETrackedDeviceProperty prop) { var error = ETrackedPropertyError.TrackedProp_Success; var capactiy = vr.GetStringTrackedDeviceProperty(this.index, prop, null, 0, ref error); if (capactiy > 1) { var result = new System.Text.StringBuilder((int)capactiy); vr.GetStringTrackedDeviceProperty(this.index, prop, result, capactiy, ref error); return(result.ToString()); } return((error != ETrackedPropertyError.TrackedProp_Success) ? error.ToString() : "<unknown>"); }
private static bool GetFloatProperty(uint device, ETrackedDeviceProperty property, ref float outputValue)//convenience wrap with logging { ETrackedPropertyError pError = 0; var val = m_vrSystem.GetFloatTrackedDeviceProperty(device, ETrackedDeviceProperty.Prop_UserIpdMeters_Float, ref pError); if (pError == ETrackedPropertyError.TrackedProp_Success) { outputValue = val; return(true); } Log.WriteLine("ERROR GetFloatTrackedDeviceProperty(" + device + "," + property + "," + outputValue + ") returned error " + pError); return(false); }
// https://github.com/ValveSoftware/openvr/blob/60eb187801956ad277f1cae6680e3a410ee0873b/samples/unity_keyboard_sample/Assets/SteamVR/Scripts/SteamVR.cs#L166-L177 public static string GetTrackedDeviceProperty(uint deviceId, ETrackedDeviceProperty prop) { var error = ETrackedPropertyError.TrackedProp_Success; var capacity = Program.OpenVRHandle.GetStringTrackedDeviceProperty(deviceId, prop, null, 0, ref error); if (capacity > 1) { var result = new StringBuilder((int)capacity); Program.OpenVRHandle.GetStringTrackedDeviceProperty(deviceId, prop, result, capacity, ref error); return(result.ToString()); } return(null); }
private string GetDevicePropertyString(uint deviceId, ETrackedDeviceProperty prop, uint capacity) { ETrackedPropertyError error = ETrackedPropertyError.TrackedProp_UnknownProperty; System.Text.StringBuilder strBuilder = new System.Text.StringBuilder((int)capacity); _vrSystem.GetStringTrackedDeviceProperty(deviceId, prop, strBuilder, capacity, ref error); if (error == ETrackedPropertyError.TrackedProp_Success) { return(strBuilder.ToString().Trim()); } return(""); }
/// <summary> /// Helper to get a string from a tracked device property /// </summary> public static Result<string, ETrackedPropertyError> TrackedDeviceString(this CVRSystem hmd, int trackedDeviceIndex, ETrackedDeviceProperty prop) { if (hmd == null) throw new ArgumentNullException(nameof(hmd)); if (trackedDeviceIndex < 0 || trackedDeviceIndex > OpenVR.k_unMaxTrackedDeviceCount) throw new ArgumentOutOfRangeException(nameof(trackedDeviceIndex)); ETrackedPropertyError err = ETrackedPropertyError.TrackedProp_Success; uint requiredBufferLen = hmd.GetStringTrackedDeviceProperty((uint)trackedDeviceIndex, prop, null, 0, ref err); if (err != ETrackedPropertyError.TrackedProp_BufferTooSmall) return Result<string, ETrackedPropertyError>.Err(err); if (requiredBufferLen == 0) return ""; var pchBuffer = new StringBuilder((int)requiredBufferLen); requiredBufferLen = hmd.GetStringTrackedDeviceProperty((uint)trackedDeviceIndex, prop, pchBuffer, requiredBufferLen, ref err); if (err != ETrackedPropertyError.TrackedProp_Success) return Result<string, ETrackedPropertyError>.Err(err); return pchBuffer.ToString(); }
// public float GetPropertyFloatWhenConnected(uint idx, ETrackedDeviceProperty prop) { if (!IsDeviceConnected(idx)) { return(float.NaN); } float result = float.NaN; if (!GetPropertyFloat(idx, prop, out result)) { return(float.NaN); } return(result); }
public abstract uint GetStringTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,System.Text.StringBuilder pchValue,uint unBufferSize,ref ETrackedPropertyError pError);
private string GetStringProperty(ETrackedDeviceProperty prop) { ETrackedPropertyError eTrackedPropertyError = ETrackedPropertyError.TrackedProp_Success; uint stringTrackedDeviceProperty = this.hmd.GetStringTrackedDeviceProperty(0u, prop, null, 0u, ref eTrackedPropertyError); if (stringTrackedDeviceProperty > 1u) { StringBuilder stringBuilder = new StringBuilder((int)stringTrackedDeviceProperty); this.hmd.GetStringTrackedDeviceProperty(0u, prop, stringBuilder, stringTrackedDeviceProperty, ref eTrackedPropertyError); return stringBuilder.ToString(); } return (eTrackedPropertyError == ETrackedPropertyError.TrackedProp_Success) ? "<unknown>" : eTrackedPropertyError.ToString(); }
public abstract HmdMatrix34_t GetMatrix34TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError);
public override uint GetStringTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,System.Text.StringBuilder pchValue,uint unBufferSize,ref ETrackedPropertyError pError) { CheckIfUsable(); uint result = VRNativeEntrypoints.VR_IVRSystem_GetStringTrackedDeviceProperty(m_pVRSystem,unDeviceIndex,prop,pchValue,unBufferSize,ref pError); return result; }
public Result<string, ETrackedPropertyError> DeviceInfo(int deviceIndex, ETrackedDeviceProperty prop) => hmd.TrackedDeviceString(deviceIndex, ETrackedDeviceProperty.Prop_RenderModelName_String);
internal static extern HmdMatrix34_t VR_IVRSystem_GetMatrix34TrackedDeviceProperty(IntPtr instancePtr, uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError);
public override ulong GetUint64TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError) { CheckIfUsable(); ulong result = VRNativeEntrypoints.VR_IVRSystem_GetUint64TrackedDeviceProperty(m_pVRSystem,unDeviceIndex,prop,ref pError); return result; }
string GetStringProperty(ETrackedDeviceProperty prop) { var error = ETrackedPropertyError.TrackedProp_Success; var capactiy = hmd.GetStringTrackedDeviceProperty(OpenVR.k_unTrackedDeviceIndex_Hmd, prop, null, 0, ref error); if (capactiy > 1) { var result = new System.Text.StringBuilder((int)capactiy); hmd.GetStringTrackedDeviceProperty(OpenVR.k_unTrackedDeviceIndex_Hmd, prop, result, capactiy, ref error); return result.ToString(); } return (error != ETrackedPropertyError.TrackedProp_Success) ? error.ToString() : "<unknown>"; }
float GetFloatProperty(ETrackedDeviceProperty prop) { var error = ETrackedPropertyError.TrackedProp_Success; return hmd.GetFloatTrackedDeviceProperty(OpenVR.k_unTrackedDeviceIndex_Hmd, prop, ref error); }
public float GetFloatTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError) { float result = FnTable.GetFloatTrackedDeviceProperty(unDeviceIndex,prop,ref pError); return result; }
public bool GetBoolTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError) { bool result = FnTable.GetBoolTrackedDeviceProperty(unDeviceIndex,prop,ref pError); return result; }
public int GetInt32TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError) { int result = FnTable.GetInt32TrackedDeviceProperty(unDeviceIndex,prop,ref pError); return result; }
private float GetFloatProperty(ETrackedDeviceProperty prop) { ETrackedPropertyError eTrackedPropertyError = ETrackedPropertyError.TrackedProp_Success; return this.hmd.GetFloatTrackedDeviceProperty(0u, prop, ref eTrackedPropertyError); }
public HmdMatrix34_t GetMatrix34TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError) { HmdMatrix34_t result = FnTable.GetMatrix34TrackedDeviceProperty(unDeviceIndex,prop,ref pError); return result; }
internal static extern float VR_IVRSystem_GetFloatTrackedDeviceProperty(IntPtr instancePtr, uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError);
public static IEnumerable<string> TrackedDeviceStrings(this CVRSystem hmd, ETrackedDeviceProperty prop) { if (hmd == null) throw new ArgumentNullException(nameof(hmd)); return DeviceIndexes.Select(i => hmd.TrackedDeviceString(i, prop)).WhereSuccess(); }
internal static extern ulong VR_IVRSystem_GetUint64TrackedDeviceProperty(IntPtr instancePtr, uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError);
public abstract bool GetBoolTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError);
internal static extern uint VR_IVRSystem_GetStringTrackedDeviceProperty(IntPtr instancePtr, uint unDeviceIndex, ETrackedDeviceProperty prop, System.Text.StringBuilder pchValue, uint unBufferSize, ref ETrackedPropertyError pError);
public abstract float GetFloatTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError);
public override HmdMatrix34_t GetMatrix34TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError) { CheckIfUsable(); HmdMatrix34_t result = VRNativeEntrypoints.VR_IVRSystem_GetMatrix34TrackedDeviceProperty(m_pVRSystem,unDeviceIndex,prop,ref pError); return result; }
public abstract int GetInt32TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError);
//convenience wrap with logging private static bool GetFloatProperty(uint device, ETrackedDeviceProperty property, ref float outputValue) { ETrackedPropertyError pError = 0; var val = m_vrSystem.GetFloatTrackedDeviceProperty(device, ETrackedDeviceProperty.Prop_UserIpdMeters_Float, ref pError); if (pError == ETrackedPropertyError.TrackedProp_Success) { outputValue = val; return true; } Log.WriteLine("ERROR GetFloatTrackedDeviceProperty(" + device + "," + property + "," + outputValue + ") returned error " + pError); return false; }
public abstract ulong GetUint64TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError);
public ulong GetUint64TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError) { ulong result = FnTable.GetUint64TrackedDeviceProperty(unDeviceIndex,prop,ref pError); return result; }
public uint GetStringTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,System.Text.StringBuilder pchValue,uint unBufferSize,ref ETrackedPropertyError pError) { uint result = FnTable.GetStringTrackedDeviceProperty(unDeviceIndex,prop,pchValue,unBufferSize,ref pError); return result; }