API Guide Home (Online version only) |

# palmOnePhotoCommon.h

Go to the documentation of this file.

    00001 /*******************************************************************************
    00002  * Copyright (c) 2004-2005 palmOne, Inc. or its subsidiaries.
    00003  * All rights reserved.
    00004  ******************************************************************************/
    00005 /**
    00006  * @ingroup Imaging
    00007  */
    00008
    00009 /**
    00010  * @file    palmOnePhotoCommon.h
    00011  * @version 3.0
    00012  *
    00013  * @brief   Palm Photos API: This file contains all the defines, enumerations, structures needed by PalmPhoto.h
    00014  *
    00015  */
    00016
    00017 #ifndef PALMONE_PHOTO_COMMON_H_
    00018 #define PALMONE_PHOTO_COMMON_H_
    00019
    00020 /* Palm OS common definitions */
    00021 #include <SystemMgr.h>
    00022
    00023 /* If we're actually compiling the library code, then we need to
    00024  * eliminate the trap glue that would otherwise be generated from
    00025  * this header file in order to prevent compiler errors in CW Pro 2.
    00026  */
    00027 #ifdef BUILDING_PMP
    00028     #define PMP_LIB_TRAP(trapNum)
    00029 #else
    00030     #define PMP_LIB_TRAP(trapNum) SYS_TRAP(trapNum)
    00031 #endif
    00032
    00033 /*********************************************************************
    00034  * Type and creator of Sample Library database
    00035  *********************************************************************/
    00036
    00037 #define     PalmPhotoLibCreatorID           'PMPL'          /**< Palm Photo Library creator id */
    00038 #define     PalmPhotoLibTypeID              sysFileTLibrary /**< Standard library type */
    00039
    00040 /*********************************************************************
    00041  * Internal library name which can be passed to SysLibFind()
    00042  *********************************************************************/
    00043
    00044 #define     PalmPhotoLibName                "PalmPhotoLib" /**< Palm Photo Library database name */
    00045
    00046 /*********************************************************************
    00047  * Library versioning
    00048  *********************************************************************/
    00049
    00050 /**
    00051  * @name Library Versions
    00052  */
    00053 /*@{*/
    00054 #define kPalmPhotoLibVersion1       sysMakeROMVersion(1, 0, 0, sysROMStageRelease, 0)
    00055 #define kPalmPhotoLibVersion2       sysMakeROMVersion(2, 0, 0, sysROMStageRelease, 0)
    00056 #define kPalmPhotoLibVersion3       sysMakeROMVersion(3, 0, 0, sysROMStageRelease, 1)
    00057 #define kPalmPhotoLibVersion        kPalmPhotoLibVersion3
    00058 /*@}*/
    00059
    00060 /******************************************************************
    00061  * Error codes
    00062  ******************************************************************/
    00063
    00064 /**
    00065  * @name Error Codes
    00066  */
    00067 /*@{*/
    00068 /** Invalid parameter.                                          */
    00069 #define palmPhotoLibErrParam                (oemErrorClass + 0x100)
    00070 /** Library not open.                                           */
    00071 #define palmPhotoLibErrNotOpen              (palmPhotoLibErrParam | 1)
    00072 /** Library is still open.                                      */
    00073 #define palmPhotoLibErrStillOpen            (palmPhotoLibErrParam | 2)
    00074 /** Photos database does not exist on device.                   */
    00075 #define palmPhotoLibErrNotPhotos            (palmPhotoLibErrParam | 3)
    00076 /** Could not open Photos database.                             */
    00077 #define palmPhotoLibErrNotOpenPhotos        (palmPhotoLibErrParam | 4)
    00078 /** The album already exists.                                   */
    00079 #define palmPhotoLibErrAlbumExist           (palmPhotoLibErrParam | 5)
    00080 /** The selected album does not exist.                          */
    00081 #define palmPhotoLibErrAlbumNotExist        (palmPhotoLibErrParam | 6)
    00082 /** The album is full.                                          */
    00083 #define palmPhotoLibErrAlbumFull            (palmPhotoLibErrParam | 7)
    00084 /** The album name is too long.                                 */
    00085 #define palmPhotoLibErrAlbumNameTooLong     (palmPhotoLibErrParam | 8)
    00086 /** The album cannot be renamed or deleted.                     */
    00087 #define palmPhotoLibErrAlbumReadOnly        (palmPhotoLibErrParam | 9)
    00088 /** Insufficient free space in dynamic heap.                    */
    00089 #define palmPhotoLibErrLowHeap              (palmPhotoLibErrParam | 10)
    00090 /** Insufficient free space in storage heap.                    */
    00091 #define palmPhotoLibErrLowMemory            (palmPhotoLibErrParam | 11)
    00092 /** An image with that name already exists.                     */
    00093 #define palmPhotoLibErrImageExist           (palmPhotoLibErrParam | 12)
    00094 /** Specified image does not exist.                             */
    00095 #define palmPhotoLibErrImageNotFound        (palmPhotoLibErrParam | 13)
    00096 /** Image format not supported for the attempted operation.     */
    00097 #define palmPhotoLibErrFormatNotSupported   (palmPhotoLibErrParam | 14)
    00098 /** Image is not in the Photos database.                        */
    00099 #define palmPhotoLibErrImageNotInPhotos     (palmPhotoLibErrParam | 15)
    00100 /** Invalid path/image name.                                    */
    00101 #define palmPhotoLibErrImageInvalidPath     (palmPhotoLibErrParam | 16)
    00102 /** User canceled operation.                                    */
    00103 #define palmPhotoLibErrUserCancel           (palmPhotoLibErrParam | 17)
    00104 /** Unsupported handheld screen color depth.                    */
    00105 #define palmPhotoLibErrScreenDepth          (palmPhotoLibErrParam | 18)
    00106 /** Buffer is too small.                                        */
    00107 #define palmPhotoLibErrSmallBuffer          (palmPhotoLibErrParam | 19)
    00108 /** Unknown or unclassifiable error.                            */
    00109 #define palmPhotoLibErrUnknown              (palmPhotoLibErrParam | 20)
    00110 /** Image has no thumbnail.                                     */
    00111 #define palmPhotoLibErrNoThumbnail          (palmPhotoLibErrParam | 21)
    00112 /** Abort a read or write operation.            New in v2.0.    */
    00113 #define palmPhotoLibErrAbortReadWrite       (palmPhotoLibErrParam | 22)
    00114 /** Rotation angle not supported.               New in v2.0.    */
    00115 #define palmPhotoLibErrUnsupportedRotation  (palmPhotoLibErrParam | 23)
    00116 /** Invalid volume for operation.               New in v2.0.    */
    00117 #define palmPhotoLibErrInvalidVolume        (palmPhotoLibErrParam | 24)
    00118 /** Device has no camera.                       New in v2.0.    */
    00119 #define palmPhotoLibErrNoCamera             (palmPhotoLibErrParam | 25)
    00120 /** Library version is too old.                                 */
    00121 #define palmPhotoLibErrOldVersion           (palmPhotoLibErrParam | 26)
    00122 /** Invalid operation for media protected by DRM                */
    00123 #define palmPhotoLibErrProtectedMedia       (palmPhotoLibErrParam | 27)
    00124 /** The Power too lower                 */
    00125 #define palmPhotoLibErrLowPower             (palmPhotoLibErrParam | 28)
    00126 /*@}*/
    00127
    00128 /******************************************************************
    00129  * Constants and Types
    00130  ******************************************************************/
    00131
    00132 /** Media formats */
    00133
    00134 /** JPEG file format.                                           */
    00135 #define palmPhotoJPEGFileFormat             (0x0001)
    00136 /** Raw RGB 888 file format.                                    */
    00137 #define palmPhotoRGB888FileFormat           (0x0002)
    00138 /** Raw RGB 565 file format.                                    */
    00139 #define palmPhotoRGB565FileFormat           (0x0003)
    00140 /** GIF 8-bit indexed color format              New in v2.0.    */
    00141 #define palmPhotoGIFFileFormat              (0x0004)
    00142 /** BMP bitmap format                           New in v2.0.    */
    00143 #define palmPhotoBMPFileFormat              (0x0005)
    00144 /** TIFF bitmap format                          New in v2.0.    */
    00145 #define palmPhotoTIFFFileFormat             (0x0006)
    00146 /** PNG bitmap format                           New in v2.0.    */
    00147 #define palmPhotoPNGFileFormat              (0x0007)
    00148 /** WBMP bitmap format                          New in v2.0.    */
    00149 #define palmPhotoWBMPFileFormat             (0x0008)
    00150 /** M-JPEG video format                         New in v2.0.    */
    00151 #define palmPhotoMJPEGFileFormat            (0x1001)
    00152 /** MPEG1 video format                          New in v2.0.    */
    00153 #define palmPhotoMPEG1FileFormat            (0x1002)
    00154 /** MPEG4 video format                          New in v2.0.    */
    00155 #define palmPhotoMPEG4FileFormat            (0x1003)
    00156
    00157 /** AVI file with ADPCM audio + MPEG4 video     New in v2.0.    */
    00158 #define palmPhotoFormat_AVI_ADPCM_MPEG4     (0x1113)
    00159 /** AVI file with MP3 audio + MPEG4 video       New in v2.0.    */
    00160 #define palmPhotoFormat_AVI_MP3_MPEG4       (0x1123)
    00161 /** ASF file with ADPCM audio + MPEG4 video     New in v2.0.    */
    00162 #define palmPhotoFormat_ASF_ADPCM_MPEG4     (0x1213)
    00163 /** ASF file with MP3 audio + MPEG4 video       New in v2.0.    */
    00164 #define palmPhotoFormat_ASF_MP3_MPEG4       (0x1223)
    00165 /** 3GP file with AMR audio + MPEG4 video       New in v3.0.    */
    00166 #define palmPhotoFormat_3GP_AMR_MPEG4       (0x1333)
    00167 /** 3GP file with AMR audio + H.263 video       New in v3.0.    */
    00168 #define palmPhotoFormat_3GP_AMR_H263        (0x1334)
    00169 /** 3G2 file with QCELP audio + MPEG4 video     New in v3.0.    */
    00170 #define palmPhotoFormat_3G2_QCELP_MPEG4     (0x1443)
    00171 /** 3G2 file with QCELP audio + H.263 video     New in v3.0.    */
    00172 #define palmPhotoFormat_3G2_QCELP_H263      (0x1444)
    00173
    00174 /** Default still capture format.               New in v3.0.    */
    00175 #define palmPhotoPreferredImageFormat       (0xFFFD)
    00176 /** Default video capture format.               New in v3.0.    */
    00177 #define palmPhotoPreferredVideoFormat       (0xFFFE)
    00178
    00179 /** Unsupported file format.                                    */
    00180 #define palmPhotoUnsupportedFormat          (0xFFFF)
    00181
    00182 /** @name Old Constant Names */
    00183 /** Old (2.0) constant names for compatibility                  */
    00184 /*@{*/
    00185 #define palmPhotoAVIM4AFileFormat           palmPhotoFormat_AVI_ADPCM_MPEG4
    00186 #define palmPhotoAVIM43FileFormat           palmPhotoFormat_AVI_MP3_MPEG4
    00187 #define palmPhotoASFM4AFileFormat           palmPhotoFormat_ASF_ADPCM_MPEG4
    00188 #define palmPhotoASFM43FileFormat           palmPhotoFormat_ASF_MP3_MPEG4
    00189 /*@}*/
    00190
    00191 /** Palm Photo file format.                                     */
    00192 typedef UInt16 PalmPhotoFileFormat;
    00193
    00194
    00195
    00196 /** Capture resolution supported by device camera */
    00197
    00198 /** SUBQCIF (128x96)                            New in v3.0.    */
    00199 #define palmPhotoCaptureResSUBQCIF      (0x00000001)
    00200 /** QQVGA (160x120)                             New in v3.0.    */
    00201 #define palmPhotoCaptureResQQVGA        (0x00000002)
    00202 /** QCIF (176x144)                              New in v3.0.    */
    00203 #define palmPhotoCaptureResQCIF         (0x00000004)
    00204 /** QVGA (320x240)                              New in v3.0.    */
    00205 #define palmPhotoCaptureResQVGA         (0x00000008)
    00206 /** CIF (352x288)                               New in v3.0.    */
    00207 #define palmPhotoCaptureResCIF          (0x00000010)
    00208 /** VGA (640x480)                               New in v3.0.    */
    00209 #define palmPhotoCaptureResVGA          (0x00000020)
    00210 /** SVGA (800x600)                              New in v3.0.    */
    00211 #define palmPhotoCaptureResSVGA         (0x00000040)
    00212 /** XVGA (1024x768)                             New in v3.0.    */
    00213 #define palmPhotoCaptureResXVGA         (0x00000080)
    00214 /** SXGA (1280x960)                             New in v3.0.    */
    00215 #define palmPhotoCaptureResSXGA         (0x00000100)
    00216 /** SXGA (1280x960)                             New in v3.0.    */
    00217 #define palmPhotoCaptureResSXGA960      (0x00000100)
    00218 /** SXGA (1280x1024)                            New in v3.0.    */
    00219 #define palmPhotoCaptureResSXGA1024     (0x00000200)
    00220
    00221 /** Unknown dimensions (caller must use CameraManager)          */
    00222 #define palmPhotoCaptureResOther        (0x80000000)
    00223
    00224 /** None (no camera or camera disabled)                         */
    00225 #define palmPhotoCaptureResNone         (0x00000000)
    00226
    00227 /** Used with palmPhotoCaptureRes defines */
    00228 typedef UInt32 PalmPhotoCaptureResolution;
    00229
    00230 /** File stream on the device.                                  */
    00231 #define palmPhotoStreamLocation             (0x0000)
    00232 /** VFS file.                                                   */
    00233 #define palmPhotoVFSLocation                (0x0001)
    00234 /** Memory file. Read-Only images.                              */
    00235 #define palmPhotoMemoryLocation             (0x0002)
    00236
    00237 /** Palm Photo file location type.                              */
    00238 typedef UInt16  PalmPhotoLocationType;
    00239
    00240 /** Unique ID                                                   */
    00241 typedef UInt8 PalmPhotoUID[21];
    00242
    00243 /** File location.infoP points to a PalmPhotoFileLocation.      */
    00244 #define palmPhotoExtraInfoLocation          (0x0000)
    00245 /** Date.infoP points to a DateType.                            */
    00246 #define palmPhotoExtraInfoDate              (0x0001)
    00247 /** Album.infoP points to a (Char *).                           */
    00248 #define palmPhotoExtraInfoAlbum             (0x0002)
    00249 /** Notes.infoP points to a (Char *).                           */
    00250 #define palmPhotoExtraInfoNotes             (0x0003)
    00251 /** Notes.infoP points to a PalmPhotoFileLocation. New in v3.0. */
    00252 #define palmPhotoExtraInfoSound             (0x0004)
    00253 /** Notes.infoP points to a PalmPhotoUID.          New in v3.0. */
    00254 #define palmPhotoExtraInfoImageUID          (0x0005)
    00255 /** Notes.infoP points to a PalmPhotoUID.          New in v3.0. */
    00256 #define palmPhotoExtraInfoSoundUID          (0x0006)
    00257 /** Notes.infoP points to a PalmPhotoUID.          New in v3.0. */
    00258 #define palmPhotoExtraInfoCompositeUID      (0x0007)
    00259
    00260 /** Palm Photo extra information type.                          */
    00261 typedef UInt16 PalmPhotoExtraInfoType;
    00262
    00263
    00264 /** Mutiple selection dialog.                                   */
    00265 #define palmPhotoDlgSelection               (0x0000)
    00266 /** Single selection dialog.                                    */
    00267 #define palmPhotoDlgSingleSelection         (0x0001)
    00268 /** Deletion dialog.                                            */
    00269 #define palmPhotoDlgDeletion                (0x0002)
    00270
    00271 /** Palm Photo dialog type.                                     */
    00272 typedef UInt16 PalmPhotoDlgType;
    00273
    00274
    00275 /** Select still image types                                    */
    00276 #define palmPhotoMediaTypePhoto             (0x0001)
    00277 /** Select video types                                          */
    00278 #define palmPhotoMediaTypeVideo             (0x0002)
    00279 /** All media types (in 3.0, limited to photos and video).      */
    00280 #define palmPhotoMediaTypeAll               (0xFFFF)
    00281
    00282 /** Palm Photo media type (used in PalmPhotoSelectDlgV3).       */
    00283 typedef UInt16 PalmPhotoMediaType;
    00284
    00285
    00286 /** Highest quality compressed image.                           */
    00287 #define palmPhotoHighestQuality             (0xFFFF)
    00288 /** High quality compressed image.                              */
    00289 #define palmPhotoHighQuality                (0xFFFE)
    00290 /** Normal quality compressed image.                            */
    00291 #define palmPhotoMediumQuality              (0xFFFD)
    00292 /** Low quality compressed image.                               */
    00293 #define palmPhotoLowQuality                 (0xFFFC)
    00294 /** Lowest quality compressed image.                            */
    00295 #define palmPhotoLowestQuality              (0xFFFB)
    00296
    00297 /** Palm Photo image quality type.                              */
    00298 typedef UInt16 PalmPhotoQualityType;
    00299
    00300
    00301 /** Maximum file path length.                                   */
    00302 #define PALM_PHOTO_MAX_PATH                 (255)
    00303 /** Used during selection to select maximum number of photos.   */
    00304 #define PALM_PHOTO_SELECT_ALL               ((Int32)0xFFFFFFFF)
    00305 /** Used to select all the albums at once.                      */
    00306 #define PALM_PHOTO_ALBUM_ALL                ((UInt16)0xFFFF)
    00307 /** Used to select all the albums on the handheld at once.      */
    00308 #define PALM_PHOTO_ALBUM_ALL_HANDHELD       ((UInt16)0xFFFF)
    00309 /** Used to select all the albums on the VFS card at once.      */
    00310 #define PALM_PHOTO_ALBUM_ALL_VFS            ((UInt16)0xFFFE)
    00311 /** Maximum album name length on device. (Increased for v3.0.)  */
    00312 #define PALM_PHOTO_ALBUM_MAX_NAME           (255)
    00313
    00314
    00315 /******************************************************************
    00316  * Structures
    00317  ******************************************************************/
    00318
    00319 /**
    00320  * @brief Photo file location.
    00321  *
    00322  * This structure is used to open, create and query location
    00323  * information of an image.
    00324  */
    00325 typedef struct _PalmPhotoFileLocation
    00326 {
    00327     PalmPhotoLocationType   fileLocationType;   /**< File location type.        */
    00328     UInt16                  reserved;           /**< reserved for future use    */
    00329     union
    00330     {
    00331         struct {
    00332             Char    name[dmDBNameLength];       /**< File name on the device.   */
    00333             UInt32  type;                       /**< Type of the stream.        */
    00334             UInt32  creator;                    /**< Creator of the stream.     */
    00335         } StreamFile;                           /**< File format: stream        */
    00336
    00337         struct {
    00338             Char    name[PALM_PHOTO_MAX_PATH+1];/**< Full path name.                    */
    00339             UInt16  volumeRef;                  /**< Volume where the file is located.  */
    00340             UInt16  reserved;                   /**< reserved for future use    */
    00341         } VFSFile;                              /**< File format: VFS           */
    00342
    00343         struct {
    00344             void    *bufferP;                   /**< Buffer holding the image.  */
    00345             UInt32  bufferSize;                 /**< Size of the buffer.        */
    00346         } MemoryFile;                           /**< File format: Memory        */
    00347
    00348     } file;                                     /**< Image location.            */
    00349
    00350 } PalmPhotoFileLocation;
    00351
    00352 /**
    00353  * @brief Photo information.
    00354  *
    00355  * This structure contains the basic image information.
    00356  */
    00357 typedef struct _PalmPhotoImageInfo
    00358 {
    00359     UInt32                  width;          /**< Width in pixels of the image.  */
    00360     UInt32                  height;         /**< Height in pixels of the image. */
    00361     UInt32                  bitsPerPixel;   /**< Color depth of the image.      */
    00362     UInt32                  filesize;       /**< File size, in bytes.           */
    00363     PalmPhotoFileFormat     fileFormat;     /**< File format, e.g., JPEG, GIF.  */
    00364     PalmPhotoQualityType    imageQuality;   /**< Image quality.                 */
    00365 } PalmPhotoImageInfo;
    00366
    00367
    00368 /**
    00369  * @brief Photo image extra info parameters.
    00370  *
    00371  * Gets extra information on an image.
    00372  */
    00373 typedef struct _PalmPhotoExtraInfo
    00374 {
    00375     PalmPhotoExtraInfoType  infoType;       /**< IN: Image info type.                       */
    00376     UInt16                  reserved;       /**< reserved for future use                    */
    00377     void                    *infoP;         /**< OUT: Points to the information selected.   */
    00378     UInt32                  infoSize;       /**< OUT: Size of the buffer pointed by infoP.  */
    00379 } PalmPhotoExtraInfoParam;
    00380
    00381 /** Palm Photo handle. @see _PalmPhotoType */
    00382 typedef struct _PalmPhotoType * PalmPhotoHandle;
    00383
    00384 /**
    00385  * @brief Photo selections.
    00386  *
    00387  * This strucutre is used during image selections, either by using
    00388  * the PalmPhotoSelectDlg() function of the PalmPhotoSelect() function.
    00389  */
    00390 typedef struct _PalmPhotoSelections
    00391 {
    00392     UInt32                  imageCount;     /**< Number of images.          */
    00393     PalmPhotoHandle         *imageH;        /**< Array of image handles.    */
    00394 } PalmPhotoSelections;
    00395
    00396 #endif // PALMONE_PHOTO_COMMON_H_

Top | Palm Developer Network © 2004-2008, Palm, Inc. All rights reserved. Generated on Fri Jun 13 10:06:54 2008 for Palm API Guide