private void listDevices_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listDevices.SelectedItems.Count == 0)
            {
                return;
            }

            var devSettings = Program.settings.Device.Find(x => x.DeviceID == (string)listDevices.SelectedItems[0].Tag);

            if (devSettings == null)
            {
                trackBrightness.Value   = 0;
                trackHue.Value          = 0;
                trackSaturation.Value   = 0;
                pictureModded.Image     = new Bitmap(Properties.Resources._66_100_highDPI);
                checkHideDevice.Checked = false;
                return;
            }

            trackBrightness.Value = devSettings.Brightness;
            trackHue.Value        = devSettings.Hue;
            trackSaturation.Value = devSettings.Saturation;

            if (pictureModded.Image != null)
            {
                pictureModded.Image.Dispose();
            }

            pictureModded.Image = DeviceIcons.ChangeColors(new Bitmap(Properties.Resources._66_100_highDPI), trackHue.Value, trackSaturation.Value / 100f,
                                                           trackBrightness.Value / 100f);
            checkHideDevice.Checked = devSettings.HideFromList;
        }
Exemple #2
0
        private void SetTrayIcons()
        {
            Settings.CDevice devSettings = null;

            if (listDevices.SelectedItems.Count > 0)
            {
                devSettings = Program.settings.Device.Find(x =>
                {
                    var dev = listDevices.SelectedItems[0];
                    return(x.DeviceID == dev.Tag.ToString());
                });
            }

            if (devSettings == null ||
                (devSettings.Hue == 0 &&
                 devSettings.Saturation == 0 &&
                 devSettings.Brightness == 0))
            {
                ActiveTrayIcons = DefaultTrayIcons;
                return;
            }

            var newIcons = DefaultTrayIcons.Select(icon => DeviceIcons.ChangeColors(icon.ToBitmap(), devSettings.Hue, devSettings.Saturation / 100f, devSettings.Brightness / 100f)).Select(bmp => Icon.FromHandle(bmp.GetHicon())).ToList();

            ActiveTrayIcons = newIcons;
            IconChanged(this, EventArgs.Empty);
        }
Exemple #3
0
        public void PostConstructor(EDataFlow dataFlow)
        {
            var devices = EDataFlow.eRender.Equals(dataFlow) ? DeviceRepository.FindPlayBackDevices() : DeviceRepository.FindCaptureDevices();
            var cnt     = 0;

            foreach (var dev in devices)
            {
                var devID  = dev.MMDevice.ID;
                var lvitem = new ListViewItem {
                    Text = dev.MMDevice.FriendlyName, ImageIndex = cnt, Tag = devID
                };

                var devSettings = Program.settings.Device.Find(x => x.DeviceID == devID);
                if (devSettings != null)
                {
                    lvitem.Font = new Font(lvitem.Font, FontStyle.Bold);

                    if (devSettings.HideFromList)
                    {
                        lvitem.Font = new Font(lvitem.Font, FontStyle.Italic);
                    }
                }

                listDevices.LargeImageList.Images.Add(DeviceIcons.GetIcon(dev.MMDevice.IconPath));
                listDevices.Items.Add(lvitem);
                cnt++;
            }
        }
        private void trackBarsHSB_Scroll(object sender, EventArgs e)
        {
            if (pictureModded.Image != null)
            {
                pictureModded.Image.Dispose();
            }

            pictureModded.Image = DeviceIcons.ChangeColors(new Bitmap(Properties.Resources._66_100_highDPI), trackHue.Value, trackSaturation.Value / 100f,
                                                           trackBrightness.Value / 100f);
        }
