Beispiel #1
0
        private void DeviceAdded(object sender, IHeadsetPlugin.DeviceEventArgs e)
        {
            IHeadsetPlugin plugin = sender as IHeadsetPlugin;
            DeviceData     data   = new DeviceData {
                device = e.device, host = new IDeviceHost(), active = false, in_use = false
            };

            data.plugin = (from p in plugins where p.plugin == plugin select p).Single();
            try {
                lock (devices_lock) {
                    devices.Add(data);
                }
                data.device.StatusChanged += DeviceStatusChanged;
                data.limitations           = data.device.Initalize(data.host);
                data.device.GetModel();
                if ((active_device_name == null && data.device.GetName() == last_active_device_name) || active_device_name == data.device.GetName())
                {
                    SetActiveDevice(data.device.GetName());
                    PortAudio.refresh_devices();
                }
            }
            catch (Exception exp) {
                HandleError(new PluginError {
                    device = data, exception = exp
                });
            }
        }
Beispiel #2
0
        private void DeviceRemoved(object sender, IHeadsetPlugin.DeviceEventArgs e)
        {
            DeviceData data = (from d in devices where d.device == e.device select d).SingleOrDefault();

            if (data == null)
            {
                return;
            }
            lock (devices_lock) {
                devices.Remove(data);
            }
            if (data.device.GetName() == active_device_name)
            {
                last_active_device_name = active_device_name;
                active_device_name      = null;
            }
        }