Code cleanup part 2: Huge ass refactor edition

This commit is contained in:
Your Name
2023-02-19 18:14:37 -05:00
parent f2d5263244
commit 9eb15a4a5f
6 changed files with 346 additions and 246 deletions

View File

@@ -0,0 +1,31 @@
use windows::{
core::{Interface},
Win32::{
Media::Audio::{
IAudioSessionControl, IAudioSessionControl2,
IAudioSessionNotification, IAudioSessionNotification_Impl,
},
},
};
#[windows::core::implement(IAudioSessionNotification)]
pub(crate) struct SessionNotification {
pub(crate) callback: Box<dyn Fn(IAudioSessionControl2)>
}
impl IAudioSessionNotification_Impl for SessionNotification {
fn OnSessionCreated(
self: &SessionNotification,
newsession: &core::option::Option<IAudioSessionControl>,
) -> windows::core::Result<()> {
let ses: IAudioSessionControl2 = newsession.as_ref().unwrap().cast().unwrap();
(self.callback)(ses);
Ok(())
}
}
impl Drop for SessionNotification {
fn drop(&mut self) {
println!("SN drop");
}
}