diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 49 |
1 files changed, 8 insertions, 41 deletions
diff --git a/src/main.rs b/src/main.rs index 85d2443..a23034e 100644 --- a/src/main.rs +++ b/src/main.rs | |||
@@ -14,21 +14,22 @@ extern crate structopt; | |||
14 | 14 | ||
15 | extern crate lalrpop_util; | 15 | extern crate lalrpop_util; |
16 | 16 | ||
17 | #[macro_use] | ||
18 | extern crate serde_json; | ||
19 | |||
17 | mod cli; | 20 | mod cli; |
18 | mod dbus_api; | 21 | mod dbus_api; |
19 | mod parsing; | 22 | mod parsing; |
20 | mod utils; | 23 | mod utils; |
21 | 24 | ||
22 | use utils::*; | 25 | mod pa_eq; |
23 | use dbus_api::sink::OrgPulseAudioExtEqualizing1Equalizer; | 26 | mod pa_effects; |
27 | |||
24 | use cli::*; | 28 | use cli::*; |
25 | 29 | ||
26 | use failure::Error; | 30 | use failure::Error; |
27 | use structopt::StructOpt; | 31 | use structopt::StructOpt; |
28 | 32 | ||
29 | use std::fs::File; | ||
30 | use std::io; | ||
31 | |||
32 | #[derive(Debug)] | 33 | #[derive(Debug)] |
33 | pub struct Filter { | 34 | pub struct Filter { |
34 | preamp: f64, | 35 | preamp: f64, |
@@ -74,41 +75,7 @@ fn start() -> Result<(), Error> { | |||
74 | use Command::*; | 75 | use Command::*; |
75 | 76 | ||
76 | match args.cmd { | 77 | match args.cmd { |
77 | Load(args) => load(args), | 78 | PaEq(args) => pa_eq::main(args), |
78 | Reset(args) => reset(args), | 79 | PaEffects(args) => pa_effects::main(args), |
79 | } | 80 | } |
80 | } | 81 | } |
81 | |||
82 | fn reset(args: ResetCli) -> Result<(), Error> { | ||
83 | let conn = connect()?; | ||
84 | let conn_sink = get_equalized_sink(&conn)?; | ||
85 | let filter_rate = conn_sink.get_filter_sample_rate()?; | ||
86 | let filter = Filter { | ||
87 | preamp: 1f64, | ||
88 | frequencies: vec![], | ||
89 | coefficients: vec![], | ||
90 | }.pad(filter_rate); | ||
91 | |||
92 | send_filter(&conn_sink, filter)?; | ||
93 | |||
94 | Ok(()) | ||
95 | } | ||
96 | |||
97 | fn load(args: LoadCli) -> Result<(), Error> { | ||
98 | let conn = connect()?; | ||
99 | let conn_sink = get_equalized_sink(&conn)?; | ||
100 | |||
101 | let filter = if args.file == "-" { | ||
102 | let stdin = io::stdin(); | ||
103 | let mut handle = stdin.lock(); | ||
104 | read_filter(&mut handle)? | ||
105 | } else { | ||
106 | let mut file = File::open(args.file)?; | ||
107 | read_filter(&mut file)? | ||
108 | }; | ||
109 | |||
110 | let filter_rate = conn_sink.get_filter_sample_rate()?; | ||
111 | send_filter(&conn_sink, filter.pad(filter_rate))?; | ||
112 | |||
113 | Ok(()) | ||
114 | } | ||