auto record outgoing (#9711)

* Add option auto record outgoing session
* In the same connection, all displays and all windows share the same
  recording state.

todo:

Android check external storage permission

Known issue:

* Sciter old issue, stop the process directly without stop record, the record file can't play.

Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
21pages
2024-10-21 14:34:06 +08:00
committed by GitHub
parent 289076aa70
commit e8187588c1
65 changed files with 442 additions and 322 deletions

View File

@@ -389,22 +389,17 @@ impl<T: InvokeUiSession> Session<T> {
self.send(Data::Message(LoginConfigHandler::refresh()));
}
pub fn record_screen(&self, start: bool, display: i32, w: i32, h: i32) {
self.send(Data::RecordScreen(
start,
display as usize,
w,
h,
self.get_id(),
));
}
pub fn record_status(&self, status: bool) {
pub fn record_screen(&self, start: bool) {
let mut misc = Misc::new();
misc.set_client_record_status(status);
misc.set_client_record_status(start);
let mut msg = Message::new();
msg.set_misc(misc);
self.send(Data::Message(msg));
self.send(Data::RecordScreen(start));
}
pub fn is_recording(&self) -> bool {
self.lc.read().unwrap().record
}
pub fn save_custom_image_quality(&self, custom_image_quality: i32) {
@@ -1557,6 +1552,7 @@ pub trait InvokeUiSession: Send + Sync + Clone + 'static + Sized + Default {
fn set_current_display(&self, disp_idx: i32);
#[cfg(feature = "flutter")]
fn is_multi_ui_session(&self) -> bool;
fn update_record_status(&self, start: bool);
}
impl<T: InvokeUiSession> Deref for Session<T> {