Mercurial > tablet-emu
diff src/bin/server.rs @ 18:3f7b7a3ad8fe
Build three binaries instead of using arguments.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Thu, 26 Aug 2021 22:15:55 +0200 |
parents | src/server.rs@0bce7fe96937 |
children | ba09079686a0 |
line wrap: on
line diff
copy from src/server.rs copy to src/bin/server.rs --- a/src/server.rs +++ b/src/bin/server.rs @@ -14,58 +14,11 @@ // 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/>. -use crate::state::State; -use bitflags::bitflags; use input_linux::Key; use std::io::{self, ErrorKind}; use std::net::UdpSocket; - -bitflags! { - /// This is the memory layout of the buttons on the 3DS. - #[derive(Default)] - pub struct Buttons: u32 { - const A = 0x00000001; - const B = 0x00000002; - const SELECT = 0x00000004; - const START = 0x00000008; - const RIGHT = 0x00000010; - const LEFT = 0x00000020; - const UP = 0x00000040; - const DOWN = 0x00000080; - const R = 0x00000100; - const L = 0x00000200; - const X = 0x00000400; - const Y = 0x00000800; - // Nothing - // Nothing - const ZL = 0x00004000; - const ZR = 0x00008000; - const RESIZE = 0x00010000; // Not an actual 3DS button! - // Nothing - // Nothing - // Nothing - const TOUCH = 0x00100000; - // Nothing - // Nothing - // Nothing - const C_RIGHT = 0x01000000; - const C_LEFT = 0x02000000; - const C_UP = 0x04000000; - const C_DOWN = 0x08000000; - const CIRCLE_RIGHT = 0x10000000; - const CIRCLE_LEFT = 0x20000000; - const CIRCLE_UP = 0x40000000; - const CIRCLE_DOWN = 0x80000000; - } -} - -#[derive(Debug, Default)] -pub struct Event { - pub buttons: Buttons, - pad: (i16, i16), - c_pad: (i16, i16), - pub touch: (u16, u16), -} +use tablet_emu::protocol::{Buttons, Event}; +use tablet_emu::state::State; pub fn run_server(address: &str) -> io::Result<()> { let mut state = match State::new() { @@ -113,7 +66,10 @@ pub fn run_server(address: &str) -> io:: } else if event.buttons.contains(Buttons::SELECT) { state.select_tool(Key::ButtonToolAirbrush); } else if event.buttons.contains(Buttons::RESIZE) { - println!("set_size({}, {})", event.touch.0 as i32, event.touch.1 as i32); + println!( + "set_size({}, {})", + event.touch.0 as i32, event.touch.1 as i32 + ); state.set_size(event.touch.0 as i32, event.touch.1 as i32); } let (x, y) = event.touch; @@ -135,7 +91,8 @@ pub fn run_server(address: &str) -> io:: } } -pub fn main(args: &[String]) { +pub fn main() { + let args: Vec<_> = std::env::args().collect(); let address = if args.len() > 1 { args[1].clone() } else {