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