-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathImageCaptureCore.framework.h
More file actions
3271 lines (2743 loc) · 144 KB
/
ImageCaptureCore.framework.h
File metadata and controls
3271 lines (2743 loc) · 144 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// ========== ImageCaptureCore.framework/Headers/ICCameraFile.h
//------------------------------------------------------------------------------------------------------------------------------
//
// ICCameraFile.h
// ImageCaptureCore
//
// Copyright (c) 2008-2019 Apple Inc., all rights reserved.
//
// Best viewed with the following settings: Tab width 4, Indent width 2, Wrap lines, Indent wrapped lines by 3, Page guide 128.
//
//------------------------------------------------------------------------------------------------------------------------------
#pragma once
#import <ImageCaptureCore/ICCameraItem.h>
CF_ASSUME_NONNULL_BEGIN
//----------------------------------------------------------------------------------------------------------------- ICCameraFile
/*!
@class ICCameraFile
@abstract This class represents a file on an ICCameraDevice object.
*/
IC_AVAILABLE(macos(10.4), ios(13.0))
@interface ICCameraFile : ICCameraItem {
}
/*!
@property width
@abstract Width of an image or movie frame.
*/
@property (nonatomic, readonly) NSInteger width IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property height
@abstract Height of an image or movie frame.
*/
@property (nonatomic, readonly) NSInteger height IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property originalFilename
@abstract Original filename on disk
*/
@property (nonatomic, readonly, nullable) NSString* originalFilename IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property createdFilename
@abstract Created filename
*/
@property (nonatomic, readonly, nullable) NSString* createdFilename IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property fileSize
@abstract Size of file in bytes.
*/
@property (nonatomic, readonly) off_t fileSize IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property orientation
@abstract Desired orientation of image to use when it is downloaded.
@discussion This property is set to ICEXIFOrientation1 initially. If the format of this file supports EXIF orientation tag, then this property will be updated to match the value of that tag, when the thumbnail or metadata for this file is received.
*/
@property (nonatomic, readwrite) ICEXIFOrientationType orientation IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property duration
@abstract Duration of audio/video file in seconds.
*/
@property (nonatomic, readonly) double duration IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property highFramerate
@abstract True if file is a slo-mo or high framerate video file, nil otherwise.
*/
@property (nonatomic, readonly) BOOL highFramerate IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property timeLapse
@abstract True if file is a time-lapse video file, nil otherwise.
*/
@property (nonatomic, readonly) BOOL timeLapse IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property firstPicked
@abstract True if file is a firstPicked nil otherwise.
*/
@property (nonatomic, readonly) BOOL firstPicked IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property originatingAssetID
@abstract originatingAssetID of file if present, nil if not a HEIF or HVEC.
*/
@property (nonatomic, readonly, nullable) NSString* originatingAssetID IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property groupUUID
@abstract groupUUID of file if present, nil if file has no groupUUID.
*/
@property (nonatomic, readonly, nullable) NSString* groupUUID IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property gpsString
@abstract GPS String in standard format.
*/
@property (nonatomic, readonly, nullable) NSString* gpsString IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property relatedUUID
@abstract Internal related UUID for dbg/aae/etc.
*/
@property (nonatomic, readonly, nullable) NSString* relatedUUID IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property burstUUID
@abstract burstUUID of file if present, nil if not in a burst.
*/
@property (nonatomic, readonly, nullable) NSString* burstUUID IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property burstFavorite
@abstract True if burst favorite, ignored if not in a burst or not a burst favorite.
*/
@property (nonatomic, readonly) BOOL burstFavorite IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property burstPicked
@abstract True if burst user picked, ignored if not in a burst or not a burst user picked.
*/
@property (nonatomic, readonly) BOOL burstPicked IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property sidecarFiles
@abstract This property is NULL if there are no sidecar files associated with this file. Otherwise it is an array of
ICCameraFile instances of sidecar files associated with this file. An example of a sidecar file is a file with the same base
name as this file and having an extension XMP.
*/
@property (nonatomic, readonly, nullable) NSArray<ICCameraItem*>* sidecarFiles IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property pairedRawImage
@abstract A single item subset of the sidecarFiles array, which contains the logical RAW compliment of a JPG or other
format image.
*/
@property (nonatomic, readonly, nullable) ICCameraFile* pairedRawImage IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property fileCreationDate
@abstract Properties will either represent the actual file creation
date, or nil.
*/
@property (nonatomic, readonly, nullable) NSDate* fileCreationDate IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property fileModificationDate
@abstract Properties will either represent the actual file modification
date, or nil.
*/
@property (nonatomic, readonly, nullable) NSDate* fileModificationDate IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property exifCreationDate
@abstract Properties will either represent the exif creation
date, or nil.
*/
@property (nonatomic, readonly, nullable) NSDate* exifCreationDate IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property exifModificationDate
@abstract Properties will either represent the exif modification
date, or nil.
*/
@property (nonatomic, readonly, nullable) NSDate* exifModificationDate IC_AVAILABLE(macos(10.4), ios(13.0));
#pragma mark - Block API
/*!
@method requestThumbnailDataWithOptions:completion
@abstract Perform a thumbnail request and execute the block callback in place of the delegate.
@param options: Options dictionary
- 'kCGImageSourceThumbnailMaxPixelSize' - Request a width different from the embedded EXIF thumbnail
@param completion: Completion block called with an NSData* object representing the JPG, and an NSError* for status.
*/
- (void)requestThumbnailDataWithOptions:(NSDictionary<ICCameraItemThumbnailOption, id>*)options
completion:(void (^)(NSData* _Nullable, NSError* _Nullable))completion IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method requestMetadataDictionaryWithOptions:completion
@abstract Perform a metadata request and execute the block callback in place of the delegate.
@param options: Options dictionary
@param completion: Completion block called with an NSDictionary* object containing the metadata, and an NSError* for status.
*/
- (void)requestMetadataDictionaryWithOptions:(NSDictionary<ICCameraItemMetadataOption, id>*)options
completion:(void (^)(NSDictionary* _Nullable, NSError* _Nullable))completion IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method requestDownloadWithOptions:progressDelegate:completion
@abstract Perform a download request and execute the block callback in place of the delegate.
@param options: Dictionary Keys:
- `ICDownloadsDirectoryURL`
- `ICSaveAsFilename`
- `ICOverwriteExistingFile`
- `ICDeleteAfterDownload`
- `ICAdjustCreationDate`
@param completion: Completion block to executed after request has returned,
@param filename: The name of the file as written to disk.
@param error:
*/
- (NSProgress* _Nullable)requestDownloadWithOptions:(NSDictionary<ICDownloadOption, id>*)options
completion:(void (^)(NSString* _Nullable filename, NSError* _Nullable error))completion
IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method requestReadDataAtOffset:length:completion
@abstract This method asynchronously reads data of a specified length from a specified offset.
@param offset: The offset into the file to start reading from
@param length: The length of data to be read.
@param completion: Completion block called with an NSData* object representing the data, and an NSError* for status.
*/
- (void)requestReadDataAtOffset:(off_t)offset
length:(off_t)length
completion:(void (^)(NSData* _Nullable, NSError* _Nullable))completion IC_AVAILABLE(macos(10.15))IC_UNAVAILABLE(ios);
@end
CF_ASSUME_NONNULL_END
// ========== ImageCaptureCore.framework/Headers/ICCameraDevice.h
//------------------------------------------------------------------------------------------------------------------------------
//
// ICCameraDevice.h
// ImageCaptureCore
//
// Copyright (c) 2008-2019 Apple Inc., all rights reserved.
//
// Best viewed with the following settings: Tab width 4, Indent width 2, Wrap lines, Indent wrapped lines by 3, Page guide 128.
//
//------------------------------------------------------------------------------------------------------------------------------
#pragma once
#import <ImageCaptureCore/ImageCapturePlatform.h>
#import <ImageCaptureCore/ICCameraItem.h>
#import <ImageCaptureCore/ICDevice.h>
#import <CoreGraphics/CoreGraphics.h>
@class ICCameraFile;
CF_ASSUME_NONNULL_BEGIN
@protocol ICCameraDeviceDownloadDelegate;
//------------------------------------------------------------------------------------------------------------------------------
// Constants used to describe capabilities of a camera
/*!
@const ICCameraDeviceCanTakePicture
@abstract ICCameraDeviceCanTakePicture
@discussion Indicates that the camera can capture a picture while it is connected, if the client sends a 'requestTakePicture' message to it.
*/
IMAGECAPTURE_EXTERN ICDeviceCapability const ICCameraDeviceCanTakePicture IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICCameraDeviceCanTakePictureUsingShutterReleaseOnCamera
@abstract ICCameraDeviceCanTakePictureUsingShutterReleaseOnCamera
@discussion Indicates that the camera can capture a picture while it is connected, if the user presses the shutter release on the camera.
*/
IMAGECAPTURE_EXTERN ICDeviceCapability const ICCameraDeviceCanTakePictureUsingShutterReleaseOnCamera IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICCameraDeviceCanDeleteOneFile
@abstract ICCameraDeviceCanDeleteOneFile
@discussion Indicates that the camera can delete a file at a time while it is connected.
*/
IMAGECAPTURE_EXTERN ICDeviceCapability const ICCameraDeviceCanDeleteOneFile IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICCameraDeviceCanDeleteAllFiles
@abstract ICCameraDeviceCanDeleteAllFiles
@discussion Indicates that the camera can delete all files in a single operation while it is connected.
*/
IMAGECAPTURE_EXTERN ICDeviceCapability const ICCameraDeviceCanDeleteAllFiles IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICCameraDeviceCanSyncClock
@abstract ICCameraDeviceCanSyncClock
@discussion Indicates that the camera can synchronize its date and time with that of the host computer.
*/
IMAGECAPTURE_EXTERN ICDeviceCapability const ICCameraDeviceCanSyncClock IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICCameraDeviceCanReceiveFile
@abstract ICCameraDeviceCanReceiveFile
@discussion Indicates that the host can upload files to the camera.
*/
IMAGECAPTURE_EXTERN ICDeviceCapability const ICCameraDeviceCanReceiveFile IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICCameraDeviceCanAcceptPTPCommands
@abstract ICCameraDeviceCanAcceptPTPCommands
@discussion Indicates that the camera can accept PTP commands.
*/
IMAGECAPTURE_EXTERN ICDeviceCapability const ICCameraDeviceCanAcceptPTPCommands IC_AVAILABLE(macos(10.4), ios(13.0));
typedef NSString* ICUploadOption NS_TYPED_ENUM IC_AVAILABLE(macos(10.15), ios(13.0));
typedef NSString* ICDeleteResult NS_TYPED_ENUM IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@const ICDeleteSuccessful
@abstract ICDeleteSuccessful
@discussion The value for this key should be an NSArray<ICCameraItem*>*
*/
IMAGECAPTURE_EXTERN ICDeleteResult const ICDeleteSuccessful IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICDeleteCanceled
@abstract ICDeleteCanceled
@discussion The value for this key should be an NSArray<ICCameraItem*>*
*/
IMAGECAPTURE_EXTERN ICDeleteResult const ICDeleteCanceled IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICDeleteFailed
@abstract ICDeleteFailed
@discussion The value for this key should be an NSArray<ICCameraItem*>*
*/
IMAGECAPTURE_EXTERN ICDeleteResult const ICDeleteFailed IC_AVAILABLE(macos(10.4), ios(13.0));
typedef NSString* ICDeleteError NS_TYPED_ENUM IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@const ICDeleteErrorReadOnly
@abstract ICDeleteErrorReadOnly
@discussion The value for this key should be an ICCameraItem*
*/
IMAGECAPTURE_EXTERN ICDeleteError const ICDeleteErrorReadOnly IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICDeleteErrorFileMissing
@abstract ICDeleteErrorFileMissing
@discussion The value for this key should be an ICCameraItem*
*/
IMAGECAPTURE_EXTERN ICDeleteError const ICDeleteErrorFileMissing IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICDeleteErrorDeviceMissing
@abstract ICDeleteErrorDeviceMissing
@discussion The value for this key should be an ICCameraItem*
*/
IMAGECAPTURE_EXTERN ICDeleteError const ICDeleteErrorDeviceMissing IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICDeleteErrorDeviceMissing
@abstract ICDeleteErrorDeviceMissing
@discussion The value for this key should be an ICCameraItem*
*/
IMAGECAPTURE_EXTERN ICDeleteError const ICDeleteErrorCanceled IC_AVAILABLE(macos(10.4), ios(13.0));
//--------------------------------------------------------------------------------------------------------- Forward Declarations
@protocol ICDeviceDelegate;
//--------------------------------------------------------------------------------------------------------------- ICCameraDevice
/*!
@class ICCameraDevice
@abstract ICCameraDevice is a concrete subclass of ICDevice class. ICDeviceBrowser creates instances of this class.
*/
IC_AVAILABLE(macos(10.4), ios(13.0))
@interface ICCameraDevice : ICDevice
/*!
@property contentCatalogPercentCompleted
@abstract Indicates the percentage of content cataloging completed on the device. Its value ranges from 0 to 100.
*/
@property (nonatomic, readonly) NSUInteger contentCatalogPercentCompleted IC_AVAILABLE(macos(10.14), ios(13.0));
/*!
@property contents
@abstract Contents of the camera. The structure of the elements in this array will reflect the folder structure of the storage reported by the camera. Each item in this array will correspond to a storage on the camera.
*/
@property (nonatomic, readonly, nullable) NSArray<ICCameraItem*>* contents IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property mediaFiles
@abstract The property mediaFiles represents all image, movie and audio files on the camera. These files are returned as a single array without regard to the folder hierarchy used to store these files on the camera.
*/
@property (nonatomic, readonly, nullable) NSArray<ICCameraItem*>* mediaFiles IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property ejectable
@abstract Indicates whether the device can be 'soft' removed or disconnected.
*/
@property (nonatomic, readonly, getter=isEjectable) BOOL ejectable IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property locked
@abstract Indicates whether the device is locked. A locked device does not allow for deletion of any asset.
*/
@property (nonatomic, readonly, getter=isLocked) BOOL locked IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property accessRestrictedAppleDevice
@abstract Set to YES if the device is made by Apple and is pass-coded locked and connected to an untrusted host.
*/
@property (nonatomic, readonly, getter=isAccessRestrictedAppleDevice) BOOL accessRestrictedAppleDevice IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property iCloudPhotosEnabled
@abstract Set to YES if the device is made by Apple and is pass-coded locked and connected to an untrusted host.
*/
@property (nonatomic, readonly) BOOL iCloudPhotosEnabled IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property mountPoint
@abstract Filesystem mount point for a device with transportType of ICTransportTypeMassStorage. This will be NULL for all other devices.
*/
@property (nonatomic, readonly, nullable) NSString* mountPoint IC_AVAILABLE(macos(10.4));
/*!
@property tetheredCaptureEnabled
@abstract This property is set to YES when tethered capture is enabled on the device.
@discussion Use 'requestEnableTethering' and 'requestDisableTethering' to enable or disable tethered capture on the device.
*/
@property (nonatomic, readonly) BOOL tetheredCaptureEnabled IC_AVAILABLE(macos(10.4));
/*!
@method filesOfType:
@abstract This method returns an array of files on the camera of type fileType.
@discussion The fileType string is one of the following Uniform Type Identifier strings: kUTTypeImage, kUTTypeMovie, kUTTypeAudio, or kUTTypeData.
*/
- (nullable NSArray<NSString*>*)filesOfType:(NSString*)fileUTType IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method requestSyncClock
@abstract Synchronize camera's clock with the computer's clock. You should send this request only if the camera has the 'ICCameraDeviceCanSyncClock' capability.
*/
- (void)requestSyncClock;
/*!
@method requestDeleteFiles
@abstract Deletes files.
*/
- (void)requestDeleteFiles:(NSArray<ICCameraItem*>*)files IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method requestDeleteFiles:deleteFailed:completion
@abstract Allows for deletion of an array of ICCameraItem objects, with the added ability to catch delete failures using the
'deleteFailed' block, and a completion block that will return the overall state of the request.
The deleteFailed block will return:
- NSDictionary<ICDeleteError, ICCameraItem*>*
The completion block will return:
— error:
- nil if successful
- NSError* with an code set to ICReturnDeleteFilesFailed if any file failed.
- result: NSDictionary<ICDeleteResult, NSArray<ICCameraItem*>*>* result
- ICDeleteSuccessful: NSArray<ICCameraItem*>* success
- ICDeleteFailed: NSArray<ICCameraItem*>* failed
*/
- (NSProgress*)requestDeleteFiles:(NSArray<ICCameraItem*>*)files
deleteFailed:(void (^)(NSDictionary<ICDeleteError, ICCameraItem*>*))deleteFailed
completion:(void (^)(NSDictionary<ICDeleteResult, NSArray<ICCameraItem*>*>* result, NSError* _Nullable error))completion IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method requestDownloadFile:options:downloadDelegate:didDownloadSelector:contextInfo:
@abstract Download a file from the camera. Please refer to the top of this header for information about the options.
@discussion The downloadDelegate passed must not be nil. When this request is completed, the didDownloadSelector of the downloadDelegate object is called.The didDownloadSelector should have the same signature as: - (void)didDownloadFile:(ICCameraFile*)file error:(NSError*)error options:(NSDictionary*)options contextInfo:(void*)contextInfo. The content of error returned should be examined to determine if the request completed successfully.
*/
- (void)requestDownloadFile:(ICCameraFile*)file
options:(NSDictionary<ICDownloadOption, id>*)options
downloadDelegate:(id<ICCameraDeviceDownloadDelegate>)downloadDelegate
didDownloadSelector:(SEL)selector
contextInfo:(void*)contextInfo IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method cancelDownload
@abstract Cancels the current download operation.
*/
- (void)cancelDownload IC_AVAILABLE(macos(10.4));
/*!
@property timeOffset
@abstract Indicates the time offset, in seconds, between the camera's clock and the computer's clock. This value is positive if the camera's clock is ahead of the computer's clock. This property should be ignored if the camera's capabilities property does not contain ICCameraDeviceCanSyncClock.
*/
@property (readonly) NSTimeInterval timeOffset IC_AVAILABLE(macos(10.4));
/*!
@property batteryLevelAvailable
@abstract Indicates if the device has reported battery charge level.
*/
@property (readonly) BOOL batteryLevelAvailable IC_AVAILABLE(macos(10.4));
/*!
@property batteryLevel
@abstract Indicates the battery charge level. Its value ranges from 0 to 100.
*/
@property (readonly) NSUInteger batteryLevel IC_AVAILABLE(macos(10.4));
/*!
@method cancelDelete
@abstract Cancels the current delete operation started by sending a 'requestDeleteFiles:'.
*/
- (void)cancelDelete IC_AVAILABLE(macos(10.4)) IC_UNAVAILABLE(ios);
/*!
@method requestEnableTethering
@abstract Send this message to enable tethered capture on the camera device if the camera has the 'ICCameraDeviceCanTakePicture' capability.
*/
- (void)requestEnableTethering IC_AVAILABLE(macos(10.4)) IC_UNAVAILABLE(ios);
/*!
@method requestDisableTethering
@abstract Send this message to disable tethered capture on the camera device if the camera has the 'ICCameraDeviceCanTakePicture' capability and if your process has already sent a 'requestEnableTethering' to it.
*/
- (void)requestDisableTethering IC_AVAILABLE(macos(10.4)) IC_UNAVAILABLE(ios);
/*!
@method requestTakePicture
@abstract Capture a new image using the camera, the camera capabilities include 'ICCameraDeviceCanTakePicture'.
@discussion You MUST send 'requestEnableTethering' message to the camera before sending 'requestTakePicture' message.
*/
- (void)requestTakePicture IC_AVAILABLE(macos(10.4)) IC_UNAVAILABLE(ios);
/*!
@method requestUploadFile:options:uploadDelegate:didUploadSelector:contextInfo:
@abstract Upload a file at fileURL to the camera. The options dictionary is not used in this version.
@discussion The uploadDelegate passed must not be nil. When this request is completed, the didUploadSelector of the uploadDelegate object is called. The didUploadSelector should have the same signature as: - (void)didUploadFile:(NSURL*)fileURL error:(NSError*)error contextInfo:(void*)contextInfo. The content of error returned should be examined to determine if the request completed successfully.
*/
- (void)requestUploadFile:(NSURL*)fileURL
options:(NSDictionary<ICUploadOption, id>*)options
uploadDelegate:(id)uploadDelegate
didUploadSelector:(SEL)selector
contextInfo:(void*)contextInfo IC_AVAILABLE(macos(10.4)) IC_UNAVAILABLE(ios);
/*!
@method requestReadDataFromFile:atOffset:length:readDelegate:didReadDataSelector:contextInfo:
@abstract This method asynchronously reads data of a specified length from a specified offset.
@discussion The readDelegate passed must not be nil. When this request is completed, the didReadDataSelector of the readDelegate object is called. The didReadDataSelector should have the same signature as: - (void)didReadData:(NSData*)data fromFile:(ICCameraFile*)file error:(NSError*)error contextInfo:(void*)contextInfo. The content of error returned should be examined to determine if the request completed successfully.
*/
- (void)requestReadDataFromFile:(ICCameraFile*)file
atOffset:(off_t)offset
length:(off_t)length
readDelegate:(id)readDelegate
didReadDataSelector:(SEL)selector
contextInfo:(void*)contextInfo IC_AVAILABLE(macos(10.4)) IC_UNAVAILABLE(ios);
/*!
@method requestSendPTPCommand:outData:sendCommandDelegate:sendCommandDelegate:contextInfo:
@abstract This method asynchronously sends a PTP command to a camera.
@discussion This should be sent only if the 'capabilities' property contains 'ICCameraDeviceCanAcceptPTPCommands'. All PTP cameras have this capability. The response to this command will be delivered using didSendCommandSelector of sendCommandDelegate. The didSendCommandSelector should have the same signature as: - (void)didSendPTPCommand:(NSData*)command inData:(NSData*)data response:(NSData*)response error:(NSError*)error contextInfo:(void*)contextInfo. The content of error returned should be examined to determine if the request completed successfully.
*/
- (void)requestSendPTPCommand:(NSData*)command
outData:(NSData*)data
sendCommandDelegate:(id)sendCommandDelegate
didSendCommandSelector:(SEL)selector
contextInfo:(void*)contextInfo IC_AVAILABLE(macos(10.4)) IC_UNAVAILABLE(ios);
@end
//------------------------------------------------------------------------------------------------------- ICCameraDeviceDelegate
/*!
@protocol ICCameraDeviceDelegate <ICDeviceDelegate>
@abstract A delegate of ICCameraDevice must conform to ICCameraDeviceDelegate protocol.
@discussion The ICCameraDeviceDelegate protocol inherits from the ICDeviceDelegate protocol.
*/
@protocol ICCameraDeviceDelegate <ICDeviceDelegate>
/*!
@method cameraDevice:didAddItems:
@abstract This message is sent when objects are added to the device.
@discussion The objects in items are instances ICCameraFile class.
*/
- (void)cameraDevice:(ICCameraDevice*)camera didAddItems:(NSArray<ICCameraItem*>*)items IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method cameraDevice:didRemoveItems:
@abstract This message is sent when objects are removed from the device.
@discussion The objects in items are instances ICCameraFile class.
*/
- (void)cameraDevice:(ICCameraDevice*)camera didRemoveItems:(NSArray<ICCameraItem*>*)items IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method cameraDevice:didReceiveThumbnail:forItem:error:
@abstract This message is sent when the thumbnail requested for an item on a device is available.
*/
- (void)cameraDevice:(ICCameraDevice*)camera
didReceiveThumbnail:(nullable CGImageRef)thumbnail
forItem:(ICCameraItem*)item
error:(nullable NSError*)error IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method cameraDevice:didReceiveMetadata:forItem:error:
@abstract This message is sent when the metadata requested for an item on a device is available.
*/
- (void)cameraDevice:(ICCameraDevice*)camera
didReceiveMetadata:(nullable NSDictionary*)metadata
forItem:(ICCameraItem*)item
error:(nullable NSError*)error IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method cameraDevice:didRenameItems:
@abstract This message is sent when an object or objects are renamed on the device.
@discussion The objects may be instances of ICCameraFolder or ICCameraFile class.
*/
- (void)cameraDevice:(ICCameraDevice*)camera didRenameItems:(NSArray<ICCameraItem*>*)items IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method cameraDeviceDidChangeCapability:
@abstract This message is sent when a capability of a device changes.
@discussion Detailed capabilitiy descriptions are provided at the top of this header file.
*/
- (void)cameraDeviceDidChangeCapability:(ICCameraDevice*)camera IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method cameraDevice:didReceivePTPEvent:
@abstract This message is sent to the delegate to convey a PTP event.
*/
- (void)cameraDevice:(ICCameraDevice*)camera didReceivePTPEvent:(NSData*)eventData IC_AVAILABLE(macos(10.4));
/*!
@method deviceDidBecomeReadyWithCompleteContentCatalog:
@abstract This message is sent when the camera device is done enumerating its content and is ready to receive requests.
@discussion A session must be opened on the device in order to enumerate its content and make it ready to receive requests.
*/
- (void)deviceDidBecomeReadyWithCompleteContentCatalog:(ICCameraDevice*)device IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method deviceDidRemoveAccessRestriction:
@abstract This message is sent when an Apple device has been unlocked, paired to the host, and media is available.
*/
- (void)cameraDeviceDidRemoveAccessRestriction:(ICDevice*)device;
/*!
@method deviceDidEnableAccessRestriction:
@abstract This message is sent when an Apple device has been locked, and media is unavailable until the restriction
has been removed.
*/
- (void)cameraDeviceDidEnableAccessRestriction:(ICDevice*)device;
@optional
/*!
@method cameraDevice:shouldGetThumbnailOfItem:
@abstract This message is sent when the camera device is about to execute queued requests for the thumbnail of a specific item.
If the request is no longer wanted, eg: the item is no longer displayed on the screen, the client can return NO and abort sending
a request down to the camera device, speeding up the exection queue.
*/
- (BOOL)cameraDevice:(ICCameraDevice*)cameraDevice shouldGetThumbnailOfItem:(ICCameraItem*)item IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@abstract This message is sent when the camera device is about to execute queued requests for the metadata of a specific item.
If the request is no longer wanted, eg: the item is no longer displayed on the screen, the client can return NO and abort sending
a request down to the camera device, speeding up the execution queue.
*/
- (BOOL)cameraDevice:(ICCameraDevice*)cameraDevice shouldGetMetadataOfItem:(ICCameraItem*)item IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@method cameraDevice:didCompleteDeleteFilesWithError:
@abstract This message is sent after the camera device completes a delete operation initiated by sending a 'requestDeleteFiles:' message to that device.
@discusson This message is sent after the camera device completes a delete operation initiated by sending a 'requestDeleteFiles:' message to that device.
*/
- (void)cameraDevice:(ICCameraDevice*)camera didCompleteDeleteFilesWithError:(nullable NSError*)error IC_AVAILABLE(macos(10.4), ios(13.0));
#pragma mark - Deprecated
/*!
@method cameraDevice:didAddItem:
@abstract This message is sent when an object is added to the device.
@discussion The object may be an instance of ICCameraFolder or ICCameraFile class.
*/
- (void)cameraDevice:(ICCameraDevice*)camera
didAddItem:(ICCameraItem*)item IC_DEPRECATED_WITH_REPLACEMENT("Implement cameraDevice:didAddItems:", macos(10.4, 10.15));
/*!
@method cameraDevice:didRemoveItem:
@abstract This message is sent when an object is removed from the device.
@discussion The object may be an instance of ICCameraFolder or ICCameraFile class.
*/
- (void)cameraDevice:(ICCameraDevice*)camera
didRemoveItem:(ICCameraItem*)item IC_DEPRECATED_WITH_REPLACEMENT("Implement cameraDevice:didRemoveItems:", macos(10.4, 10.15));
/*!
@method cameraDevice:didReceiveThumbnailForItem:
@abstract This message is sent when the thumbnail requested for an item on a device is available.
*/
- (void)cameraDevice:(ICCameraDevice*)camera
didReceiveThumbnailForItem:(ICCameraItem*)item
IC_DEPRECATED_WITH_REPLACEMENT("Implement cameraDevice:didReceiveThumbnail:forItem:error:", macos(10.4, 10.15));
/*!
@method cameraDevice:didReceiveMetadataForItem:
@abstract This message is sent when the metadata requested for an item on a device is available.
*/
- (void)cameraDevice:(ICCameraDevice*)camera
didReceiveMetadataForItem:(ICCameraItem*)item
IC_DEPRECATED_WITH_REPLACEMENT("Implement cameraDevice:didReceiveMetadata:forItem:error:", macos(10.4, 10.15));
@end
/*!
@protocol ICCameraDeviceDownloadDelegate <NSObject>
@abstract The object passed in as 'downloadDelegate' in the 'requestDownloadFile:options:downloadDelegate:didDownloadSelector:contextInfo:' message must conform to ICCameraDeviceDownloadDelegate protocol.
*/
@protocol ICCameraDeviceDownloadDelegate <NSObject>
@optional
/*!
@method didDownloadFile:error:options:contextInfo:
@abstract This message is sent to the delegate when the requested download operation is complete.
*/
- (void)didDownloadFile:(ICCameraFile*)file
error:(nullable NSError*)error
options:(NSDictionary<NSString*, id>*)options
contextInfo:(void*)contextInfo IC_AVAILABLE(macos(10.4));
/*!
@method didReceiveDownloadProgressForFile:downloadedBytes:maxBytes:
@abstract This message is sent to the delegate to provide status of the download operation.
*/
- (void)didReceiveDownloadProgressForFile:(ICCameraFile*)file downloadedBytes:(off_t)downloadedBytes maxBytes:(off_t)maxBytes IC_AVAILABLE(macos(10.4), ios(13.0));
@end
NS_ASSUME_NONNULL_END
// ========== ImageCaptureCore.framework/Headers/ICCameraItem.h
//------------------------------------------------------------------------------------------------------------------------------
//
// ICCameraItem.h
// ImageCaptureCore
//
// Copyright (c) 2008-2019 Apple Inc., all rights reserved.
//
// Best viewed with the following settings: Tab width 4, Indent width 2, Wrap lines, Indent wrapped lines by 3, Page guide 128.
//
//------------------------------------------------------------------------------------------------------------------------------
#pragma once
#import <ImageCaptureCore/ImageCapturePlatform.h>
#import <ImageCaptureCore/ImageCaptureConstants.h>
#import <ImageCaptureCore/ICDevice.h>
#import <CoreGraphics/CoreGraphics.h>
@class ICCameraDevice;
@class ICCameraFolder;
@class ICCameraFile;
CF_ASSUME_NONNULL_BEGIN
//----------------------------------------------------------------------------------------------------------------- ICCameraItem
/*!
@class ICCameraItem
@abstract ICCameraItem is an abstract class that represents an item in an ICCameraDevice object. ICCameraDevice object creates
instances of two concrete subclasses of ICCameraItem: ICCameraFolder and ICCameraFile.
*/
@protocol ICCameraDeviceDownloadDelegate;
typedef NSString* ICCameraItemMetadataOption NS_TYPED_ENUM IC_AVAILABLE(macos(10.15), ios(13.0));
typedef NSString* ICCameraItemThumbnailOption NS_TYPED_ENUM IC_AVAILABLE(macos(10.15), ios(13.0));
IMAGECAPTURE_EXTERN ICCameraItemThumbnailOption const ICImageSourceThumbnailMaxPixelSize IC_AVAILABLE(macos(10.15), ios(13.0));
IMAGECAPTURE_EXTERN ICCameraItemThumbnailOption const ICImageSourceShouldCache IC_AVAILABLE(macos(10.15), ios(13.0));
typedef NSString* ICDownloadOption NS_TYPED_ENUM IC_AVAILABLE(macos(10.15), ios(13.0));
//------------------------------------------------------------------------------------------------------------------------------
// Allowed keys in the options dictionary used when downloading a file from the camera
/*!
@const ICDownloadsDirectoryURL
@abstract ICDownloadsDirectoryURL
@discussion The value for this key should be an NSURL object referencing a writable directory. The downloaded files will be saved in that directory.
*/
IMAGECAPTURE_EXTERN ICDownloadOption const ICDownloadsDirectoryURL IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICSaveAsFilename
@abstract ICSaveAsFilename
@discussion The value for this key should be an NSString object containing the name to be used for the downloaded file.
*/
IMAGECAPTURE_EXTERN ICDownloadOption const ICSaveAsFilename IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICSavedFilename
@abstract ICSavedFilename
@discussion The value for this key will be an NSString object containing the actual name of the saved file. The options dictionary returned in didDownloadFile:error:options:contextInfo: will have this key.
*/
IMAGECAPTURE_EXTERN ICDownloadOption const ICSavedFilename IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICSavedAncillaryFiles
@abstract ICSavedAncillaryFiles
@discussion The value for this key will be an NSArray object containing names of files associated with the primary file that is downloaded. The options dictionary returned in didDownloadFile:error:options:contextInfo: may have this key.
*/
IMAGECAPTURE_EXTERN ICDownloadOption const ICSavedAncillaryFiles IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICOverwrite
@abstract ICOverwrite
@discussion The value for this key should be an NSNumber object representing a boolean value. If this value is YES, the downloaded file will overwrite an existing file with the same name and extension.
*/
IMAGECAPTURE_EXTERN ICDownloadOption const ICOverwrite IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICDeleteAfterSuccessfulDownload
@abstract ICDeleteAfterSuccessfulDownload
@discussion The value for this key should be an NSNumber object representing a boolean value. If this value is YES, the file will be deleted from the device after it is succcessfully downloaded.
*/
IMAGECAPTURE_EXTERN ICDownloadOption const ICDeleteAfterSuccessfulDownload IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@const ICDownloadSidecarFiles
@abstract ICDownloadSidecarFiles
@discussion The value for this key should be an NSNumber object representing a boolean value. If this value is YES, all sidecar files will be downloaded along with the media file.
*/
IMAGECAPTURE_EXTERN ICDownloadOption const ICDownloadSidecarFiles IC_AVAILABLE(macos(10.4), ios(13.0));
IC_AVAILABLE(macos(10.4), ios(13.0))
@interface ICCameraItem : NSObject
{
}
/*!
@property device
@abstract Parent device of this item.
*/
@property (nonatomic, readonly, nullable) ICCameraDevice* device IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property parentFolder
@abstract Parent folder of this folder. The root folder's parentFolder is nil.
*/
@property (nonatomic, readonly, nullable) ICCameraFolder* parentFolder IC_AVAILABLE(macos(10.4),ios(13.0));
/*!
@property name
@abstract Name of this item.
*/
@property (nonatomic, readonly, nullable) NSString* name IC_AVAILABLE(macos(10.4),ios(13.0));
/*!
@property UTI
@abstract Item UTI. This is an Uniform Type Identifier string. It is one of: kUTTypeFolder, kUTTypeImage, kUTTypeMovie, kUTTypeAudio, or kUTTypeData.
*/
@property (nonatomic, readonly, nullable) NSString* UTI IC_AVAILABLE(macos(10.4),ios(13.0));
/*!
@property fileSystemPath
@abstract The file system path of the item for items on a device with transportType of ICTransportTypeMassStorage.
*/
@property (nonatomic, readonly, nullable) NSString* fileSystemPath IC_AVAILABLE(macos(10.4),ios(13.0));
/*!
@property locked
@abstract Indicates the protection state of this item. It is locked if the storage card in the camera is locked.
*/
@property (nonatomic, readonly, getter=isLocked) BOOL locked IC_AVAILABLE(macos(10.4),ios(13.0));
/*!
@property raw
@abstract Indicates if the file is a raw image file.
*/
@property (nonatomic, readonly, getter=isRaw) BOOL raw IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property inTemporaryStore
@abstract Indicates if this folder is in a temporary store. A temporary store may be used by the device when images are
captures on the device when it is tethered to the computer.
*/
@property (nonatomic, readonly, getter=isInTemporaryStore) BOOL inTemporaryStore IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property creationDate
@abstract Creation date of this file. This information is usually the same as the EXIF creation date.
*/
@property (nonatomic, readonly, nullable) NSDate* creationDate IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property modificationDate
@abstract Modification date of this file. This information is usually the same as the EXIF modification date.
*/
@property (nonatomic, readonly, nullable) NSDate* modificationDate IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property thumbnail
@abstract Thumbnail for the item. The value of this property is NULL unless a 'requestThumbnail' message is sent to this object.
*/
@property (nonatomic, readonly, nullable) CGImageRef thumbnail IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property metadata
@abstract Metadata for the item. The value of this property is NULL unless a 'requestMetadata' message is sent to this object.
*/
@property (nonatomic, readonly, nullable) NSDictionary* metadata IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property userData
@abstract A mutable dictionary to store arbitrary key-value pairs associated with a camera item object. This can be used by
view objects that bind to this object to store "house-keeping" information.
*/
@property (nonatomic, readonly, nullable) NSMutableDictionary* userData IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property ptpObjectHandle
@abstract PTP object handle value if the item is on a camera that uses PTP protocol. The value of this property is set to 0
if the camera does not use PTP protocol.
*/
@property (nonatomic, readonly) unsigned int ptpObjectHandle IC_AVAILABLE(macos(10.4), ios(13.0));
/*!
@property addedAfterContentCatalogCompleted
@abstract This property is set if the file is captured on the device after the device's content is fully enumerated. This does
not apply to files added as a result of adding a new store to the device.
*/
@property (nonatomic, readonly, getter=wasAddedAfterContentCatalogCompleted) BOOL addedAfterContentCatalogCompleted IC_AVAILABLE(macos(10.4),ios(13.0));
/*!
@method requestThumbnail
@abstract This method requests thumbnail for the item. If one is not readily available, accessing this property will send a message to the device requesting a thumbnail for the file. The delegate of the device will be notified via method "cameraDevice:didReceiveThumbnail:forItem:error:", if this method is implemented by the delegate.
*/
- (void)requestThumbnail IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method requestMetadata
@abstract Metadata for the file if one is readily available. If one is not readily available, accessing this property will send a message to the device requesting metadata for the file. The delegate of the device will be notified via method "cameraDevice:didReceiveMetadata:forItem:error:", if this method is implemented by the delegate.
*/
- (void)requestMetadata IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method flushThumbnailCache
@abstract Deletes cached thumbnail for the item.
*/
- (void)flushThumbnailCache IC_AVAILABLE(macos(10.15), ios(13.0));
/*!
@method flushMetadataCache
@abstract Deletes cached metadata for the item.
*/
- (void)flushMetadataCache IC_AVAILABLE(macos(10.15), ios(13.0));
#pragma mark - Deprecated
/*!
@property thumbnailIfAvailable
@abstract Thumbnail for the item if one is readily available. If one is not readily available, accessing this property will
send a message to the device requesting a thumbnail for the file. The delegate of the device will be notified via method
"cameraDevice:didReceiveThumbnailForItem:", if this method is implemented on by the delegate.
*/
@property (nullable, readonly) CGImageRef thumbnailIfAvailable IC_DEPRECATED_WITH_REPLACEMENT(
"Use requestThumbnail, or requestThumbnailWithOptions:completion", macos(10.4,10.15));
/*!
@property largeThumbnailIfAvailable
@abstract Large thumbnail for the item if one is readily available. If one is not readily available, accessing this property
will send a message to the device requesting a thumbnail for the file. The delegate of the device will be notified via method
"cameraDevice:didReceiveThumbnailForItem:", if this method is implemented on by the delegate.
*/
@property (nullable, readonly) CGImageRef largeThumbnailIfAvailable IC_DEPRECATED_WITH_REPLACEMENT(
"Use requestThumbnail, or requestThumbnailWithOptions:completion", macos(10.4, 10.15));
/*!
@property metadataIfAvailable
@abstract Metadata for the file if one is readily available. If one is not readily available, accessing this property will
send a message to the device requesting metadata for the file. The delegate of the device will be notified via method
"cameraDevice:didReceiveMetadataForItem:", if this method is implemented on by the delegate.
*/
@property (nullable, readonly) NSDictionary<NSString*, id>* metadataIfAvailable IC_DEPRECATED_WITH_REPLACEMENT(
"Use requestMetadata for the delegate based API, or requestMetadataDictionaryWithOptions:completion", macos(10.4, 10.15));
@end
CF_ASSUME_NONNULL_END
// ========== ImageCaptureCore.framework/Headers/ImageCaptureConstants.h
//------------------------------------------------------------------------------------------------------------------------------
//
// ImageCaptureConstants.h
// ImageCaptureCore
//
// Copyright (c) 2008 Apple, Inc., all rights reserved.
//
// Best viewed with the following settings: Tab width 4, Indent width 2, Wrap lines, Indent wrapped lines by 3, Page guide 128.
//
//------------------------------------------------------------------------------------------------------------------------------
#pragma once
#import <Foundation/Foundation.h>
#define ICRunLoopMode @"com.apple.ImageCaptureCore"
//------------------------------------------------------------------------------------------------------------------------------