TechnologiesVideo, Photos & Camera

ICADevices

iOSmacOStvOSwatchOSvisionOS

ICADevices provides the Image Capture Architecture device-driver APIs for acquiring images from cameras and scanners on macOS. Use it to write device modules that open and close sessions, enumerate connected devices, and import or download images, working through parameter-block structures such as ICAGetDeviceListPB, ICAOpenSessionPB, ICAImportImagePB, and ICADownloadFilePB. For scanners, types including ICAScannerInitializePB, ICAScannerGetParametersPB, ICAScannerSetParametersPB, and ICAScannerStartPB drive configuration and scanning, while ICD-prefixed structures like ICD_NewObjectPB, ICD_ObjectSendMessagePB, and ICD_callback_functions support the driver side of object management and message dispatch. Image objects and their metadata are described by ICAObjectInfo, ICAHeader, and ICARawFileHeader, and notifications flow through ICARegisterForEventNotificationPB and ICASendNotificationPB.

Sessions and Device Management 5

Parameter blocks for loading device modules and opening or closing capture sessions.

  • St
    ICALoadDeviceModulePB
    A parameter block for loading a device module into the Image Capture framework.
  • St
    ICAUnloadDeviceModulePB
    @struct ICAUnloadDeviceModulePB
  • St
    ICAGetDeviceListPB
    @struct ICAGetDeviceListPB
  • St
    ICAOpenSessionPB
    @struct ICAOpenSessionPB
  • St
    ICACloseSessionPB
    @struct ICACloseSessionPB

Image Import and File Transfer 3

Parameter blocks for importing images and downloading or uploading files from a connected device.

  • St
    ICAImportImagePB
    @struct ICAImportImagePB
  • St
    ICADownloadFilePB
    @struct ICADownloadFilePB
  • St
    ICAUploadFilePB
    @struct ICAUploadFilePB

Objects and Properties 5

Structures that describe captured objects and their thumbnails, data, and property dictionaries.

  • St
    ICAObjectInfo
    @struct ICAObjectInfo
  • St
    ICACopyObjectPropertyDictionaryPB
    @struct ICACopyObjectPropertyDictionaryPB
  • St
    ICACopyObjectThumbnailPB
    @struct ICACopyObjectThumbnailPB
  • St
    ICACopyObjectDataPB
    @struct ICACopyObjectDataPB
  • St
    ICARawFileHeader
    A structure describing the header of a raw image file captured from a device.

Messaging and Notifications 5

Headers and parameter blocks for dispatching messages and registering for event notifications.

  • St
    ICAHeader
    @struct ICAHeader
  • St
    ICAMessage
    @struct ICAMessage
  • St
    ICAObjectSendMessagePB
    @struct ICAObjectSendMessagePB
  • St
    ICARegisterForEventNotificationPB
    @struct ICARegisterForEventNotificationPB
  • St
    ICASendNotificationPB
    A parameter block for sending a notification to registered clients.

Scanner Sessions and Scanning 7

Parameter blocks that open scanner sessions and drive initialization, configuration, status, and scanning.

  • St
    ICAScannerOpenSessionPB
    @struct ICAScannerOpenSessionPB
  • St
    ICAScannerCloseSessionPB
    @struct ICAScannerCloseSessionPB
  • St
    ICAScannerInitializePB
    @struct ICAScannerInitializePB
  • St
    ICAScannerGetParametersPB
    @struct ICAScannerGetParametersPB
  • St
    ICAScannerSetParametersPB
    @struct ICAScannerSetParametersPB
  • St
    ICAScannerStatusPB
    @struct ICAScannerStatusPB
  • St
    ICAScannerStartPB
    @struct ICAScannerStartPB

PTP Pass-Through 2

Structures supporting Picture Transfer Protocol pass-through commands and event data.

  • St
    ICAPTPPassThroughPB
    @struct ICAPTPPassThroughPB
  • St
    ICAPTPEventDataset
    @struct ICAPTPEventDataset

Device Module Object Management 6

Driver-side structures for creating, disposing, and messaging capture objects and dispatching callbacks.

  • St
    ICDHeader
    @struct ICDHeader
  • St
    ICD_NewObjectPB
    @struct ICD_NewObjectPB
  • St
    ICD_DisposeObjectPB
    @struct ICD_DisposeObjectPB
  • St
    ObjectInfo
    A structure describing a capture object on the device-module side.
  • St
    ICD_ObjectSendMessagePB
    A device-module parameter block for sending a message to a capture object.
  • St
    ICD_callback_functions
    A structure of callback functions a device module provides to the Image Capture framework.

Device Module Scanner Support 10

