diff --git a/assets/Music Note.png b/assets/Music Note.png index 318e8b6..cd4b481 100644 Binary files a/assets/Music Note.png and b/assets/Music Note.png differ diff --git a/src/main.rs b/src/main.rs index 77d1714..bf5ad6c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ +use std::{process::Command, str}; use eframe::egui; fn main() -> Result<(), eframe::Error> @@ -22,8 +23,8 @@ fn main() -> Result<(), eframe::Error> struct JpmmvApp { - name: String, - age: u32, + command: String, + result: String, } impl Default for JpmmvApp @@ -31,8 +32,8 @@ impl Default for JpmmvApp fn default() -> Self { Self { - name: "Arthur".to_owned(), - age: 42, + command: "command".to_string(), + result: "N/A".to_string() } } } @@ -43,21 +44,21 @@ impl eframe::App for JpmmvApp { egui::CentralPanel::default().show(ctx, |ui| { - ui.heading("My egui Application"); - ui.horizontal(|ui| { - let name_label = ui.label("Your name: "); - ui.text_edit_singleline(&mut self.name) - .labelled_by(name_label.id); - }); - ui.add(egui::Slider::new(&mut self.age, 0..=120).text("age")); - if ui.button("Increment").clicked() { - self.age += 1; + ui.heading("Media Meta Viewer"); + ui.text_edit_singleline(&mut self.command); + + if ui.button("Run Command").clicked() + { + self.result = run_command(&format!("playerctl --player=strawberry {}", self.command)) } - ui.label(format!("Hello '{}', age {}", self.name, self.age)); + + ui.label(format!("Command result: {}", self.result)); ui.image(egui::include_image!( "../assets/Music Note.png" )); }); } -} \ No newline at end of file +} + + diff --git a/src/player_interface.rs b/src/player_interface.rs new file mode 100644 index 0000000..b3f8df3 --- /dev/null +++ b/src/player_interface.rs @@ -0,0 +1,37 @@ + +pub struct SongMetadata +{ + pub name: String, + pub artist: String, + pub album: String, +} +impl SongMetadata +{ + fn new() -> SongMetadata + { + SongMetadata { + name: "NONE".to_string(), + artist: "NONE".to_string(), + album: "NONE".to_string(), + } + } +} + + +pub fn get_song_metadata() -> SongMetadata +{ + const COM_START: String = "playerctl --player=strawberry "; + +} + + +fn run_command(command: &str) -> String +{ + let output = Command::new("sh") + .arg("-c") + .arg(command) + .output() + .expect("Failed to run the command"); + str::from_utf8(&output.stdout).expect("Failed to convert command result to utf8 string").to_string() + +} \ No newline at end of file