From 0dbfa1874b1e3b1fc2f8026e5dbf1afd2656ea2a Mon Sep 17 00:00:00 2001 From: Joey Pollack Date: Thu, 18 Apr 2024 15:22:54 -0400 Subject: [PATCH] Album art now works! --- .vscode/launch.json | 45 +++++++++++++++++++++++++++++++++++++++++ src/main.rs | 20 +++++++++++++----- src/player_interface.rs | 41 ++++++++++++++++++++++++++++++++++--- 3 files changed, 98 insertions(+), 8 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..a9ea40e --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,45 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'jpmmv'", + "cargo": { + "args": [ + "build", + "--bin=jpmmv", + "--package=jpmmv" + ], + "filter": { + "name": "jpmmv", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'jpmmv'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=jpmmv", + "--package=jpmmv" + ], + "filter": { + "name": "jpmmv", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 4176b2f..d8bdd94 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,8 @@ fn main() -> Result<(), eframe::Error> env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`). let options = eframe::NativeOptions { - viewport: egui::ViewportBuilder::default().with_inner_size([600.0, 160.0]), + viewport: egui::ViewportBuilder::default().with_inner_size([600.0, 160.0]) + .with_min_inner_size([600.0, 160.0]), ..Default::default() }; eframe::run_native( @@ -60,10 +61,19 @@ impl eframe::App for JpmmvApp ui.horizontal_centered(|ui| { // ui.image(egui::include_image!("../assets/Music Note.png")); - ui.add( - egui::Image::new(self.current_metadata.art_url.clone()) - .max_width(240.0) - ); + + ui.vertical(|ui| + { + // ui.label(self.current_metadata.art_url.clone()); + + ui.add(//self.current_metadata.art_url.clone() + //egui::Image::from_uri("file:///tmp/strawberry-cover-UgoFhf.jpg") + egui::Image::from_uri(self.current_metadata.art_url.clone()) + .max_width(240.0) + ); + }); + + ui.style_mut().text_styles.insert( diff --git a/src/player_interface.rs b/src/player_interface.rs index fbcec81..8589c3d 100644 --- a/src/player_interface.rs +++ b/src/player_interface.rs @@ -1,6 +1,6 @@ -use std::{process::Command, str}; +use std::{process::Command, str, fs, fs::File}; pub struct SongMetadata { @@ -45,8 +45,43 @@ pub fn get_song_metadata() -> SongMetadata sm.artist = split[1].to_string(); sm.album = split[2].to_string(); sm.art_url = split[3].to_string(); - - sm + sm.art_url = sm.art_url.trim().to_string(); + + // let test_url = sm.art_url.trim_start_matches("file://").to_string(); + // let test_url = test_url.trim(); + + // let paths = fs::read_dir("/tmp").unwrap(); + + // //println!("List of files in /tmp:"); + // for path in paths + // { + // let name = path.unwrap().path(); + // if name.to_str().unwrap().to_string().contains("strawberry-cover") + // { + // let temp = name.to_str().unwrap().to_string(); + // let temp = temp.trim(); + // println!("Found possible art file\n\tFound: {} \n\tCompare: {}", name.display(), test_url); + // if temp == test_url + // { + // println!("Attemping to open file: {}", name.display()); + // let f = match File::open(name.clone()) + // { + // Ok(f) => f, + // Err(e) => panic!("Failed open album art file: {}", e) + // }; + // println!("File found!\t\n\n"); + // break; + // } + // else + // { + // println!("\tNO MATCH\n\n"); + // } + // } + + + // } + + return sm; } pub fn next_track()