コード例 #1
0
        private void Provider_ServiceJoined(DeviceProviders.IProvider sender, DeviceProviders.ServiceJoinedEventArgs args)
        {
            var svc = args.Service;
            List <DeviceClient> clients = new List <DeviceClient>();

            foreach (var interfaceName in devicesCreators)
            {
                if (svc.ImplementsInterface(interfaceName.Key))
                {
                    clients.Add(interfaceName.Value(args.Service));
                }
            }
            if (TrackUnknownDevices && !clients.Any())
            {
                clients.Add(new UnknownClient(svc));
            }
            if (clients.Any())
            {
                //Device found
                lock (devicesLock)
                {
                    devices.Add(svc.Name, clients.ToArray());
                }
                svc.JoinSession();
                foreach (var client in clients)
                {
                    DeviceJoined?.Invoke(this, client);
                }
            }
        }
コード例 #2
0
        private void Provider_ServiceJoined(DeviceProviders.IProvider sender, DeviceProviders.ServiceJoinedEventArgs args)
        {
            var svc = args.Service;

            svc.JoinSession();
            System.Diagnostics.Debug.WriteLine($"Service Joined: {svc?.AboutData?.DeviceName ?? "<UNKNOWN>"} ({svc?.AboutData?.DeviceId} - {svc.Name})");
            List <DeviceClient> clients = new List <DeviceClient>();

            foreach (var interfaceName in devicesCreators)
            {
                if (svc.ImplementsInterface(interfaceName.Key))
                {
                    clients.Add(interfaceName.Value(args.Service));
                    break;
                }
            }

            if (TrackUnknownDevices && !clients.Any())
            {
                clients.Add(new UnknownClient(svc));
            }

            if (clients.Any())
            {
                // Device found
                lock (devicesLock)
                {
                    devices.Add(svc.Name, clients.ToArray());
                }

                foreach (var client in clients)
                {
                    DeviceJoined?.Invoke(this, client);
                }
            }
        }