Exemple #5
0
        public FormSwitcher()
        {
            InitializeComponent();
            ledLeft.OldStyle = Program.settings.ColorVU;
            ledLeft.SetValue((float)0.1);
            ledRight.OldStyle = Program.settings.ColorVU;
            ledRight.SetValue((float)0.1);

            SetWindowTheme(listDevices.Handle, "explorer", null);

            using (var gr = CreateGraphics())
                DpiFactor = gr.DpiX / 96;
            var tile = new Size(listDevices.ClientSize.Width + 2, (int)(listDevices.TileSize.Height * DpiFactor));

            DeviceIcons.InitImageLists(DpiFactor);

            listDevices.TileSize       = tile;
            listDevices.Scroll        += VolBar.DoScroll;
            listDevices.LargeImageList = DeviceIcons.ActiveIcons;

            if (DpiFactor <= 1)
            {
                DefaultTrayIcons.Add(getIcon(Resources.mute));
                DefaultTrayIcons.Add(getIcon(Resources.zero));
                DefaultTrayIcons.Add(getIcon(Resources._1_33));
                DefaultTrayIcons.Add(getIcon(Resources._33_66));
                DefaultTrayIcons.Add(getIcon(Resources._66_100));
            }
            else
            {
                DefaultTrayIcons.Add(getIcon(Resources.mute_highDPI));
                DefaultTrayIcons.Add(getIcon(Resources.zero_highDPI));
                DefaultTrayIcons.Add(getIcon(Resources._1_33_highDPI));
                DefaultTrayIcons.Add(getIcon(Resources._33_66_highDPI));
                DefaultTrayIcons.Add(getIcon(Resources._66_100_highDPI));
            }

            RenderType = Program.settings.DefaultDataFlow;
            RefreshDevices(RenderType);
            SetTrayIcons();

            VolBar.VolumeMuteChanged += IconChanged;
            VolBar.RegisterDevice(RenderType);
            EndPoints.NotifyClient.DefaultChanged += DefaultChanged;
            EndPoints.NotifyClient.DeviceAdded    += DeviceAdded;
            EndPoints.NotifyClient.DeviceRemoved  += DeviceRemoved;

            GlobalHotkeys.Handle = Handle;
            GlobalHotkeys.RegisterAll();

            ScrollVolume.VolumeScroll += ScrollTheVolume;
            ScrollVolume.RegisterVolScroll(Program.settings.VolumeScroll.Enabled);
        }
Exemple #6
0
        private void DeviceAdded(string devID)
        {
            if (InvokeRequired)
            {
                BeginInvoke(new DevEventDelegate(DeviceAdded), devID);
            }
            else
            {
                if (listDevices.Items.Cast <ListViewItem>().Any(item => (string)item.Tag == devID))
                {
                    return;
                }

                var pDevices = EndPoints.DeviceEnumerator.EnumerateAudioEndPoints(RenderType, EDeviceState.Active);
                if (pDevices.Count > 0)
                {
                    for (var i = 0; i < pDevices.Count; i++)
                    {
                        if (pDevices[i].ID == devID)
                        {
                            if (listDevices.Items.Cast <ListViewItem>().Any(item => (string)item.Tag == devID))
                            {
                                return;
                            }

                            var device = pDevices[i];
                            DeviceIcons.Add(device.IconPath);
                            var devSettings = Program.settings.Device.Find(x => x.DeviceID == devID);
                            if (devSettings == null || !devSettings.HideFromList)
                            {
                                var item = new ListViewItem
                                {
                                    ImageIndex = listDevices.Items.Count,
                                    Text       = device.FriendlyName,
                                    Tag        = devID,
                                };

                                listDevices.Items.Add(item);
                            }
                            listDevices.Sort();
                            SetSizes();
                        }
                    }
                }
            }
        }
Exemple #7
0
 private void DeviceRemoved(string devID)
 {
     if (InvokeRequired)
     {
         BeginInvoke(new DevEventDelegate(DeviceRemoved), devID);
     }
     else
     {
         foreach (var item in listDevices.Items.Cast <ListViewItem>().Where(item => (string)item.Tag == devID))
         {
             DeviceIcons.Remove(item.Index);
             listDevices.Items.Remove(item);
             listDevices.Sort();
             SetSizes();
             break;
         }
     }
 }
Exemple #8
0
        private void RefreshDevices(EDataFlow renderType)
        {
            listDevices.Clear();
            DeviceIcons.Clear();

            listDevices.BeginUpdate();

            var pDevices = EndPoints.DeviceEnumerator.EnumerateAudioEndPoints(renderType, EDeviceState.Active);

            if (pDevices.Count > 0)
            {
                var defaultDev = EndPoints.DeviceEnumerator.GetDefaultAudioEndpoint(renderType, ERole.eMultimedia).ID;
                var devCount   = pDevices.Count;

                for (var i = 0; i < devCount; i++)
                {
                    var device = pDevices[i];
                    var devID  = device.ID;

                    DeviceIcons.Add(device.IconPath);
                    var devSettings = Program.settings.Device.Find(x => x.DeviceID == devID);
                    if (devSettings == null || !devSettings.HideFromList)
                    {
                        var item = new ListViewItem
                        {
                            ImageIndex = i,
                            Text       = device.FriendlyName,
                            Selected   = devID == defaultDev,
                            Tag        = devID,
                        };

                        listDevices.Items.Add(item);

                        if (devID == defaultDev)
                        {
                            SetDeviceIcon(i, true);
                            SetTrayIcons();
                        }
                    }
                }
            }

            listDevices.EndUpdate();
        }
