Convert keycode to RdevKey

This commit is contained in:
Asura
2022-08-26 18:29:46 -07:00
parent b38c3299d8
commit ee19a03ecc
8 changed files with 147 additions and 76 deletions

View File

@@ -1649,7 +1649,7 @@ pub enum Data {
}
/// Keycode for key events.
#[derive(Clone)]
#[derive(Clone, Debug)]
pub enum Key {
ControlKey(ControlKey),
Chr(u32),

View File

@@ -373,6 +373,16 @@ impl Session {
}
}
pub fn input_raw_key(&self, keycode: i32, scancode: i32, down: bool){
use rdev::{EventType::*, Key as RdevKey, *};
if scancode < 0 || keycode < 0{
return;
}
let key = rdev::key_from_scancode(scancode.try_into().unwrap()) as RdevKey;
log::info!("{:?}", key);
}
/// Input a string of text.
/// String is parsed into individual key presses.
///

View File

@@ -208,6 +208,12 @@ pub fn session_switch_display(id: String, value: i32) {
}
}
pub fn session_input_raw_key(id: String, keycode: i32, scancode:i32, down: bool){
if let Some(session) = SESSIONS.read().unwrap().get(&id) {
session.input_raw_key(keycode, scancode, down);
}
}
pub fn session_input_key(
id: String,
name: String,

View File

@@ -1,5 +1,5 @@
use crate::ipc::{self, new_listener, Connection, Data};
#[cfg(windows)]
#[cfg(target_os = "linux")]
use crate::ipc::{start_pa};
#[cfg(windows)]
use crate::ipc::start_clipboard_file;