Esempio n. 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
                });
            }
        }
Esempio n. 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;
     }
 }
Esempio n. 3
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 });
     }
 }