objc2_core_motion/generated/
CMDeviceMotion.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct CMDeviceMotionSensorLocation(pub NSInteger);
15impl CMDeviceMotionSensorLocation {
16 #[doc(alias = "CMDeviceMotionSensorLocationDefault")]
17 pub const Default: Self = Self(0);
18 #[doc(alias = "CMDeviceMotionSensorLocationHeadphoneLeft")]
19 pub const HeadphoneLeft: Self = Self(1);
20 #[doc(alias = "CMDeviceMotionSensorLocationHeadphoneRight")]
21 pub const HeadphoneRight: Self = Self(2);
22}
23
24unsafe impl Encode for CMDeviceMotionSensorLocation {
25 const ENCODING: Encoding = NSInteger::ENCODING;
26}
27
28unsafe impl RefEncode for CMDeviceMotionSensorLocation {
29 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
30}
31
32#[repr(transparent)]
35#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
36pub struct CMMagneticFieldCalibrationAccuracy(pub c_int);
37impl CMMagneticFieldCalibrationAccuracy {
38 #[doc(alias = "CMMagneticFieldCalibrationAccuracyUncalibrated")]
39 pub const Uncalibrated: Self = Self(-1);
40 #[doc(alias = "CMMagneticFieldCalibrationAccuracyLow")]
41 pub const Low: Self = Self(0);
42 #[doc(alias = "CMMagneticFieldCalibrationAccuracyMedium")]
43 pub const Medium: Self = Self(1);
44 #[doc(alias = "CMMagneticFieldCalibrationAccuracyHigh")]
45 pub const High: Self = Self(2);
46}
47
48unsafe impl Encode for CMMagneticFieldCalibrationAccuracy {
49 const ENCODING: Encoding = c_int::ENCODING;
50}
51
52unsafe impl RefEncode for CMMagneticFieldCalibrationAccuracy {
53 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
54}
55
56#[cfg(feature = "CMMagnetometer")]
58#[repr(C)]
59#[derive(Clone, Copy, Debug, PartialEq)]
60pub struct CMCalibratedMagneticField {
61 pub field: CMMagneticField,
62 pub accuracy: CMMagneticFieldCalibrationAccuracy,
63}
64
65#[cfg(feature = "CMMagnetometer")]
66unsafe impl Encode for CMCalibratedMagneticField {
67 const ENCODING: Encoding = Encoding::Struct(
68 "?",
69 &[
70 <CMMagneticField>::ENCODING,
71 <CMMagneticFieldCalibrationAccuracy>::ENCODING,
72 ],
73 );
74}
75
76#[cfg(feature = "CMMagnetometer")]
77unsafe impl RefEncode for CMCalibratedMagneticField {
78 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
79}
80
81extern_class!(
82 #[unsafe(super(CMLogItem, NSObject))]
84 #[derive(Debug, PartialEq, Eq, Hash)]
85 #[cfg(feature = "CMLogItem")]
86 pub struct CMDeviceMotion;
87);
88
89#[cfg(feature = "CMLogItem")]
90extern_conformance!(
91 unsafe impl NSCoding for CMDeviceMotion {}
92);
93
94#[cfg(feature = "CMLogItem")]
95extern_conformance!(
96 unsafe impl NSCopying for CMDeviceMotion {}
97);
98
99#[cfg(feature = "CMLogItem")]
100unsafe impl CopyingHelper for CMDeviceMotion {
101 type Result = Self;
102}
103
104#[cfg(feature = "CMLogItem")]
105extern_conformance!(
106 unsafe impl NSObjectProtocol for CMDeviceMotion {}
107);
108
109#[cfg(feature = "CMLogItem")]
110extern_conformance!(
111 unsafe impl NSSecureCoding for CMDeviceMotion {}
112);
113
114#[cfg(feature = "CMLogItem")]
115impl CMDeviceMotion {
116 extern_methods!(
117 #[cfg(feature = "CMAttitude")]
118 #[unsafe(method(attitude))]
119 #[unsafe(method_family = none)]
120 pub unsafe fn attitude(&self) -> Retained<CMAttitude>;
121
122 #[cfg(feature = "CMGyro")]
123 #[unsafe(method(rotationRate))]
124 #[unsafe(method_family = none)]
125 pub unsafe fn rotationRate(&self) -> CMRotationRate;
126
127 #[cfg(feature = "CMAccelerometer")]
128 #[unsafe(method(gravity))]
129 #[unsafe(method_family = none)]
130 pub unsafe fn gravity(&self) -> CMAcceleration;
131
132 #[cfg(feature = "CMAccelerometer")]
133 #[unsafe(method(userAcceleration))]
134 #[unsafe(method_family = none)]
135 pub unsafe fn userAcceleration(&self) -> CMAcceleration;
136
137 #[cfg(feature = "CMMagnetometer")]
138 #[unsafe(method(magneticField))]
139 #[unsafe(method_family = none)]
140 pub unsafe fn magneticField(&self) -> CMCalibratedMagneticField;
141
142 #[unsafe(method(heading))]
143 #[unsafe(method_family = none)]
144 pub unsafe fn heading(&self) -> c_double;
145
146 #[unsafe(method(sensorLocation))]
147 #[unsafe(method_family = none)]
148 pub unsafe fn sensorLocation(&self) -> CMDeviceMotionSensorLocation;
149 );
150}
151
152#[cfg(feature = "CMLogItem")]
154impl CMDeviceMotion {
155 extern_methods!(
156 #[unsafe(method(init))]
157 #[unsafe(method_family = init)]
158 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
159
160 #[unsafe(method(new))]
161 #[unsafe(method_family = new)]
162 pub unsafe fn new() -> Retained<Self>;
163 );
164}