using Assets.Scripts.Ble.CPPBridge; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using UnityEngine; namespace Assets.Scripts.Ble { internal class WclBleManager { // Token: 0x06002170 RID: 8560 [DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)] [return: MarshalAs(UnmanagedType.SysInt)] private static extern IntPtr WCLManagerCreate([MarshalAs(UnmanagedType.FunctionPtr)][In] WclBleManager.WCL_MANAGER_STATUS_CHANGED Initialize, [MarshalAs(UnmanagedType.FunctionPtr)][In] WclBleManager.WCL_MANAGER_STATUS_CHANGED StatusCHanges, [MarshalAs(UnmanagedType.FunctionPtr)][In] WCL_NOTIFY_EVENT beforeClose); // Token: 0x06002171 RID: 8561 [DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)] private static extern void WCLManagerDestroy([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager); // Token: 0x06002172 RID: 8562 [DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)] [return: MarshalAs(UnmanagedType.I4)] private static extern int WCLManagerOpen([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager); // Token: 0x06002173 RID: 8563 [DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)] [return: MarshalAs(UnmanagedType.I4)] private static extern int WCLManagerClose([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager); // Token: 0x06002174 RID: 8564 [DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool WCLManagerGetActive([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager); // Token: 0x06002175 RID: 8565 [DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)] [return: MarshalAs(UnmanagedType.SysInt)] private static extern IntPtr WCLManagerGetRadio([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager); // Token: 0x06002176 RID: 8566 RVA: 0x0008B181 File Offset: 0x00089381 private void OnInitialized(IntPtr sender, WclBleManagerStatus status) { //if (WclBleManager.Info) //{ // WclBleManager.log.Info(string.Format("WCLBleManger initialized with state {0}", status), Array.Empty()); //} this.BleStatus = status; } // Token: 0x06002177 RID: 8567 RVA: 0x0008B1B0 File Offset: 0x000893B0 private void OnBeforeClose(IntPtr sender) { //if (WclBleManager.Info) //{ // WclBleManager.log.Info("Closing WCLBleManager -> BeforeClose called", Array.Empty()); //} } // Token: 0x06002178 RID: 8568 RVA: 0x0008B1CD File Offset: 0x000893CD private void OnStatusChanges(IntPtr sender, WclBleManagerStatus status) { //System.IO.File.WriteAllText("d:/demo.log", status.ToString()); this.BleStatus = status; } // Token: 0x170005F4 RID: 1524 // (get) Token: 0x06002179 RID: 8569 RVA: 0x0008B1FC File Offset: 0x000893FC public bool Active { get { return WclBleManager.WCLManagerGetActive(this.mPtr); } } // Token: 0x170005F5 RID: 1525 // (get) Token: 0x0600217A RID: 8570 RVA: 0x0008B20F File Offset: 0x0008940F public IntPtr Radio { get { return WclBleManager.WCLManagerGetRadio(this.mPtr); } } // Token: 0x170005F6 RID: 1526 // (get) Token: 0x0600217B RID: 8571 RVA: 0x0008B222 File Offset: 0x00089422 // (set) Token: 0x0600217C RID: 8572 RVA: 0x0008B22A File Offset: 0x0008942A public WclBleManagerStatus BleStatus { get { return this.nativeStatus; } private set { if (this.nativeStatus != value) { this.nativeStatus = value; WclBleManager.SafeInvoke(this.ManagerStatusChanged, this, this.nativeStatus); } } } // Token: 0x170005F7 RID: 1527 // (get) Token: 0x0600217D RID: 8573 RVA: 0x0008B24E File Offset: 0x0008944E //public WclBleWatcher BleWatcher { get; } // Token: 0x0600217E RID: 8574 RVA: 0x0008B258 File Offset: 0x00089458 public WclBleManager() { this.CInitialized = new WclBleManager.WCL_MANAGER_STATUS_CHANGED(this.OnInitialized); this.CStatusChanged = new WclBleManager.WCL_MANAGER_STATUS_CHANGED(this.OnStatusChanges); this.CBeforeClose = new WCL_NOTIFY_EVENT(this.OnBeforeClose); this.mPtr = WclBleManager.WCLManagerCreate(this.CInitialized, this.CStatusChanged, this.CBeforeClose); } // Token: 0x0600217F RID: 8575 RVA: 0x0008B2BE File Offset: 0x000894BE public int Open() { return WclBleManager.WCLManagerOpen(this.mPtr); } // Token: 0x06002180 RID: 8576 RVA: 0x0008B2D1 File Offset: 0x000894D1 public int Close() { return WclBleManager.WCLManagerClose(this.mPtr); } // Token: 0x06002181 RID: 8577 RVA: 0x0008B2E4 File Offset: 0x000894E4 public void Dispose() { //if (WclBleManager.Debug) //{ // WclBleManager.log.Debug("WclBleManger disposed", Array.Empty()); //} WclBleManager.WCLManagerDestroy(this.mPtr); this.mPtr = IntPtr.Zero; this.CInitialized = null; this.CBeforeClose = null; this.CStatusChanged = null; } public string Test() { return ""; } // Token: 0x06002182 RID: 8578 RVA: 0x0008B337 File Offset: 0x00089537 private static void SafeInvoke(WclBleManager.ManagerStatusChangedCallback callback, WclBleManager manager, WclBleManagerStatus status) { //ExceptionUtils.SafeInvoke(callback, new object[] //{ // manager, // status //}, WclBleManager.log); callback?.Invoke(manager, status); } // Token: 0x04001390 RID: 5008 public WclBleManager.ManagerStatusChangedCallback ManagerStatusChanged; // Token: 0x04001391 RID: 5009 private IntPtr mPtr; // Token: 0x04001392 RID: 5010 private WclBleManager.WCL_MANAGER_STATUS_CHANGED CInitialized; // Token: 0x04001393 RID: 5011 private WclBleManager.WCL_MANAGER_STATUS_CHANGED CStatusChanged; // Token: 0x04001394 RID: 5012 private WCL_NOTIFY_EVENT CBeforeClose; // Token: 0x04001395 RID: 5013 private WclBleManagerStatus nativeStatus; // Token: 0x0200093C RID: 2364 // (Invoke) Token: 0x06004079 RID: 16505 internal delegate void ManagerStatusChangedCallback(WclBleManager manager, WclBleManagerStatus status); // Token: 0x0200093D RID: 2365 // (Invoke) Token: 0x0600407D RID: 16509 [UnmanagedFunctionPointer(CallingConvention.StdCall, SetLastError = false)] internal delegate void WCL_MANAGER_STATUS_CHANGED([MarshalAs(UnmanagedType.SysInt)][In] IntPtr sender, WclBleManagerStatus status); } }