From 839d3365f8f59e202b0845a0f56b700408a6f239 Mon Sep 17 00:00:00 2001 From: fufesou Date: Tue, 14 Nov 2023 22:29:12 +0800 Subject: [PATCH] fix, build ios Signed-off-by: fufesou --- src/ipc.rs | 9 +-------- src/privacy_mode.rs | 11 ++++++++++- src/privacy_mode/win_input.rs | 2 +- src/privacy_mode/win_mag.rs | 2 +- src/server/connection.rs | 6 +++--- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/ipc.rs b/src/ipc.rs index 02f0e2dc5..8b496dd9b 100644 --- a/src/ipc.rs +++ b/src/ipc.rs @@ -5,6 +5,7 @@ use std::{ #[cfg(not(windows))] use std::{fs::File, io::prelude::*}; +use crate::privacy_mode::PrivacyModeState; use bytes::Bytes; use parity_tokio_ipc::{ Connection as Conn, ConnectionClient as ConnClient, Endpoint, Incoming, SecurityAttributes, @@ -30,14 +31,6 @@ use hbb_common::{ use crate::{common::is_server, privacy_mode, rendezvous_mediator::RendezvousMediator}; -// State with timestamp, because std::time::Instant cannot be serialized -#[derive(Debug, Serialize, Deserialize, Clone)] -#[serde(tag = "t", content = "c")] -pub enum PrivacyModeState { - OffSucceeded, - OffByPeer, - OffUnknown, -} // IPC actions here. pub const IPC_ACTION_CLOSE: &str = "close"; pub static EXIT_RECV_CLOSE: AtomicBool = AtomicBool::new(true); diff --git a/src/privacy_mode.rs b/src/privacy_mode.rs index 105367cc4..e8ec1fb53 100644 --- a/src/privacy_mode.rs +++ b/src/privacy_mode.rs @@ -1,14 +1,15 @@ #[cfg(all(windows, feature = "virtual_display_driver"))] use crate::platform::is_installed; +use crate::ui_interface::get_option; #[cfg(windows)] use crate::{ display_service, ipc::{connect, Data}, }; -use crate::{ipc::PrivacyModeState, ui_interface::get_option}; #[cfg(windows)] use hbb_common::tokio; use hbb_common::{anyhow::anyhow, bail, lazy_static, ResultType}; +use serde_derive::{Deserialize, Serialize}; use std::{ collections::HashMap, sync::{Arc, Mutex}, @@ -37,6 +38,14 @@ pub const PRIVACY_MODE_IMPL_WIN_MAG: &str = win_mag::PRIVACY_MODE_IMPL; #[cfg(all(windows, feature = "virtual_display_driver"))] pub const PRIVACY_MODE_IMPL_WIN_VIRTUAL_DISPLAY: &str = win_virtual_display::PRIVACY_MODE_IMPL; +#[derive(Debug, Serialize, Deserialize, Clone)] +#[serde(tag = "t", content = "c")] +pub enum PrivacyModeState { + OffSucceeded, + OffByPeer, + OffUnknown, +} + pub trait PrivacyMode: Sync + Send { fn init(&self) -> ResultType<()>; fn clear(&mut self); diff --git a/src/privacy_mode/win_input.rs b/src/privacy_mode/win_input.rs index 1332ab75e..486f3b5e4 100644 --- a/src/privacy_mode/win_input.rs +++ b/src/privacy_mode/win_input.rs @@ -207,7 +207,7 @@ pub extern "system" fn privacy_mode_hook_keyboard( // Ctrl + P is pressed, turn off privacy mode if let Some(Err(e)) = super::turn_off_privacy( super::INVALID_PRIVACY_MODE_CONN_ID, - Some(crate::ipc::PrivacyModeState::OffByPeer), + Some(super::PrivacyModeState::OffByPeer), ) { log::error!("Failed to off_privacy {}", e); } diff --git a/src/privacy_mode/win_mag.rs b/src/privacy_mode/win_mag.rs index 321894462..1df92a32d 100644 --- a/src/privacy_mode/win_mag.rs +++ b/src/privacy_mode/win_mag.rs @@ -1,5 +1,5 @@ use super::{PrivacyMode, INVALID_PRIVACY_MODE_CONN_ID}; -use crate::{ipc::PrivacyModeState, platform::windows::get_user_token}; +use crate::{platform::windows::get_user_token, privacy_mode::PrivacyModeState}; use hbb_common::{allow_err, bail, log, ResultType}; use std::{ ffi::CString, diff --git a/src/server/connection.rs b/src/server/connection.rs index 10e59701e..19b30559d 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -507,21 +507,21 @@ impl Connection { } ipc::Data::PrivacyModeState((_, state, impl_key)) => { let msg_out = match state { - ipc::PrivacyModeState::OffSucceeded => { + privacy_mode::PrivacyModeState::OffSucceeded => { video_service::set_privacy_mode_conn_id(0); crate::common::make_privacy_mode_msg( back_notification::PrivacyModeState::PrvOffSucceeded, impl_key, ) } - ipc::PrivacyModeState::OffByPeer => { + privacy_mode::PrivacyModeState::OffByPeer => { video_service::set_privacy_mode_conn_id(0); crate::common::make_privacy_mode_msg( back_notification::PrivacyModeState::PrvOffByPeer, impl_key, ) } - ipc::PrivacyModeState::OffUnknown => { + privacy_mode::PrivacyModeState::OffUnknown => { video_service::set_privacy_mode_conn_id(0); crate::common::make_privacy_mode_msg( back_notification::PrivacyModeState::PrvOffUnknown,