Driver-side scanner structures for sessions, configuration, status, scanning, and scanner callbacks.

  • St
    ScannerObjectInfo
    A structure describing a scanner object on the device-module side.
  • St
    ICD_ScannerObjectSendMessagePB
    A device-module parameter block for sending a message to a scanner object.
  • St
    ICD_ScannerOpenSessionPB
    A device-module parameter block for opening a scanning session.
  • St
    ICD_ScannerCloseSessionPB
    A device-module parameter block for closing a scanning session.
  • St
    ICD_ScannerInitializePB
    A device-module parameter block for initializing a scanner.
  • St
    ICD_ScannerGetParametersPB
    A device-module parameter block for retrieving scanner parameters.
  • St
    ICD_ScannerSetParametersPB
    A device-module parameter block for setting scanner parameters.
  • St
    ICD_ScannerStatusPB
    A device-module parameter block for querying scanner status.
  • St
    ICD_ScannerStartPB
    A device-module parameter block for starting a scan.
  • St
    ICD_Scannerscanner_callback_functions
    A structure of scanner callback functions a device module provides to the Image Capture framework.

Type Aliases 63

  • Ty
    ICAError
    @header
  • Ty
    ICACompletion
  • Ty
    ICAImportFilterProc
  • Ty
    ICANotificationProc
  • Ty
    ICAObject
  • Ty
    ICAProperty
  • Ty
    ICAConnectionID
  • Ty
    ICASessionID
  • Ty
    ICAScannerSessionID
  • Ty
    ICAEventDataCookie
  • Ty
    ICANotification
  • Ty
    ICDCompletion
    @typedef ICDCompletion
  • Ty
    __ICD_OpenUSBDevice
  • Ty
    __ICD_OpenUSBDeviceWithIORegPath
  • Ty
    __ICD_OpenFireWireDevice
  • Ty
    __ICD_OpenFireWireDeviceWithIORegPath
Show 47 more
  • Ty
    __ICD_OpenBluetoothDevice
  • Ty
    __ICD_OpenTCPIPDevice
  • Ty
    __ICD_OpenMassStorageDevice
  • Ty
    __ICD_CloseDevice
  • Ty
    __ICD_PeriodicTask
  • Ty
    __ICD_GetObjectInfo
  • Ty
    __ICD_Cleanup
  • Ty
    __ICD_GetPropertyData
  • Ty
    __ICD_SetPropertyData
  • Ty
    __ICD_ReadFileData
  • Ty
    __ICD_WriteFileData
  • Ty
    __ICD_SendMessage
  • Ty
    __ICD_AddPropertiesToCFDictionary
  • Ty
    __ICD_WriteDataToFile
  • Ty
    __ICD_WriteDataToFileDescriptor
  • Ty
    __ICD_WriteDataToFileDescriptor64
  • Ty
    __ICD_ReadFileData64
  • Ty
    ICDNewObjectCreatedCompletion
  • Ty
    __ICD_ScannerOpenUSBDevice
  • Ty
    __ICD_ScannerOpenUSBDeviceWithIORegPath
  • Ty
    __ICD_ScannerOpenFireWireDevice
  • Ty
    __ICD_ScannerOpenFireWireDeviceWithIORegPath
  • Ty
    __ICD_ScannerOpenBluetoothDevice
  • Ty
    __ICD_ScannerOpenTCPIPDevice
  • Ty
    __ICD_ScannerOpenMassStorageDevice
  • Ty
    __ICD_ScannerCloseDevice
  • Ty
    __ICD_ScannerPeriodicTask
  • Ty
    __ICD_ScannerGetObjectInfo
  • Ty
    __ICD_ScannerCleanup
  • Ty
    __ICD_ScannerGetPropertyData
  • Ty
    __ICD_ScannerSetPropertyData
  • Ty
    __ICD_ScannerReadFileData
  • Ty
    __ICD_ScannerReadFileData64
  • Ty
    __ICD_ScannerWriteFileData
  • Ty
    __ICD_ScannerSendMessage
  • Ty
    __ICD_ScannerAddPropertiesToCFDictionary
  • Ty
    __ICD_ScannerOpenSession
  • Ty
    __ICD_ScannerCloseSession
  • Ty
    __ICD_ScannerInitialize
  • Ty
    __ICD_ScannerGetParameters
  • Ty
    __ICD_ScannerSetParameters
  • Ty
    __ICD_ScannerStatus
  • Ty
    __ICD_ScannerStart
  • Ty
    __ICD_ScannerWriteDataToFile
  • Ty
    __ICD_ScannerWriteDataToFileDescriptor
  • Ty
    __ICD_ScannerWriteDataToFileDescriptor64
  • Ty
    ICD_scanner_callback_functions
← Video, Photos & Camera