private void AudioControllerOnDeviceStateChanged(object sender, DeviceStateChangedEvent deviceStateChangedEvent)
 {
     _cacheLock.EnterWriteLock();
     try
     {
         using (AppLogger.Log.InfoCall())
         {
             if ((deviceStateChangedEvent.newState | _state) == _state)
             {
                 if (deviceStateChangedEvent.device.Type == AudioDeviceType.Playback)
                 {
                     _playback.Add(deviceStateChangedEvent.device);
                     AppLogger.Log.Info("Add new playback: ",deviceStateChangedEvent.device);
                 }
                 else
                 {
                     _recording.Add(deviceStateChangedEvent.device);
                     AppLogger.Log.Info("Add new recording: ", deviceStateChangedEvent.device);
                 }
             }
             else if ((deviceStateChangedEvent.previousState | _state) == _state)
             {
                 if (deviceStateChangedEvent.device.Type == AudioDeviceType.Playback)
                 {
                     _playback.Remove(deviceStateChangedEvent.device);
                     AppLogger.Log.Info("Remove playback: ", deviceStateChangedEvent.device);
                 }
                 else
                 {
                     _recording.Remove(deviceStateChangedEvent.device);
                     AppLogger.Log.Info("Remove Recording: ", deviceStateChangedEvent.device);
                 }
             }
         }
     }
     finally
     {
         _cacheLock.ExitWriteLock();
     }
 }
 private void AudioControllerOnDeviceStateChanged(object sender, DeviceStateChangedEvent deviceStateChangedEvent)
 {
     _cacheLock.EnterWriteLock();
     try
     {
         using (AppLogger.Log.InfoCall())
         {
             if ((deviceStateChangedEvent.newState | _state) == _state)
             {
                 if (deviceStateChangedEvent.device.Type == AudioDeviceType.Playback)
                 {
                     _playback.Add(deviceStateChangedEvent.device);
                     AppLogger.Log.Info("Add new playback: ", deviceStateChangedEvent.device);
                 }
                 else
                 {
                     _recording.Add(deviceStateChangedEvent.device);
                     AppLogger.Log.Info("Add new recording: ", deviceStateChangedEvent.device);
                 }
             }
             else if ((deviceStateChangedEvent.previousState | _state) == _state)
             {
                 if (deviceStateChangedEvent.device.Type == AudioDeviceType.Playback)
                 {
                     _playback.Remove(deviceStateChangedEvent.device);
                     AppLogger.Log.Info("Remove playback: ", deviceStateChangedEvent.device);
                 }
                 else
                 {
                     _recording.Remove(deviceStateChangedEvent.device);
                     AppLogger.Log.Info("Remove Recording: ", deviceStateChangedEvent.device);
                 }
             }
         }
     }
     finally
     {
         _cacheLock.ExitWriteLock();
     }
 }
        public static void OnUserDeviceStateChanged(DeviceStateChangedEvent deviceStateChangedEvent)
        {
            var context = GlobalHost.ConnectionManager.GetHubContext <UsersHub>();

            if (UsersConnections.ContainsKey(deviceStateChangedEvent.AppUserId))
            {
                UserDeviceService userDeviceService = new UserDeviceService();
                var device = userDeviceService.GetById(deviceStateChangedEvent.DeviceId);

                if (device != null)
                {
                    var connection = UsersConnections[deviceStateChangedEvent.AppUserId];

                    context.Clients.Client(connection.ConnectionId).notifyAboutDeviceStateChange(new DeviceStateChangedNotification()
                    {
                        DateTime   = deviceStateChangedEvent.DateTime,
                        State      = deviceStateChangedEvent.State,
                        DeviceName = device.Name,
                        Id         = device.Id
                    });
                }
            }
        }
 private void AudioControllerOnDeviceStateChanged(object sender, DeviceStateChangedEvent deviceStateChangedEvent)
 {
     _needUpdate = true;
 }
 public void RegisterDeviceStateChangeEvent(DeviceStateChangedEvent deviceStateChangedEvent)
 {
     OnDeviceStateChangedEvent?.Invoke(deviceStateChangedEvent);
 }
 private void AudioControllerOnDeviceStateChanged(object sender, DeviceStateChangedEvent deviceStateChangedEvent)
 {
     _needUpdate = true;
 }