#[cxx::bridge(namespace = "nuitrack_bridge::hand_tracker")]
pub mod ffi {
#[namespace = "tdv::nuitrack"] unsafe extern "C++" {
type HandTracker;
type HandData = crate::nuitrack_bridge::types::hand_data::ffi::HandData;
}
unsafe extern "C++" {
include!("nuitrack_bridge/modules/hand_tracker.h");
pub type c_void;
#[cxx_name = "createHandTracker"]
pub fn create_hand_tracker() -> Result<SharedPtr<HandTracker>>;
#[cxx_name = "connectOnUpdateForAsync"]
pub unsafe fn connect_on_hand_frame_async(
tracker: &SharedPtr<HandTracker>,
hand_frame_sender: *mut c_void,
) -> Result<u64>;
#[cxx_name = "disconnectOnUpdate"]
pub fn disconnect_on_hand_frame(
tracker: &SharedPtr<HandTracker>,
handler_id: u64,
) -> Result<()>;
#[cxx_name = "getData"]
pub fn data(tracker: &SharedPtr<HandTracker>) -> Result<SharedPtr<HandData>>;
#[cxx_name = "getProcessingTime"]
pub fn processing_time(tracker: &SharedPtr<HandTracker>) -> Result<f32>;
#[cxx_name = "canUpdate"]
pub fn can_update(tracker: &SharedPtr<HandTracker>) -> Result<bool>;
#[cxx_name = "getTrackerTimestamp"]
pub fn tracker_timestamp(tracker: &SharedPtr<HandTracker>) -> Result<u64>;
}
}
unsafe impl Send for ffi::HandTracker {}
unsafe impl Sync for ffi::HandTracker {}