private void cmbDevice_SelectedIndexChanged(object sender, EventArgs e) { device = (MMDevice)cmbDevice.SelectedItem; if (DeviceChanged != null) { DeviceChanged(sender, e); } var tooltipText = cmbDevice.SelectedItem.ToString(); tooltip.SetToolTip(cmbDevice, tooltipText); tooltip.SetToolTip(btnSoundProperties, tooltipText); var iconAddress = ((MMDevice)cmbDevice.SelectedItem).IconPath.Split(','); btnSoundProperties.Image = IconExtractor.Extract(iconAddress[0], int.Parse(iconAddress[1]), true).ToBitmap(); }
/// <summary> /// Constructor for session panel creation. /// </summary> /// <param name="device">Selected device.</param> /// <param name="session">Current session of device.</param> public VolumePanel(MMDevice device, AudioSessionControl session) { this.devicePanel = false; this.device = device; this.session = session; InitializeComponent(); cmbDevice.Visible = false; Process process = Process.GetProcessById((int)session.GetProcessID); if (session.IsSystemSoundsSession) { lblName.Text = "System Sounds"; pbProcessIcon.Visible = false; btnSoundProperties.Visible = true; var iconAddress = session.IconPath.Split(','); var icon = IconExtractor.Extract(iconAddress[0], int.Parse(iconAddress[1]), true); if (icon != null) { btnSoundProperties.Image = icon.ToBitmap(); } tooltip.SetToolTip(btnSoundProperties, lblName.Text); } else { pbProcessIcon.Image = Icon.ExtractAssociatedIcon(process.MainModule.FileName).ToBitmap(); lblName.Text = process.MainWindowTitle != "" ? process.MainWindowTitle : process.ProcessName; pbProcessIcon.Visible = true; btnSoundProperties.Visible = false; tooltip.SetToolTip(pbProcessIcon, lblName.Text); } tooltip.SetToolTip(lblName, lblName.Text); session.RegisterEventClient(this); UpdateVolume(); UpdateMuted(); }