3 releases
0.1.2 | May 10, 2024 |
---|---|
0.1.1 | Apr 28, 2024 |
0.1.0 | Apr 28, 2024 |
#478 in Audio
109 downloads per month
11KB
103 lines
About
WinMix is a rust library that allows you to individually change the volume of each program in the Windows Volume Mixer.
For example, you can set the volume of chrome.exe
to 0
while leaving other apps alone.
⚠ This libary uses unsafe functions from the windows crate. ⚠
Usage
use winmix::WinMix;
unsafe {
let winmix = WinMix::default();
// Get a list of all programs that have an entry in the volume mixer
let sessions = winmix.enumerate()?;
for session in sessions {
// PID and path of the process
println!("pid: {} path: {}", session.pid, session.path);
// Mute
session.vol.set_mute(true)?;
session.vol.set_mute(false)?;
// 50% volume
session.vol.set_master_volume(0.5)?;
// Back to 100% volume
session.vol.set_master_volume(1.0)?;
// Get the current volume, or see if it's muted
let vol = session.vol.get_master_volume()?;
let is_muted = session.vol.get_mute()?;
println!("Vol: {} Muted: {}", vol, is_muted);
println!();
}
}
License
WinMix was created by UnexomWid. It is licensed under MIT OR Apache 2.
References
Dependencies
~128MB
~2M SLoC