use super::device::OBDeviceList;
use super::{OBError, drop_ob_object, orb};
pub struct OBContext {
inner: *mut orb::ob_context,
}
drop_ob_object!(OBContext, ob_delete_context);
impl OBContext {
pub fn new() -> Result<Self, OBError> {
let mut err_ptr = std::ptr::null_mut();
let context = unsafe { orb::ob_create_context(&mut err_ptr) };
OBError::consume(err_ptr)?;
Ok(OBContext { inner: context })
}
pub fn query_device_list(&self) -> Result<OBDeviceList, OBError> {
let mut err_ptr = std::ptr::null_mut();
let device_list = unsafe { orb::ob_query_device_list(self.inner, &mut err_ptr) };
OBError::consume(err_ptr)?;
Ok(OBDeviceList::new(device_list))
}
}