コード例 #1
0
ファイル: TrayIcon.cs プロジェクト: u53r55/EarTrumpet
 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;
     }
 }
コード例 #2
0
ファイル: TrayIcon.cs プロジェクト: u53r55/EarTrumpet
        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;
        }
コード例 #3
0
        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);
            }
        }