use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CMBatchedSensorManager;
);
extern_conformance!(
unsafe impl NSObjectProtocol for CMBatchedSensorManager {}
);
impl CMBatchedSensorManager {
extern_methods!(
#[cfg(feature = "CMAuthorization")]
#[unsafe(method(authorizationStatus))]
#[unsafe(method_family = none)]
pub unsafe fn authorizationStatus() -> CMAuthorizationStatus;
#[unsafe(method(isAccelerometerSupported))]
#[unsafe(method_family = none)]
pub unsafe fn isAccelerometerSupported() -> bool;
#[unsafe(method(isAccelerometerActive))]
#[unsafe(method_family = none)]
pub unsafe fn isAccelerometerActive(&self) -> bool;
#[unsafe(method(accelerometerDataFrequency))]
#[unsafe(method_family = none)]
pub unsafe fn accelerometerDataFrequency(&self) -> NSInteger;
#[cfg(all(feature = "CMAccelerometer", feature = "CMLogItem"))]
#[unsafe(method(accelerometerBatch))]
#[unsafe(method_family = none)]
pub unsafe fn accelerometerBatch(&self) -> Option<Retained<NSArray<CMAccelerometerData>>>;
#[unsafe(method(startAccelerometerUpdates))]
#[unsafe(method_family = none)]
pub unsafe fn startAccelerometerUpdates(&self);
#[cfg(all(feature = "CMAccelerometer", feature = "CMLogItem", feature = "block2"))]
#[unsafe(method(startAccelerometerUpdatesWithHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn startAccelerometerUpdatesWithHandler(
&self,
handler: &block2::DynBlock<dyn Fn(*mut NSArray<CMAccelerometerData>, *mut NSError)>,
);
#[unsafe(method(stopAccelerometerUpdates))]
#[unsafe(method_family = none)]
pub unsafe fn stopAccelerometerUpdates(&self);
#[unsafe(method(isDeviceMotionSupported))]
#[unsafe(method_family = none)]
pub unsafe fn isDeviceMotionSupported() -> bool;
#[unsafe(method(deviceMotionDataFrequency))]
#[unsafe(method_family = none)]
pub unsafe fn deviceMotionDataFrequency(&self) -> NSInteger;
#[unsafe(method(isDeviceMotionActive))]
#[unsafe(method_family = none)]
pub unsafe fn isDeviceMotionActive(&self) -> bool;
#[cfg(all(feature = "CMDeviceMotion", feature = "CMLogItem"))]
#[unsafe(method(deviceMotionBatch))]
#[unsafe(method_family = none)]
pub unsafe fn deviceMotionBatch(&self) -> Option<Retained<NSArray<CMDeviceMotion>>>;
#[unsafe(method(startDeviceMotionUpdates))]
#[unsafe(method_family = none)]
pub unsafe fn startDeviceMotionUpdates(&self);
#[cfg(all(feature = "CMDeviceMotion", feature = "CMLogItem", feature = "block2"))]
#[unsafe(method(startDeviceMotionUpdatesWithHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn startDeviceMotionUpdatesWithHandler(
&self,
handler: &block2::DynBlock<dyn Fn(*mut NSArray<CMDeviceMotion>, *mut NSError)>,
);
#[unsafe(method(stopDeviceMotionUpdates))]
#[unsafe(method_family = none)]
pub unsafe fn stopDeviceMotionUpdates(&self);
);
}
impl CMBatchedSensorManager {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}