mirror of
https://github.com/weyne85/rustdesk.git
synced 2025-10-29 17:00:05 +00:00
remove many unwrap and enum_value_or_default
Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
@@ -13,10 +13,10 @@
|
||||
// https://github.com/krruzic/pulsectl
|
||||
|
||||
use super::*;
|
||||
use magnum_opus::{Application::*, Channels::*, Encoder};
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
#[cfg(not(any(target_os = "linux", target_os = "android")))]
|
||||
use hbb_common::anyhow::anyhow;
|
||||
use magnum_opus::{Application::*, Channels::*, Encoder};
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
|
||||
pub const NAME: &'static str = "audio";
|
||||
pub const AUDIO_DATA_SIZE_U8: usize = 960 * 4; // 10ms in 48000 stereo
|
||||
@@ -206,13 +206,10 @@ mod cpal_impl {
|
||||
}
|
||||
}
|
||||
}
|
||||
if device.is_none() {
|
||||
device = Some(
|
||||
HOST.default_input_device()
|
||||
.with_context(|| "Failed to get default input device for loopback")?,
|
||||
);
|
||||
}
|
||||
let device = device.unwrap();
|
||||
let device = device.unwrap_or(
|
||||
HOST.default_input_device()
|
||||
.with_context(|| "Failed to get default input device for loopback")?,
|
||||
);
|
||||
log::info!("Input device: {}", device.name().unwrap_or("".to_owned()));
|
||||
let format = device
|
||||
.default_input_config()
|
||||
|
||||
@@ -665,11 +665,11 @@ impl Connection {
|
||||
}
|
||||
MessageInput::Key((mut msg, press)) => {
|
||||
// todo: press and down have similar meanings.
|
||||
if press && msg.mode.unwrap() == KeyboardMode::Legacy {
|
||||
if press && msg.mode.enum_value() == Ok(KeyboardMode::Legacy) {
|
||||
msg.down = true;
|
||||
}
|
||||
handle_key(&msg);
|
||||
if press && msg.mode.unwrap() == KeyboardMode::Legacy {
|
||||
if press && msg.mode.enum_value() == Ok(KeyboardMode::Legacy) {
|
||||
msg.down = false;
|
||||
handle_key(&msg);
|
||||
}
|
||||
@@ -1621,11 +1621,11 @@ impl Connection {
|
||||
me.press
|
||||
};
|
||||
|
||||
let key = match me.mode.enum_value_or_default() {
|
||||
KeyboardMode::Map => {
|
||||
let key = match me.mode.enum_value() {
|
||||
Ok(KeyboardMode::Map) => {
|
||||
Some(crate::keyboard::keycode_to_rdev_key(me.chr()))
|
||||
}
|
||||
KeyboardMode::Translate => {
|
||||
Ok(KeyboardMode::Translate) => {
|
||||
if let Some(key_event::Union::Chr(code)) = me.union {
|
||||
Some(crate::keyboard::keycode_to_rdev_key(code & 0x0000FFFF))
|
||||
} else {
|
||||
@@ -1908,11 +1908,9 @@ impl Connection {
|
||||
// Drop the audio sender previously.
|
||||
drop(std::mem::replace(&mut self.audio_sender, None));
|
||||
self.audio_sender = Some(start_audio_thread());
|
||||
allow_err!(self
|
||||
.audio_sender
|
||||
self.audio_sender
|
||||
.as_ref()
|
||||
.unwrap()
|
||||
.send(MediaData::AudioFormat(format)));
|
||||
.map(|a| allow_err!(a.send(MediaData::AudioFormat(format))));
|
||||
}
|
||||
}
|
||||
#[cfg(feature = "flutter")]
|
||||
@@ -2341,6 +2339,8 @@ async fn start_ipc(
|
||||
mut _rx_desktop_ready: mpsc::Receiver<()>,
|
||||
tx_stream_ready: mpsc::Sender<()>,
|
||||
) -> ResultType<()> {
|
||||
use hbb_common::anyhow::anyhow;
|
||||
|
||||
loop {
|
||||
if !crate::platform::is_prelogin() {
|
||||
break;
|
||||
@@ -2434,7 +2434,7 @@ async fn start_ipc(
|
||||
}
|
||||
|
||||
let _res = tx_stream_ready.send(()).await;
|
||||
let mut stream = stream.unwrap();
|
||||
let mut stream = stream.ok_or(anyhow!("none stream"))?;
|
||||
loop {
|
||||
tokio::select! {
|
||||
res = stream.next() => {
|
||||
|
||||
@@ -1497,11 +1497,11 @@ pub fn handle_key_(evt: &KeyEvent) {
|
||||
_ => {}
|
||||
};
|
||||
|
||||
match evt.mode.unwrap() {
|
||||
KeyboardMode::Map => {
|
||||
match evt.mode.enum_value() {
|
||||
Ok(KeyboardMode::Map) => {
|
||||
map_keyboard_mode(evt);
|
||||
}
|
||||
KeyboardMode::Translate => {
|
||||
Ok(KeyboardMode::Translate) => {
|
||||
translate_keyboard_mode(evt);
|
||||
}
|
||||
_ => {
|
||||
|
||||
@@ -231,7 +231,13 @@ pub mod server {
|
||||
}
|
||||
|
||||
pub fn run_portable_service() {
|
||||
let shmem = Arc::new(SharedMemory::open_existing(SHMEM_NAME).unwrap());
|
||||
let shmem = match SharedMemory::open_existing(SHMEM_NAME) {
|
||||
Ok(shmem) => Arc::new(shmem),
|
||||
Err(e) => {
|
||||
log::error!("Failed to open existing shared memory: {:?}", e);
|
||||
return;
|
||||
}
|
||||
};
|
||||
let shmem1 = shmem.clone();
|
||||
let shmem2 = shmem.clone();
|
||||
let mut threads = vec![];
|
||||
@@ -249,7 +255,7 @@ pub mod server {
|
||||
}));
|
||||
let record_pos_handle = crate::input_service::try_start_record_cursor_pos();
|
||||
for th in threads.drain(..) {
|
||||
th.join().unwrap();
|
||||
th.join().ok();
|
||||
log::info!("thread joined");
|
||||
}
|
||||
|
||||
@@ -319,7 +325,11 @@ pub mod server {
|
||||
}
|
||||
if c.is_none() {
|
||||
*crate::video_service::CURRENT_DISPLAY.lock().unwrap() = current_display;
|
||||
let (_, _current, display) = get_current_display().unwrap();
|
||||
let Ok((_, _current, display)) = get_current_display() else {
|
||||
log::error!("Failed to get current display");
|
||||
*EXIT.lock().unwrap() = true;
|
||||
return;
|
||||
};
|
||||
display_width = display.width();
|
||||
display_height = display.height();
|
||||
match Capturer::new(display, use_yuv) {
|
||||
@@ -380,8 +390,8 @@ pub mod server {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
match c.as_mut().unwrap().frame(spf) {
|
||||
Ok(f) => {
|
||||
match c.as_mut().map(|f| f.frame(spf)) {
|
||||
Some(Ok(f)) => {
|
||||
utils::set_frame_info(
|
||||
&shmem,
|
||||
FrameInfo {
|
||||
@@ -396,7 +406,7 @@ pub mod server {
|
||||
first_frame_captured = true;
|
||||
dxgi_failed_times = 0;
|
||||
}
|
||||
Err(e) => {
|
||||
Some(Err(e)) => {
|
||||
if e.kind() != std::io::ErrorKind::WouldBlock {
|
||||
// DXGI_ERROR_INVALID_CALL after each success on Microsoft GPU driver
|
||||
// log::error!("capture frame failed:{:?}", e);
|
||||
@@ -406,7 +416,8 @@ pub mod server {
|
||||
std::thread::sleep(spf);
|
||||
continue;
|
||||
}
|
||||
if !c.as_ref().unwrap().is_gdi() {
|
||||
if c.as_ref().map(|c| c.is_gdi()) == Some(false) {
|
||||
// nog gdi
|
||||
dxgi_failed_times += 1;
|
||||
}
|
||||
if dxgi_failed_times > MAX_DXGI_FAIL_TIME {
|
||||
@@ -418,6 +429,9 @@ pub mod server {
|
||||
shmem.write(ADDR_CAPTURE_WOULDBLOCK, &utils::i32_to_vec(TRUE));
|
||||
}
|
||||
}
|
||||
_ => {
|
||||
println!("unreachable!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ pub fn capture_cursor_embedded() -> bool {
|
||||
|
||||
#[inline]
|
||||
pub fn notify_video_frame_fetched(conn_id: i32, frame_tm: Option<Instant>) {
|
||||
FRAME_FETCHED_NOTIFIER.0.send((conn_id, frame_tm)).unwrap()
|
||||
FRAME_FETCHED_NOTIFIER.0.send((conn_id, frame_tm)).ok();
|
||||
}
|
||||
|
||||
#[inline]
|
||||
|
||||
Reference in New Issue
Block a user