Skip to content

Commit a5670df

Browse files
committed
make it simple
1 parent 0b28dd8 commit a5670df

File tree

2 files changed

+22
-20
lines changed

2 files changed

+22
-20
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ A minimalist terminal-based MP3 music player built with Rust.
66
![Terminal](https://img.shields.io/badge/Terminal-UI-green?style=for-the-badge)
77
![Music](https://img.shields.io/badge/MP3-Player-orange?style=for-the-badge)
88

9-
[![asciicast](https://asciinema.org/a/45pMbZkgYuKoOqfyqeRpoR6BS.svg)](https://asciinema.org/a/45pMbZkgYuKoOqfyqeRpoR6BS)
9+
[![asciicast](https://asciinema.org/a/730123.svg)](https://asciinema.org/a/730123)
1010

1111
## Features
1212

src/main.rs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,8 @@ impl Player {
5858

5959
// Initialize audio system with Rodio 0.21 API
6060
let (stream_handle, sink) = match OutputStreamBuilder::open_default_stream() {
61-
Ok(stream_handle) => {
61+
Ok(stream_handle) => {
6262
let sink = Sink::connect_new(stream_handle.mixer());
63-
eprintln!("Audio system initialized successfully.");
6463
(Some(Box::new(stream_handle) as Box<dyn std::any::Any>), Some(Arc::new(Mutex::new(sink))))
6564
}
6665
Err(e) => {
@@ -326,8 +325,7 @@ fn load_mp3_files() -> Result<Vec<Song>, Box<dyn std::error::Error>> {
326325
if data_dir.exists() {
327326
match visit_dir(&data_dir, &mut songs) {
328327
Ok(_) => {
329-
eprintln!("Loaded {} MP3 files from: {data_dir:?}", songs.len());
330-
// break;
328+
//eprintln!("Loaded {} MP3 files from: {data_dir:?}", songs.len()); // break;
331329
}
332330
Err(e) => {
333331
eprintln!("Warning: Could not access directory {data_dir:?}: {e}");
@@ -448,20 +446,18 @@ fn ui(f: &mut Frame, player: &Player) {
448446
// Status
449447
let mode_text = if player.random_mode { "RANDOM" } else { "NORMAL" };
450448

451-
let status = Paragraph::new(vec![
452-
Line::from(vec![
453-
Span::raw(format!(" Mode: {} | Songs: {} | ", mode_text, player.songs.len())),
454-
Span::styled("X", Style::default().fg(PRIMARY_COLOR).add_modifier(Modifier::BOLD)),
455-
Span::raw(": Help "),
456-
])
457-
])
458-
.alignment(Alignment::Left)
459-
.block(
460-
Block::default()
461-
.borders(Borders::ALL)
462-
.title("Status")
463-
.border_style(Style::default().fg(PRIMARY_COLOR)),
464-
);
449+
let status = Paragraph::new(vec![Line::from(vec![
450+
Span::raw(format!(" Mode: {} | Songs: {} | ", mode_text, player.songs.len())),
451+
Span::styled("X", Style::default().fg(PRIMARY_COLOR).add_modifier(Modifier::BOLD)),
452+
Span::raw(": Help "),
453+
])])
454+
.alignment(Alignment::Left)
455+
.block(
456+
Block::default()
457+
.borders(Borders::ALL)
458+
.title("Status")
459+
.border_style(Style::default().fg(PRIMARY_COLOR)),
460+
);
465461
f.render_widget(status, chunks[3]);
466462

467463
// Controls popup
@@ -494,7 +490,7 @@ fn ui(f: &mut Frame, player: &Player) {
494490
Span::raw(" - Toggle random mode"),
495491
]),
496492
Line::from(vec![
497-
Span::styled(" X " , Style::default().fg(PRIMARY_COLOR).add_modifier(Modifier::BOLD)),
493+
Span::styled(" X ", Style::default().fg(PRIMARY_COLOR).add_modifier(Modifier::BOLD)),
498494
Span::raw(" - Close this popup"),
499495
]),
500496
Line::from(vec![
@@ -582,6 +578,12 @@ fn run_player() -> Result<(), Box<dyn std::error::Error>> {
582578

583579
let result = main_loop(&mut terminal, &mut player);
584580

581+
// Clean shutdown of audio to prevent warning messages
582+
if let Some(ref sink) = player.sink {
583+
let sink = sink.lock().unwrap();
584+
sink.stop();
585+
}
586+
585587
disable_raw_mode()?;
586588
execute!(terminal.backend_mut(), LeaveAlternateScreen)?;
587589
terminal.show_cursor()?;

0 commit comments

Comments
 (0)