| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| /** |
| ****************************************************************************** |
| * @file M4EXIFC_CommonAPI.h |
| * @brief EXIF common data header |
| * @note The types, structures and macros defined in this file allow reading |
| * and writing EXIF JPEG images compliant spec EXIF 2.2 |
| ****************************************************************************** |
| */ |
| |
| |
| #ifndef __M4_EXIF_COMMON_API_H__ |
| #define __M4_EXIF_COMMON_API_H__ |
| |
| #include "M4TOOL_VersionInfo.h" |
| #include "M4Common_types.h" |
| #include "M4OSA_Debug.h" |
| #include "M4OSA_Error.h" |
| #include "M4OSA_Types.h" |
| #include "M4OSA_Memory.h" |
| #include "M4OSA_CoreID.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| ************************************************************************ |
| * type M4EXIFC_Context |
| ************************************************************************ |
| */ |
| typedef M4OSA_Void* M4EXIFC_Context; |
| |
| /** |
| ****************************************************************************** |
| * Errors & Warnings |
| ****************************************************************************** |
| */ |
| |
| #define M4EXIFC_NO_ERR 0x00000000 /**< invalid parameter */ |
| #define M4EXIFC_ERR_PARAMETER 0x00000001 /**< invalid parameter */ |
| #define M4EXIFC_ERR_ALLOC 0x00000002 /**< allocation error */ |
| #define M4EXIFC_ERR_BAD_CONTEXT 0x00000003 /**< invalid context */ |
| #define M4EXIFC_ERR_NOT_COMPLIANT 0x00000004 /**< the image in buffer is not |
| JPEG compliant */ |
| #define M4EXIFC_ERR_NO_APP_FOUND 0x00000005 /**< the JPEG image does not contain any APP1 |
| Exif 2.2 compliant */ |
| #define M4EXIFC_WAR_NO_THUMBNAIL 0x00000006 /**< the Exif part does not contain any |
| thumbnail */ |
| #define M4EXIFC_ERR_APP_TRUNCATED 0x00000007 /**< The APP1 section in input buffer is |
| not complete */ |
| |
| |
| /** |
| ****************************************************************************** |
| * structure M4EXIFC_BasicTags |
| * @brief This structure stores the basic tags values. |
| * @note This Exif reader focuses on a set of "Entry Tags". |
| * This structure contains the corresponding "Entry Values" of these tags. |
| * M4EXIFC_Char* fields of structure are Null terminated Strings. |
| ****************************************************************************** |
| */ |
| typedef struct |
| { |
| M4OSA_Int32 width; /**< image width in pixels */ |
| M4OSA_Int32 height; /**< image height in pixels */ |
| M4OSA_Char *creationDateTime; /**< date and time original image was generated */ |
| M4OSA_Char *lastChangeDateTime; /**< file change date and time */ |
| M4OSA_Char *description; /**< image title */ |
| M4OSA_Char *make; /**< manufacturer of image input equipment */ |
| M4OSA_Char *model; /**< model of image input equipment */ |
| M4OSA_Char *software; /**< software used */ |
| M4OSA_Char *artist; /**< person who created the image */ |
| M4OSA_Char *copyright; /**< copyright holder */ |
| M4COMMON_Orientation orientation; /**< orientation of image */ |
| M4OSA_Int32 thumbnailSize; /**< size of the thumbnail */ |
| M4OSA_UInt8 *thumbnailImg; /**< pointer to the thumbnail in main image buffer*/ |
| M4OSA_Char *latitudeRef; /**< latitude reference */ |
| M4COMMON_Location latitude; /**< latitude */ |
| M4OSA_Char *longitudeRef; /**< longitude reference */ |
| M4COMMON_Location longitude; /**< longitude */ |
| |
| } M4EXIFC_BasicTags; |
| |
| |
| /** |
| ****************************************************************************** |
| * M4OSA_ERR M4EXIFC_getVersion (M4_VersionInfo *pVersion) |
| * @brief get the version numbers of the exif library. |
| * @note This function retrieves the version numbers in a structure. |
| * @param pVersion: (OUT) the structure containing version numbers |
| * @return M4NO_ERROR: there is no error |
| * @return M4EXIFC_ERR_PARAMETER: (Debug only) the parameter is M4EXIFC_NULL. |
| ****************************************************************************** |
| */ |
| M4OSA_ERR M4EXIFC_getVersion (M4_VersionInfo *pVersion); |
| |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif /* __cplusplus*/ |
| #endif /* __M4_EXIF_COMMON_API_H__ */ |
| |