diff --git a/EonaCat.VolumeMixer.Tester/Program.cs b/EonaCat.VolumeMixer.Tester/Program.cs index 527ed7c..a33a924 100644 --- a/EonaCat.VolumeMixer.Tester/Program.cs +++ b/EonaCat.VolumeMixer.Tester/Program.cs @@ -1,199 +1,176 @@ -using EonaCat.VolumeMixer.Managers; -using EonaCat.VolumeMixer.Models; -using System; -using System.Threading.Tasks; - -class Program -{ - // This file is part of the EonaCat project(s) which is released under the Apache License. - // See the LICENSE file or go to https://EonaCat.com/License for full license details. - [STAThread] - static async Task Main() - { - // Playback management example - using (var volumeMixer = new VolumeMixerManager()) - { - try - { - while (true) +using EonaCat.VolumeMixer.Managers; +using EonaCat.VolumeMixer.Models; +using System; +using System.Threading.Tasks; + +class Program +{ + // This file is part of the EonaCat project(s) which is released under the Apache License. + // See the LICENSE file or go to https://EonaCat.com/License for full license details. + [STAThread] + static async Task Main() + { + // Playback management example + using (var volumeMixer = new VolumeMixerManager()) + { + try + { + // Get all audio PLAYBACK devices + var devices = await volumeMixer.GetAudioDevicesAsync(DataFlow.Output); + Console.WriteLine($"Found {devices.Count} playback devices:"); + + foreach (var device in devices) { - var input = await volumeMixer.GetAudioDevicesAsync(DataFlow.Input); - var output = await volumeMixer.GetAudioDevicesAsync(DataFlow.Output); - var input2 = await volumeMixer.GetMicrophonesAsync(); + Console.WriteLine($"- {device.Name} (Default: {device.IsDefault})"); + Console.WriteLine($" Volume: {await device.GetMasterVolumeAsync():P0}"); + Console.WriteLine($" Muted: {await device.GetMasterMuteAsync()}"); + device.Dispose(); + } - foreach (var item in input) + // Default playback device + using (var defaultDevice = await volumeMixer.GetDefaultAudioDeviceAsync(DataFlow.Output)) + { + if (defaultDevice != null) { - item.Dispose(); + Console.WriteLine($"\nDefault playback device: {defaultDevice.Name}"); + + // Get all audio sessions + var sessions = await defaultDevice.GetAudioSessionsAsync(); + Console.WriteLine($"Active sessions: {sessions.Count}"); + + foreach (var session in sessions) + { + Console.WriteLine($"- {session.DisplayName} ({await session.GetProcessNameAsync()})"); + + if ((await session.GetProcessNameAsync()).Equals("msedge", StringComparison.OrdinalIgnoreCase)) + { + Console.WriteLine($" Current Volume: {await session.GetVolumeAsync():P0}"); + await session.SetVolumeAsync(1f).ConfigureAwait(false); + Console.WriteLine($" Set to Volume: {await session.GetVolumeAsync():P0}"); + } + else + { + Console.WriteLine($" Volume: {await session.GetVolumeAsync():P0}"); + } + Console.WriteLine($" Muted: {await session.GetMuteAsync()}"); + session.Dispose(); + } } - foreach (var item in input2) + // Example Set volume of default device + if (defaultDevice != null) { - item.Dispose(); + // Unmute the device if it is muted + if (await defaultDevice.GetMasterMuteAsync()) + { + Console.WriteLine("Unmuting default playback device..."); + await defaultDevice.SetMasterMuteAsync(false); + } + + Console.WriteLine($"\nSetting default playback device volume to 1%"); + bool success = await defaultDevice.SetMasterVolumeAsync(0.1f); + + // Log the current volume + Console.WriteLine($"Current volume: {await defaultDevice.GetMasterVolumeAsync():P0}"); + + for (int i = 0; i < 50; i++) + { + if (await defaultDevice.GetMasterVolumeAsync() >= 1f) + { + break; + } + + // Increment volume by 2% each step + success = await defaultDevice.StepUpAsync(); + Console.WriteLine($"Current step volume: {await defaultDevice.GetMasterVolumeAsync():P0}"); + } + + if (success) + { + Console.WriteLine("Volume increased by 95% successfully."); + } + else + { + Console.WriteLine("Failed to increase volume."); + } + + // Toggle mute + // bool currentMute = await defaultDevice.GetMasterMuteAsync(); + // success = await defaultDevice.SetMasterMuteAsync(!currentMute); + // Console.WriteLine($"Mute toggled: {success}"); + } + else + { + Console.WriteLine("No default playback device found"); + } + } + } + catch (Exception ex) + { + Console.WriteLine($"Error: {ex.Message}"); + } + + try + { + // Get all microphones + var microphones = await volumeMixer.GetMicrophonesAsync(); + Console.WriteLine($"Found {microphones.Count} microphones:"); + + foreach (var mic in microphones) + { + Console.WriteLine($"- {mic.Name} (Default: {mic.IsDefault})"); + Console.WriteLine($" Volume: {await mic.GetMasterVolumeAsync():P0}"); + Console.WriteLine($" Muted: {await mic.GetMasterMuteAsync()}"); + mic.Dispose(); + } + + // Default microphone + using (var defaultMic = await volumeMixer.GetDefaultMicrophoneAsync()) + { + Console.WriteLine($"\nSetting default microphone volume to 1%"); + bool success = await defaultMic.SetMasterVolumeAsync(0.1f); + + // Log the current volume + Console.WriteLine($"Current volume: {await defaultMic.GetMasterVolumeAsync():P0}"); + + for (int i = 0; i < 50; i++) + { + if (await defaultMic.GetMasterVolumeAsync() >= 1f) + { + break; + } + + // Increment volume by 2% each step + success = await defaultMic.StepUpAsync(); + Console.WriteLine($"Current step volume: {await defaultMic.GetMasterVolumeAsync():P0}"); } - foreach (var item in output) + if (success) { - item.Dispose(); + Console.WriteLine("Volume increased by 95% successfully."); } - } - - - // Get all audio PLAYBACK devices - var devices = await volumeMixer.GetAudioDevicesAsync(DataFlow.Output); - Console.WriteLine($"Found {devices.Count} playback devices:"); - - foreach (var device in devices) - { - Console.WriteLine($"- {device.Name} (Default: {device.IsDefault})"); - Console.WriteLine($" Volume: {await device.GetMasterVolumeAsync():P0}"); - Console.WriteLine($" Muted: {await device.GetMasterMuteAsync()}"); - device.Dispose(); - } - - // Default playback device - using (var defaultDevice = await volumeMixer.GetDefaultAudioDeviceAsync(DataFlow.Output)) - { - if (defaultDevice != null) - { - Console.WriteLine($"\nDefault playback device: {defaultDevice.Name}"); - - // Get all audio sessions - var sessions = await defaultDevice.GetAudioSessionsAsync(); - Console.WriteLine($"Active sessions: {sessions.Count}"); - - foreach (var session in sessions) - { - Console.WriteLine($"- {session.DisplayName} ({await session.GetProcessNameAsync()})"); - - if ((await session.GetProcessNameAsync()).Equals("msedge", StringComparison.OrdinalIgnoreCase)) - { - Console.WriteLine($" Current Volume: {await session.GetVolumeAsync():P0}"); - await session.SetVolumeAsync(1f).ConfigureAwait(false); - Console.WriteLine($" Set to Volume: {await session.GetVolumeAsync():P0}"); - } - else - { - Console.WriteLine($" Volume: {await session.GetVolumeAsync():P0}"); - } - Console.WriteLine($" Muted: {await session.GetMuteAsync()}"); - session.Dispose(); - } - } - - // Example Set volume of default device - if (defaultDevice != null) - { - // Unmute the device if it is muted - if (await defaultDevice.GetMasterMuteAsync()) - { - Console.WriteLine("Unmuting default playback device..."); - await defaultDevice.SetMasterMuteAsync(false); - } - - Console.WriteLine($"\nSetting default playback device volume to 1%"); - bool success = await defaultDevice.SetMasterVolumeAsync(0.1f); - - // Log the current volume - Console.WriteLine($"Current volume: {await defaultDevice.GetMasterVolumeAsync():P0}"); - - for (int i = 0; i < 50; i++) - { - if (await defaultDevice.GetMasterVolumeAsync() >= 1f) - { - break; - } - - // Increment volume by 2% each step - success = await defaultDevice.StepUpAsync(); - Console.WriteLine($"Current step volume: {await defaultDevice.GetMasterVolumeAsync():P0}"); - } - - if (success) - { - Console.WriteLine("Volume increased by 95% successfully."); - } - else - { - Console.WriteLine("Failed to increase volume."); - } - - // Toggle mute - // bool currentMute = await defaultDevice.GetMasterMuteAsync(); - // success = await defaultDevice.SetMasterMuteAsync(!currentMute); - // Console.WriteLine($"Mute toggled: {success}"); - } - else - { - Console.WriteLine("No default playback device found"); - } - } - } - catch (Exception ex) - { - Console.WriteLine($"Error: {ex.Message}"); - } - - try - { - // Get all microphones - var microphones = await volumeMixer.GetMicrophonesAsync(); - Console.WriteLine($"Found {microphones.Count} microphones:"); - - foreach (var mic in microphones) - { - Console.WriteLine($"- {mic.Name} (Default: {mic.IsDefault})"); - Console.WriteLine($" Volume: {await mic.GetMasterVolumeAsync():P0}"); - Console.WriteLine($" Muted: {await mic.GetMasterMuteAsync()}"); - mic.Dispose(); - } - - // Default microphone - using (var defaultMic = await volumeMixer.GetDefaultMicrophoneAsync()) - { - Console.WriteLine($"\nSetting default microphone volume to 1%"); - bool success = await defaultMic.SetMasterVolumeAsync(0.1f); - - // Log the current volume - Console.WriteLine($"Current volume: {await defaultMic.GetMasterVolumeAsync():P0}"); - - for (int i = 0; i < 50; i++) - { - if (await defaultMic.GetMasterVolumeAsync() >= 1f) - { - break; - } - - // Increment volume by 2% each step - success = await defaultMic.StepUpAsync(); - Console.WriteLine($"Current step volume: {await defaultMic.GetMasterVolumeAsync():P0}"); - } - - if (success) - { - Console.WriteLine("Volume increased by 95% successfully."); - } - else - { - Console.WriteLine("Failed to increase volume."); - } - } - - Console.WriteLine($"Default mic volume: {await volumeMixer.GetMicrophoneVolumeAsync():P0}"); - Console.WriteLine($"Default mic muted: {await volumeMixer.GetMicrophoneMuteAsync()}"); - - // Set microphone volume to 60% - bool result = await volumeMixer.SetMicrophoneVolumeAsync(0.6f); - Console.WriteLine($"Set microphone volume to 60%: {result}"); - - // Set specific microphone by name - result = await volumeMixer.SetMicrophoneVolumeByNameAsync("USB", 0.7f); - Console.WriteLine($"Set USB microphone volume to 70%: {result}"); - - } - catch (Exception exception) - { - Console.WriteLine($"Error: {exception.Message}"); - } - } - } -} + else + { + Console.WriteLine("Failed to increase volume."); + } + } + + Console.WriteLine($"Default mic volume: {await volumeMixer.GetMicrophoneVolumeAsync():P0}"); + Console.WriteLine($"Default mic muted: {await volumeMixer.GetMicrophoneMuteAsync()}"); + + // Set microphone volume to 60% + bool result = await volumeMixer.SetMicrophoneVolumeAsync(0.6f); + Console.WriteLine($"Set microphone volume to 60%: {result}"); + + // Set specific microphone by name + result = await volumeMixer.SetMicrophoneVolumeByNameAsync("USB", 0.7f); + Console.WriteLine($"Set USB microphone volume to 70%: {result}"); + + } + catch (Exception exception) + { + Console.WriteLine($"Error: {exception.Message}"); + } + } + } +}