use crate::{ffi, Device, FakeCamera};
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "ArvFakeDevice")]
pub struct FakeDevice(Object<ffi::ArvFakeDevice, ffi::ArvFakeDeviceClass>) @extends Device;
match fn {
type_ => || ffi::arv_fake_device_get_type(),
}
}
impl FakeDevice {
#[doc(alias = "arv_fake_device_new")]
pub fn new(serial_number: &str) -> Result<FakeDevice, glib::Error> {
assert_initialized_main_thread!();
unsafe {
let mut error = std::ptr::null_mut();
let ret = ffi::arv_fake_device_new(serial_number.to_glib_none().0, &mut error);
if error.is_null() {
Ok(Device::from_glib_full(ret).unsafe_cast())
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "arv_fake_device_get_fake_camera")]
#[doc(alias = "get_fake_camera")]
pub fn fake_camera(&self) -> Option<FakeCamera> {
unsafe { from_glib_none(ffi::arv_fake_device_get_fake_camera(self.to_glib_none().0)) }
}
}
unsafe impl Send for FakeDevice {}