summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--c2enc/src/main.rs4
-rw-r--r--libcodec2/src/lib.rs12
2 files changed, 12 insertions, 4 deletions
diff --git a/c2enc/src/main.rs b/c2enc/src/main.rs
index 9df5b6a..82ff52d 100644
--- a/c2enc/src/main.rs
+++ b/c2enc/src/main.rs
@@ -7,6 +7,8 @@ use std::io::prelude::*;
use std::io::Cursor;
use std::path::Path;
+use libcodec2::{Codec2, Modes};
+
struct Cli {
in_path: std::path::PathBuf,
out_path: std::path::PathBuf,
@@ -32,7 +34,7 @@ fn main() {
speech.push(i);
}
- let c = libcodec2::Codec2::new();
+ let c = Codec2::new(Modes::Mode1400);
let nsam = c.samples_per_frame();
let nbits = c.bytes_per_frame();
diff --git a/libcodec2/src/lib.rs b/libcodec2/src/lib.rs
index b909078..7bf4ea2 100644
--- a/libcodec2/src/lib.rs
+++ b/libcodec2/src/lib.rs
@@ -1,15 +1,21 @@
extern crate codec2_sys as ffi;
pub enum Modes {
+ Mode3200 = ffi::CODEC2_MODE_3200 as isize,
+ Mode2400 = ffi::CODEC2_MODE_2400 as isize,
+ Mode1600 = ffi::CODEC2_MODE_1600 as isize,
Mode1400 = ffi::CODEC2_MODE_1400 as isize,
+ Mode1300 = ffi::CODEC2_MODE_1300 as isize,
+ Mode1200 = ffi::CODEC2_MODE_1200 as isize,
+ Mode700C = ffi::CODEC2_MODE_700C as isize,
+ Mode450 = ffi::CODEC2_MODE_450 as isize,
}
pub struct Codec2(*mut ffi::CODEC2);
impl Codec2 {
- pub fn new() -> Self {
- let mode = ffi::CODEC2_MODE_1400.try_into().unwrap();
- let c = unsafe { ffi::codec2_create(mode) };
+ pub fn new(mode: Modes) -> Self {
+ let c = unsafe { ffi::codec2_create(mode as i32) };
if c.is_null() {
panic!("error")
}