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);