Cleanup part 3: Strip old stuff, unnecessary library
This commit is contained in:
7
Cargo.lock
generated
7
Cargo.lock
generated
@@ -6,7 +6,6 @@ version = 3
|
|||||||
name = "auto_mute_tool"
|
name = "auto_mute_tool"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"widestring",
|
|
||||||
"windows",
|
"windows",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -45,12 +44,6 @@ version = "1.0.6"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
|
checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "widestring"
|
|
||||||
version = "1.0.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows"
|
name = "windows"
|
||||||
version = "0.44.0"
|
version = "0.44.0"
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ edition = "2021"
|
|||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
widestring = "1.0.2"
|
|
||||||
|
|
||||||
[dependencies.windows]
|
[dependencies.windows]
|
||||||
version = "0.44.0"
|
version = "0.44.0"
|
||||||
features = [
|
features = [
|
||||||
|
|||||||
12
src/main.rs
12
src/main.rs
@@ -12,13 +12,11 @@ use std::{
|
|||||||
io::{BufRead, BufReader},
|
io::{BufRead, BufReader},
|
||||||
path::Path,
|
path::Path,
|
||||||
ptr::null_mut,
|
ptr::null_mut,
|
||||||
sync::{
|
sync::{Arc, Mutex},
|
||||||
Arc, Mutex,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use sm_session_notifier::SMSessionNotifier;
|
use sm_session_notifier::SMSessionNotifier;
|
||||||
use window_change::{win_event_hook_loop, WIN_CHANGE_CHANNEL_TX};
|
use window_change::{win_event_hook_loop, WIN_CHANGE_CALLBACK};
|
||||||
use windows::{
|
use windows::{
|
||||||
core::Interface,
|
core::Interface,
|
||||||
Win32::{
|
Win32::{
|
||||||
@@ -133,9 +131,9 @@ fn main() {
|
|||||||
.boot_devices()
|
.boot_devices()
|
||||||
.expect("failed to get initial audio devices and sessions");
|
.expect("failed to get initial audio devices and sessions");
|
||||||
|
|
||||||
*WIN_CHANGE_CHANNEL_TX.lock().unwrap() = Some(
|
*WIN_CHANGE_CALLBACK.lock().unwrap() = Some(Box::new(move |s| {
|
||||||
Box::new(move |s| muter.lock().unwrap().notify_window_changed(&s))
|
muter.lock().unwrap().notify_window_changed(&s)
|
||||||
);
|
}));
|
||||||
|
|
||||||
win_event_hook_loop();
|
win_event_hook_loop();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ use std::{
|
|||||||
use crate::{
|
use crate::{
|
||||||
device_notification_client::DeviceNotificationClient, session_notification::SessionNotification,
|
device_notification_client::DeviceNotificationClient, session_notification::SessionNotification,
|
||||||
};
|
};
|
||||||
use widestring::U16CStr;
|
|
||||||
use windows::{
|
use windows::{
|
||||||
core::{Interface, PCWSTR},
|
core::{Interface, PCWSTR},
|
||||||
Win32::{
|
Win32::{
|
||||||
@@ -105,11 +104,8 @@ impl SMSessionNotifier {
|
|||||||
(self.notification_function)(session);
|
(self.notification_function)(session);
|
||||||
}
|
}
|
||||||
let prop_store = device.OpenPropertyStore(STGM_READ)?;
|
let prop_store = device.OpenPropertyStore(STGM_READ)?;
|
||||||
// this definition isn't in windows-rs yet apparently :(
|
|
||||||
let prop_var = prop_store.GetValue(&PKEY_Device_FriendlyName)?;
|
let prop_var = prop_store.GetValue(&PKEY_Device_FriendlyName)?;
|
||||||
let str = U16CStr::from_ptr_str(prop_var.Anonymous.Anonymous.Anonymous.pwszVal.0)
|
println!("Device Added: {} Existing Sessions: {}", prop_var.Anonymous.Anonymous.Anonymous.pwszVal.to_string()?, session_count);
|
||||||
.to_string_lossy();
|
|
||||||
println!("Device Added: {} Existing Sessions: {}", str, session_count);
|
|
||||||
self.session_managers.push(sm);
|
self.session_managers.push(sm);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ use windows::Win32::{
|
|||||||
|
|
||||||
use crate::pid_to_exe::pid_to_exe_path;
|
use crate::pid_to_exe::pid_to_exe_path;
|
||||||
|
|
||||||
pub static WIN_CHANGE_CHANNEL_TX: Mutex<Option<Box<dyn Fn(&str)+Send>>> = Mutex::new(None);
|
pub static WIN_CHANGE_CALLBACK: Mutex<Option<Box<dyn Fn(&str)+Send>>> = Mutex::new(None);
|
||||||
|
|
||||||
unsafe extern "system" fn win_event_proc(
|
unsafe extern "system" fn win_event_proc(
|
||||||
_hook: HWINEVENTHOOK,
|
_hook: HWINEVENTHOOK,
|
||||||
@@ -33,7 +33,7 @@ unsafe extern "system" fn win_event_proc(
|
|||||||
GetWindowThreadProcessId(hwnd, Some(&mut pid));
|
GetWindowThreadProcessId(hwnd, Some(&mut pid));
|
||||||
pid_to_exe_path(pid)
|
pid_to_exe_path(pid)
|
||||||
.map(|path|
|
.map(|path|
|
||||||
WIN_CHANGE_CHANNEL_TX
|
WIN_CHANGE_CALLBACK
|
||||||
.lock()
|
.lock()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.as_ref()
|
.as_ref()
|
||||||
|
|||||||
Reference in New Issue
Block a user