MCPcopy Create free account
hub / github.com/RustOtomeLab/RustEng / start_video

Method start_video

src/executors/executor.rs:920–969  ·  view source on GitHub ↗
(&self, name: &str)

Source from the content-addressed store, hash-verified

918 let mut new_item = item.clone();
919 new_item.x_offset = x_offset;
920 new_item.y_offset = y_offset;
921 model.set_row_data(i, new_item);
922 break;
923 }
924 }
925 Ok(())
926 }
927
928 fn clean_fg(&self, target: &str) -> Result<(), EngineError> {
929 let model = self.figure_items.clone();
930
931 if target == "All" {
932 while model.row_count() > 0 {
933 model.remove(0);
934 }
935 } else {
936 // 从后往前删,避免索引错位
937 let mut i = model.row_count();
938 while i > 0 {
939 i -= 1;
940 let item = model.row_data(i).unwrap();
941 if item.name == target {
942 model.remove(i);
943 }
944 }
945 }
946
947 Ok(())
948 }
949
950 fn start_video(&self, name: &str) -> Result<(), EngineError> {
951 let path = format!(
952 "{}{}.{}",
953 ENGINE_CONFIG.video_path(),
954 name,
955 ENGINE_CONFIG.video_extension()
956 );
957
958 self.media_player.borrow().stop_all();
959
960 let player = VideoPlayer::play(&path)?;
961 let mut video_context = self.video_context.borrow_mut();
962 video_context.set_video_player(player);
963
964 if let Some(window) = self.weak.upgrade() {
965 window.set_is_video(true);
966 }
967
968 let timer = slint::Timer::default();
969 let weak = self.weak.clone();
970 let video_player = self.video_context.clone();
971 let executor_for_finish = self.clone();
972 timer.start(

Callers 1

apply_commandMethod · 0.80

Calls 7

stop_allMethod · 0.80
set_video_playerMethod · 0.80
get_video_player_refMethod · 0.80
take_latest_frameMethod · 0.80
is_finishedMethod · 0.80
execute_stop_videoMethod · 0.80
set_video_timerMethod · 0.80

Tested by

no test coverage detected