Crates.io | winmix |
lib.rs | winmix |
version | 0.1.2 |
source | src |
created_at | 2024-04-28 14:28:31.514138 |
updated_at | 2024-05-10 13:47:22.629931 |
description | Change Windows Volume Mixer via Rust |
homepage | |
repository | https://github.com/UnexomWid/winmix |
max_upload_size | |
id | 1223287 |
size | 23,339 |
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. ⚠
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!();
}
}
WinMix was created by UnexomWid. It is licensed under MIT OR Apache 2.