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; }
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); }
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); }
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); }
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(); } } } } }
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; } } }
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(); }
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; }
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); }
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(); } }