Mercurial > tablet-emu
view src/main.rs @ 14:adab13145994
Add support for remote clients.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Mon, 02 Nov 2020 00:06:09 +0100 |
parents | 97e543f50f62 |
children | 478cf2a7d577 |
line wrap: on
line source
// Tablet emulator, for people who don’t own one // Copyright © 2020 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. #[cfg(feature = "gui")] mod gtk; mod server; mod uinput; mod state; use std::env::args; const MAX_X: i32 = 69920; const MAX_Y: i32 = 39980; const DEFAULT_WIDTH: i32 = 320; const DEFAULT_HEIGHT: i32 = 180; #[derive(Debug)] enum Ui { Gtk, Server, } fn main() { let mut args: Vec<_> = args().collect(); let ui = match if args.len() > 1 { args.remove(1) } else { String::from("gui") }.as_str() { "gui" => Ui::Gtk, "server" => Ui::Server, name => { eprintln!("Wrong UI “{}”, expected gui or server.", name); std::process::exit(2); } }; match ui { #[cfg(feature = "gui")] Ui::Gtk => gtk::main(&args), #[cfg(not(feature = "gui"))] Ui::Gtk => panic!("tablet-emu has been compiled without GUI support."), Ui::Server => server::main(&args), } }