Home | History | Annotate | Download | only in include
      1 /* ------------------------------------------------------------------
      2  * Copyright (C) 1998-2009 PacketVideo
      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
     13  * express or implied.
     14  * See the License for the specific language governing permissions
     15  * and limitations under the License.
     16  * -------------------------------------------------------------------
     17  */
     18 #ifndef ASSETINFOATOMS_H_INCLUDED
     19 #define ASSETINFOATOMS_H_INCLUDED
     20 
     21 #ifndef ATOM_H_INCLUDED
     22 #include "atom.h"
     23 #endif
     24 #ifndef A_ISUCCEEDFAIL_H_INCLUDED
     25 #include "a_isucceedfail.h"
     26 #endif
     27 #ifndef FULLATOM_H_INCLUDED
     28 #include "fullatom.h"
     29 #endif
     30 #ifndef ATOMUTILS_H_INCLUDED
     31 #include "atomutils.h"
     32 #endif
     33 #ifndef OSCL_VECTOR_H_INCLUDED
     34 #include "oscl_vector.h"
     35 #endif
     36 
     37 #define BYTE_ORDER_MASK 0xFEFF
     38 
     39 class PVA_FF_AssetInfoTitleAtom : public PVA_FF_FullAtom
     40 {
     41     public:
     42         PVA_FF_AssetInfoTitleAtom();
     43         virtual ~PVA_FF_AssetInfoTitleAtom() {};
     44         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
     45 
     46         // Member gets
     47         void setTitleLangCode(const uint16  aLangCode)
     48         {
     49             _langCode = aLangCode;
     50         }
     51         void setTitleNotice(const PVA_FF_UNICODE_HEAP_STRING aTitle)
     52         {
     53             _title = aTitle;
     54             recomputeSize();
     55         }
     56         virtual void recomputeSize();
     57     private:
     58         uint16 _langCode;
     59         uint16  _byteOrderMask;
     60         PVA_FF_UNICODE_HEAP_STRING _title;
     61 };
     62 
     63 class PVA_FF_AssetInfoDescAtom : public PVA_FF_FullAtom
     64 {
     65     public:
     66         PVA_FF_AssetInfoDescAtom();
     67         virtual ~PVA_FF_AssetInfoDescAtom() {};
     68         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
     69 
     70         // Member gets
     71         void setDescLangCode(uint16 aLangCode)
     72         {
     73             _langCode = aLangCode;
     74         }
     75         void setDescNotice(PVA_FF_UNICODE_HEAP_STRING aDescription)
     76         {
     77             _description = aDescription;
     78             recomputeSize();
     79         }
     80         virtual void recomputeSize();
     81     private:
     82         uint16 _langCode;
     83         uint16  _byteOrderMask;
     84         PVA_FF_UNICODE_HEAP_STRING _description;
     85 };
     86 
     87 class PVA_FF_AssetInfoCopyRightAtom : public PVA_FF_FullAtom
     88 {
     89     public:
     90         PVA_FF_AssetInfoCopyRightAtom();
     91         virtual ~PVA_FF_AssetInfoCopyRightAtom() {};
     92         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
     93 
     94         // Member gets
     95         void setCopyRightLangCode(const uint16  aLangCode)
     96         {
     97             _langCode = aLangCode;
     98         }
     99         void setCopyRightString(const PVA_FF_UNICODE_HEAP_STRING aCprt)
    100         {
    101             _cprt = aCprt;
    102             recomputeSize();
    103         }
    104         virtual void recomputeSize();
    105     private:
    106         uint16 _langCode;
    107         uint16  _byteOrderMask;
    108         PVA_FF_UNICODE_HEAP_STRING _cprt;
    109 };
    110 
    111 class PVA_FF_AssetInfoPerformerAtom : public PVA_FF_FullAtom
    112 {
    113     public:
    114         PVA_FF_AssetInfoPerformerAtom();
    115         virtual ~PVA_FF_AssetInfoPerformerAtom() {};
    116         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    117         // Member gets
    118         void setPerfLangCode(uint16 aLangCode)
    119         {
    120             _langCode = aLangCode;
    121         }
    122         void setPerfNotice(PVA_FF_UNICODE_HEAP_STRING aPerformer)
    123         {
    124             _performer = aPerformer;
    125             recomputeSize();
    126         }
    127         virtual void recomputeSize();
    128     private:
    129         uint16 _langCode;
    130         uint16  _byteOrderMask;
    131         PVA_FF_UNICODE_HEAP_STRING _performer;
    132 };
    133 
    134 class PVA_FF_AssetInfoAuthorAtom : public PVA_FF_FullAtom
    135 {
    136     public:
    137         PVA_FF_AssetInfoAuthorAtom();
    138         virtual ~PVA_FF_AssetInfoAuthorAtom() {};
    139         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    140         // Member gets
    141         void setAuthorLangCode(uint16 aLangCode)
    142         {
    143             _langCode = aLangCode;
    144         }
    145         void setAuthorNotice(PVA_FF_UNICODE_HEAP_STRING aAuthor)
    146         {
    147             _author = aAuthor;
    148             recomputeSize();
    149         }
    150         virtual void recomputeSize();
    151     private:
    152         uint16 _langCode;
    153         uint16  _byteOrderMask;
    154         PVA_FF_UNICODE_HEAP_STRING _author;
    155 };
    156 
    157 class PVA_FF_AssetInfoGenreAtom : public PVA_FF_FullAtom
    158 {
    159     public:
    160         PVA_FF_AssetInfoGenreAtom();
    161         virtual ~PVA_FF_AssetInfoGenreAtom() {};
    162         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    163         // Member gets
    164         void setGenreLangCode(uint16 aLangCode)
    165         {
    166             _langCode = aLangCode;
    167         }
    168         void setGenreNotice(PVA_FF_UNICODE_HEAP_STRING aGenre)
    169         {
    170             _genre = aGenre;
    171             recomputeSize();
    172         }
    173         virtual void recomputeSize();
    174     private:
    175         uint16 _langCode;
    176         uint16  _byteOrderMask;
    177         PVA_FF_UNICODE_HEAP_STRING _genre;
    178 
    179 };
    180 
    181 class PVA_FF_AssetInfoRatingAtom : public PVA_FF_FullAtom
    182 {
    183     public:
    184         PVA_FF_AssetInfoRatingAtom();
    185         virtual ~PVA_FF_AssetInfoRatingAtom() {};
    186         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    187         // Member gets
    188         void setRatingLangCode(uint16 aLangCode)
    189         {
    190             _langCode = aLangCode;
    191         }
    192 
    193         void setRatingEntity(uint32 aRatingEntity)
    194         {
    195             _ratingEntity = aRatingEntity;
    196         }
    197 
    198         void setRatingCriteria(uint32 aRatingCriteria)
    199         {
    200             _ratingCriteria = aRatingCriteria;
    201         }
    202 
    203         void setRatingInfoNotice(PVA_FF_UNICODE_HEAP_STRING aRatingInfo)
    204         {
    205             _ratingInfo = aRatingInfo;
    206             recomputeSize();
    207         }
    208         virtual void recomputeSize();
    209     private:
    210         uint16 _langCode;
    211         uint16  _byteOrderMask;
    212         uint32 _ratingEntity;
    213         uint32 _ratingCriteria;
    214         PVA_FF_UNICODE_HEAP_STRING _ratingInfo;
    215 };
    216 
    217 class PVA_FF_AssetInfoClassificationAtom : public PVA_FF_FullAtom
    218 {
    219     public:
    220         PVA_FF_AssetInfoClassificationAtom();
    221         virtual ~PVA_FF_AssetInfoClassificationAtom() {};
    222         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    223         // Member gets
    224         void setClassificationLangCode(uint16 aLangCode)
    225         {
    226             _langCode = aLangCode;
    227         }
    228 
    229         void setClassificationEntity(uint32 aClassificationEntity)
    230         {
    231             _classificationEntity = aClassificationEntity;
    232         }
    233 
    234 
    235         void setClassificationTable(uint32 aClassificationTable)
    236         {
    237             _classificationTable = aClassificationTable;
    238         }
    239 
    240         void setClassificationInfoNotice(PVA_FF_UNICODE_HEAP_STRING aClassificationInfo)
    241         {
    242             _classificationInfo = aClassificationInfo;
    243             recomputeSize();
    244         }
    245 
    246         virtual void recomputeSize();
    247     private:
    248         uint16 _langCode;
    249         uint16  _byteOrderMask;
    250         uint16 _classificationTable;
    251         uint32 _classificationEntity;
    252 
    253         PVA_FF_UNICODE_HEAP_STRING _classificationInfo;
    254 
    255 };
    256 
    257 class PVA_FF_AssetInfoKeyWordStruct
    258 {
    259 
    260     public:
    261         PVA_FF_AssetInfoKeyWordStruct() {};
    262         PVA_FF_AssetInfoKeyWordStruct(uint8 , PVA_FF_UNICODE_HEAP_STRING);
    263         virtual ~PVA_FF_AssetInfoKeyWordStruct() {};
    264         uint32 getSizeofStruct();
    265         bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    266 
    267     private:
    268         uint8 _keyWordSize;
    269         PVA_FF_UNICODE_HEAP_STRING _keyWordInfo;
    270         uint16  _byteOrderMask;
    271 
    272 };
    273 
    274 class PVA_FF_AssetInfoKeyWordsAtom : public PVA_FF_FullAtom
    275 {
    276     public:
    277         PVA_FF_AssetInfoKeyWordsAtom();
    278         virtual ~PVA_FF_AssetInfoKeyWordsAtom();//{};
    279         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    280         // Member gets
    281 
    282         void setKeyWordsLangCode(uint16 aLangCode)
    283         {
    284             _langCode = aLangCode;
    285         }
    286 
    287         void setKeyWord(uint32 aKeyWordBinarySize,
    288                         PVA_FF_UNICODE_HEAP_STRING aKeyWord);
    289         virtual void recomputeSize();
    290     private:
    291         uint16 _langCode;
    292         uint8 _keyWordCnt;
    293         PVA_FF_AssetInfoKeyWordStruct PVA_FF_KeyWordStruct;
    294         Oscl_Vector<PVA_FF_AssetInfoKeyWordStruct*, OsclMemAllocator> *_pKeyWordVect;
    295 
    296 };
    297 
    298 class PVA_FF_AssetInfoLocationInfoAtom : public PVA_FF_FullAtom
    299 {
    300     public:
    301         PVA_FF_AssetInfoLocationInfoAtom();
    302         virtual ~PVA_FF_AssetInfoLocationInfoAtom() {};
    303         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    304         // Member gets
    305         void setLocationInfoLangCode(uint16 aLangCode)
    306         {
    307             _langCode = aLangCode;
    308         }
    309 
    310         void setLocationInfoRole(uint8 aLocationInfoRole)
    311         {
    312             _locationInfoRole = aLocationInfoRole;
    313         }
    314 
    315         void setLocationInfoLongitude(uint32 _aLocationInfoLongitude)
    316         {
    317             _locationInfoLongitude = _aLocationInfoLongitude;
    318         }
    319 
    320         void setLocationInfoLatitude(uint32 _aLocationInfoLatitude)
    321         {
    322             _locationInfoLatitude = _aLocationInfoLatitude;
    323         }
    324 
    325         void setLocationInfoAltitude(uint32 _aLocationInfoAltitude)
    326         {
    327             _locationInfoAltitude = _aLocationInfoAltitude;
    328         }
    329 
    330         void setLocationInfoName(PVA_FF_UNICODE_HEAP_STRING aLocationInfoName)
    331         {
    332             _locationInfoName = aLocationInfoName;
    333             recomputeSize();
    334         }
    335 
    336         void setLocationInfoAstrBody(PVA_FF_UNICODE_HEAP_STRING aLocationInfoAstrBody)
    337         {
    338             _locationInfoAstrBody = aLocationInfoAstrBody;
    339             recomputeSize();
    340         }
    341 
    342         void setLocationInfoAddNotes(PVA_FF_UNICODE_HEAP_STRING aLocationInfoAddNotes)
    343         {
    344             _locationInfoAddNotes = aLocationInfoAddNotes;
    345             recomputeSize();
    346         }
    347         virtual void recomputeSize();
    348     private:
    349         uint16 _langCode;
    350         uint8  _locationInfoRole;
    351 
    352         uint32 _locationInfoLongitude;
    353         uint32 _locationInfoLatitude;
    354         uint32 _locationInfoAltitude;
    355 
    356         PVA_FF_UNICODE_HEAP_STRING _locationInfoName;
    357         PVA_FF_UNICODE_HEAP_STRING _locationInfoAstrBody;
    358         PVA_FF_UNICODE_HEAP_STRING _locationInfoAddNotes;
    359         uint16  _byteOrderMask;
    360 
    361 };
    362 
    363 class PVA_FF_AssetInfoAlbumAtom : public PVA_FF_FullAtom
    364 {
    365     public:
    366         PVA_FF_AssetInfoAlbumAtom();
    367         virtual ~PVA_FF_AssetInfoAlbumAtom() {};
    368         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    369 
    370         // Member gets
    371         void setAlbumLangCode(uint16  aLangCode)
    372         {
    373             _langCode = aLangCode;
    374         }
    375         void setAlbumInfo(PVA_FF_UNICODE_HEAP_STRING aAlbumTitle)
    376         {
    377             _albumTitle = aAlbumTitle;
    378             recomputeSize();
    379         }
    380         void setAlbumTrackNumber(uint8 trackNumber)
    381         {
    382             _trackNumber = trackNumber;
    383         }
    384         virtual void recomputeSize();
    385     private:
    386         uint16 _langCode;
    387         uint16  _byteOrderMask;
    388         uint8 _trackNumber;
    389         PVA_FF_UNICODE_HEAP_STRING _albumTitle;
    390 };
    391 
    392 class PVA_FF_AssetInfoRecordingYearAtom : public PVA_FF_FullAtom
    393 {
    394     public:
    395         PVA_FF_AssetInfoRecordingYearAtom();
    396         virtual ~PVA_FF_AssetInfoRecordingYearAtom() {};
    397         virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
    398 
    399         // Member gets
    400         void setRecordingYear(uint16 aRecordingYear)
    401         {
    402             _recordingYear = aRecordingYear;
    403             recomputeSize();
    404         }
    405         virtual void recomputeSize();
    406     private:
    407         uint16 _recordingYear;
    408 };
    409 
    410 #endif  // ASSETINFOATOMS_H_INCLUDED
    411