private async Task CacheDeviceListAsync() { await Task.Run(() => { var cameraList = _sdkService.GetDeviceList(1); CachedCameras.Clear(); foreach (var camera in cameraList) { if (!string.IsNullOrEmpty(camera.m_szDevName)) { CachedCameras.Add(camera.m_szDevName); } } CachedCameras.Add(NonExclusiveItem); var micList = _sdkService.GetDeviceList(3); CachedMicrophones.Clear(); foreach (var mic in micList) { if (!string.IsNullOrEmpty(mic.m_szDevName)) { CachedMicrophones.Add(mic.m_szDevName); } } CachedMicrophones.Add(NonExclusiveItem); var speakerList = _sdkService.GetDeviceList(4); CachedSpeakers.Clear(); foreach (var speaer in speakerList) { if (!string.IsNullOrEmpty(speaer.m_szDevName)) { CachedSpeakers.Add(speaer.m_szDevName); } } }); }
private void RefreshExternalData() { if (SharingMenuItems == null) { SharingMenuItems = new ObservableCollection <MenuItem>(); } else { SharingMenuItems.Clear(); } var sharings = Enum.GetNames(typeof(Sharing)); foreach (var sharing in sharings) { var newSharingMenu = new MenuItem(); newSharingMenu.Header = EnumHelper.GetDescription(typeof(Sharing), Enum.Parse(typeof(Sharing), sharing)); if (sharing == Sharing.Desktop.ToString()) { newSharingMenu.Command = SharingDesktopCommand; } if (sharing == Sharing.ExternalData.ToString()) { DeviceInfo[] cameras = _sdkService.GetDeviceList(1); foreach (var camera in cameras) { if (!string.IsNullOrEmpty(camera.m_szDevName) && camera.m_isDefault == 0) { newSharingMenu.Items.Add( new MenuItem() { Header = camera.m_szDevName, Command = ExternalDataChangedCommand, CommandParameter = camera.m_szDevName }); } } } SharingMenuItems.Add(newSharingMenu); } }