objc2_core_motion/generated/
CMHeadphoneActivityManager.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmheadphoneactivitystatus?language=objc)
11// NS_ENUM
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct CMHeadphoneActivityStatus(pub NSInteger);
15impl CMHeadphoneActivityStatus {
16    #[doc(alias = "CMHeadphoneActivityStatusDisconnected")]
17    pub const Disconnected: Self = Self(0);
18    #[doc(alias = "CMHeadphoneActivityStatusConnected")]
19    pub const Connected: Self = Self(1);
20}
21
22unsafe impl Encode for CMHeadphoneActivityStatus {
23    const ENCODING: Encoding = NSInteger::ENCODING;
24}
25
26unsafe impl RefEncode for CMHeadphoneActivityStatus {
27    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
28}
29
30/// [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmheadphoneactivitystatushandler?language=objc)
31#[cfg(feature = "block2")]
32pub type CMHeadphoneActivityStatusHandler =
33    *mut block2::DynBlock<dyn Fn(CMHeadphoneActivityStatus, *mut NSError)>;
34
35/// [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmheadphoneactivityhandler?language=objc)
36#[cfg(all(
37    feature = "CMLogItem",
38    feature = "CMMotionActivity",
39    feature = "block2"
40))]
41pub type CMHeadphoneActivityHandler =
42    *mut block2::DynBlock<dyn Fn(*mut CMMotionActivity, *mut NSError)>;
43
44extern_class!(
45    /// [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmheadphoneactivitymanager?language=objc)
46    #[unsafe(super(NSObject))]
47    #[derive(Debug, PartialEq, Eq, Hash)]
48    pub struct CMHeadphoneActivityManager;
49);
50
51extern_conformance!(
52    unsafe impl NSObjectProtocol for CMHeadphoneActivityManager {}
53);
54
55impl CMHeadphoneActivityManager {
56    extern_methods!(
57        #[cfg(feature = "CMAuthorization")]
58        #[unsafe(method(authorizationStatus))]
59        #[unsafe(method_family = none)]
60        pub unsafe fn authorizationStatus() -> CMAuthorizationStatus;
61
62        #[unsafe(method(isActivityAvailable))]
63        #[unsafe(method_family = none)]
64        pub unsafe fn isActivityAvailable(&self) -> bool;
65
66        #[unsafe(method(isActivityActive))]
67        #[unsafe(method_family = none)]
68        pub unsafe fn isActivityActive(&self) -> bool;
69
70        #[unsafe(method(isStatusAvailable))]
71        #[unsafe(method_family = none)]
72        pub unsafe fn isStatusAvailable(&self) -> bool;
73
74        #[unsafe(method(isStatusActive))]
75        #[unsafe(method_family = none)]
76        pub unsafe fn isStatusActive(&self) -> bool;
77
78        #[cfg(all(
79            feature = "CMLogItem",
80            feature = "CMMotionActivity",
81            feature = "block2"
82        ))]
83        #[unsafe(method(startActivityUpdatesToQueue:withHandler:))]
84        #[unsafe(method_family = none)]
85        pub unsafe fn startActivityUpdatesToQueue_withHandler(
86            &self,
87            queue: &NSOperationQueue,
88            handler: CMHeadphoneActivityHandler,
89        );
90
91        #[unsafe(method(stopActivityUpdates))]
92        #[unsafe(method_family = none)]
93        pub unsafe fn stopActivityUpdates(&self);
94
95        #[cfg(feature = "block2")]
96        #[unsafe(method(startStatusUpdatesToQueue:withHandler:))]
97        #[unsafe(method_family = none)]
98        pub unsafe fn startStatusUpdatesToQueue_withHandler(
99            &self,
100            queue: &NSOperationQueue,
101            handler: CMHeadphoneActivityStatusHandler,
102        );
103
104        #[unsafe(method(stopStatusUpdates))]
105        #[unsafe(method_family = none)]
106        pub unsafe fn stopStatusUpdates(&self);
107    );
108}
109
110/// Methods declared on superclass `NSObject`.
111impl CMHeadphoneActivityManager {
112    extern_methods!(
113        #[unsafe(method(init))]
114        #[unsafe(method_family = init)]
115        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
116
117        #[unsafe(method(new))]
118        #[unsafe(method_family = new)]
119        pub unsafe fn new() -> Retained<Self>;
120    );
121}