From bf13545da26e7a4d12026998d9fefdbb97871243 Mon Sep 17 00:00:00 2001 From: Salem Yaslem Date: Thu, 20 May 2021 12:03:00 +0300 Subject: [PATCH] fix(#7): unable to find audio sources --- interfaces/main.ui | 574 +++++++++++++++++++++++---------------------- src/main.rs | 23 +- test.ogg | Bin 0 -> 21866 bytes 3 files changed, 305 insertions(+), 292 deletions(-) create mode 100644 test.ogg diff --git a/interfaces/main.ui b/interfaces/main.ui index 8167416..ff2461c 100644 --- a/interfaces/main.ui +++ b/interfaces/main.ui @@ -1,25 +1,22 @@ - + - False - True - dialog - blue-recorder - - - + False + True + dialog + blue-recorder - False + False vertical 2 - False + False True - end + end True @@ -32,73 +29,74 @@ 10000 - 1 - 2 + 1 + 2 1 200 30 - 1 - 10 + 1 + 10 100 - 1 - 10 + 1 + 10 100 - 1 - 10 + 1 + 10 area_chooser_window - False + False True True - center - blue-recorder + center + blue-recorder static True - False - False - True + False + False + True True - True - True + True + True half - True + True + True - False - 3 - True + False + 3 + True True - False - dialog-ok + False + dialog-ok - 0 - 0 + 0 + 0 True - False + False Apply - 1 - 0 + 1 + 0 @@ -110,174 +108,54 @@ True - False - media-playback-start + False + media-playback-start True - False + False gtk-media-stop True - False + False True - False + False True - True + True False - center + center center - - - True - False - False - True - - - True - True - True - half - - - True - False - 2 - True - - - True - False - media-record - - - 0 - 0 - - - - - True - False - Record - - - 1 - 0 - - - - - - - - - True - True - True - half - - - True - False - 2 - True - - - True - False - media-playback-stop - - - 0 - 0 - - - - - True - False - Stop Recording - - - 1 - 0 - - - - - - - 2 - - - - - True - True - True - image3 - half - True - - - 3 - - - - - True - True - True - none - menu1 - - - True - False - view-list-symbolic - - - - - end - 5 - - - - True - False + False vertical True - False - 5 - 5 - 5 + False + 5 + 5 + 5 True True - True - True - True - True - 5 - 5 - 5 - 5 + True + True + True + True + 5 + 5 + 5 + 5 True @@ -288,12 +166,12 @@ True - True - True - 5 - 5 - 5 - 5 + True + True + 5 + 5 + 5 + 5 select-folder @@ -312,11 +190,11 @@ True - False - 10 - 10 - 5 - 5 + False + 10 + 10 + 5 + 5 False @@ -327,21 +205,21 @@ True - False - 5 - 5 - 5 + False + 5 + 5 + 5 True button True - True - True - 5 - 5 - 5 - 5 + True + True + 5 + 5 + 5 + 5 True @@ -353,12 +231,12 @@ button True - True - True - 5 - 5 - 5 - 5 + True + True + 5 + 5 + 5 + 5 True @@ -374,140 +252,147 @@ + True - False - 10 - 10 - 5 - 5 - True - True + False + 10 + 10 + 5 + 5 + True + True + True - False - True - True + False + True + True checkbutton True - True - False - True + True + False + True + True - 0 - 0 + 0 + 0 checkbutton True - True - False - True + True + False + True + True - 1 - 0 + 1 + 0 checkbutton True - True - False - True + True + False + True + True - 0 - 1 + 0 + 1 checkbutton True - True - False - True + True + False + True + True - 1 - 1 + 1 + 1 - 0 - 0 + 0 + 0 + True - False - 3 - True - True + False + 3 + True + True True - False + False label - 0 - 0 + 0 + 0 True - True - 2 + True + 2 30 adjustment2 30 - 1 - 0 + 1 + 0 True - False + False label - 0 - 1 + 0 + 1 True - True - 2 + True + 2 0 adjustment1 - 1 + 1 - 1 - 1 + 1 + 1 - 1 - 0 + 1 + 0 @@ -518,65 +403,66 @@ + True - False - 10 - 10 - 5 - 5 - 2 - 5 + False + 10 + 10 + 5 + 5 + 2 + 5 True - True - 5 - 5 + True + 5 + 5 True True - 1 - 1 + 1 + 1 True - False - 5 - 5 + False + 5 + 5 label - 0 - 1 + 0 + 1 True - False - 5 - 5 + False + 5 + 5 label - 0 - 0 + 0 + 0 True - False + False True True - 1 - 0 + 1 + 0 @@ -588,5 +474,127 @@ + + + True + False + False + True + + + True + True + True + half + + + + True + False + 2 + True + + + True + False + media-record + + + 0 + 0 + + + + + True + False + Record + + + 1 + 0 + + + + + + + + + True + True + True + half + + + + True + False + 2 + True + + + True + False + media-playback-stop + + + 0 + 0 + + + + + True + False + Stop Recording + + + 1 + 0 + + + + + + + 2 + + + + + True + True + True + image3 + half + True + + + 3 + + + + + True + True + True + none + menu1 + + + True + False + view-list-symbolic + + + + + end + 5 + + + + diff --git a/src/main.rs b/src/main.rs index 3a81362..7079841 100644 --- a/src/main.rs +++ b/src/main.rs @@ -132,22 +132,27 @@ fn main() { // get audio sources let sources_descriptions: Vec = { + let list_sources_child = Command::new("pactl") + .args(&["list", "sources"]) + .stdout(Stdio::piped()) + .spawn(); let sources_descriptions = String::from_utf8( + if list_sources_child.is_ok() { Command::new("grep") .args(&["-e", "device.description"]) .stdin( - Command::new("pactl") - .args(&["list", "sources"]) - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .stdout - .take() - .unwrap(), + list_sources_child + .unwrap() + .stdout + .take() + .unwrap(), ) .output() .unwrap() - .stdout, + .stdout + } else { + Vec::new() + } ) .unwrap(); sources_descriptions diff --git a/test.ogg b/test.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ac1e8296f0e4ce476044ca1ec94f664192fb9499 GIT binary patch literal 21866 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