public void UpdateTrayIcon(bool noDevice = false, bool isMuted = false, int currentVolume = 100) { if (noDevice) { _trayIcon.Icon = IconService.GetIconFromFile(_trayIconPath, (int)IconId.NoDevice); return; } if (isMuted) { _trayIcon.Icon = IconService.GetIconFromFile(_trayIconPath, (int)IconId.Muted); return; } if (currentVolume == 0) { _trayIcon.Icon = IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerZeroBars); return; } if (currentVolume >= 1 && currentVolume <= 33) { _trayIcon.Icon = IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerOneBar); return; } if (currentVolume >= 34 && currentVolume <= 66) { _trayIcon.Icon = IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerTwoBars); return; } if (currentVolume >= 67 && currentVolume <= 100) { _trayIcon.Icon = IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerThreeBars); return; } }
public TrayIcon() { _trayIcon = new System.Windows.Forms.NotifyIcon(); _trayIcon.ContextMenu = new System.Windows.Forms.ContextMenu(); _audioDeviceService = new EarTrumpetAudioDeviceService(); var aboutString = Properties.Resources.ContextMenuAboutTitle; var version = Assembly.GetEntryAssembly().GetName().Version; var deviceSep = _trayIcon.ContextMenu.MenuItems.Add("-"); deviceSep.Name = _deviceSeparatorName; var feedbackItem = _trayIcon.ContextMenu.MenuItems.Add(EarTrumpet.Properties.Resources.ContextMenuSendFeedback); feedbackItem.Click += Feedback_Click; var aboutItem = _trayIcon.ContextMenu.MenuItems.Add(String.Format("{0} Ear Trumpet {1} ...", aboutString, version)); aboutItem.Click += About_Click; var exitItem = _trayIcon.ContextMenu.MenuItems.Add(EarTrumpet.Properties.Resources.ContextMenuExitTitle); exitItem.Click += Exit_Click; _trayIcon.MouseClick += TrayIcon_MouseClick; _trayIcon.ContextMenu.Popup += ContextMenu_Popup; _trayIcon.Icon = IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerThreeBars); _trayIcon.Text = string.Concat("Ear Trumpet - ", EarTrumpet.Properties.Resources.TrayIconTooltipText); _trayIcon.Visible = true; }
public TrayViewModel(EarTrumpetAudioDeviceService deviceService) { var originalIcon = new Icon(Application.GetResourceStream(new Uri("pack://application:,,,/EarTrumpet;component/Tray.ico")).Stream); _icons.Add(IconId.OriginalIcon, originalIcon); try { _icons.Add(IconId.NoDevice, IconService.GetIconFromFile(_trayIconPath, (int)IconId.NoDevice)); _icons.Add(IconId.Muted, IconService.GetIconFromFile(_trayIconPath, (int)IconId.Muted)); _icons.Add(IconId.SpeakerZeroBars, IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerZeroBars)); _icons.Add(IconId.SpeakerOneBar, IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerOneBar)); _icons.Add(IconId.SpeakerTwoBars, IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerTwoBars)); _icons.Add(IconId.SpeakerThreeBars, IconService.GetIconFromFile(_trayIconPath, (int)IconId.SpeakerThreeBars)); } catch { _icons.Clear(); _icons.Add(IconId.NoDevice, originalIcon); _icons.Add(IconId.Muted, originalIcon); _icons.Add(IconId.SpeakerZeroBars, originalIcon); _icons.Add(IconId.SpeakerOneBar, originalIcon); _icons.Add(IconId.SpeakerTwoBars, originalIcon); _icons.Add(IconId.SpeakerThreeBars, originalIcon); _icons.Add(IconId.OriginalIcon, originalIcon); } _deviceService = deviceService; _deviceService.MasterVolumeChanged += DeviceService_MasterVolumeChanged; var defaultDevice = _deviceService.GetAudioDevices().FirstOrDefault(x => x.IsDefault); if (!defaultDevice.Equals(default(EarTrumpetAudioDeviceModel))) { var volume = _deviceService.GetAudioDeviceVolume(defaultDevice.Id); UpdateTrayIcon(false, defaultDevice.IsMuted, volume.ToVolumeInt()); } else { UpdateTrayIcon(true); } }