feature/share-libs
rs 33 lines 876 Bytes
Raw
1 use crate::players::{
2 BASS_FILE, BASS_SINK, DRUMS_FILE, DRUMS_SINK, OTHER_FILE, OTHER_SINK, VOCALS_FILE, VOCALS_SINK,
3 };
4 use log::info;
5
6 #[tauri::command]
7 pub async fn player_unmount() {
8 info!("Unmounting player.");
9
10 // Stop all sinks
11 if let Some(sink) = unsafe { VOCALS_SINK.take() } {
12 sink.stop();
13 }
14 if let Some(sink) = unsafe { BASS_SINK.take() } {
15 sink.stop();
16 }
17 if let Some(sink) = unsafe { OTHER_SINK.take() } {
18 sink.stop();
19 }
20 if let Some(sink) = unsafe { DRUMS_SINK.take() } {
21 sink.stop();
22 }
23
24 // Dereference result files
25 if let (Some(_), Some(_), Some(_), Some(_)) = (
26 unsafe { VOCALS_FILE.take() },
27 unsafe { DRUMS_FILE.take() },
28 unsafe { BASS_FILE.take() },
29 unsafe { OTHER_FILE.take() },
30 ) {
31 info!("Unmounting result files done.");
32 }
33 }