use glib::{translate::ToGlibPtr, wrapper};
use crate::FpDevice;
wrapper! {
pub struct FpContext(Object<libfprint_sys::FpContext, libfprint_sys::FpContextClass>);
match fn {
type_ => || libfprint_sys::fp_context_get_type() as usize,
}
}
impl FpContext {
#[cfg(not(doctest))]
pub fn new() -> Self {
unsafe { glib::translate::from_glib_none(libfprint_sys::fp_context_new()) }
}
#[cfg(not(doctest))]
pub fn devices(&self) -> Vec<FpDevice> {
use glib::translate::FromGlibPtrContainer;
unsafe {
let devs = libfprint_sys::fp_context_get_devices(self.to_glib_none().0);
let devs = devs.cast::<glib::ffi::GPtrArray>();
FromGlibPtrContainer::from_glib_none(devs)
}
}
pub fn enumerate(&self) {
unsafe {
libfprint_sys::fp_context_enumerate(self.to_glib_none().0);
}
}
}
impl Default for FpContext {
fn default() -> Self {
Self::new()
}
}