[cln] Restructure code

This commit is contained in:
2024-03-06 09:09:10 +05:30
parent abad89d4d0
commit 62f680e801
9 changed files with 43 additions and 36 deletions

View File

@@ -0,0 +1,36 @@
use std::sync::mpsc::Sender;
use crate::device::keyboard::{Keyboard, KeyboardEvent};
use crate::device::keyboard::KeyboardEvent::{KeyDown, KeyUp};
use crate::util::EmulatorResult;
#[derive(Debug)]
pub struct SdlKeyboardAdapter {
keyboard_event_sender: Sender<KeyboardEvent>,
}
impl SdlKeyboardAdapter {
fn new(keyboard_event_sender: Sender<KeyboardEvent>) -> SdlKeyboardAdapter {
SdlKeyboardAdapter {
keyboard_event_sender
}
}
/// Creates a paired keyboard and adapter.
pub fn new_keyboard()->(SdlKeyboardAdapter, Keyboard){
let (sender,receiver) = std::sync::mpsc::channel();
let sdl2_kb_adapter = Self::new(sender);
let device_kb = Keyboard::new(receiver);
(sdl2_kb_adapter,device_kb)
}
pub fn send_key_up(&self, keycode: u8) -> EmulatorResult<u8> {
log::trace!("Sending Key up {}",keycode);
self.keyboard_event_sender.send(KeyUp(keycode))?;
Ok(keycode)
}
pub fn send_key_down(&self, keycode: u8) -> EmulatorResult<u8> {
log::trace!("Sending Key down {}",keycode);
self.keyboard_event_sender.send(KeyDown(keycode))?;
Ok(keycode)
}
}