diff options
author | Minijackson <minijackson@riseup.net> | 2018-09-04 14:48:56 +0200 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2018-09-04 14:48:56 +0200 |
commit | f8e46a931abffa49df2b7e7843319f44b53277bd (patch) | |
tree | 492eb7db03ed63e02ba11567af6a1f15a46f3c38 | |
parent | 515870c9e8ff833e50f5253ec6e6d43de97519ed (diff) | |
download | set_eq-f8e46a931abffa49df2b7e7843319f44b53277bd.tar.gz set_eq-f8e46a931abffa49df2b7e7843319f44b53277bd.zip |
Better error reporting
-rw-r--r-- | src/main.rs | 21 | ||||
-rw-r--r-- | src/utils.rs | 18 |
2 files changed, 26 insertions, 13 deletions
diff --git a/src/main.rs b/src/main.rs index 8edc760..310fa1a 100644 --- a/src/main.rs +++ b/src/main.rs | |||
@@ -19,7 +19,7 @@ mod utils; | |||
19 | use utils::*; | 19 | use utils::*; |
20 | 20 | ||
21 | use dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer; | 21 | use dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer; |
22 | use failure::Error; | 22 | use failure::{Error, ResultExt}; |
23 | use structopt::StructOpt; | 23 | use structopt::StructOpt; |
24 | 24 | ||
25 | use std::fs::File; | 25 | use std::fs::File; |
@@ -115,6 +115,9 @@ fn main() { | |||
115 | Ok(()) => (), | 115 | Ok(()) => (), |
116 | Err(err) => { | 116 | Err(err) => { |
117 | eprintln!("Error: {}", err); | 117 | eprintln!("Error: {}", err); |
118 | for cause in err.iter_causes() { | ||
119 | eprintln!(" : {}", cause); | ||
120 | } | ||
118 | std::process::exit(-1); | 121 | std::process::exit(-1); |
119 | } | 122 | } |
120 | } | 123 | } |
@@ -133,8 +136,12 @@ fn start() -> Result<(), Error> { | |||
133 | } | 136 | } |
134 | 137 | ||
135 | fn reset(args: ResetCli) -> Result<(), Error> { | 138 | fn reset(args: ResetCli) -> Result<(), Error> { |
136 | let conn = connect()?; | 139 | let conn = connect().context( |
137 | let conn_sink = get_equalized_sink(&conn)?; | 140 | "Could not connect to PulseAudio's D-Bus socket. Have you loaded the 'module-dbus-protocol' module?" |
141 | )?; | ||
142 | let conn_sink = get_equalized_sink(&conn).context( | ||
143 | "Could not find an equalized sink. Have you loaded the 'module-equalizer-sink' module?", | ||
144 | )?; | ||
138 | let filter_rate = conn_sink.get_filter_sample_rate()?; | 145 | let filter_rate = conn_sink.get_filter_sample_rate()?; |
139 | let filter = Filter { | 146 | let filter = Filter { |
140 | preamp: 1f64, | 147 | preamp: 1f64, |
@@ -148,8 +155,12 @@ fn reset(args: ResetCli) -> Result<(), Error> { | |||
148 | } | 155 | } |
149 | 156 | ||
150 | fn load(args: LoadCli) -> Result<(), Error> { | 157 | fn load(args: LoadCli) -> Result<(), Error> { |
151 | let conn = connect()?; | 158 | let conn = connect().context( |
152 | let conn_sink = get_equalized_sink(&conn)?; | 159 | "Could not connect to PulseAudio's D-Bus socket. Have you loaded the 'module-dbus-protocol' module?" |
160 | )?; | ||
161 | let conn_sink = get_equalized_sink(&conn).context( | ||
162 | "Could not find an equalized sink. Have you loaded the 'module-equalizer-sink' module?", | ||
163 | )?; | ||
153 | 164 | ||
154 | let filter = if args.file == "-" { | 165 | let filter = if args.file == "-" { |
155 | let stdin = io::stdin(); | 166 | let stdin = io::stdin(); |
diff --git a/src/utils.rs b/src/utils.rs index 66ccae4..24af366 100644 --- a/src/utils.rs +++ b/src/utils.rs | |||
@@ -1,19 +1,18 @@ | |||
1 | use ::{Filter, NoEqualizedSink}; | 1 | use {Filter, NoEqualizedSink}; |
2 | 2 | ||
3 | use parsing::EqualizerApoParser; | 3 | use parsing::EqualizerApoParser; |
4 | 4 | ||
5 | use ::dbus_api::equalizing_manager::OrgPulseAudioExtEqualizing1Manager; | 5 | use dbus_api::equalizing_manager::OrgPulseAudioExtEqualizing1Manager; |
6 | use ::dbus_api::server_lookup::OrgPulseAudioServerLookup1; | 6 | use dbus_api::server_lookup::OrgPulseAudioServerLookup1; |
7 | use ::dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer; | 7 | use dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer; |
8 | 8 | ||
9 | use dbus::{BusType, Connection, ConnPath}; | 9 | use dbus::{BusType, ConnPath, Connection}; |
10 | use failure::{Error, ResultExt}; | 10 | use failure::{Error, ResultExt}; |
11 | 11 | ||
12 | use std::io; | 12 | use std::io; |
13 | 13 | ||
14 | pub fn connect() -> Result<Connection, Error> { | 14 | pub fn connect() -> Result<Connection, Error> { |
15 | let pulse_sock_path = | 15 | let pulse_sock_path = get_pulse_dbus_sock()?; |
16 | get_pulse_dbus_sock().context("While looking up PulseAudio's D-Bus socket path")?; | ||
17 | info!("PulseAudio's D-Bus socket path is: {}", pulse_sock_path); | 16 | info!("PulseAudio's D-Bus socket path is: {}", pulse_sock_path); |
18 | 17 | ||
19 | trace!("Connecting to PulseAudio's D-Bus socket"); | 18 | trace!("Connecting to PulseAudio's D-Bus socket"); |
@@ -46,7 +45,10 @@ pub fn send_filter(conn_sink: &ConnPath<&Connection>, filter: Filter) -> Result< | |||
46 | Ok(()) | 45 | Ok(()) |
47 | } | 46 | } |
48 | 47 | ||
49 | pub fn read_filter<T>(file: &mut T) -> Result<Filter, Error> where T: io::Read { | 48 | pub fn read_filter<T>(file: &mut T) -> Result<Filter, Error> |
49 | where | ||
50 | T: io::Read, | ||
51 | { | ||
50 | let mut buffer = String::new(); | 52 | let mut buffer = String::new(); |
51 | 53 | ||
52 | info!("Reading filter in GraphicEQ format from the command line"); | 54 | info!("Reading filter in GraphicEQ format from the command line"); |