@@ -15,8 +15,8 @@ use crate::{
1515use anyhow:: { Result , bail} ;
1616use once_cell:: sync:: Lazy ;
1717use recorder:: {
18- AudioRecorder , FPS , ProgressState , RecorderConfig , RecordingSession , Resolution ,
19- SpeakerRecorder , StreamingAudioRecorder , bounded,
18+ AudioRecorder , FPS , RecorderConfig , RecordingSession , Resolution , SpeakerRecorder ,
19+ StreamingAudioRecorder , bounded,
2020} ;
2121use slint:: {
2222 ComponentHandle , Model , SharedPixelBuffer , SharedString , ToSharedString , VecModel , Weak ,
@@ -566,7 +566,9 @@ fn inner_start_recording(ui_weak: Weak<AppWindow>) -> Result<()> {
566566 } ) ;
567567
568568 let ui_weak_clone = ui_weak. clone ( ) ;
569- let state = session. wait ( move |v| {
569+ let final_video_path = session. output_path ( ) ;
570+
571+ session. wait ( move |v| {
570572 log:: debug!( "combine tracks progress: {}%" , ( v * 100.0 ) as u32 ) ;
571573 _ = ui_weak_clone. upgrade_in_event_loop ( move |ui| {
572574 global_store ! ( ui) . set_record_status ( UIRecordStatus :: Mergeing ) ;
@@ -576,13 +578,10 @@ fn inner_start_recording(ui_weak: Weak<AppWindow>) -> Result<()> {
576578
577579 _ = ui_weak. upgrade_in_event_loop ( move |ui| {
578580 global_store ! ( ui) . set_record_status ( UIRecordStatus :: Stopped ) ;
579- match state {
580- ProgressState :: Finished => {
581- global_store ! ( ui) . set_merge_tracks_status ( UIMergeTrackStatus :: Finished ) ;
582- }
583- ProgressState :: Stopped => {
584- global_store ! ( ui) . set_merge_tracks_status ( UIMergeTrackStatus :: None ) ;
585- }
581+
582+ if global_store ! ( ui) . get_merge_tracks_status ( ) != UIMergeTrackStatus :: Cancelled {
583+ global_store ! ( ui) . set_merge_tracks_status ( UIMergeTrackStatus :: Finished ) ;
584+ global_store ! ( ui) . set_final_video_path ( final_video_path. display ( ) . to_shared_string ( ) ) ;
586585 }
587586 } ) ;
588587
@@ -611,6 +610,7 @@ fn stop_merge_tracks(ui: &AppWindow) {
611610 }
612611
613612 global_store ! ( ui) . set_record_status ( UIRecordStatus :: Stopped ) ;
613+ global_store ! ( ui) . set_merge_tracks_status ( UIMergeTrackStatus :: Cancelled ) ;
614614}
615615
616616pub fn picker_directory ( ui : Weak < AppWindow > , title : & str , filename : & str ) -> Option < PathBuf > {
0 commit comments