From fcafd2836ede5eb38d9b6ba953f548960e9d0746 Mon Sep 17 00:00:00 2001 From: nefares Date: Thu, 27 Apr 2023 02:48:31 +0200 Subject: [PATCH] modifed inline function to account for main PID --- WinBGMute/MainForm.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/WinBGMute/MainForm.cs b/WinBGMute/MainForm.cs index a7aaf7c..81797cb 100644 --- a/WinBGMute/MainForm.cs +++ b/WinBGMute/MainForm.cs @@ -211,9 +211,14 @@ private void RunMuter(int fpid, bool doMute = true) //Inline function to mute/unmute a list of processes - Func InlineMuteProcList = (procs, isMuted) => + Func InlineMuteProcList = (procs, isMuted, additionalPID) => { string log_output = ""; + + if (additionalPID != null) + { + m_volumeMixer.SetApplicationMute((int)additionalPID, isMuted); + } foreach (var fproc_similar in procs) { var fproc_similar_pid = fproc_similar.Id; @@ -237,7 +242,7 @@ private void RunMuter(int fpid, bool doMute = true) // if yes unmute all foreground processes with the same name if (audio_pname == fname) { - string log_output = InlineMuteProcList(audio_proc_list, false); + string log_output = InlineMuteProcList(audio_proc_list, false, audio_pid); LoggingEngine.LogLine($"[+] Unmuting foreground process {audio_pname}({audio_pid}) {log_output} ", Color.BlueViolet); } // mute all other processes (with an audio channel), except the ones on the neverMuteList @@ -259,19 +264,19 @@ private void RunMuter(int fpid, bool doMute = true) if (!IsIconic(handle)) { // if minimize option AND NOT minimized: SKIP - InlineMuteProcList(audio_proc_list, false); + InlineMuteProcList(audio_proc_list, false, audio_pid); log_skipped += "[M]" + audio_pname + ", "; } else { - InlineMuteProcList(audio_proc_list, true); + InlineMuteProcList(audio_proc_list, true, audio_pid); log_muted += audio_pname + ", "; } } else { //if mute condition is background and not on mute list - InlineMuteProcList(audio_proc_list, true); + InlineMuteProcList(audio_proc_list, true, audio_pid); log_muted += audio_pname + ", "; } }