From 7852c96c26cf526aa4d6337eecdb9df7edfd6d31 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Sun, 31 Jul 2022 08:46:13 +0300 Subject: Add modes arg in c2enc --- c2enc/src/main.rs | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'c2enc/src') diff --git a/c2enc/src/main.rs b/c2enc/src/main.rs index 82ff52d..e0cec0a 100644 --- a/c2enc/src/main.rs +++ b/c2enc/src/main.rs @@ -10,15 +10,20 @@ use std::path::Path; use libcodec2::{Codec2, Modes}; struct Cli { + bit_rate: String, in_path: std::path::PathBuf, out_path: std::path::PathBuf, } +const USAGE: &str = "Usage: c2enc "; + fn main() { - let in_path_arg = std::env::args().nth(1).expect("no input path given"); - let out_path_arg = std::env::args().nth(2).expect("no output path given"); + let bitrate_arg = std::env::args().nth(1).expect(USAGE); + let in_path_arg = std::env::args().nth(2).expect(USAGE); + let out_path_arg = std::env::args().nth(3).expect(USAGE); let args = Cli { + bit_rate: String::from(bitrate_arg), in_path: std::path::PathBuf::from(in_path_arg), out_path: std::path::PathBuf::from(out_path_arg), }; @@ -34,7 +39,19 @@ fn main() { speech.push(i); } - let c = Codec2::new(Modes::Mode1400); + let mode = match args.bit_rate.as_str() { + "3200" => Modes::Mode3200, + "2400" => Modes::Mode2400, + "1600" => Modes::Mode1600, + "1400" => Modes::Mode1400, + "1300" => Modes::Mode1300, + "1200" => Modes::Mode1200, + "700C" => Modes::Mode700C, + "450" => Modes::Mode450, + _ => Modes::Mode1400, + }; + + let c = Codec2::new(mode); let nsam = c.samples_per_frame(); let nbits = c.bytes_per_frame(); -- cgit v1.3.1