Library to allo USB PTP device to be hosted by the mbed platform
Dependents: class_project_main
Diff: PIMA15740/PIMAconst.h
- Revision:
- 0:98cf19bcd828
- Child:
- 1:71c0e9dc153d
diff -r 000000000000 -r 98cf19bcd828 PIMA15740/PIMAconst.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PIMA15740/PIMAconst.h Fri Aug 23 00:52:52 2013 +0000 @@ -0,0 +1,293 @@ +/* Copyright (C) 2010-2011 Circuits At Home, LTD. All rights reserved. + +This software may be distributed and modified under the terms of the GNU +General Public License version 2 (GPL2) as published by the Free Software +Foundation and appearing in the file GPL2.TXT included in the packaging of +this file. Please note that GPL2 Section 2[b] requires that all works based +on this software must also be made publicly available under the terms of +the GPL2 ("Copyleft"). + +Contact information +------------------- + +Circuits At Home, LTD +Web : http://www.circuitsathome.com +e-mail : support@circuitsathome.com +*/ +#ifndef __PTPCONST_H__ +#define __PTPCONST_H__ + +#include <inttypes.h> + +/* PTP USB Bulk-Pipe container */ +/* USB bulk max max packet length for full speed endpoints */ +//#define PTP_USB_BULK_FS_MAX_PACKET_LEN 64 +//#define PTP_USB_BULK_HDR_LEN (2*sizeof(uint32_t)+2*sizeof(uint16_t)) +//#define PTP_USB_BULK_PAYLOAD_LEN (PTP_USB_BULK_FS_MAX_PACKET_LEN-PTP_USB_BULK_HDR_LEN) +//#define PTP_USB_BULK_REQ_LEN (PTP_USB_BULK_HDR_LEN+5*sizeof(uint32_t)) + +#define PIMAContainerHeaderLength 0xc + + +#define PTP_USB_INT_PACKET_LEN 8 + +/* USB container types */ +#define PTP_USB_CONTAINER_UNDEFINED 0x0000 +#define PTP_USB_CONTAINER_COMMAND 0x0001 +#define PTP_USB_CONTAINER_DATA 0x0002 +#define PTP_USB_CONTAINER_RESPONSE 0x0003 +#define PTP_USB_CONTAINER_EVENT 0x0004 + +/* Vendor IDs */ +#define PTP_VENDOR_EASTMAN_KODAK 0x00000001 +#define PTP_VENDOR_SEIKO_EPSON 0x00000002 +#define PTP_VENDOR_AGILENT 0x00000003 +#define PTP_VENDOR_POLAROID 0x00000004 +#define PTP_VENDOR_AGFA_GEVAERT 0x00000005 +#define PTP_VENDOR_MICROSOFT 0x00000006 +#define PTP_VENDOR_EQUINOX 0x00000007 +#define PTP_VENDOR_VIEWQUEST 0x00000008 +#define PTP_VENDOR_STMICROELECTRONICS 0x00000009 +#define PTP_VENDOR_NIKON 0x0000000A +#define PTP_VENDOR_CANON 0x0000000B +#define PTP_VENDOR_FOTONATION 0x0000000C +#define PTP_VENDOR_PENTAX 0x0000000D +#define PTP_VENDOR_FUJI 0x0000000E + +/* Operation Codes */ +#define PTP_OC_Undefined 0x1000 +#define PTP_OC_GetDeviceInfo 0x1001 +#define PTP_OC_OpenSession 0x1002 +#define PTP_OC_CloseSession 0x1003 +#define PTP_OC_GetStorageIDs 0x1004 +#define PTP_OC_GetStorageInfo 0x1005 +#define PTP_OC_GetNumObjects 0x1006 +#define PTP_OC_GetObjectHandles 0x1007 +#define PTP_OC_GetObjectInfo 0x1008 +#define PTP_OC_GetObject 0x1009 +#define PTP_OC_GetThumb 0x100A +#define PTP_OC_DeleteObject 0x100B +#define PTP_OC_SendObjectInfo 0x100C +#define PTP_OC_SendObject 0x100D +#define PTP_OC_InitiateCapture 0x100E +#define PTP_OC_FormatStore 0x100F +#define PTP_OC_ResetDevice 0x1010 +#define PTP_OC_SelfTest 0x1011 +#define PTP_OC_SetObjectProtection 0x1012 +#define PTP_OC_PowerDown 0x1013 +#define PTP_OC_GetDevicePropDesc 0x1014 +#define PTP_OC_GetDevicePropValue 0x1015 +#define PTP_OC_SetDevicePropValue 0x1016 +#define PTP_OC_ResetDevicePropValue 0x1017 +#define PTP_OC_TerminateOpenCapture 0x1018 +#define PTP_OC_MoveObject 0x1019 +#define PTP_OC_CopyObject 0x101A +#define PTP_OC_GetPartialObject 0x101B +#define PTP_OC_InitiateOpenCapture 0x101C + +/* Proprietary vendor extension operations mask */ +#define PTP_OC_EXTENSION_MASK 0xF000 +#define PTP_OC_EXTENSION 0x9000 + +/* Response Codes */ +#define PIMAReturnCodeUndefined 0x2000 +#define PIMAReturnCodeOK 0x2001 +#define PIMAReturnCodeGeneralError 0x2002 +#define PIMAReturnCodeSessionNotOpen 0x2003 +#define PIMAReturnCodeInvalidTransactionID 0x2004 +#define PIMAReturnCodeOperationNotSupported 0x2005 +#define PIMAReturnCodeParameterNotSupported 0x2006 +#define PIMAReturnCodeIncompleteTransfer 0x2007 +#define PIMAReturnCodeInvalidStorageId 0x2008 +#define PIMAReturnCodeInvalidObjectHandle 0x2009 +#define PIMAReturnCodeDevicePropertyNotSupported 0x200A +#define PIMAReturnCodeInvalidObjectFormatCode 0x200B +#define PIMAReturnCodeStoreFull 0x200C +#define PIMAReturnCodeObjectWriteProtected 0x200D +#define PIMAReturnCodeStoreReadOnly 0x200E +#define PIMAReturnCodeAccessDenied 0x200F +#define PIMAReturnCodeNoThumbnailPresent 0x2010 +#define PIMAReturnCodeSelfTestFailed 0x2011 +#define PIMAReturnCodePartialDeletion 0x2012 +#define PIMAReturnCodeStoreNotAvailable 0x2013 +#define PIMAReturnCodeSpecificationByFormatUnsupported 0x2014 +#define PIMAReturnCodeNoValidObjectInfo 0x2015 +#define PIMAReturnCodeInvalidCodeFormat 0x2016 +#define PIMAReturnCodeUnknownVendorCode 0x2017 +#define PIMAReturnCodeCaptureAlreadyTerminated 0x2018 +#define PIMAReturnCodeDeviceBusy 0x2019 +#define PIMAReturnCodeInvalidParentObject 0x201A +#define PIMAReturnCodeInvalidDevicePropFormat 0x201B +#define PIMAReturnCodeInvalidDevicePropValue 0x201C +#define PIMAReturnCodeInvalidParameter 0x201D +#define PIMAReturnCodeSessionAlreadyOpened 0x201E +#define PIMAReturnCodeTransactionCanceled 0x201F +#define PIMAReturnCodeSpecificationOfDestinationUnsupported 0x2020 + +/* Proprietary vendor extension response code mask */ +#define PIMAReturnCodeEXTENSION_MASK 0xF000 +#define PIMAReturnCodeEXTENSION 0xA000 + +/* PTP Event Codes */ +#define PTP_EC_Undefined 0x4000 +#define PTP_EC_CancelTransaction 0x4001 +#define PTP_EC_ObjectAdded 0x4002 +#define PTP_EC_ObjectRemoved 0x4003 +#define PTP_EC_StoreAdded 0x4004 +#define PTP_EC_StoreRemoved 0x4005 +#define PTP_EC_DevicePropChanged 0x4006 +#define PTP_EC_ObjectInfoChanged 0x4007 +#define PTP_EC_DeviceInfoChanged 0x4008 +#define PTP_EC_RequestObjectTransfer 0x4009 +#define PTP_EC_StoreFull 0x400A +#define PTP_EC_DeviceReset 0x400B +#define PTP_EC_StorageInfoChanged 0x400C +#define PTP_EC_CaptureComplete 0x400D +#define PTP_EC_UnreportedStatus 0x400E + +#define PTP_HANDLER_SPECIAL 0xffffffff +#define PTP_HANDLER_ROOT 0x00000000 + +/* max ptp string length INCLUDING terminating null character */ +#define PTP_MAXSTRLEN 255 + +/* PTP Object Format Codes */ + +/* ancillary formats */ +#define PTP_OFC_Undefined 0x3000 +#define PTP_OFC_Association 0x3001 +#define PTP_OFC_Script 0x3002 +#define PTP_OFC_Executable 0x3003 +#define PTP_OFC_Text 0x3004 +#define PTP_OFC_HTML 0x3005 +#define PTP_OFC_DPOF 0x3006 +#define PTP_OFC_AIFF 0x3007 +#define PTP_OFC_WAV 0x3008 +#define PTP_OFC_MP3 0x3009 +#define PTP_OFC_AVI 0x300A +#define PTP_OFC_MPEG 0x300B +#define PTP_OFC_ASF 0x300C +#define PTP_OFC_QT 0x300D /* guessing */ + +/* image formats */ +#define PTP_OFC_EXIF_JPEG 0x3801 +#define PTP_OFC_TIFF_EP 0x3802 +#define PTP_OFC_FlashPix 0x3803 +#define PTP_OFC_BMP 0x3804 +#define PTP_OFC_CIFF 0x3805 +#define PTP_OFC_Undefined_0x3806 0x3806 +#define PTP_OFC_GIF 0x3807 +#define PTP_OFC_JFIF 0x3808 +#define PTP_OFC_PCD 0x3809 +#define PTP_OFC_PICT 0x380A +#define PTP_OFC_PNG 0x380B +#define PTP_OFC_Undefined_0x380C 0x380C +#define PTP_OFC_TIFF 0x380D +#define PTP_OFC_TIFF_IT 0x380E +#define PTP_OFC_JP2 0x380F +#define PTP_OFC_JPX 0x3810 + +/* PTP Association Types */ +#define PTP_AT_Undefined 0x0000 +#define PTP_AT_GenericFolder 0x0001 +#define PTP_AT_Album 0x0002 +#define PTP_AT_TimeSequence 0x0003 +#define PTP_AT_HorizontalPanoramic 0x0004 +#define PTP_AT_VerticalPanoramic 0x0005 +#define PTP_AT_2DPanoramic 0x0006 +#define PTP_AT_AncillaryData 0x0007 + +/* PTP Protection Status */ +#define PTP_PS_NoProtection 0x0000 +#define PTP_PS_ReadOnly 0x0001 + +/* PTP Storage Types */ +#define PTP_ST_Undefined 0x0000 +#define PTP_ST_FixedROM 0x0001 +#define PTP_ST_RemovableROM 0x0002 +#define PTP_ST_FixedRAM 0x0003 +#define PTP_ST_RemovableRAM 0x0004 + +/* PTP FilesystemType Values */ +#define PTP_FST_Undefined 0x0000 +#define PTP_FST_GenericFlat 0x0001 +#define PTP_FST_GenericHierarchical 0x0002 +#define PTP_FST_DCF 0x0003 + +/* PTP StorageInfo AccessCapability Values */ +#define PTP_AC_ReadWrite 0x0000 +#define PTP_AC_ReadOnly 0x0001 +#define PTP_AC_ReadOnly_with_Object_Deletion 0x0002 + +/* DataType Codes */ +#define PTP_DTC_UNDEF 0x0000 +#define PTP_DTC_INT8 0x0001 +#define PTP_DTC_UINT8 0x0002 +#define PTP_DTC_INT16 0x0003 +#define PTP_DTC_UINT16 0x0004 +#define PTP_DTC_INT32 0x0005 +#define PTP_DTC_UINT32 0x0006 +#define PTP_DTC_INT64 0x0007 +#define PTP_DTC_UINT64 0x0008 +#define PTP_DTC_INT128 0x0009 +#define PTP_DTC_UINT128 0x000A +#define PTP_DTC_AINT8 0x4001 +#define PTP_DTC_AUINT8 0x4002 +#define PTP_DTC_AINT16 0x4003 +#define PTP_DTC_AUINT16 0x4004 +#define PTP_DTC_AINT32 0x4005 +#define PTP_DTC_AUINT32 0x4006 +#define PTP_DTC_AINT64 0x4007 +#define PTP_DTC_AUINT64 0x4008 +#define PTP_DTC_AINT128 0x4009 +#define PTP_DTC_AUINT128 0x400A +#define PTP_DTC_STR 0xFFFF + +/* Device Properties Codes */ +#define PTP_DPC_Undefined 0x5000 +#define PTP_DPC_BatteryLevel 0x5001 +#define PTP_DPC_FunctionalMode 0x5002 +#define PTP_DPC_ImageSize 0x5003 +#define PTP_DPC_CompressionSetting 0x5004 +#define PTP_DPC_WhiteBalance 0x5005 +#define PTP_DPC_RGBGain 0x5006 +#define PTP_DPC_FNumber 0x5007 +#define PTP_DPC_FocalLength 0x5008 +#define PTP_DPC_FocusDistance 0x5009 +#define PTP_DPC_FocusMode 0x500A +#define PTP_DPC_ExposureMeteringMode 0x500B +#define PTP_DPC_FlashMode 0x500C +#define PTP_DPC_ExposureTime 0x500D +#define PTP_DPC_ExposureProgramMode 0x500E +#define PTP_DPC_ExposureIndex 0x500F +#define PTP_DPC_ExposureBiasCompensation 0x5010 +#define PTP_DPC_DateTime 0x5011 +#define PTP_DPC_CaptureDelay 0x5012 +#define PTP_DPC_StillCaptureMode 0x5013 +#define PTP_DPC_Contrast 0x5014 +#define PTP_DPC_Sharpness 0x5015 +#define PTP_DPC_DigitalZoom 0x5016 +#define PTP_DPC_EffectMode 0x5017 +#define PTP_DPC_BurstNumber 0x5018 +#define PTP_DPC_BurstInterval 0x5019 +#define PTP_DPC_TimelapseNumber 0x501A +#define PTP_DPC_TimelapseInterval 0x501B +#define PTP_DPC_FocusMeteringMode 0x501C +#define PTP_DPC_UploadURL 0x501D +#define PTP_DPC_Artist 0x501E +#define PTP_DPC_CopyrightInfo 0x501F + +/* Proprietary vendor extension device property mask */ +#define PTP_DPC_EXTENSION_MASK 0xF000 +#define PTP_DPC_EXTENSION 0xD000 + +/* Device Property Form Flag */ +#define PTP_DPFF_None 0x00 +#define PTP_DPFF_Range 0x01 +#define PTP_DPFF_Enumeration 0x02 + +/* Device Property GetSet type */ +#define PTP_DPGS_Get 0x00 +#define PTP_DPGS_GetSet 0x01 + +#endif //__PTPCONST_H__