objc2_photos/generated/
PHLivePhotoEditingContext.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8#[cfg(feature = "objc2-core-image")]
9use objc2_core_image::*;
10#[cfg(feature = "objc2-core-media")]
11use objc2_core_media::*;
12use objc2_foundation::*;
13#[cfg(feature = "objc2-image-io")]
14use objc2_image_io::*;
15
16use crate::*;
17
18#[cfg(all(feature = "block2", feature = "objc2-core-image"))]
22pub type PHLivePhotoFrameProcessingBlock = *mut block2::DynBlock<
23 dyn Fn(NonNull<ProtocolObject<dyn PHLivePhotoFrame>>, NonNull<*mut NSError>) -> *mut CIImage,
24>;
25
26pub type PHLivePhotoEditingOption = NSString;
29
30extern_class!(
31 #[unsafe(super(NSObject))]
33 #[derive(Debug, PartialEq, Eq, Hash)]
34 pub struct PHLivePhotoEditingContext;
35);
36
37extern_conformance!(
38 unsafe impl NSObjectProtocol for PHLivePhotoEditingContext {}
39);
40
41impl PHLivePhotoEditingContext {
42 extern_methods!(
43 #[cfg(feature = "PHContentEditingInput")]
44 #[unsafe(method(initWithLivePhotoEditingInput:))]
47 #[unsafe(method_family = init)]
48 pub unsafe fn initWithLivePhotoEditingInput(
49 this: Allocated<Self>,
50 live_photo_input: &PHContentEditingInput,
51 ) -> Option<Retained<Self>>;
52
53 #[unsafe(method(init))]
54 #[unsafe(method_family = init)]
55 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
56
57 #[cfg(feature = "objc2-core-image")]
58 #[unsafe(method(fullSizeImage))]
60 #[unsafe(method_family = none)]
61 pub unsafe fn fullSizeImage(&self) -> Retained<CIImage>;
62
63 #[cfg(feature = "objc2-core-media")]
64 #[unsafe(method(duration))]
66 #[unsafe(method_family = none)]
67 pub unsafe fn duration(&self) -> CMTime;
68
69 #[cfg(feature = "objc2-core-media")]
70 #[unsafe(method(photoTime))]
72 #[unsafe(method_family = none)]
73 pub unsafe fn photoTime(&self) -> CMTime;
74
75 #[cfg(all(feature = "block2", feature = "objc2-core-image"))]
76 #[unsafe(method(frameProcessor))]
84 #[unsafe(method_family = none)]
85 pub unsafe fn frameProcessor(&self) -> PHLivePhotoFrameProcessingBlock;
86
87 #[cfg(all(feature = "block2", feature = "objc2-core-image"))]
88 #[unsafe(method(setFrameProcessor:))]
96 #[unsafe(method_family = none)]
97 pub unsafe fn setFrameProcessor(&self, frame_processor: PHLivePhotoFrameProcessingBlock);
98
99 #[unsafe(method(audioVolume))]
103 #[unsafe(method_family = none)]
104 pub unsafe fn audioVolume(&self) -> c_float;
105
106 #[unsafe(method(setAudioVolume:))]
108 #[unsafe(method_family = none)]
109 pub unsafe fn setAudioVolume(&self, audio_volume: c_float);
110
111 #[cfg(feature = "objc2-image-io")]
112 #[unsafe(method(orientation))]
113 #[unsafe(method_family = none)]
114 pub unsafe fn orientation(&self) -> CGImagePropertyOrientation;
115
116 #[cfg(all(
117 feature = "PHLivePhoto",
118 feature = "block2",
119 feature = "objc2-core-foundation"
120 ))]
121 #[unsafe(method(prepareLivePhotoForPlaybackWithTargetSize:options:completionHandler:))]
128 #[unsafe(method_family = none)]
129 pub unsafe fn prepareLivePhotoForPlaybackWithTargetSize_options_completionHandler(
130 &self,
131 target_size: CGSize,
132 options: Option<&NSDictionary<NSString, AnyObject>>,
133 handler: &block2::DynBlock<dyn Fn(*mut PHLivePhoto, *mut NSError)>,
134 );
135
136 #[cfg(all(feature = "PHContentEditingOutput", feature = "block2"))]
137 #[unsafe(method(saveLivePhotoToOutput:options:completionHandler:))]
144 #[unsafe(method_family = none)]
145 pub unsafe fn saveLivePhotoToOutput_options_completionHandler(
146 &self,
147 output: &PHContentEditingOutput,
148 options: Option<&NSDictionary<NSString, AnyObject>>,
149 handler: &block2::DynBlock<dyn Fn(Bool, *mut NSError)>,
150 );
151
152 #[unsafe(method(cancel))]
156 #[unsafe(method_family = none)]
157 pub unsafe fn cancel(&self);
158 );
159}
160
161impl PHLivePhotoEditingContext {
163 extern_methods!(
164 #[unsafe(method(new))]
165 #[unsafe(method_family = new)]
166 pub unsafe fn new() -> Retained<Self>;
167 );
168}
169
170#[repr(transparent)]
175#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
176pub struct PHLivePhotoFrameType(pub NSInteger);
177impl PHLivePhotoFrameType {
178 #[doc(alias = "PHLivePhotoFrameTypePhoto")]
180 pub const Photo: Self = Self(0);
181 #[doc(alias = "PHLivePhotoFrameTypeVideo")]
183 pub const Video: Self = Self(1);
184}
185
186unsafe impl Encode for PHLivePhotoFrameType {
187 const ENCODING: Encoding = NSInteger::ENCODING;
188}
189
190unsafe impl RefEncode for PHLivePhotoFrameType {
191 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
192}
193
194extern_protocol!(
195 pub unsafe trait PHLivePhotoFrame {
199 #[cfg(feature = "objc2-core-image")]
200 #[unsafe(method(image))]
202 #[unsafe(method_family = none)]
203 unsafe fn image(&self) -> Retained<CIImage>;
204
205 #[cfg(feature = "objc2-core-media")]
206 #[unsafe(method(time))]
208 #[unsafe(method_family = none)]
209 unsafe fn time(&self) -> CMTime;
210
211 #[unsafe(method(type))]
213 #[unsafe(method_family = none)]
214 unsafe fn r#type(&self) -> PHLivePhotoFrameType;
215
216 #[cfg(feature = "objc2-core-foundation")]
217 #[unsafe(method(renderScale))]
219 #[unsafe(method_family = none)]
220 unsafe fn renderScale(&self) -> CGFloat;
221 }
222);
223
224extern "C" {
225 pub static PHLivePhotoShouldRenderAtPlaybackTime: &'static PHLivePhotoEditingOption;
232}
233
234extern "C" {
235 #[deprecated]
239 pub static PHLivePhotoEditingErrorDomain: &'static NSString;
240}
241
242#[repr(transparent)]
247#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
248pub struct PHLivePhotoEditingErrorCode(pub NSInteger);
249impl PHLivePhotoEditingErrorCode {
250 #[doc(alias = "PHLivePhotoEditingErrorCodeUnknown")]
251 #[deprecated]
252 pub const Unknown: Self = Self(0);
253 #[doc(alias = "PHLivePhotoEditingErrorCodeAborted")]
254 #[deprecated]
255 pub const Aborted: Self = Self(1);
256}
257
258unsafe impl Encode for PHLivePhotoEditingErrorCode {
259 const ENCODING: Encoding = NSInteger::ENCODING;
260}
261
262unsafe impl RefEncode for PHLivePhotoEditingErrorCode {
263 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
264}