Extended MicMute support

This commit is contained in:
Serge
2023-07-08 22:13:35 +02:00
parent c5cd747a63
commit e0cca33ab9
2 changed files with 31 additions and 7 deletions

29
app/Helpers/Audio.cs Normal file
View File

@@ -0,0 +1,29 @@
using NAudio.CoreAudioApi;
namespace GHelper.Helpers
{
internal class Audio
{
public static bool ToggleMute()
{
using (var enumerator = new MMDeviceEnumerator())
{
var commDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Communications);
var consoleDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Console);
var mmDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Multimedia);
bool status = !commDevice.AudioEndpointVolume.Mute;
commDevice.AudioEndpointVolume.Mute = status;
consoleDevice.AudioEndpointVolume.Mute = status;
mmDevice.AudioEndpointVolume.Mute = status;
Logger.WriteLine(commDevice.ToString() + ":" + status);
Logger.WriteLine(consoleDevice.ToString() + ":" + status);
Logger.WriteLine(mmDevice.ToString() + ":" + status);
return status;
}
}
}
}

View File

@@ -296,13 +296,8 @@ namespace GHelper.Input
ToggleFnLock(); ToggleFnLock();
break; break;
case "micmute": case "micmute":
using (var enumerator = new MMDeviceEnumerator()) bool muteStatus = Audio.ToggleMute();
{ Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
var commDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Communications);
bool muteStatus = !commDevice.AudioEndpointVolume.Mute;
commDevice.AudioEndpointVolume.Mute = muteStatus;
Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
}
break; break;
case "brightness_up": case "brightness_up":
HandleOptimizationEvent(32); HandleOptimizationEvent(32);