objc2_call_kit/generated/
CXProvider.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-avf-audio")]
7use objc2_avf_audio::*;
8use objc2_foundation::*;
9
10use crate::*;
11
12#[repr(transparent)]
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
16pub struct CXCallEndedReason(pub NSInteger);
17impl CXCallEndedReason {
18 #[doc(alias = "CXCallEndedReasonFailed")]
19 pub const Failed: Self = Self(1);
20 #[doc(alias = "CXCallEndedReasonRemoteEnded")]
21 pub const RemoteEnded: Self = Self(2);
22 #[doc(alias = "CXCallEndedReasonUnanswered")]
23 pub const Unanswered: Self = Self(3);
24 #[doc(alias = "CXCallEndedReasonAnsweredElsewhere")]
25 pub const AnsweredElsewhere: Self = Self(4);
26 #[doc(alias = "CXCallEndedReasonDeclinedElsewhere")]
27 pub const DeclinedElsewhere: Self = Self(5);
28}
29
30unsafe impl Encode for CXCallEndedReason {
31 const ENCODING: Encoding = NSInteger::ENCODING;
32}
33
34unsafe impl RefEncode for CXCallEndedReason {
35 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
36}
37
38extern_protocol!(
39 pub unsafe trait CXProviderDelegate: NSObjectProtocol {
41 #[unsafe(method(providerDidReset:))]
43 #[unsafe(method_family = none)]
44 unsafe fn providerDidReset(&self, provider: &CXProvider);
45
46 #[optional]
48 #[unsafe(method(providerDidBegin:))]
49 #[unsafe(method_family = none)]
50 unsafe fn providerDidBegin(&self, provider: &CXProvider);
51
52 #[cfg(feature = "CXTransaction")]
53 #[optional]
60 #[unsafe(method(provider:executeTransaction:))]
61 #[unsafe(method_family = none)]
62 unsafe fn provider_executeTransaction(
63 &self,
64 provider: &CXProvider,
65 transaction: &CXTransaction,
66 ) -> bool;
67
68 #[cfg(all(
69 feature = "CXAction",
70 feature = "CXCallAction",
71 feature = "CXStartCallAction"
72 ))]
73 #[optional]
74 #[unsafe(method(provider:performStartCallAction:))]
75 #[unsafe(method_family = none)]
76 unsafe fn provider_performStartCallAction(
77 &self,
78 provider: &CXProvider,
79 action: &CXStartCallAction,
80 );
81
82 #[cfg(all(
83 feature = "CXAction",
84 feature = "CXAnswerCallAction",
85 feature = "CXCallAction"
86 ))]
87 #[optional]
88 #[unsafe(method(provider:performAnswerCallAction:))]
89 #[unsafe(method_family = none)]
90 unsafe fn provider_performAnswerCallAction(
91 &self,
92 provider: &CXProvider,
93 action: &CXAnswerCallAction,
94 );
95
96 #[cfg(all(
97 feature = "CXAction",
98 feature = "CXCallAction",
99 feature = "CXEndCallAction"
100 ))]
101 #[optional]
102 #[unsafe(method(provider:performEndCallAction:))]
103 #[unsafe(method_family = none)]
104 unsafe fn provider_performEndCallAction(
105 &self,
106 provider: &CXProvider,
107 action: &CXEndCallAction,
108 );
109
110 #[cfg(all(
111 feature = "CXAction",
112 feature = "CXCallAction",
113 feature = "CXSetHeldCallAction"
114 ))]
115 #[optional]
116 #[unsafe(method(provider:performSetHeldCallAction:))]
117 #[unsafe(method_family = none)]
118 unsafe fn provider_performSetHeldCallAction(
119 &self,
120 provider: &CXProvider,
121 action: &CXSetHeldCallAction,
122 );
123
124 #[cfg(all(
125 feature = "CXAction",
126 feature = "CXCallAction",
127 feature = "CXSetMutedCallAction"
128 ))]
129 #[optional]
130 #[unsafe(method(provider:performSetMutedCallAction:))]
131 #[unsafe(method_family = none)]
132 unsafe fn provider_performSetMutedCallAction(
133 &self,
134 provider: &CXProvider,
135 action: &CXSetMutedCallAction,
136 );
137
138 #[cfg(all(
139 feature = "CXAction",
140 feature = "CXCallAction",
141 feature = "CXSetGroupCallAction"
142 ))]
143 #[optional]
144 #[unsafe(method(provider:performSetGroupCallAction:))]
145 #[unsafe(method_family = none)]
146 unsafe fn provider_performSetGroupCallAction(
147 &self,
148 provider: &CXProvider,
149 action: &CXSetGroupCallAction,
150 );
151
152 #[cfg(all(
153 feature = "CXAction",
154 feature = "CXCallAction",
155 feature = "CXPlayDTMFCallAction"
156 ))]
157 #[optional]
158 #[unsafe(method(provider:performPlayDTMFCallAction:))]
159 #[unsafe(method_family = none)]
160 unsafe fn provider_performPlayDTMFCallAction(
161 &self,
162 provider: &CXProvider,
163 action: &CXPlayDTMFCallAction,
164 );
165
166 #[cfg(feature = "CXAction")]
167 #[optional]
169 #[unsafe(method(provider:timedOutPerformingAction:))]
170 #[unsafe(method_family = none)]
171 unsafe fn provider_timedOutPerformingAction(
172 &self,
173 provider: &CXProvider,
174 action: &CXAction,
175 );
176
177 #[cfg(feature = "objc2-avf-audio")]
178 #[optional]
180 #[unsafe(method(provider:didActivateAudioSession:))]
181 #[unsafe(method_family = none)]
182 unsafe fn provider_didActivateAudioSession(
183 &self,
184 provider: &CXProvider,
185 audio_session: &AVAudioSession,
186 );
187
188 #[cfg(feature = "objc2-avf-audio")]
189 #[optional]
190 #[unsafe(method(provider:didDeactivateAudioSession:))]
191 #[unsafe(method_family = none)]
192 unsafe fn provider_didDeactivateAudioSession(
193 &self,
194 provider: &CXProvider,
195 audio_session: &AVAudioSession,
196 );
197 }
198);
199
200extern_class!(
201 #[unsafe(super(NSObject))]
203 #[derive(Debug, PartialEq, Eq, Hash)]
204 pub struct CXProvider;
205);
206
207unsafe impl NSObjectProtocol for CXProvider {}
208
209impl CXProvider {
210 extern_methods!(
211 #[cfg(feature = "CXProviderConfiguration")]
212 #[unsafe(method(initWithConfiguration:))]
214 #[unsafe(method_family = init)]
215 pub unsafe fn initWithConfiguration(
216 this: Allocated<Self>,
217 configuration: &CXProviderConfiguration,
218 ) -> Retained<Self>;
219
220 #[unsafe(method(new))]
221 #[unsafe(method_family = new)]
222 pub unsafe fn new() -> Retained<Self>;
223
224 #[unsafe(method(init))]
225 #[unsafe(method_family = init)]
226 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
227
228 #[cfg(all(feature = "CXCallUpdate", feature = "block2"))]
229 #[unsafe(method(reportNewIncomingCallWithUUID:update:completion:))]
235 #[unsafe(method_family = none)]
236 pub unsafe fn reportNewIncomingCallWithUUID_update_completion(
237 &self,
238 uuid: &NSUUID,
239 update: &CXCallUpdate,
240 completion: &block2::Block<dyn Fn(*mut NSError)>,
241 );
242
243 #[cfg(feature = "CXCallUpdate")]
244 #[unsafe(method(reportCallWithUUID:updated:))]
246 #[unsafe(method_family = none)]
247 pub unsafe fn reportCallWithUUID_updated(&self, uuid: &NSUUID, update: &CXCallUpdate);
248
249 #[unsafe(method(reportCallWithUUID:endedAtDate:reason:))]
251 #[unsafe(method_family = none)]
252 pub unsafe fn reportCallWithUUID_endedAtDate_reason(
253 &self,
254 uuid: &NSUUID,
255 date_ended: Option<&NSDate>,
256 ended_reason: CXCallEndedReason,
257 );
258
259 #[unsafe(method(reportOutgoingCallWithUUID:startedConnectingAtDate:))]
261 #[unsafe(method_family = none)]
262 pub unsafe fn reportOutgoingCallWithUUID_startedConnectingAtDate(
263 &self,
264 uuid: &NSUUID,
265 date_started_connecting: Option<&NSDate>,
266 );
267
268 #[unsafe(method(reportOutgoingCallWithUUID:connectedAtDate:))]
270 #[unsafe(method_family = none)]
271 pub unsafe fn reportOutgoingCallWithUUID_connectedAtDate(
272 &self,
273 uuid: &NSUUID,
274 date_connected: Option<&NSDate>,
275 );
276
277 #[cfg(feature = "block2")]
278 #[unsafe(method(reportNewIncomingVoIPPushPayload:completion:))]
280 #[unsafe(method_family = none)]
281 pub unsafe fn reportNewIncomingVoIPPushPayload_completion(
282 dictionary_payload: &NSDictionary,
283 completion: Option<&block2::Block<dyn Fn(*mut NSError)>>,
284 );
285
286 #[cfg(feature = "CXProviderConfiguration")]
287 #[unsafe(method(configuration))]
289 #[unsafe(method_family = none)]
290 pub unsafe fn configuration(&self) -> Retained<CXProviderConfiguration>;
291
292 #[cfg(feature = "CXProviderConfiguration")]
293 #[unsafe(method(setConfiguration:))]
295 #[unsafe(method_family = none)]
296 pub unsafe fn setConfiguration(&self, configuration: &CXProviderConfiguration);
297
298 #[unsafe(method(invalidate))]
300 #[unsafe(method_family = none)]
301 pub unsafe fn invalidate(&self);
302
303 #[cfg(feature = "CXTransaction")]
304 #[unsafe(method(pendingTransactions))]
306 #[unsafe(method_family = none)]
307 pub unsafe fn pendingTransactions(&self) -> Retained<NSArray<CXTransaction>>;
308
309 #[cfg(all(feature = "CXAction", feature = "CXCallAction"))]
310 #[unsafe(method(pendingCallActionsOfClass:withCallUUID:))]
312 #[unsafe(method_family = none)]
313 pub unsafe fn pendingCallActionsOfClass_withCallUUID(
314 &self,
315 call_action_class: &AnyClass,
316 call_uuid: &NSUUID,
317 ) -> Retained<NSArray<CXCallAction>>;
318 );
319}