objc2_external_accessory/generated/EAWiFiUnconfiguredAccessoryBrowser.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/// Represents the current state of a EAWiFiUnconfiguredAccessoryBrowser.
11///
12/// See also [Apple's documentation](https://developer.apple.com/documentation/externalaccessory/eawifiunconfiguredaccessorybrowserstate?language=objc)
13// NS_ENUM
14#[repr(transparent)]
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
16pub struct EAWiFiUnconfiguredAccessoryBrowserState(pub NSInteger);
17impl EAWiFiUnconfiguredAccessoryBrowserState {
18 #[doc(alias = "EAWiFiUnconfiguredAccessoryBrowserStateWiFiUnavailable")]
19 pub const WiFiUnavailable: Self = Self(0);
20 #[doc(alias = "EAWiFiUnconfiguredAccessoryBrowserStateStopped")]
21 pub const Stopped: Self = Self(1);
22 #[doc(alias = "EAWiFiUnconfiguredAccessoryBrowserStateSearching")]
23 pub const Searching: Self = Self(2);
24 #[doc(alias = "EAWiFiUnconfiguredAccessoryBrowserStateConfiguring")]
25 pub const Configuring: Self = Self(3);
26}
27
28unsafe impl Encode for EAWiFiUnconfiguredAccessoryBrowserState {
29 const ENCODING: Encoding = NSInteger::ENCODING;
30}
31
32unsafe impl RefEncode for EAWiFiUnconfiguredAccessoryBrowserState {
33 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
34}
35
36/// Represents the state of an EAWiFiUnconfiguredAccessory configuration process.
37///
38/// See also [Apple's documentation](https://developer.apple.com/documentation/externalaccessory/eawifiunconfiguredaccessoryconfigurationstatus?language=objc)
39// NS_ENUM
40#[repr(transparent)]
41#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
42pub struct EAWiFiUnconfiguredAccessoryConfigurationStatus(pub NSInteger);
43impl EAWiFiUnconfiguredAccessoryConfigurationStatus {
44 #[doc(alias = "EAWiFiUnconfiguredAccessoryConfigurationStatusSuccess")]
45 pub const Success: Self = Self(0);
46 #[doc(alias = "EAWiFiUnconfiguredAccessoryConfigurationStatusUserCancelledConfiguration")]
47 pub const UserCancelledConfiguration: Self = Self(1);
48 #[doc(alias = "EAWiFiUnconfiguredAccessoryConfigurationStatusFailed")]
49 pub const Failed: Self = Self(2);
50}
51
52unsafe impl Encode for EAWiFiUnconfiguredAccessoryConfigurationStatus {
53 const ENCODING: Encoding = NSInteger::ENCODING;
54}
55
56unsafe impl RefEncode for EAWiFiUnconfiguredAccessoryConfigurationStatus {
57 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
58}
59
60extern_class!(
61 /// Interface for browsing unconfigured accessories
62 ///
63 ///
64 /// This class brokers access to the MFi Wireless Accessory Configuration (WAC) process.
65 /// This browser enables the application to scan for unconfigured accessories,
66 /// connect them to the user's Wi-Fi infrastructure and configure attributes of
67 /// the accessory.
68 ///
69 /// See also [Apple's documentation](https://developer.apple.com/documentation/externalaccessory/eawifiunconfiguredaccessorybrowser?language=objc)
70 #[unsafe(super(NSObject))]
71 #[derive(Debug, PartialEq, Eq, Hash)]
72 pub struct EAWiFiUnconfiguredAccessoryBrowser;
73);
74
75unsafe impl NSObjectProtocol for EAWiFiUnconfiguredAccessoryBrowser {}
76
77impl EAWiFiUnconfiguredAccessoryBrowser {
78 extern_methods!(
79 /// The delegate object that will receive the browser events.
80 #[unsafe(method(delegate))]
81 #[unsafe(method_family = none)]
82 pub unsafe fn delegate(
83 &self,
84 ) -> Option<Retained<ProtocolObject<dyn EAWiFiUnconfiguredAccessoryBrowserDelegate>>>;
85
86 /// This is a [weak property][objc2::topics::weak_property].
87 /// Setter for [`delegate`][Self::delegate].
88 #[unsafe(method(setDelegate:))]
89 #[unsafe(method_family = none)]
90 pub unsafe fn setDelegate(
91 &self,
92 delegate: Option<&ProtocolObject<dyn EAWiFiUnconfiguredAccessoryBrowserDelegate>>,
93 );
94
95 #[cfg(feature = "EAWiFiUnconfiguredAccessory")]
96 /// The set of discovered unconfigured accessories described by EAWiFiUnconfiguredAccessory objects.
97 /// This snapshot will only include objects matching the filter predicate defined when starting the search.
98 #[unsafe(method(unconfiguredAccessories))]
99 #[unsafe(method_family = none)]
100 pub unsafe fn unconfiguredAccessories(
101 &self,
102 ) -> Retained<NSSet<EAWiFiUnconfiguredAccessory>>;
103
104 /// Start the search for unconfigured accessories
105 ///
106 ///
107 /// Starts a Wi-Fi scan for unconfigured accessories. This power and resource intensive process and must
108 /// only be used when actively searching for accessories. Scans should be stopped immediately when the
109 /// desired accessories have been located.
110 ///
111 ///
112 /// Parameter `predicate`: The desired filter for unconfigured accessory results conforming to the EAWiFiUnconfiguredAccessory protocol.
113 #[unsafe(method(startSearchingForUnconfiguredAccessoriesMatchingPredicate:))]
114 #[unsafe(method_family = none)]
115 pub unsafe fn startSearchingForUnconfiguredAccessoriesMatchingPredicate(
116 &self,
117 predicate: Option<&NSPredicate>,
118 );
119
120 /// Stop the search for unconfigured MFi Wireless Accessory Configuration accessories
121 #[unsafe(method(stopSearchingForUnconfiguredAccessories))]
122 #[unsafe(method_family = none)]
123 pub unsafe fn stopSearchingForUnconfiguredAccessories(&self);
124 );
125}
126
127/// Methods declared on superclass `NSObject`.
128impl EAWiFiUnconfiguredAccessoryBrowser {
129 extern_methods!(
130 #[unsafe(method(init))]
131 #[unsafe(method_family = init)]
132 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
133
134 #[unsafe(method(new))]
135 #[unsafe(method_family = new)]
136 pub unsafe fn new() -> Retained<Self>;
137 );
138}
139
140extern_protocol!(
141 /// The delegate of a EAWiFiUnconfiguredAccessoryBrowser object must adopt the
142 /// EAWiFiUnconfiguredAccessoryBrowserDelegate protocol. The required
143 /// callbacks keep the delegate informed of the state of the search and configuration processes.
144 ///
145 /// See also [Apple's documentation](https://developer.apple.com/documentation/externalaccessory/eawifiunconfiguredaccessorybrowserdelegate?language=objc)
146 pub unsafe trait EAWiFiUnconfiguredAccessoryBrowserDelegate: NSObjectProtocol {
147 /// Invoked whenever the EAWiFiUnconfiguredAccessoryBrowser's state has changed.
148 ///
149 ///
150 /// Parameter `browser`: The EAWiFiUnconfiguredAccessoryBrowser instance generating the event.
151 ///
152 /// Parameter `state`: The current state of the EAWiFiUnconfiguredAccessoryBrowser.
153 #[unsafe(method(accessoryBrowser:didUpdateState:))]
154 #[unsafe(method_family = none)]
155 unsafe fn accessoryBrowser_didUpdateState(
156 &self,
157 browser: &EAWiFiUnconfiguredAccessoryBrowser,
158 state: EAWiFiUnconfiguredAccessoryBrowserState,
159 );
160
161 #[cfg(feature = "EAWiFiUnconfiguredAccessory")]
162 /// Invoked whenever the EAWiFiUnconfiguredAccessoryBrowser has found new unconfigured accessories that match
163 /// the filter predicate defined when starting the search.
164 ///
165 ///
166 /// Parameter `browser`: The EAWiFiUnconfiguredAccessoryBrowser instance generating the event.
167 ///
168 /// Parameter `accessories`: The set of EAWiFiUnconfiguredAccessory objects that have been found since the last update.
169 #[unsafe(method(accessoryBrowser:didFindUnconfiguredAccessories:))]
170 #[unsafe(method_family = none)]
171 unsafe fn accessoryBrowser_didFindUnconfiguredAccessories(
172 &self,
173 browser: &EAWiFiUnconfiguredAccessoryBrowser,
174 accessories: &NSSet<EAWiFiUnconfiguredAccessory>,
175 );
176
177 #[cfg(feature = "EAWiFiUnconfiguredAccessory")]
178 /// Invoked whenever the EAWiFiUnconfiguredAccessoryBrowser has removed unconfigured accessories from the scan results
179 /// that match the filter predicate defined when starting the search.
180 ///
181 ///
182 /// Parameter `browser`: The EAWiFiUnconfiguredAccessoryBrowser instance generating the event.
183 ///
184 /// Parameter `accessories`: The set of EAWiFiUnconfiguredAccessory objects that have been removed from the scan results since the last update.
185 #[unsafe(method(accessoryBrowser:didRemoveUnconfiguredAccessories:))]
186 #[unsafe(method_family = none)]
187 unsafe fn accessoryBrowser_didRemoveUnconfiguredAccessories(
188 &self,
189 browser: &EAWiFiUnconfiguredAccessoryBrowser,
190 accessories: &NSSet<EAWiFiUnconfiguredAccessory>,
191 );
192
193 #[cfg(feature = "EAWiFiUnconfiguredAccessory")]
194 /// Invoked whenever the EAWiFiUnconfiguredAccessoryBrowser has completed configuring the selected EAWiFiUnconfiguredAccessory.
195 ///
196 ///
197 /// Parameter `browser`: The EAWiFiUnconfiguredAccessoryBrowser instance generating the event.
198 ///
199 /// Parameter `accessory`: The EAWiFiUnconfiguredAccessory whose configuration process has completed.
200 ///
201 /// Parameter `status`: The status of the configuration process that has completed.
202 #[unsafe(method(accessoryBrowser:didFinishConfiguringAccessory:withStatus:))]
203 #[unsafe(method_family = none)]
204 unsafe fn accessoryBrowser_didFinishConfiguringAccessory_withStatus(
205 &self,
206 browser: &EAWiFiUnconfiguredAccessoryBrowser,
207 accessory: &EAWiFiUnconfiguredAccessory,
208 status: EAWiFiUnconfiguredAccessoryConfigurationStatus,
209 );
210 }
211);