commit
d588f513fb
@ -1,4 +1,5 @@
|
|||||||
use enigo::{Enigo, MouseButton, MouseControllable};
|
use enigo::{Enigo, MouseButton, MouseControllable};
|
||||||
|
#[cfg(windows)]
|
||||||
use winapi::um::winuser::WHEEL_DELTA;
|
use winapi::um::winuser::WHEEL_DELTA;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
@ -26,16 +27,28 @@ fn main() {
|
|||||||
|
|
||||||
#[cfg(not(target_os = "macos"))]
|
#[cfg(not(target_os = "macos"))]
|
||||||
{
|
{
|
||||||
|
#[cfg(windows)]
|
||||||
enigo.mouse_scroll_x(2 * WHEEL_DELTA as i32);
|
enigo.mouse_scroll_x(2 * WHEEL_DELTA as i32);
|
||||||
|
#[cfg(not(windows))]
|
||||||
|
enigo.mouse_scroll_x(2);
|
||||||
thread::sleep(wait_time);
|
thread::sleep(wait_time);
|
||||||
|
|
||||||
|
#[cfg(windows)]
|
||||||
enigo.mouse_scroll_x(-2 * WHEEL_DELTA as i32);
|
enigo.mouse_scroll_x(-2 * WHEEL_DELTA as i32);
|
||||||
|
#[cfg(not(windows))]
|
||||||
|
enigo.mouse_scroll_x(-2);
|
||||||
thread::sleep(wait_time);
|
thread::sleep(wait_time);
|
||||||
|
|
||||||
|
#[cfg(windows)]
|
||||||
enigo.mouse_scroll_y(2 * WHEEL_DELTA as i32);
|
enigo.mouse_scroll_y(2 * WHEEL_DELTA as i32);
|
||||||
|
#[cfg(not(windows))]
|
||||||
|
enigo.mouse_scroll_y(2);
|
||||||
thread::sleep(wait_time);
|
thread::sleep(wait_time);
|
||||||
|
|
||||||
|
#[cfg(windows)]
|
||||||
enigo.mouse_scroll_y(-2 * WHEEL_DELTA as i32);
|
enigo.mouse_scroll_y(-2 * WHEEL_DELTA as i32);
|
||||||
|
#[cfg(not(windows))]
|
||||||
|
enigo.mouse_scroll_y(-2);
|
||||||
thread::sleep(wait_time);
|
thread::sleep(wait_time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ use crate::{
|
|||||||
common::make_fd_to_json,
|
common::make_fd_to_json,
|
||||||
flutter::{self, SESSIONS},
|
flutter::{self, SESSIONS},
|
||||||
flutter::{session_add, session_start_},
|
flutter::{session_add, session_start_},
|
||||||
server::input_service::{
|
server::{
|
||||||
MOUSE_BUTTON_BACK, MOUSE_BUTTON_FORWARD, MOUSE_BUTTON_LEFT, MOUSE_BUTTON_RIGHT,
|
MOUSE_BUTTON_BACK, MOUSE_BUTTON_FORWARD, MOUSE_BUTTON_LEFT, MOUSE_BUTTON_RIGHT,
|
||||||
MOUSE_BUTTON_WHEEL, MOUSE_TYPE_DOWN, MOUSE_TYPE_TRACKPAD, MOUSE_TYPE_UP, MOUSE_TYPE_WHEEL,
|
MOUSE_BUTTON_WHEEL, MOUSE_TYPE_DOWN, MOUSE_TYPE_TRACKPAD, MOUSE_TYPE_UP, MOUSE_TYPE_WHEEL,
|
||||||
},
|
},
|
||||||
|
@ -8,6 +8,8 @@ use std::{
|
|||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
|
|
||||||
pub use connection::*;
|
pub use connection::*;
|
||||||
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
|
use hbb_common::config::Config2;
|
||||||
use hbb_common::tcp::{self, new_listener};
|
use hbb_common::tcp::{self, new_listener};
|
||||||
use hbb_common::{
|
use hbb_common::{
|
||||||
allow_err,
|
allow_err,
|
||||||
@ -23,8 +25,6 @@ use hbb_common::{
|
|||||||
timeout, tokio, ResultType, Stream,
|
timeout, tokio, ResultType, Stream,
|
||||||
};
|
};
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
use hbb_common::{anyhow::anyhow, config::Config2};
|
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
|
||||||
use service::ServiceTmpl;
|
use service::ServiceTmpl;
|
||||||
use service::{GenericService, Service, Subscriber};
|
use service::{GenericService, Service, Subscriber};
|
||||||
|
|
||||||
@ -74,6 +74,18 @@ lazy_static::lazy_static! {
|
|||||||
pub static ref CLIENT_SERVER: ServerPtr = new();
|
pub static ref CLIENT_SERVER: ServerPtr = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub const MOUSE_TYPE_MOVE: i32 = 0;
|
||||||
|
pub const MOUSE_TYPE_DOWN: i32 = 1;
|
||||||
|
pub const MOUSE_TYPE_UP: i32 = 2;
|
||||||
|
pub const MOUSE_TYPE_WHEEL: i32 = 3;
|
||||||
|
pub const MOUSE_TYPE_TRACKPAD: i32 = 4;
|
||||||
|
|
||||||
|
pub const MOUSE_BUTTON_LEFT: i32 = 0x01;
|
||||||
|
pub const MOUSE_BUTTON_RIGHT: i32 = 0x02;
|
||||||
|
pub const MOUSE_BUTTON_WHEEL: i32 = 0x04;
|
||||||
|
pub const MOUSE_BUTTON_BACK: i32 = 0x08;
|
||||||
|
pub const MOUSE_BUTTON_FORWARD: i32 = 0x10;
|
||||||
|
|
||||||
pub struct Server {
|
pub struct Server {
|
||||||
connections: ConnMap,
|
connections: ConnMap,
|
||||||
services: HashMap<&'static str, Box<dyn Service>>,
|
services: HashMap<&'static str, Box<dyn Service>>,
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
use super::*;
|
use super::*;
|
||||||
use magnum_opus::{Application::*, Channels::*, Encoder};
|
use magnum_opus::{Application::*, Channels::*, Encoder};
|
||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
|
#[cfg(not(any(target_os = "linux", target_os = "android")))]
|
||||||
|
use hbb_common::anyhow::anyhow;
|
||||||
|
|
||||||
pub const NAME: &'static str = "audio";
|
pub const NAME: &'static str = "audio";
|
||||||
pub const AUDIO_DATA_SIZE_U8: usize = 960 * 4; // 10ms in 48000 stereo
|
pub const AUDIO_DATA_SIZE_U8: usize = 960 * 4; // 10ms in 48000 stereo
|
||||||
|
@ -17,22 +17,11 @@ use std::{
|
|||||||
thread,
|
thread,
|
||||||
time::{self, Duration, Instant},
|
time::{self, Duration, Instant},
|
||||||
};
|
};
|
||||||
|
#[cfg(windows)]
|
||||||
use winapi::um::winuser::WHEEL_DELTA;
|
use winapi::um::winuser::WHEEL_DELTA;
|
||||||
|
|
||||||
const INVALID_CURSOR_POS: i32 = i32::MIN;
|
const INVALID_CURSOR_POS: i32 = i32::MIN;
|
||||||
|
|
||||||
pub const MOUSE_TYPE_MOVE: i32 = 0;
|
|
||||||
pub const MOUSE_TYPE_DOWN: i32 = 1;
|
|
||||||
pub const MOUSE_TYPE_UP: i32 = 2;
|
|
||||||
pub const MOUSE_TYPE_WHEEL: i32 = 3;
|
|
||||||
pub const MOUSE_TYPE_TRACKPAD: i32 = 4;
|
|
||||||
|
|
||||||
pub const MOUSE_BUTTON_LEFT: i32 = 0x01;
|
|
||||||
pub const MOUSE_BUTTON_RIGHT: i32 = 0x02;
|
|
||||||
pub const MOUSE_BUTTON_WHEEL: i32 = 0x04;
|
|
||||||
pub const MOUSE_BUTTON_BACK: i32 = 0x08;
|
|
||||||
pub const MOUSE_BUTTON_FORWARD: i32 = 0x10;
|
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
struct StateCursor {
|
struct StateCursor {
|
||||||
hcursor: u64,
|
hcursor: u64,
|
||||||
|
@ -1002,12 +1002,6 @@ fn no_displays(displays: &Vec<Display>) -> bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
|
||||||
#[cfg(not(windows))]
|
|
||||||
fn no_displays(displays: &Vec<Display>) -> bool {
|
|
||||||
displays.is_empty()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(all(windows, feature = "virtual_display_driver"))]
|
#[cfg(all(windows, feature = "virtual_display_driver"))]
|
||||||
fn try_get_displays() -> ResultType<Vec<Display>> {
|
fn try_get_displays() -> ResultType<Vec<Display>> {
|
||||||
let mut displays = Display::all()?;
|
let mut displays = Display::all()?;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user