gui_server_api/msg/
simulator.rs1use server::{AsScalar, FromScalar, SimpleMemoryMessage};
5use xous::MemoryRange;
6
7#[derive(Debug, server::Message)]
8#[response(())]
9pub struct GetDeviceFrame(pub MemoryRange);
10
11impl From<SimpleMemoryMessage> for GetDeviceFrame {
12 fn from(value: SimpleMemoryMessage) -> Self { Self(value.buf) }
13}
14
15impl From<GetDeviceFrame> for SimpleMemoryMessage {
16 fn from(val: GetDeviceFrame) -> Self { SimpleMemoryMessage { buf: val.0, arg1: 0, arg2: 0 } }
17}
18
19#[derive(Debug, server::Message)]
20pub struct SetScaleFactor(pub usize);
21
22#[derive(Debug, server::Message)]
23pub struct SimulatePowerButton(pub bool);
24
25#[derive(Debug, server::Message)]
26pub struct SimulateKey {
27 pub key: crate::Key,
28 pub is_pressed: bool,
29}
30
31impl FromScalar<4> for SimulateKey {
32 fn from_scalar([k1, k2, is_pressed, _]: [u32; 4]) -> Self {
33 Self { key: crate::Key::from_scalar([k1, k2]), is_pressed: is_pressed != 0 }
34 }
35}
36
37impl AsScalar<4> for SimulateKey {
38 fn as_scalar(&self) -> [u32; 4] {
39 let [k1, k2] = self.key.as_scalar();
40 [k1, k2, self.is_pressed as u32, 0]
41 }
42}
43
44#[derive(Debug, server::Message)]
47pub struct SimulateScroll {
48 pub x: u32,
49 pub y: u32,
50 pub delta_x: f32,
51 pub delta_y: f32,
52}
53
54impl FromScalar<4> for SimulateScroll {
55 fn from_scalar([x, y, dx, dy]: [u32; 4]) -> Self {
56 Self { x, y, delta_x: f32::from_bits(dx), delta_y: f32::from_bits(dy) }
57 }
58}
59
60impl AsScalar<4> for SimulateScroll {
61 fn as_scalar(&self) -> [u32; 4] { [self.x, self.y, self.delta_x.to_bits(), self.delta_y.to_bits()] }
62}