Skip to content

Change Windows Volume Mixer via Rust

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

UnexomWid/winmix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About Rust 1.73

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 License: MIT

WinMix was created by UnexomWid. It is licensed under MIT OR Apache 2.

References

About

Change Windows Volume Mixer via Rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages