• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2011 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 /**
17  ******************************************************************************
18  * @file    M4EXIFC_CommonAPI.h
19  * @brief    EXIF common data header
20  * @note    The types, structures and macros defined in this file allow reading
21  *            and writing EXIF JPEG images compliant spec EXIF 2.2
22  ******************************************************************************
23 */
24 
25 
26 #ifndef __M4_EXIF_COMMON_API_H__
27 #define __M4_EXIF_COMMON_API_H__
28 
29 #include "M4TOOL_VersionInfo.h"
30 #include "M4Common_types.h"
31 #include "M4OSA_Debug.h"
32 #include "M4OSA_Error.h"
33 #include "M4OSA_Types.h"
34 #include "M4OSA_Memory.h"
35 #include "M4OSA_CoreID.h"
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 /**
42  ************************************************************************
43  * type M4EXIFC_Context
44  ************************************************************************
45 */
46 typedef M4OSA_Void*    M4EXIFC_Context;
47 
48 /**
49  ******************************************************************************
50  * Errors & Warnings
51  ******************************************************************************
52 */
53 
54 #define M4EXIFC_NO_ERR              0x00000000    /**< invalid parameter */
55 #define M4EXIFC_ERR_PARAMETER       0x00000001    /**< invalid parameter */
56 #define M4EXIFC_ERR_ALLOC           0x00000002    /**< allocation error */
57 #define M4EXIFC_ERR_BAD_CONTEXT     0x00000003    /**< invalid context */
58 #define M4EXIFC_ERR_NOT_COMPLIANT   0x00000004    /**< the image in buffer is not
59                                                        JPEG compliant */
60 #define M4EXIFC_ERR_NO_APP_FOUND    0x00000005    /**< the JPEG image does not contain any APP1
61                                                         Exif 2.2 compliant */
62 #define M4EXIFC_WAR_NO_THUMBNAIL    0x00000006    /**< the Exif part does not contain any
63                                                         thumbnail */
64 #define M4EXIFC_ERR_APP_TRUNCATED   0x00000007    /**< The APP1 section in input buffer is
65                                                         not complete */
66 
67 
68 /**
69  ******************************************************************************
70  * structure    M4EXIFC_BasicTags
71  * @brief        This structure stores the basic tags values.
72  * @note        This Exif reader focuses on a set of "Entry Tags".
73  *                This structure contains the corresponding "Entry Values" of these tags.
74  *                M4EXIFC_Char* fields of structure are Null terminated Strings.
75  ******************************************************************************
76 */
77 typedef struct
78 {
79     M4OSA_Int32        width;                /**< image width in pixels */
80     M4OSA_Int32        height;               /**< image height in pixels */
81     M4OSA_Char        *creationDateTime;     /**< date and time original image was generated */
82     M4OSA_Char        *lastChangeDateTime;   /**< file change date and time */
83     M4OSA_Char        *description;          /**< image title */
84     M4OSA_Char        *make;                 /**< manufacturer of image input equipment */
85     M4OSA_Char        *model;                /**< model of image input equipment */
86     M4OSA_Char        *software;             /**< software used */
87     M4OSA_Char        *artist;               /**< person who created the image */
88     M4OSA_Char        *copyright;            /**< copyright holder */
89     M4COMMON_Orientation orientation;        /**< orientation of image */
90     M4OSA_Int32        thumbnailSize;        /**< size of the thumbnail */
91     M4OSA_UInt8        *thumbnailImg;        /**< pointer to the thumbnail in main image buffer*/
92     M4OSA_Char        *latitudeRef;          /**< latitude reference */
93     M4COMMON_Location latitude;              /**< latitude */
94     M4OSA_Char        *longitudeRef;         /**< longitude reference */
95     M4COMMON_Location longitude;             /**< longitude */
96 
97 } M4EXIFC_BasicTags;
98 
99 
100 /**
101  ******************************************************************************
102  * M4OSA_ERR M4EXIFC_getVersion    (M4_VersionInfo *pVersion)
103  * @brief    get the version numbers of the exif library.
104  * @note    This function retrieves the version numbers in a structure.
105  * @param    pVersion:    (OUT)        the structure containing version numbers
106  * @return    M4NO_ERROR:                there is no error
107  * @return    M4EXIFC_ERR_PARAMETER:        (Debug only) the parameter is M4EXIFC_NULL.
108  ******************************************************************************
109 */
110 M4OSA_ERR M4EXIFC_getVersion (M4_VersionInfo *pVersion);
111 
112 
113 
114 #ifdef __cplusplus
115 }
116 #endif /* __cplusplus*/
117 #endif /* __M4_EXIF_COMMON_API_H__ */
118 
119