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 /*********************************************************************************/
     19 /*     -------------------------------------------------------------------       */
     20 /*                          MPEG-4 UserDataAtom Class                            */
     21 /*     -------------------------------------------------------------------       */
     22 /*********************************************************************************/
     23 /*
     24     This UserDataAtom Class is a container atom for informative user-data.
     25 */
     26 
     27 
     28 #ifndef PVUSERDATAATOM_H_INCLUDED
     29 #define PVUSERDATAATOM_H_INCLUDED
     30 
     31 #ifndef ATOM_H_INCLUDED
     32 #include "atom.h"
     33 #endif
     34 
     35 #ifndef ISUCCEEDFAIL_H_INCLUDED
     36 #include "isucceedfail.h"
     37 #endif
     38 
     39 #ifndef ATOMUTILS_H_INCLUDED
     40 #include "atomutils.h"
     41 #endif
     42 
     43 #ifndef ATOMDEFS_H_INCLUDED
     44 #include "atomdefs.h"
     45 #endif
     46 
     47 class PVUserDataAtom : public Atom
     48 {
     49 
     50     public:
     51         PVUserDataAtom(); // Constructor
     52         PVUserDataAtom(MP4_FF_FILE *fp, uint32 size, uint32 type); // Constructor
     53         PVUserDataAtom(PVUserDataAtom &atom); // Copy constructor
     54         virtual ~PVUserDataAtom();
     55 
     56         // Member gets
     57         OSCL_wString& getPVVersion()
     58         {
     59             return _version;    // Special member get
     60         }
     61         OSCL_wString& getPVTitle(MP4FFParserOriginalCharEnc &charType)
     62         {
     63             charType = ORIGINAL_CHAR_TYPE_UTF16;
     64             return _title;
     65         }
     66         OSCL_wString& getPVAuthor(MP4FFParserOriginalCharEnc &charType)
     67         {
     68             charType = ORIGINAL_CHAR_TYPE_UTF16;
     69             return _author;
     70         }
     71         OSCL_wString& getPVCopyright(MP4FFParserOriginalCharEnc &charType)
     72         {
     73             charType = ORIGINAL_CHAR_TYPE_UTF16;
     74             return _copyright;
     75         }
     76         OSCL_wString& getPVDescription(MP4FFParserOriginalCharEnc &charType)
     77         {
     78             charType = ORIGINAL_CHAR_TYPE_UTF16;
     79             return _description;
     80         }
     81         OSCL_wString& getPVRating(MP4FFParserOriginalCharEnc &charType)
     82         {
     83             charType = ORIGINAL_CHAR_TYPE_UTF16;
     84             return _rating;
     85         }
     86         OSCL_wHeapString<OsclMemAllocator> getPVCreationDate(MP4FFParserOriginalCharEnc &charType)
     87         {
     88             charType = ORIGINAL_CHAR_TYPE_UTF16;
     89             return _creationDate;
     90         }
     91 
     92     private:
     93         OSCL_wHeapString<OsclMemAllocator> _version; // Static for the version of the file format code
     94         OSCL_wHeapString<OsclMemAllocator> _title;
     95         OSCL_wHeapString<OsclMemAllocator> _author;
     96         OSCL_wHeapString<OsclMemAllocator> _copyright;
     97         OSCL_wHeapString<OsclMemAllocator> _description;
     98         OSCL_wHeapString<OsclMemAllocator> _rating;
     99         OSCL_wHeapString<OsclMemAllocator> _creationDate;
    100 };
    101 
    102 class PVContentTypeAtom : public Atom
    103 {
    104 
    105     public:
    106         PVContentTypeAtom(MP4_FF_FILE *fp, uint32 size, uint32 type); // Constructor
    107         virtual ~PVContentTypeAtom() {};
    108 
    109         uint32 getContentType() const
    110         {
    111             return _contentType;
    112         }
    113 
    114     private:
    115         uint32 _contentType;
    116 };
    117 
    118 #endif // PVUSERDATAATOM_H_INCLUDED
    119 
    120 
    121