1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
/// This class can be used to take an image snapshot from a camera.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/homekit/hmcamerasnapshotcontrol?language=objc)
#[unsafe(super(HMCameraControl, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "HMCameraControl")]
pub struct HMCameraSnapshotControl;
);
#[cfg(feature = "HMCameraControl")]
unsafe impl Send for HMCameraSnapshotControl {}
#[cfg(feature = "HMCameraControl")]
unsafe impl Sync for HMCameraSnapshotControl {}
#[cfg(feature = "HMCameraControl")]
extern_conformance!(
unsafe impl NSObjectProtocol for HMCameraSnapshotControl {}
);
#[cfg(feature = "HMCameraControl")]
impl HMCameraSnapshotControl {
extern_methods!(
/// Delegate that receives updates on the camera snapshot changes.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(delegate))]
#[unsafe(method_family = none)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn HMCameraSnapshotControlDelegate>>>;
/// Setter for [`delegate`][Self::delegate].
///
/// This is a [weak property][objc2::topics::weak_property].
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(setDelegate:))]
#[unsafe(method_family = none)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn HMCameraSnapshotControlDelegate>>,
);
#[cfg(all(feature = "HMCameraSnapshot", feature = "HMCameraSource"))]
/// Represents the most recent snapshot taken from the camera.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(mostRecentSnapshot))]
#[unsafe(method_family = none)]
pub unsafe fn mostRecentSnapshot(&self) -> Option<Retained<HMCameraSnapshot>>;
/// Takes an image snapshot.
#[unsafe(method(takeSnapshot))]
#[unsafe(method_family = none)]
pub unsafe fn takeSnapshot(&self);
#[deprecated = "HMCameraSnapshotControl objects are created by their parent container objects. Directly creating them is not supported."]
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
);
}
/// Methods declared on superclass `NSObject`.
#[cfg(feature = "HMCameraControl")]
impl HMCameraSnapshotControl {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_protocol!(
/// This delegate receives updates on the camera snapshot.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/homekit/hmcamerasnapshotcontroldelegate?language=objc)
pub unsafe trait HMCameraSnapshotControlDelegate: NSObjectProtocol {
#[cfg(all(
feature = "HMCameraControl",
feature = "HMCameraSnapshot",
feature = "HMCameraSource"
))]
/// Informs the delegate that the snapshot was taken.
///
///
/// Parameter `cameraSnapshotControl`: Sender of this message.
///
///
/// Parameter `snapshot`: Snapshot will be valid if snapshot was successfully taken.
///
///
/// Parameter `error`: Error will be populated if the snapshot could not be taken.
#[optional]
#[unsafe(method(cameraSnapshotControl:didTakeSnapshot:error:))]
#[unsafe(method_family = none)]
unsafe fn cameraSnapshotControl_didTakeSnapshot_error(
&self,
camera_snapshot_control: &HMCameraSnapshotControl,
snapshot: Option<&HMCameraSnapshot>,
error: Option<&NSError>,
);
#[cfg(feature = "HMCameraControl")]
/// Informs the delegate that the mostRecentSnapshot was updated.
///
///
/// Parameter `cameraSnapshotControl`: Sender of this message.
#[optional]
#[unsafe(method(cameraSnapshotControlDidUpdateMostRecentSnapshot:))]
#[unsafe(method_family = none)]
unsafe fn cameraSnapshotControlDidUpdateMostRecentSnapshot(
&self,
camera_snapshot_control: &HMCameraSnapshotControl,
);
}
);