mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-04-28 14:31:23 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dc61342af8 | |||
| fded7f7b3f | |||
| ec83680333 | |||
| 16e94e71d3 | |||
| 56040934e9 | |||
| 89975cb124 | |||
| 03e20ffa7e | |||
| 8f7ea09ef5 | |||
| c639721f2a | |||
| 84512efda8 | |||
| 6cf4a9744d | |||
| d9ced4e650 |
Generated
+67
-601
File diff suppressed because it is too large
Load Diff
+5
-5
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "pwsp"
|
name = "pwsp"
|
||||||
version = "1.3.0"
|
version = "1.3.2"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
authors = ["arabian"]
|
authors = ["arabian"]
|
||||||
description = "PWSP lets you play audio files through your microphone. Has both CLI and GUI clients."
|
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]
|
[dependencies]
|
||||||
tokio = { version = "1.48.0", features = ["full"] }
|
tokio = { version = "1.49.0", features = ["full"] }
|
||||||
async-trait = "0.1.89"
|
async-trait = "0.1.89"
|
||||||
|
|
||||||
serde = { version = "1.0.228", features = ["derive"] }
|
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"
|
dirs = "6.0.0"
|
||||||
|
|
||||||
rodio = { version = "0.21.1", default-features = false, features = ["symphonia-all", "playback"] }
|
rodio = { version = "0.21.1", default-features = false, features = ["symphonia-all", "playback"] }
|
||||||
pipewire = "0.9.2"
|
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"] }
|
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"] }
|
eframe = { version = "0.33.3", default-features = false, features = ["default_fonts", "glow", "x11", "wayland"] }
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
%global cargo_install_lib 0
|
%global cargo_install_lib 0
|
||||||
|
|
||||||
Name: pwsp
|
Name: pwsp
|
||||||
Version: 1.3.0
|
Version: 1.3.2
|
||||||
Release: %autorelease
|
Release: %autorelease
|
||||||
Summary: Lets you play audio files through your microphone
|
Summary: Lets you play audio files through your microphone
|
||||||
|
|
||||||
|
|||||||
+21
-20
@@ -79,7 +79,7 @@ impl AudioPlayer {
|
|||||||
if let Some(sender) = &self.input_link_sender {
|
if let Some(sender) = &self.input_link_sender {
|
||||||
match sender.send(Terminate {}) {
|
match sender.send(Terminate {}) {
|
||||||
Ok(_) => println!("Sent terminate signal to link thread"),
|
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();
|
self.abort_link_thread();
|
||||||
|
|
||||||
if self.current_input_device.is_none() {
|
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(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,29 +103,30 @@ impl AudioPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if pwsp_daemon_input.is_none() {
|
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(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
let pwsp_daemon_input = pwsp_daemon_input.unwrap();
|
let pwsp_daemon_input = pwsp_daemon_input.unwrap();
|
||||||
|
|
||||||
let current_input_device = self.current_input_device.clone().unwrap();
|
let current_input_device = self.current_input_device.clone().unwrap();
|
||||||
let output_fl = current_input_device
|
|
||||||
.clone()
|
let Some(output_fl) = current_input_device.output_fl.clone() else {
|
||||||
.output_fl
|
eprintln!("Failed to get pwsp-daemon output_fl");
|
||||||
.expect("Failed to get pwsp-daemon output_fl");
|
return Ok(());
|
||||||
let output_fr = current_input_device
|
};
|
||||||
.clone()
|
let Some(output_fr) = current_input_device.output_fr.clone() else {
|
||||||
.output_fr
|
eprintln!("Failed to get pwsp-daemon output_fr");
|
||||||
.expect("Failed to get pwsp-daemon output_fl");
|
return Ok(());
|
||||||
let input_fl = pwsp_daemon_input
|
};
|
||||||
.clone()
|
let Some(input_fl) = pwsp_daemon_input.input_fl.clone() else {
|
||||||
.input_fl
|
eprintln!("Failed to get pwsp-daemon input_fl");
|
||||||
.expect("Failed to get pwsp-daemon input_fl");
|
return Ok(());
|
||||||
let input_fr = pwsp_daemon_input
|
};
|
||||||
.clone()
|
let Some(input_fr) = pwsp_daemon_input.input_fr.clone() else {
|
||||||
.input_fr
|
eprintln!("Failed to get pwsp-daemon input_fr");
|
||||||
.expect("Failed to get pwsp-daemon input_fr");
|
return Ok(());
|
||||||
|
};
|
||||||
|
|
||||||
self.input_link_sender = Some(create_link(output_fl, output_fr, input_fl, input_fr)?);
|
self.input_link_sender = Some(create_link(output_fl, output_fr, input_fl, input_fr)?);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
+2
-2
@@ -47,7 +47,7 @@ pub async fn link_player_to_virtual_mic() -> Result<(), Box<dyn Error>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if pwsp_daemon_output.is_none() {
|
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(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ pub async fn link_player_to_virtual_mic() -> Result<(), Box<dyn Error>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if pwsp_daemon_input.is_none() {
|
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(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -165,8 +165,8 @@ pub async fn get_all_devices() -> Result<(Vec<AudioDevice>, Vec<AudioDevice>), B
|
|||||||
input_device.input_fr = Some(port)
|
input_device.input_fr = Some(port)
|
||||||
}
|
}
|
||||||
"capture_MONO" => {
|
"capture_MONO" => {
|
||||||
input_device.input_fl = Some(port.clone());
|
input_device.output_fl = Some(port.clone());
|
||||||
input_device.input_fr = Some(port);
|
input_device.output_fr = Some(port);
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user