| /* |
| * 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 M4Common_Types.h |
| * @brief defines common structures |
| * @note |
| * |
| ************************************************************************ |
| */ |
| #ifndef M4COMMON_TYPES_H |
| #define M4COMMON_TYPES_H |
| |
| #include "M4OSA_Types.h" |
| #include "M4OSA_Memory.h" |
| |
| /** |
| ************************************************************************ |
| * structure M4COMMON_MetadataType |
| ************************************************************************ |
| */ |
| typedef enum |
| { |
| M4COMMON_kUnknownMetaDataType, |
| /* Local files */ |
| M4COMMON_kTagID3v1, /**< Metadata from TAG ID3 V1 */ |
| M4COMMON_kTagID3v2, /**< Metadata from TAG ID3 V2 */ |
| M4COMMON_kASFContentDesc, /**< Metadata from ASF content description */ |
| |
| M4COMMON_k3GppAssetMovieBox, /**< Metadata from a 3gpp file (movie box) */ |
| M4COMMON_k3GppAssetTrackBox, /**< Metadata from a 3gpp file (track box) */ |
| |
| /* Streaming */ |
| M4COMMON_kMetaDataSdpSession, /**< Metadata from an SDP file (Session level) */ |
| M4COMMON_kMetaDataSdpAudio, /**< Metadata from an SDP file (media audio level) */ |
| M4COMMON_kMetaDataSdpVideo, /**< Metadata from an SDP file (media video level) */ |
| |
| M4COMMON_kJpegExif /**< EXIF in JPEG */ |
| } M4COMMON_MetadataType; |
| |
| /** |
| ************************************************************************ |
| * enumeration M4VPS_EncodingFormat |
| * @brief Text encoding format |
| ************************************************************************ |
| */ |
| typedef enum |
| { |
| M4COMMON_kEncFormatUnknown = 0, /**< Unknown format */ |
| M4COMMON_kEncFormatASCII = 1, /**< ISO-8859-1. Terminated with $00 */ |
| M4COMMON_kEncFormatUTF8 = 2, /**< UTF-8 encoded Unicode . Terminated with $00 */ |
| M4COMMON_kEncFormatUTF16 = 3 /**< UTF-16 encoded Unicode. Terminated with $00 00 */ |
| } M4COMMON_EncodingFormat; |
| |
| /** |
| ************************************************************************ |
| * structure M4VPS_String |
| * @brief This structure defines string attribute |
| ************************************************************************ |
| */ |
| typedef struct |
| { |
| M4OSA_Void* m_pString; /**< Pointer to text */ |
| M4OSA_UInt32 m_uiSize; /**< Text size in bytes */ |
| M4COMMON_EncodingFormat m_EncodingFormat; /**< Text encoding format */ |
| |
| } M4COMMON_String; |
| |
| /** |
| ************************************************************************ |
| * structure M4COMMON_Buffer |
| * @brief This structure defines generic buffer attribute |
| ************************************************************************ |
| */ |
| typedef struct |
| { |
| M4OSA_MemAddr8 m_pBuffer; /**< Pointer to buffer */ |
| M4OSA_UInt32 m_size; /**< size of buffer in bytes */ |
| } M4COMMON_Buffer; |
| |
| typedef enum |
| { |
| M4COMMON_kMimeType_NONE, |
| M4COMMON_kMimeType_JPG, |
| M4COMMON_kMimeType_PNG, |
| M4COMMON_kMimeType_BMP, /* bitmap, with header */ |
| M4COMMON_kMimeType_RGB24, /* raw RGB 24 bits */ |
| M4COMMON_kMimeType_RGB565, /* raw, RGB 16 bits */ |
| M4COMMON_kMimeType_YUV420, |
| M4COMMON_kMimeType_MPEG4_IFrame /* RC: to support PV art */ |
| |
| } M4COMMON_MimeType; |
| |
| /* picture type definition from id3v2 tag*/ |
| typedef enum |
| { |
| M4COMMON_kPicType_Other = 0x00, |
| M4COMMON_kPicType_32_32_Icon = 0x01, |
| M4COMMON_kPicType_Other_Icon = 0x02, |
| M4COMMON_kPicType_FrontCover = 0x03, |
| M4COMMON_kPicType_BackCover = 0x04, |
| M4COMMON_kPicType_LeafletPage = 0x05, |
| M4COMMON_kPicType_Media = 0x06, |
| M4COMMON_kPicType_LeadArtist = 0x07, |
| M4COMMON_kPicType_Artist = 0x08, |
| M4COMMON_kPicType_Conductor = 0x09, |
| M4COMMON_kPicType_Orchestra = 0x0A, |
| M4COMMON_kPicType_Composer = 0x0B, |
| M4COMMON_kPicType_Lyricist = 0x0C, |
| M4COMMON_kPicType_RecordingLocation = 0x0D, |
| M4COMMON_kPicType_DuringRecording = 0x0E, |
| M4COMMON_kPicType_DuringPerformance = 0x0F, |
| M4COMMON_kPicType_MovieScreenCapture = 0x10, |
| M4COMMON_kPicType_BrightColouredFish = 0x11, |
| M4COMMON_kPicType_Illustration = 0x12, |
| M4COMMON_kPicType_ArtistLogo = 0x13, |
| M4COMMON_kPicType_StudioLogo = 0x14 |
| } M4COMMON_PictureType; |
| |
| /** |
| ****************************************************************************** |
| * enum M4COMMON_Orientation |
| * @brief This enum defines the possible orientation of a frame as described |
| * in the EXIF standard. |
| ****************************************************************************** |
| */ |
| typedef enum |
| { |
| M4COMMON_kOrientationUnknown = 0, |
| M4COMMON_kOrientationTopLeft, |
| M4COMMON_kOrientationTopRight, |
| M4COMMON_kOrientationBottomRight, |
| M4COMMON_kOrientationBottomLeft, |
| M4COMMON_kOrientationLeftTop, |
| M4COMMON_kOrientationRightTop, |
| M4COMMON_kOrientationRightBottom, |
| M4COMMON_kOrientationLeftBottom |
| }M4COMMON_Orientation ; |
| |
| /** |
| ****************************************************************************** |
| * structure M4EXIFC_Location |
| * @brief The Image GPS location (example : 48°52.21' ) |
| ****************************************************************************** |
| */ |
| typedef struct |
| { |
| M4OSA_Float degrees; |
| M4OSA_Float minsec; |
| } M4COMMON_Location; |
| |
| /** |
| ************************************************************************ |
| * structure M4COMMON_MetaDataAlbumArt |
| * @brief This structure defines fields of a album art |
| ************************************************************************ |
| */ |
| typedef struct |
| { |
| M4COMMON_MimeType m_mimeType; |
| M4OSA_UInt32 m_uiSize; |
| M4OSA_Void* m_pData; |
| |
| M4COMMON_String m_pDescription; |
| |
| } M4COMMON_MetaDataAlbumArt; |
| |
| /** |
| ************************************************************************ |
| * structure M4COMMON_MetaDataFields |
| * @brief This structure defines fields of metadata information |
| ************************************************************************ |
| */ |
| typedef struct |
| { |
| M4COMMON_MetadataType m_MetadataType; |
| |
| /* Meta data fields */ |
| M4COMMON_String m_pTitle; /**< Title for the media */ |
| M4COMMON_String m_pArtist; /**< Performer or artist */ |
| M4COMMON_String m_pAlbum; /**< Album title for the media */ |
| M4COMMON_String m_pAuthor; /**< Author of the media */ |
| M4COMMON_String m_pGenre; /**< Genre (category and style) of the media */ |
| M4COMMON_String m_pDescription; /**< Caption or description for the media */ |
| M4COMMON_String m_pCopyRights; /**< Notice about organization holding copyright |
| for the media file */ |
| M4COMMON_String m_pRecordingYear; /**< Recording year for the media */ |
| M4COMMON_String m_pRating; /**< Media rating */ |
| |
| M4COMMON_String m_pClassification; /**< Classification of the media */ |
| M4COMMON_String m_pKeyWords; /**< Media keywords */ |
| M4COMMON_String m_pLocation; /**< Location information */ |
| M4COMMON_String m_pUrl; /**< Reference of the resource */ |
| |
| M4OSA_UInt8 m_uiTrackNumber; /**< Track number for the media*/ |
| M4OSA_UInt32 m_uiDuration; /**< The track duration in milliseconds */ |
| |
| M4COMMON_MetaDataAlbumArt m_albumArt; /**< AlbumArt description */ |
| M4COMMON_String m_pMood; /**< Mood of the media */ |
| |
| /**< Modifs ACO 4/12/07 : add Exif specific infos */ |
| M4COMMON_String m_pCreationDateTime; /**< date and time original image was generated */ |
| M4COMMON_String m_pLastChangeDateTime; /**< file change date and time */ |
| M4COMMON_String m_pManufacturer; /**< manufacturer of image input equipment */ |
| M4COMMON_String m_pModel; /**< model of image input equipment */ |
| M4COMMON_String m_pSoftware; /**< software used */ |
| M4COMMON_Orientation m_Orientation; /**< Orientation of the picture */ |
| |
| /**< Modifs FS 29/08/08 : additionnal Exif infos */ |
| M4OSA_UInt32 m_width; /**< image width in pixels */ |
| M4OSA_UInt32 m_height; /**< image height in pixels */ |
| M4OSA_UInt32 m_thumbnailSize; /**< size of the thumbnail */ |
| M4COMMON_String m_pLatitudeRef; /**< Latitude reference */ |
| M4COMMON_Location m_latitude; /**< Latitude */ |
| M4COMMON_String m_pLongitudeRef; /**< Longitude reference */ |
| M4COMMON_Location m_longitude; /**< Longitude */ |
| |
| } M4COMMON_MetaDataFields; |
| |
| |
| #endif /*M4COMMON_TYPES_H*/ |
| |