Exemple #9
0
        private void listDevices_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            if (listDevices.SelectedItems.Count == 0)
            {
                return;
            }

            var devSettings = Program.settings.Device.Find(x => x.DeviceID == (string)listDevices.SelectedItems[0].Tag);

            if (devSettings == null)
            {
                trackBrightness.Value   = 0;
                trackHue.Value          = 0;
                trackSaturation.Value   = 0;
                pictureModded.Image     = new Bitmap(Properties.Resources._66_100_highDPI);
                checkHideDevice.Checked = false;
                checkCustomName.Checked = false;
                textCustomName.Enabled  = false;
                textCustomName.Clear();
                checkEnableAsMultimediaOnStartup.Checked     = false;
                checkEnableAsCommunicationsOnStartup.Checked = false;

                return;
            }

            trackBrightness.Value = devSettings.Brightness;
            trackHue.Value        = devSettings.Hue;
            trackSaturation.Value = devSettings.Saturation;

            pictureModded.Image?.Dispose();
            pictureModded.Image     = DeviceIcons.ChangeColors(new Bitmap(Properties.Resources._66_100_highDPI), trackHue.Value, trackSaturation.Value / 100f, trackBrightness.Value / 100f);
            checkHideDevice.Checked = devSettings.HideFromList;

            checkCustomName.Checked = devSettings.UseCustomName;
            textCustomName.Text     = devSettings.CustomName;
            checkEnableAsMultimediaOnStartup.Checked     = devSettings.DefaultMultimediaDevice;
            checkEnableAsCommunicationsOnStartup.Checked = devSettings.DefaultCommunicationsDevice;
        }
Exemple #10
0
 private void trackBarsHSB_Scroll()
 {
     pictureModded.Image?.Dispose();
     pictureModded.Image = DeviceIcons.ChangeColors(new Bitmap(Properties.Resources._66_100_highDPI), trackHue.Value, trackSaturation.Value / 100f, trackBrightness.Value / 100f);
 }
Exemple #11
0
        public FormSwitcher()
        {
            InitializeComponent();

            IsWin10 = Environment.OSVersion.Version.Major == 10;
            if (IsWin10)
            {
                FormBorderStyle = FormBorderStyle.FixedToolWindow;
            }
            SetWindowTheme(listDevices.Handle, "explorer", null);

            ledLeft.OldStyle = Program.settings.ColorVU;
            ledLeft.SetValue((float)0.1);
            ledRight.OldStyle = Program.settings.ColorVU;
            ledRight.SetValue((float)0.1);

            DpiFactor = getScalingFactor();
            var tile = new Size(listDevices.ClientSize.Width + 2, (int)(listDevices.TileSize.Height * DpiFactor));

            DeviceIcons.InitImageLists(DpiFactor);

            listDevices.TileSize       = tile;
            listDevices.Scroll        += VolBar.DoScroll;
            ledLeft.DoScroll          += VolBar.DoScroll;
            ledRight.DoScroll         += VolBar.DoScroll;
            listDevices.LargeImageList = DeviceIcons.ActiveIcons;

            if (DpiFactor <= 1)
            {
                DefaultTrayIcons.Add(getIcon(Resources.mute));
                DefaultTrayIcons.Add(getIcon(Resources.zero));
                DefaultTrayIcons.Add(getIcon(Resources._1_33));
                DefaultTrayIcons.Add(getIcon(Resources._33_66));
                DefaultTrayIcons.Add(getIcon(Resources._66_100));
            }
            else
            {
                DefaultTrayIcons.Add(getIcon(Resources.mute_highDPI));
                DefaultTrayIcons.Add(getIcon(Resources.zero_highDPI));
                DefaultTrayIcons.Add(getIcon(Resources._1_33_highDPI));
                DefaultTrayIcons.Add(getIcon(Resources._33_66_highDPI));
                DefaultTrayIcons.Add(getIcon(Resources._66_100_highDPI));
            }

            RenderType = Program.settings.DefaultDataFlow;
            RefreshDevices(RenderType);
            SetTrayIcons();

            VolBar.VolumeMuteChanged += IconChanged;
            VolBar.RegisterDevice(RenderType);

            EndPoints.NotifyClient.DefaultChanged += DefaultChanged;
            EndPoints.NotifyClient.DeviceAdded    += DeviceAdded;
            EndPoints.NotifyClient.DeviceRemoved  += DeviceRemoved;

            GlobalHotkeys.Handle = Handle;
            GlobalHotkeys.RegisterAll();

            ScrollVolume.VolumeScroll += ScrollTheVolume;
            ScrollVolume.RegisterVolScroll(Program.settings.VolumeScroll.Enabled);

            if (Program.settings.AlwaysVisible)
            {
                OpenAlwaysVisible();
            }
        }