#![allow(unused)]
struct VirtualTouchScreen {
pub filename: String,
queue: Vec<String>,
}
impl VirtualTouchScreen {
fn new() -> VirtualTouchScreen {
VirtualTouchScreen {
filename: "/dev/virtual_touchscreen".to_string(),
queue: Vec::new(),
}
}
fn new_with_path(path: String) -> VirtualTouchScreen {
VirtualTouchScreen {
filename: path,
queue: Vec::new(),
}
}
fn clear_queue(&mut self) {
self.queue.clear();
}
fn pop_queue(&mut self) {
self.queue.pop();
}
fn submit_queue(&mut self) {
let mut full_command = String::new();
for s in self.queue.clone() {
full_command += &s;
}
use std::fs;
use std::io::prelude::*;
fs::write(&self.filename, full_command).expect("Unable to write to module entrypoint.");
self.clear_queue();
}
fn set_pointer(&mut self, pointer: u32) {
self.queue.push(format!("s {}\na {}\n", pointer, pointer));
}
fn set_position(&mut self, x: u32, y: u32) {
self.set_x(x);
self.set_y(y);
}
fn set_x(&mut self, x: u32) {
self.queue.push(format!("X {}\nx {}\n", x, x));
}
fn set_y(&mut self, y: u32) {
self.queue.push(format!("Y {}\ny {}\n", y, y));
}
}