Compare commits

...

12 Commits

Author SHA1 Message Date
arabianq dc61342af8 change version to 1.3.2 2026-01-16 16:19:17 +03:00
arabianq fded7f7b3f deps: cargo update 2026-01-16 16:18:44 +03:00
arabianq ec83680333 deps: bump rfd to 0.17.2 2026-01-16 16:18:11 +03:00
arabianq 16e94e71d3 fix: update input device properties to output for capture_MONO 2026-01-16 16:16:27 +03:00
arabianq 56040934e9 cargo update 2026-01-08 02:56:37 +03:00
arabianq 89975cb124 change version to 1.3.1 2026-01-08 02:53:50 +03:00
arabianq 03e20ffa7e deps: bump rfd to 0.17.1 2026-01-08 02:53:16 +03:00
arabianq 8f7ea09ef5 deps: bump clap to 4.5.54 2026-01-08 02:49:54 +03:00
arabianq c639721f2a deps: bump serde_json to 1.0.149 2026-01-08 02:49:11 +03:00
arabianq 84512efda8 deps: bump tokio to 1.49.0 2026-01-08 02:48:23 +03:00
arabianq 6cf4a9744d replace println! with eprintln! for errors 2026-01-08 02:46:44 +03:00
arabianq d9ced4e650 fix: replace .except() with correct error handling 2026-01-08 02:45:07 +03:00
6 changed files with 98 additions and 631 deletions
Generated
+67 -601
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -1,6 +1,6 @@
[package]
name = "pwsp"
version = "1.3.0"
version = "1.3.2"
edition = "2024"
authors = ["arabian"]
description = "PWSP lets you play audio files through your microphone. Has both CLI and GUI clients."
@@ -12,18 +12,18 @@ keywords = ["soundpad", "pipewire", "linux", "cli", "gui"]
[dependencies]
tokio = { version = "1.48.0", features = ["full"] }
tokio = { version = "1.49.0", features = ["full"] }
async-trait = "0.1.89"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.148"
serde_json = "1.0.149"
clap = { version = "4.5.53", default-features = false, features = ["std", "suggestions", "help", "usage", "error-context", "derive"] }
clap = { version = "4.5.54", default-features = false, features = ["std", "suggestions", "help", "usage", "error-context", "derive"] }
dirs = "6.0.0"
rodio = { version = "0.21.1", default-features = false, features = ["symphonia-all", "playback"] }
pipewire = "0.9.2"
rfd = "0.16.0"
rfd = { version = "0.17.2", default-features = false, features = ["xdg-portal"]}
egui = { version = "0.33.3", default-features = false, features = ["default_fonts", "rayon"] }
eframe = { version = "0.33.3", default-features = false, features = ["default_fonts", "glow", "x11", "wayland"] }
+1 -1
View File
@@ -4,7 +4,7 @@
%global cargo_install_lib 0
Name: pwsp
Version: 1.3.0
Version: 1.3.2
Release: %autorelease
Summary: Lets you play audio files through your microphone
+21 -20
View File
@@ -79,7 +79,7 @@ impl AudioPlayer {
if let Some(sender) = &self.input_link_sender {
match sender.send(Terminate {}) {
Ok(_) => println!("Sent terminate signal to link thread"),
Err(_) => println!("Failed to send terminate signal to link thread"),
Err(_) => eprintln!("Failed to send terminate signal to link thread"),
}
}
}
@@ -88,7 +88,7 @@ impl AudioPlayer {
self.abort_link_thread();
if self.current_input_device.is_none() {
println!("No input device selected, skipping device linking");
eprintln!("No input device selected, skipping device linking");
return Ok(());
}
@@ -103,29 +103,30 @@ impl AudioPlayer {
}
if pwsp_daemon_input.is_none() {
println!("Could not find pwsp-daemon input device, skipping device linking");
eprintln!("Could not find pwsp-daemon input device, skipping device linking");
return Ok(());
}
let pwsp_daemon_input = pwsp_daemon_input.unwrap();
let current_input_device = self.current_input_device.clone().unwrap();
let output_fl = current_input_device
.clone()
.output_fl
.expect("Failed to get pwsp-daemon output_fl");
let output_fr = current_input_device
.clone()
.output_fr
.expect("Failed to get pwsp-daemon output_fl");
let input_fl = pwsp_daemon_input
.clone()
.input_fl
.expect("Failed to get pwsp-daemon input_fl");
let input_fr = pwsp_daemon_input
.clone()
.input_fr
.expect("Failed to get pwsp-daemon input_fr");
let Some(output_fl) = current_input_device.output_fl.clone() else {
eprintln!("Failed to get pwsp-daemon output_fl");
return Ok(());
};
let Some(output_fr) = current_input_device.output_fr.clone() else {
eprintln!("Failed to get pwsp-daemon output_fr");
return Ok(());
};
let Some(input_fl) = pwsp_daemon_input.input_fl.clone() else {
eprintln!("Failed to get pwsp-daemon input_fl");
return Ok(());
};
let Some(input_fr) = pwsp_daemon_input.input_fr.clone() else {
eprintln!("Failed to get pwsp-daemon input_fr");
return Ok(());
};
self.input_link_sender = Some(create_link(output_fl, output_fr, input_fl, input_fr)?);
Ok(())
+2 -2
View File
@@ -47,7 +47,7 @@ pub async fn link_player_to_virtual_mic() -> Result<(), Box<dyn Error>> {
}
if pwsp_daemon_output.is_none() {
println!("Could not find pwsp-daemon output device, skipping device linking");
eprintln!("Could not find pwsp-daemon output device, skipping device linking");
return Ok(());
}
@@ -60,7 +60,7 @@ pub async fn link_player_to_virtual_mic() -> Result<(), Box<dyn Error>> {
}
if pwsp_daemon_input.is_none() {
println!("Could not find pwsp-daemon input device, skipping device linking");
eprintln!("Could not find pwsp-daemon input device, skipping device linking");
return Ok(());
}
+2 -2
View File
@@ -165,8 +165,8 @@ pub async fn get_all_devices() -> Result<(Vec<AudioDevice>, Vec<AudioDevice>), B
input_device.input_fr = Some(port)
}
"capture_MONO" => {
input_device.input_fl = Some(port.clone());
input_device.input_fr = Some(port);
input_device.output_fl = Some(port.clone());
input_device.output_fr = Some(port);
}
_ => {}
}