Esempio n. 1
0
        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    = new System.Drawing.Icon(Application.GetResourceStream(new Uri("pack://application:,,,/EarTrumpet;component/Tray.ico")).Stream);
            _trayIcon.Text    = string.Concat("Ear Trumpet - ", EarTrumpet.Properties.Resources.TrayIconTooltipText);
            _trayIcon.Visible = true;
        }
Esempio n. 2
0
 public AudioMixerViewModel()
 {
     Apps           = new ObservableCollection <AppItemViewModel>();
     _audioService  = new EarTrumpetAudioSessionService();
     _deviceService = new EarTrumpetAudioDeviceService();
     _proxy         = new AudioMixerViewModelCallbackProxy(_audioService, _deviceService);
 }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
 public AudioMixerViewModel(EarTrumpetAudioSessionService audioService, EarTrumpetAudioDeviceService deviceService)
 {
     Apps           = new ObservableCollection <AppItemViewModel>();
     _audioService  = audioService;
     _deviceService = deviceService;
     _deviceService.MasterVolumeChanged += DeviceService_MasterVolumeChanged;
     _proxy = new AudioMixerViewModelCallbackProxy(_audioService, _deviceService);
     Refresh();
 }
Esempio n. 5
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);
            }
        }
Esempio n. 6
0
        public MainWindow()
        {
            InitializeComponent();

            _deviceService     = new EarTrumpetAudioDeviceService();
            _viewModel         = new AudioMixerViewModel(new EarTrumpetAudioSessionService(), _deviceService);
            _trayViewModel     = new TrayViewModel(_deviceService);
            _trayIcon          = new TrayIcon(_trayViewModel);
            _trayIcon.Invoked += TrayIcon_Invoked;

            DataContext = _viewModel;

            CreateAndHideWindow();
            CheckandUpdateTray();

            // Move keyboard focus to the first element. Disabled this since it is ugly but not sure invisible
            // visuals are preferrable.
            // Activated += (s,e) => MoveFocus(new TraversalRequest(FocusNavigationDirection.First));

            SourceInitialized += (s, e) => UpdateTheme();
        }
Esempio n. 7
0
 public AudioMixerViewModelCallbackProxy(EarTrumpetAudioSessionService service, EarTrumpetAudioDeviceService deviceService)
 {
     _service       = service;
     _deviceService = deviceService;
 }