private async void dw_added(DeviceWatcher sender, DeviceInformation deviceInfo) { TAPManagerLog.Instance.Log(TAPManagerLogEvent.Info, "Device Watcher added proc."); if ((bool)deviceInfo.Properties[this.property_IsConnected] == true && (bool)deviceInfo.Properties[this.property_IsPaired] == true) { if (taps.ContainsKey(deviceInfo.Id) && !pending.Contains(deviceInfo.Id)) { if (taps[deviceInfo.Id].IsConnected) { TAPManagerLog.Instance.Log(TAPManagerLogEvent.Info, string.Format("TAP {0} Reconnected. Making it ready...", taps[deviceInfo.Id].GetStringDescription())); await taps[deviceInfo.Id].Reconnect(this.defaultInputMode); } return; } TAPManagerLog.Instance.Log(TAPManagerLogEvent.Info, string.Format("Found Connected Device {0}", deviceInfo.Name)); if (!taps.ContainsKey(deviceInfo.Id) && !pending.Contains(deviceInfo.Id)) { TAPManagerLog.Instance.Log(TAPManagerLogEvent.Info, string.Format("{0} Is a new device. Checking if it's a TAP", deviceInfo.Name)); pending.Add(deviceInfo.Id); BluetoothLEDevice device = await BluetoothLEDevice.FromIdAsync(deviceInfo.Id); TAPDevice t = await TAPDevice.FromBluetoothLEDeviceAsync(device, this.defaultInputMode); if (t != null) { TAPManagerLog.Instance.Log(TAPManagerLogEvent.Info, "Found a connected TAP: " + t.GetStringDescription() + ". Making it ready..."); t.OnTapReady += OnTapReady; taps.Add(deviceInfo.Id, t); t.MakeReady(); } else { TAPManagerLog.Instance.Log(TAPManagerLogEvent.Info, string.Format("{0} Is Not a TAP", deviceInfo.Name)); pending.Remove(deviceInfo.Id); } } } }
private void OnTapReady(TAPDevice tap, bool success) { this.pending.Remove(tap.Identifier); if (success) { TAPManagerLog.Instance.Log(TAPManagerLogEvent.Info, "TAP is Ready:" + tap.GetStringDescription()); tap.sendMode(); tap.OnTapped += this.OnTapTapped; tap.OnMoused += this.OnTapMoused; if (this.OnTapConnected != null) { this.OnTapConnected(tap.Identifier, tap.Name, tap.FW); } } else { TAPManagerLog.Instance.Log(TAPManagerLogEvent.Error, "Couldn't make TAP Ready: " + tap.GetStringDescription()); this.taps.Remove(tap.Identifier); } }