aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rwxr-xr-xsrc/main.rs58
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(())
}