From 7793870f59a394174f7566b19f2bcbf3a014d0b8 Mon Sep 17 00:00:00 2001 From: Greg Shuflin Date: Mon, 1 Mar 2021 02:54:19 -0800 Subject: [PATCH] Radio table in rust --- build.rs | 22 +++++++++++----------- src/radio.rs | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/build.rs b/build.rs index 2b9f2b6..7805844 100644 --- a/build.rs +++ b/build.rs @@ -21,20 +21,20 @@ fn main() { .whitelist_type("radio_device_t") .whitelist_var("radio_md380") .whitelist_var("radio_md390") - .whitelist_var("radio_md201") .whitelist_var("radio_uv380") .whitelist_var("radio_uv390") - .whitelist_var("radio_md960") - .whitelist_var("radio_d900;") - .whitelist_var("radio_dp8") - .whitelist_var("radio_rt27d") - .whitelist_var("radio_rd5") - .whitelist_var("radio_gd77;") - .whitelist_var("radio_dm180") - .whitelist_var("radio_d868u") - .whitelist_var("radio_d878u") - .whitelist_var("radio_dmr6x") + .whitelist_var("radio_md2017") + .whitelist_var("radio_md9600") + .whitelist_var("radio_rd5r") + .whitelist_var("radio_dm1801") .whitelist_var("radio_rt84") + .whitelist_var("radio_gd77") + .whitelist_var("radio_d868uv") + .whitelist_var("radio_d878uv") + .whitelist_var("radio_dmr6x2") + .whitelist_var("radio_d900") + .whitelist_var("radio_dp880") + .whitelist_var("radio_rt27d") .blacklist_type("FILE") // Finish the builder and generate the bindings. .generate() diff --git a/src/radio.rs b/src/radio.rs index dc3a5f5..ba7440a 100644 --- a/src/radio.rs +++ b/src/radio.rs @@ -16,6 +16,28 @@ pub struct radio_tab_t { device: *mut radio_device_t, } + +static mut RADIO_TABLE: [(&'static str, &'static radio_device_t); 16] = unsafe { + [ + ("DR780", &radio_md380), // TYT MD-380, Retevis RT3, RT8 + ("MD390", &radio_md390), // TYT MD-390 + ("MD-UV380", &radio_uv380), // TYT MD-UV380 + ("MD-UV390", &radio_uv390), // TYT MD-UV390, Retevis RT3S + ("2017", &radio_md2017), // TYT MD-2017, Retevis RT82 + ("MD9600", &radio_md9600), // TYT MD-9600 + ("BF-5R", &radio_rd5r), // Baofeng RD-5R, TD-5R + ("1801", &radio_dm1801), // Baofeng DM-1801 + ("DM-1701", &radio_rt84), // Baofeng DM-1701, Retevis RT84 + ("MD-760P", &radio_gd77), // Radioddity GD-77, version 3.1.1 and later + ("D868UVE", &radio_d868uv), // Anytone AT-D868UV + ("D878UV", &radio_d878uv), // Anytone AT-D878UV + ("D6X2UV", &radio_dmr6x2), // BTECH DMR-6x2 + ("ZD3688", &radio_d900), // Zastone D900 + ("TP660", &radio_dp880), // Zastone DP880 + ("ZN><:", &radio_rt27d), // Radtel RT-27D + ] +}; + extern { fn set_active_device(device: *const radio_device_t);