success
parent
37e268a47f
commit
d9bf3e5c90
|
|
@ -26,12 +26,27 @@ pub struct Engine {
|
||||||
pub kafka: Option<Kafka>,
|
pub kafka: Option<Kafka>,
|
||||||
pub device: Option<Device>,
|
pub device: Option<Device>,
|
||||||
pub udp: Option<UDP>,
|
pub udp: Option<UDP>,
|
||||||
|
pub gui: Option<GUI>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug)]
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
pub struct Device {
|
pub struct Device {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
|
pub struct GUI {
|
||||||
|
pub up: String,
|
||||||
|
pub down: String,
|
||||||
|
pub left: String,
|
||||||
|
pub right: String,
|
||||||
|
pub a: String,
|
||||||
|
pub b: String,
|
||||||
|
pub x: String,
|
||||||
|
pub y: String,
|
||||||
|
pub l: String,
|
||||||
|
pub r: String,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug)]
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
pub struct Kafka {
|
pub struct Kafka {
|
||||||
pub addr: String,
|
pub addr: String,
|
||||||
|
|
@ -75,6 +90,18 @@ fn build_config_std() -> Config {
|
||||||
engine: Engine{
|
engine: Engine{
|
||||||
name: env::var("INPUT_NAME").unwrap_or(String::from("stdin")),
|
name: env::var("INPUT_NAME").unwrap_or(String::from("stdin")),
|
||||||
kafka: None,
|
kafka: None,
|
||||||
|
gui: Some(GUI{
|
||||||
|
up: env::var("INPUT_GUI_BUTTON_UP").unwrap_or(String::from("up")),
|
||||||
|
down: env::var("INPUT_GUI_BUTTON_DOWN").unwrap_or(String::from("down")),
|
||||||
|
left: env::var("INPUT_GUI_BUTTON_LEFT").unwrap_or(String::from("left")),
|
||||||
|
right: env::var("INPUT_GUI_BUTTON_RIGHT").unwrap_or(String::from("right")),
|
||||||
|
a: env::var("INPUT_GUI_BUTTON_A").unwrap_or(String::from("a")),
|
||||||
|
b: env::var("INPUT_GUI_BUTTON_B").unwrap_or(String::from("b")),
|
||||||
|
x: env::var("INPUT_GUI_BUTTON_X").unwrap_or(String::from("x")),
|
||||||
|
y: env::var("INPUT_GUI_BUTTON_Y").unwrap_or(String::from("y")),
|
||||||
|
l: env::var("INPUT_GUI_BUTTON_L").unwrap_or(String::from("l")),
|
||||||
|
r: env::var("INPUT_GUI_BUTTON_R").unwrap_or(String::from("r")),
|
||||||
|
}),
|
||||||
device: None,
|
device: None,
|
||||||
udp: Some(UDP{
|
udp: Some(UDP{
|
||||||
host: Some(env::var("INPUT_UDP_HOST").unwrap_or(String::from("localhost"))),
|
host: Some(env::var("INPUT_UDP_HOST").unwrap_or(String::from("localhost"))),
|
||||||
|
|
@ -90,6 +117,7 @@ fn build_config_std() -> Config {
|
||||||
engine: Engine{
|
engine: Engine{
|
||||||
name: env::var("OUTPUT_NAME").unwrap_or(String::from("stdout")),
|
name: env::var("OUTPUT_NAME").unwrap_or(String::from("stdout")),
|
||||||
kafka: None,
|
kafka: None,
|
||||||
|
gui: None,
|
||||||
device: None,
|
device: None,
|
||||||
udp: Some(UDP{
|
udp: Some(UDP{
|
||||||
host: Some(env::var("OUTPUT_UDP_HOST").unwrap_or(String::from("localhost"))),
|
host: Some(env::var("OUTPUT_UDP_HOST").unwrap_or(String::from("localhost"))),
|
||||||
|
|
|
||||||
28
src/gui.rs
28
src/gui.rs
|
|
@ -6,12 +6,14 @@ use iced::subscription;
|
||||||
use iced::{Alignment, Element, Application, Settings, Subscription, Theme, Command};
|
use iced::{Alignment, Element, Application, Settings, Subscription, Theme, Command};
|
||||||
|
|
||||||
use crate::stream::OutputStream;
|
use crate::stream::OutputStream;
|
||||||
|
use crate::config::GUI;
|
||||||
|
|
||||||
pub fn main(output_stream: Box<dyn OutputStream>) -> iced::Result {
|
pub fn main(cfg: GUI, output_stream: Box<dyn OutputStream>) -> iced::Result {
|
||||||
let def: iced::Settings<()> = Settings::default();
|
let def: iced::Settings<()> = Settings::default();
|
||||||
let settings = Settings{
|
let settings = Settings{
|
||||||
flags: Flags {
|
flags: Flags {
|
||||||
output_stream: output_stream,
|
output_stream: output_stream,
|
||||||
|
cfg: cfg,
|
||||||
},
|
},
|
||||||
antialiasing: def.antialiasing,
|
antialiasing: def.antialiasing,
|
||||||
default_font: def.default_font,
|
default_font: def.default_font,
|
||||||
|
|
@ -34,6 +36,7 @@ struct Main {
|
||||||
|
|
||||||
struct Flags {
|
struct Flags {
|
||||||
output_stream: Box<dyn OutputStream>,
|
output_stream: Box<dyn OutputStream>,
|
||||||
|
cfg: GUI,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Inputs {
|
struct Inputs {
|
||||||
|
|
@ -139,18 +142,19 @@ impl Application for Main {
|
||||||
modifiers: _,
|
modifiers: _,
|
||||||
..
|
..
|
||||||
}) => {
|
}) => {
|
||||||
|
let nope = String::from("");
|
||||||
let s = match key_code {
|
let s = match key_code {
|
||||||
_ if key_code == self.inputs.stick.up => String::from("up"),
|
_ if key_code == self.inputs.stick.up => &self.flags.cfg.up,
|
||||||
_ if key_code == self.inputs.stick.down => String::from("down"),
|
_ if key_code == self.inputs.stick.down => &self.flags.cfg.down,
|
||||||
_ if key_code == self.inputs.stick.left => String::from("left"),
|
_ if key_code == self.inputs.stick.left => &self.flags.cfg.left,
|
||||||
_ if key_code == self.inputs.stick.right => String::from("right"),
|
_ if key_code == self.inputs.stick.right => &self.flags.cfg.right,
|
||||||
_ if key_code == self.inputs.a => String::from("a"),
|
_ if key_code == self.inputs.a => &self.flags.cfg.a,
|
||||||
_ if key_code == self.inputs.b => String::from("b"),
|
_ if key_code == self.inputs.b => &self.flags.cfg.b,
|
||||||
_ if key_code == self.inputs.x => String::from("x"),
|
_ if key_code == self.inputs.x => &self.flags.cfg.x,
|
||||||
_ if key_code == self.inputs.y => String::from("y"),
|
_ if key_code == self.inputs.y => &self.flags.cfg.y,
|
||||||
_ if key_code == self.inputs.l => String::from("l"),
|
_ if key_code == self.inputs.l => &self.flags.cfg.l,
|
||||||
_ if key_code == self.inputs.r => String::from("r"),
|
_ if key_code == self.inputs.r => &self.flags.cfg.r,
|
||||||
_ => String::from(""),
|
_ => &nope,
|
||||||
};
|
};
|
||||||
if s.len() > 0 {
|
if s.len() > 0 {
|
||||||
self.flags.output_stream.put(s.chars().collect());
|
self.flags.output_stream.put(s.chars().collect());
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ fn main() {
|
||||||
let cfg = config::build_config().unwrap();
|
let cfg = config::build_config().unwrap();
|
||||||
if cfg.streams.input.engine.name == "gui" {
|
if cfg.streams.input.engine.name == "gui" {
|
||||||
let output_stream = stream::build_output_stream(&cfg.streams.output);
|
let output_stream = stream::build_output_stream(&cfg.streams.output);
|
||||||
gui::main(output_stream).unwrap();
|
gui::main(cfg.streams.input.engine.gui.unwrap(), output_stream).unwrap();
|
||||||
} else {
|
} else {
|
||||||
main_cli(cfg);
|
main_cli(cfg);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue