summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2018-09-04 14:48:56 +0200
committerMinijackson <minijackson@riseup.net>2018-09-04 14:48:56 +0200
commitf8e46a931abffa49df2b7e7843319f44b53277bd (patch)
tree492eb7db03ed63e02ba11567af6a1f15a46f3c38
parent515870c9e8ff833e50f5253ec6e6d43de97519ed (diff)
downloadset_eq-f8e46a931abffa49df2b7e7843319f44b53277bd.tar.gz
set_eq-f8e46a931abffa49df2b7e7843319f44b53277bd.zip
Better error reporting
-rw-r--r--src/main.rs21
-rw-r--r--src/utils.rs18
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;
19use utils::*; 19use utils::*;
20 20
21use dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer; 21use dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer;
22use failure::Error; 22use failure::{Error, ResultExt};
23use structopt::StructOpt; 23use structopt::StructOpt;
24 24
25use std::fs::File; 25use 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
135fn reset(args: ResetCli) -> Result<(), Error> { 138fn 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
150fn load(args: LoadCli) -> Result<(), Error> { 157fn 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 @@
1use ::{Filter, NoEqualizedSink}; 1use {Filter, NoEqualizedSink};
2 2
3use parsing::EqualizerApoParser; 3use parsing::EqualizerApoParser;
4 4
5use ::dbus_api::equalizing_manager::OrgPulseAudioExtEqualizing1Manager; 5use dbus_api::equalizing_manager::OrgPulseAudioExtEqualizing1Manager;
6use ::dbus_api::server_lookup::OrgPulseAudioServerLookup1; 6use dbus_api::server_lookup::OrgPulseAudioServerLookup1;
7use ::dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer; 7use dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer;
8 8
9use dbus::{BusType, Connection, ConnPath}; 9use dbus::{BusType, ConnPath, Connection};
10use failure::{Error, ResultExt}; 10use failure::{Error, ResultExt};
11 11
12use std::io; 12use std::io;
13 13
14pub fn connect() -> Result<Connection, Error> { 14pub 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
49pub fn read_filter<T>(file: &mut T) -> Result<Filter, Error> where T: io::Read { 48pub fn read_filter<T>(file: &mut T) -> Result<Filter, Error>
49where
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");