| 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 | } |