commit
						d65977bd59
					
				| @ -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); | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
| @ -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); | ||||
|                         } | ||||
|  | ||||
| @ -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, | ||||
|  | ||||
| @ -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, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user