Krolyxon
Commit 2f7fd3e

rmptuisrcmain.rs

39 lines · 1.1 KB · Rust

1use ratatui::prelude::*;
2use rmptui::app::App;
3use rmptui::app::AppResult;
4use rmptui::event::event::Event;
5use rmptui::event::event::EventHandler;
6use rmptui::event::handler;
7use rmptui::tui;
8use std::env;
9use std::io;
10
11fn main() -> AppResult<()> {
12 // Connection
13 let env_host = env::var("MPD_HOST").unwrap_or_else(|_| "127.0.0.1".to_string());
14 let env_port = env::var("MPD_PORT").unwrap_or_else(|_| "6600".to_string());
15 let url = format!("{}:{}", env_host, env_port);
16 let mut app = App::builder(&url)?;
17
18 // UI
19 let backend = CrosstermBackend::new(io::stderr());
20 let terminal = Terminal::new(backend)?;
21 let events = EventHandler::new(1000);
22 let mut tui = tui::Tui::new(terminal, events);
23 tui.init()?;
24
25 // initial directory read
26 app.browser.update_directory(&mut app.conn)?;
27
28 while app.running {
29 tui.draw(&mut app)?;
30 match tui.events.next()? {
31 Event::Tick => app.tick(),
32 Event::Key(key_event) => handler::handle_key_events(key_event, &mut app)?,
33 Event::Mouse(_) => {}
34 Event::Resize(_, _) => {}
35 }
36 }
37
38 Ok(())
39}