From 515870c9e8ff833e50f5253ec6e6d43de97519ed Mon Sep 17 00:00:00 2001 From: Minijackson Date: Tue, 4 Sep 2018 12:33:44 +0200 Subject: Rust stable compatibility + use amplitude decibel conversion --- Cargo.lock | 36 +----------------------------------- Cargo.toml | 3 ++- src/main.rs | 17 ++++++++++++++--- src/parsing/equalizer_apo.lalrpop | 2 +- src/parsing/equalizer_apo.rs | 4 ++-- src/utils.rs | 2 +- 6 files changed, 21 insertions(+), 43 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 46a6dd4..3e0b2fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,22 +124,6 @@ dependencies = [ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "clap" -version = "3.0.0-alpha.1" -source = "git+https://github.com/kbknapp/clap-rs?branch=v3-master#eaa0700e7ed76f37d245a6878deb3b8e81754d6c" -dependencies = [ - "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "clap_derive 0.3.0 (git+https://github.com/clap-rs/clap_derive)", - "indexmap 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "clap-log-flag" version = "0.1.0" @@ -163,16 +147,6 @@ dependencies = [ "structopt 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "clap_derive" -version = "0.3.0" -source = "git+https://github.com/clap-rs/clap_derive#2fad2c8ae4b5c61a2bf343b4eed636d60bb161bf" -dependencies = [ - "proc-macro2 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "cloudabi" version = "0.0.3" @@ -297,11 +271,6 @@ dependencies = [ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "indexmap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "itertools" version = "0.7.8" @@ -602,7 +571,7 @@ dependencies = [ name = "set_eq" version = "0.1.0" dependencies = [ - "clap 3.0.0-alpha.1 (git+https://github.com/kbknapp/clap-rs?branch=v3-master)", + "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "clap-log-flag 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "dbus 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -865,10 +834,8 @@ dependencies = [ "checksum cc 1.0.23 (registry+https://github.com/rust-lang/crates.io-index)" = "c37f0efaa4b9b001fa6f02d4b644dee4af97d3414df07c51e3e4f015f3a3e131" "checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" -"checksum clap 3.0.0-alpha.1 (git+https://github.com/kbknapp/clap-rs?branch=v3-master)" = "" "checksum clap-log-flag 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b05213138aad9c0f820773c51e829eae4189986435aa5c115a6465b385892a5" "checksum clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bda14f5323b2b747f52908c5b7b8af7790784088bc7c2957a11695e39ad476dc" -"checksum clap_derive 0.3.0 (git+https://github.com/clap-rs/clap_derive)" = "" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum dbus 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e34c238dfb3f5881d46ad301403cd8f8ecf946e2a4e89bdd1166728b68b5008" "checksum diff 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "3c2b69f912779fbb121ceb775d74d51e915af17aaebc38d28a592843a2dd0a3a" @@ -885,7 +852,6 @@ dependencies = [ "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" "checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" -"checksum indexmap 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08173ba1e906efb6538785a8844dd496f5d34f0a2d88038e95195172fc667220" "checksum itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f58856976b776fedd95533137617a02fb25719f40e7d9b01c7043cd65474f450" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum lalrpop 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ba451f7bd819b7afc99d4cf4bdcd5a4861e64955ba9680ac70df3a50625ad6cf" diff --git a/Cargo.toml b/Cargo.toml index 7a9cbb3..e60c8dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,8 @@ lalrpop = "0.15.2" [dependencies] dbus = "0.6.2" -clap = { git = "https://github.com/kbknapp/clap-rs", branch = "v3-master" } +#clap = { git = "https://github.com/kbknapp/clap-rs", branch = "v3-master" } +clap = "*" clap-verbosity-flag = "0.2" clap-log-flag = "0.1" structopt = "0.2" diff --git a/src/main.rs b/src/main.rs index 171fe3c..8edc760 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,7 @@ extern crate failure; extern crate clap; extern crate clap_log_flag; extern crate clap_verbosity_flag; +#[macro_use] extern crate structopt; mod dbus_api; @@ -109,7 +110,17 @@ impl Filter { } } -fn main() -> Result<(), Error> { +fn main() { + match start() { + Ok(()) => (), + Err(err) => { + eprintln!("Error: {}", err); + std::process::exit(-1); + } + } +} + +fn start() -> Result<(), Error> { let args = Cli::from_args(); args.log.log_all(args.verbose.log_level())?; @@ -142,8 +153,8 @@ fn load(args: LoadCli) -> Result<(), Error> { let filter = if args.file == "-" { let stdin = io::stdin(); - let mut lock = stdin.lock(); - read_filter(&mut lock)? + let mut handle = stdin.lock(); + read_filter(&mut handle)? } else { let mut file = File::open(args.file)?; read_filter(&mut file)? diff --git a/src/parsing/equalizer_apo.lalrpop b/src/parsing/equalizer_apo.lalrpop index b1faad9..39dda67 100644 --- a/src/parsing/equalizer_apo.lalrpop +++ b/src/parsing/equalizer_apo.lalrpop @@ -6,7 +6,7 @@ grammar; pub Main: Filter = { => { - let coefficients: Vec<_> = eq.1.iter().map(|decibel| 10f64.powf(decibel / 10f64)).collect(); + let coefficients: Vec<_> = eq.1.iter().map(|decibel| 10f64.powf(decibel / 10f64).sqrt()).collect(); // TODO: add decibel_to_ratio conversion function let preamp = 10f64.powf(preamp / 10f64); Filter { preamp, frequencies: eq.0, coefficients } diff --git a/src/parsing/equalizer_apo.rs b/src/parsing/equalizer_apo.rs index 3fab396..a24cf99 100644 --- a/src/parsing/equalizer_apo.rs +++ b/src/parsing/equalizer_apo.rs @@ -1,5 +1,5 @@ // auto-generated: "lalrpop 0.15.2" -// sha256: 81b6fa5856d7887b20715c2c7f6137db1927ece087e2db9f4bf1fcd8943365c5 +// sha256: a735e8f9bd5cf5f3aac915d12b24752d366481c3952258e22871eef395f44 use ::Filter; use std::str::FromStr; #[allow(unused_extern_crates)] @@ -880,7 +880,7 @@ fn __action1< ) -> Filter { { - let coefficients: Vec<_> = eq.1.iter().map(|decibel| 10f64.powf(decibel / 10f64)).collect(); + let coefficients: Vec<_> = eq.1.iter().map(|decibel| 10f64.powf(decibel / 10f64).sqrt()).collect(); // TODO: add decibel_to_ratio conversion function let preamp = 10f64.powf(preamp / 10f64); Filter { preamp, frequencies: eq.0, coefficients } diff --git a/src/utils.rs b/src/utils.rs index 6d7ae58..66ccae4 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -46,7 +46,7 @@ pub fn send_filter(conn_sink: &ConnPath<&Connection>, filter: Filter) -> Result< Ok(()) } -pub fn read_filter(file: &mut impl io::Read) -> Result { +pub fn read_filter(file: &mut T) -> Result where T: io::Read { let mut buffer = String::new(); info!("Reading filter in GraphicEQ format from the command line"); -- cgit v1.2.3