fix build linux
Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
parent
c4f09b5598
commit
a32e740242
@ -1,4 +1,4 @@
|
|||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(windows)]
|
||||||
use crate::client::translate;
|
use crate::client::translate;
|
||||||
#[cfg(not(debug_assertions))]
|
#[cfg(not(debug_assertions))]
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
|
@ -151,7 +151,7 @@ fn displays_to_msg(displays: Vec<DisplayInfo>) -> Message {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn check_get_displays_changed_msg() -> Option<Message> {
|
fn check_get_displays_changed_msg() -> Option<Message> {
|
||||||
check_update_displays(try_get_displays().ok()?);
|
check_update_displays(&try_get_displays().ok()?);
|
||||||
let displays = SYNC_DISPLAYS.lock().unwrap().get_update_sync_displays()?;
|
let displays = SYNC_DISPLAYS.lock().unwrap().get_update_sync_displays()?;
|
||||||
Some(displays_to_msg(displays))
|
Some(displays_to_msg(displays))
|
||||||
}
|
}
|
||||||
@ -225,9 +225,14 @@ pub(super) fn get_original_resolution(
|
|||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "linux")]
|
||||||
|
pub(super) fn get_sync_displays() -> Vec<DisplayInfo> {
|
||||||
|
SYNC_DISPLAYS.lock().unwrap().displays.clone()
|
||||||
|
}
|
||||||
|
|
||||||
// Display to DisplayInfo
|
// Display to DisplayInfo
|
||||||
// The DisplayInfo is be sent to the peer.
|
// The DisplayInfo is be sent to the peer.
|
||||||
fn check_update_displays(all: Vec<Display>) {
|
pub(super) fn check_update_displays(all: &Vec<Display>) {
|
||||||
let displays = all
|
let displays = all
|
||||||
.iter()
|
.iter()
|
||||||
.map(|d| {
|
.map(|d| {
|
||||||
@ -264,7 +269,7 @@ pub async fn update_get_sync_displays() -> ResultType<Vec<DisplayInfo>> {
|
|||||||
return super::wayland::get_displays().await;
|
return super::wayland::get_displays().await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
check_update_displays(try_get_displays()?);
|
check_update_displays(&try_get_displays()?);
|
||||||
Ok(SYNC_DISPLAYS.lock().unwrap().displays.clone())
|
Ok(SYNC_DISPLAYS.lock().unwrap().displays.clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -407,7 +407,7 @@ fn run(vs: VideoService) -> ResultType<()> {
|
|||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
super::wayland::ensure_inited()?;
|
super::wayland::ensure_inited()?;
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
let wayland_call_on_ret = SimpleCallOnReturn {
|
let _wayland_call_on_ret = SimpleCallOnReturn {
|
||||||
b: true,
|
b: true,
|
||||||
f: Box::new(|| {
|
f: Box::new(|| {
|
||||||
super::wayland::clear();
|
super::wayland::clear();
|
||||||
|
@ -84,7 +84,6 @@ impl TraitCapturer for CapturerPtr {
|
|||||||
struct CapDisplayInfo {
|
struct CapDisplayInfo {
|
||||||
rects: Vec<((i32, i32), usize, usize)>,
|
rects: Vec<((i32, i32), usize, usize)>,
|
||||||
displays: Vec<DisplayInfo>,
|
displays: Vec<DisplayInfo>,
|
||||||
num: usize,
|
|
||||||
primary: usize,
|
primary: usize,
|
||||||
current: usize,
|
current: usize,
|
||||||
capturer: CapturerPtr,
|
capturer: CapturerPtr,
|
||||||
@ -146,7 +145,8 @@ pub(super) async fn check_init() -> ResultType<()> {
|
|||||||
let num = all.len();
|
let num = all.len();
|
||||||
let primary = super::display_service::get_primary_2(&all);
|
let primary = super::display_service::get_primary_2(&all);
|
||||||
let current = primary;
|
let current = primary;
|
||||||
let mut displays = super::display_service::to_display_info(&all);
|
super::display_service::check_update_displays(&all);
|
||||||
|
let mut displays = super::display_service::get_sync_displays();
|
||||||
for display in displays.iter_mut() {
|
for display in displays.iter_mut() {
|
||||||
display.cursor_embedded = is_cursor_embedded();
|
display.cursor_embedded = is_cursor_embedded();
|
||||||
}
|
}
|
||||||
@ -173,10 +173,13 @@ pub(super) async fn check_init() -> ResultType<()> {
|
|||||||
Some(result) if !result.is_empty() => {
|
Some(result) if !result.is_empty() => {
|
||||||
let resolution: Vec<&str> = result.split(" ").collect();
|
let resolution: Vec<&str> = result.split(" ").collect();
|
||||||
let w: i32 = resolution[0].parse().unwrap_or(origin.0 + width as i32);
|
let w: i32 = resolution[0].parse().unwrap_or(origin.0 + width as i32);
|
||||||
let h: i32 = resolution[2].trim_end_matches(",").parse().unwrap_or(origin.1 + height as i32);
|
let h: i32 = resolution[2]
|
||||||
|
.trim_end_matches(",")
|
||||||
|
.parse()
|
||||||
|
.unwrap_or(origin.1 + height as i32);
|
||||||
(w, h)
|
(w, h)
|
||||||
}
|
}
|
||||||
_ => (origin.0 + width as i32, origin.1 + height as i32)
|
_ => (origin.0 + width as i32, origin.1 + height as i32),
|
||||||
};
|
};
|
||||||
|
|
||||||
minx = 0;
|
minx = 0;
|
||||||
@ -191,7 +194,6 @@ pub(super) async fn check_init() -> ResultType<()> {
|
|||||||
let cap_display_info = Box::into_raw(Box::new(CapDisplayInfo {
|
let cap_display_info = Box::into_raw(Box::new(CapDisplayInfo {
|
||||||
rects,
|
rects,
|
||||||
displays,
|
displays,
|
||||||
num,
|
|
||||||
primary,
|
primary,
|
||||||
current,
|
current,
|
||||||
capturer,
|
capturer,
|
||||||
@ -273,7 +275,6 @@ pub(super) fn get_capturer() -> ResultType<super::video_service::CapturerInfo> {
|
|||||||
origin: rect.0,
|
origin: rect.0,
|
||||||
width: rect.1,
|
width: rect.1,
|
||||||
height: rect.2,
|
height: rect.2,
|
||||||
ndisplay: cap_display_info.num,
|
|
||||||
current: cap_display_info.current,
|
current: cap_display_info.current,
|
||||||
privacy_mode_id: 0,
|
privacy_mode_id: 0,
|
||||||
_capturer_privacy_mode_id: 0,
|
_capturer_privacy_mode_id: 0,
|
||||||
|
15
src/tray.rs
15
src/tray.rs
@ -1,9 +1,12 @@
|
|||||||
use crate::{client::translate, ipc::Data};
|
use crate::client::translate;
|
||||||
use hbb_common::{allow_err, log, tokio};
|
#[cfg(windows)]
|
||||||
use std::{
|
use crate::ipc::Data;
|
||||||
sync::{Arc, Mutex},
|
#[cfg(windows)]
|
||||||
time::Duration,
|
use hbb_common::tokio;
|
||||||
};
|
use hbb_common::{allow_err, log};
|
||||||
|
use std::sync::{Arc, Mutex};
|
||||||
|
#[cfg(windows)]
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
pub fn start_tray() {
|
pub fn start_tray() {
|
||||||
allow_err!(make_tray());
|
allow_err!(make_tray());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user