diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2022-12-31 15:23:31 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2022-12-31 15:23:31 +0100 |
commit | c08d47f914da5a0f9b505dee72c4a3a6969d878d (patch) | |
tree | a6b9d05b2ceab4ab1ff8b06baf761c69526e7c48 /src/fl2k.rs | |
parent | ba3778a9d75a177ef51b99c3d641d399ffce4bd2 (diff) | |
download | fl2k_ampliphase-c08d47f914da5a0f9b505dee72c4a3a6969d878d.tar.gz fl2k_ampliphase-c08d47f914da5a0f9b505dee72c4a3a6969d878d.tar.bz2 fl2k_ampliphase-c08d47f914da5a0f9b505dee72c4a3a6969d878d.zip |
Add more fl2k functions, callback still missing
Diffstat (limited to 'src/fl2k.rs')
-rw-r--r-- | src/fl2k.rs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/fl2k.rs b/src/fl2k.rs index cfc2778..8bfc0ec 100644 --- a/src/fl2k.rs +++ b/src/fl2k.rs @@ -1,5 +1,5 @@ use std::ffi::c_int; -use fl2k_ampliphase::{fl2k_dev_t, fl2k_get_device_count, fl2k_open, fl2k_close, fl2k_stop_tx}; +use fl2k_ampliphase::{fl2k_dev_t, fl2k_get_device_count, fl2k_open, fl2k_close, fl2k_stop_tx, fl2k_set_sample_rate, fl2k_get_sample_rate, fl2k_tx_cb_t, fl2k_start_tx}; #[derive(Debug)] pub enum FL2KError { @@ -41,12 +41,27 @@ impl FL2K { } } + + pub fn set_sample_rate(&mut self, sample_rate : u32) -> Result<(), FL2KError> { + handle_return_value( unsafe { fl2k_set_sample_rate(self.device, sample_rate) }) + } + + pub fn get_sample_rate(&mut self) -> Result<u32, FL2KError> { + let sr = unsafe { fl2k_get_sample_rate(self.device) }; + if sr == 0 { Err(FL2KError::Unknown(0)) } else { Ok(sr) } + } + + pub fn start_tx(&mut self, callback : fl2k_tx_cb_t, buf_num: u32) -> Result<(), FL2KError> { + let r = unsafe { fl2k_start_tx(self.device, callback, std::ptr::null_mut(), 0) }; + handle_return_value(r) + } + pub fn stop_tx(&self) -> Result<(), FL2KError> { - handle_return_value( unsafe { fl2k_stop_tx(self.device) } )?; - Ok(()) + handle_return_value( unsafe { fl2k_stop_tx(self.device) } ) } } + impl Drop for FL2K { fn drop(&mut self) { match unsafe { |