diff options
Diffstat (limited to 'src/main.rs')
| -rwxr-xr-x | src/main.rs | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/src/main.rs b/src/main.rs index 4d849f1..060d947 100755 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,7 @@ use rmptui::connection::Connection; use rmptui::event::Event; use rmptui::event::EventHandler; use rmptui::handler; +use rmptui::song::RSong; use rmptui::tui; use std::io; @@ -23,41 +24,52 @@ pub type Result<T> = core::result::Result<T, Error>; pub type Error = Box<dyn std::error::Error>; fn main() -> AppResult<()> { - // let args = Args::parse(); - - // if args.no_tui { - // handle_tui()?; - // } else { - // match args.command { - // Command::Volume { vol } => { - // conn.set_volume(vol); - // } - // Command::Dmenu => conn.play_dmenu().unwrap(), - // Command::Fzf => conn.play_fzf().unwrap(), - // Command::Status => conn.status(), - // Command::Pause => conn.pause(), - // Command::Toggle => conn.toggle_pause(), - // }; - // } - - let backend = CrosstermBackend::new(io::stderr()); - let terminal = Terminal::new(backend)?; + let args = Args::parse(); let mut app = App::builder("127.0.0.1:6600")?; - let events = EventHandler::new(250); + + if !args.tui { + handle_tui(&mut app)?; + } else { + match args.command { + Some(Command::Dmenu) => app.conn.play_dmenu()?, + Some(Command::Fzf) => app.conn.play_fzf().unwrap(), + Some(Command::Status) => app.conn.status(), + Some(Command::Pause) => app.conn.pause(), + Some(Command::Toggle) => app.conn.toggle_pause(), + _ => { + let mut vec: Vec<RSong> = Vec::new(); + for filename in app.conn.songs_filenames { + let song = RSong::new(&mut app.conn.conn, filename); + vec.push(song); + } + println!("{:#?}", vec); + + } + } + } + Ok(()) +} + +pub fn handle_tui(app: &mut App) -> AppResult<()> { + let backend = CrosstermBackend::new(io::stderr()); + let terminal = Terminal::new(backend)?; + let events = EventHandler::new(1000); let mut tui = tui::Tui::new(terminal, events); tui.init()?; + // update the directory + app.browser.update_directory(&mut app.conn).unwrap(); + while app.running { - tui.draw(&mut app)?; + tui.draw(app)?; match tui.events.next()? { Event::Tick => app.tick(), - Event::Key(key_event) => handler::handle_key_events(key_event, &mut app)?, + Event::Key(key_event) => handler::handle_key_events(key_event, app)?, Event::Mouse(_) => {} Event::Resize(_, _) => {} } } - Ok(()) } |
