blob: 0bab58a2d3ba19914dee1fa2828da9fef5c3d8de [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* 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.
* -------------------------------------------------------------------
*/
#ifndef ASSETINFOATOMS_H_INCLUDED
#define ASSETINFOATOMS_H_INCLUDED
#ifndef ATOM_H_INCLUDED
#include "atom.h"
#endif
#ifndef A_ISUCCEEDFAIL_H_INCLUDED
#include "a_isucceedfail.h"
#endif
#ifndef FULLATOM_H_INCLUDED
#include "fullatom.h"
#endif
#ifndef ATOMUTILS_H_INCLUDED
#include "atomutils.h"
#endif
#ifndef OSCL_VECTOR_H_INCLUDED
#include "oscl_vector.h"
#endif
#define BYTE_ORDER_MASK 0xFEFF
class PVA_FF_AssetInfoTitleAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoTitleAtom();
virtual ~PVA_FF_AssetInfoTitleAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setTitleLangCode(const uint16 aLangCode)
{
_langCode = aLangCode;
}
void setTitleNotice(const PVA_FF_UNICODE_HEAP_STRING aTitle)
{
_title = aTitle;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
PVA_FF_UNICODE_HEAP_STRING _title;
};
class PVA_FF_AssetInfoDescAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoDescAtom();
virtual ~PVA_FF_AssetInfoDescAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setDescLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setDescNotice(PVA_FF_UNICODE_HEAP_STRING aDescription)
{
_description = aDescription;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
PVA_FF_UNICODE_HEAP_STRING _description;
};
class PVA_FF_AssetInfoCopyRightAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoCopyRightAtom();
virtual ~PVA_FF_AssetInfoCopyRightAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setCopyRightLangCode(const uint16 aLangCode)
{
_langCode = aLangCode;
}
void setCopyRightString(const PVA_FF_UNICODE_HEAP_STRING aCprt)
{
_cprt = aCprt;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
PVA_FF_UNICODE_HEAP_STRING _cprt;
};
class PVA_FF_AssetInfoPerformerAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoPerformerAtom();
virtual ~PVA_FF_AssetInfoPerformerAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setPerfLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setPerfNotice(PVA_FF_UNICODE_HEAP_STRING aPerformer)
{
_performer = aPerformer;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
PVA_FF_UNICODE_HEAP_STRING _performer;
};
class PVA_FF_AssetInfoAuthorAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoAuthorAtom();
virtual ~PVA_FF_AssetInfoAuthorAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setAuthorLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setAuthorNotice(PVA_FF_UNICODE_HEAP_STRING aAuthor)
{
_author = aAuthor;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
PVA_FF_UNICODE_HEAP_STRING _author;
};
class PVA_FF_AssetInfoGenreAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoGenreAtom();
virtual ~PVA_FF_AssetInfoGenreAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setGenreLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setGenreNotice(PVA_FF_UNICODE_HEAP_STRING aGenre)
{
_genre = aGenre;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
PVA_FF_UNICODE_HEAP_STRING _genre;
};
class PVA_FF_AssetInfoRatingAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoRatingAtom();
virtual ~PVA_FF_AssetInfoRatingAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setRatingLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setRatingEntity(uint32 aRatingEntity)
{
_ratingEntity = aRatingEntity;
}
void setRatingCriteria(uint32 aRatingCriteria)
{
_ratingCriteria = aRatingCriteria;
}
void setRatingInfoNotice(PVA_FF_UNICODE_HEAP_STRING aRatingInfo)
{
_ratingInfo = aRatingInfo;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
uint32 _ratingEntity;
uint32 _ratingCriteria;
PVA_FF_UNICODE_HEAP_STRING _ratingInfo;
};
class PVA_FF_AssetInfoClassificationAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoClassificationAtom();
virtual ~PVA_FF_AssetInfoClassificationAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setClassificationLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setClassificationEntity(uint32 aClassificationEntity)
{
_classificationEntity = aClassificationEntity;
}
void setClassificationTable(uint32 aClassificationTable)
{
_classificationTable = aClassificationTable;
}
void setClassificationInfoNotice(PVA_FF_UNICODE_HEAP_STRING aClassificationInfo)
{
_classificationInfo = aClassificationInfo;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
uint16 _classificationTable;
uint32 _classificationEntity;
PVA_FF_UNICODE_HEAP_STRING _classificationInfo;
};
class PVA_FF_AssetInfoKeyWordStruct
{
public:
PVA_FF_AssetInfoKeyWordStruct() {};
PVA_FF_AssetInfoKeyWordStruct(uint8 , PVA_FF_UNICODE_HEAP_STRING);
virtual ~PVA_FF_AssetInfoKeyWordStruct() {};
uint32 getSizeofStruct();
bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
private:
uint8 _keyWordSize;
PVA_FF_UNICODE_HEAP_STRING _keyWordInfo;
uint16 _byteOrderMask;
};
class PVA_FF_AssetInfoKeyWordsAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoKeyWordsAtom();
virtual ~PVA_FF_AssetInfoKeyWordsAtom();//{};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setKeyWordsLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setKeyWord(uint32 aKeyWordBinarySize,
PVA_FF_UNICODE_HEAP_STRING aKeyWord);
virtual void recomputeSize();
private:
uint16 _langCode;
uint8 _keyWordCnt;
PVA_FF_AssetInfoKeyWordStruct PVA_FF_KeyWordStruct;
Oscl_Vector<PVA_FF_AssetInfoKeyWordStruct*, OsclMemAllocator> *_pKeyWordVect;
};
class PVA_FF_AssetInfoLocationInfoAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoLocationInfoAtom();
virtual ~PVA_FF_AssetInfoLocationInfoAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setLocationInfoLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setLocationInfoRole(uint8 aLocationInfoRole)
{
_locationInfoRole = aLocationInfoRole;
}
void setLocationInfoLongitude(uint32 _aLocationInfoLongitude)
{
_locationInfoLongitude = _aLocationInfoLongitude;
}
void setLocationInfoLatitude(uint32 _aLocationInfoLatitude)
{
_locationInfoLatitude = _aLocationInfoLatitude;
}
void setLocationInfoAltitude(uint32 _aLocationInfoAltitude)
{
_locationInfoAltitude = _aLocationInfoAltitude;
}
void setLocationInfoName(PVA_FF_UNICODE_HEAP_STRING aLocationInfoName)
{
_locationInfoName = aLocationInfoName;
recomputeSize();
}
void setLocationInfoAstrBody(PVA_FF_UNICODE_HEAP_STRING aLocationInfoAstrBody)
{
_locationInfoAstrBody = aLocationInfoAstrBody;
recomputeSize();
}
void setLocationInfoAddNotes(PVA_FF_UNICODE_HEAP_STRING aLocationInfoAddNotes)
{
_locationInfoAddNotes = aLocationInfoAddNotes;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint8 _locationInfoRole;
uint32 _locationInfoLongitude;
uint32 _locationInfoLatitude;
uint32 _locationInfoAltitude;
PVA_FF_UNICODE_HEAP_STRING _locationInfoName;
PVA_FF_UNICODE_HEAP_STRING _locationInfoAstrBody;
PVA_FF_UNICODE_HEAP_STRING _locationInfoAddNotes;
uint16 _byteOrderMask;
};
class PVA_FF_AssetInfoAlbumAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoAlbumAtom();
virtual ~PVA_FF_AssetInfoAlbumAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setAlbumLangCode(uint16 aLangCode)
{
_langCode = aLangCode;
}
void setAlbumInfo(PVA_FF_UNICODE_HEAP_STRING aAlbumTitle)
{
_albumTitle = aAlbumTitle;
recomputeSize();
}
void setAlbumTrackNumber(uint8 trackNumber)
{
_trackNumber = trackNumber;
}
virtual void recomputeSize();
private:
uint16 _langCode;
uint16 _byteOrderMask;
uint8 _trackNumber;
PVA_FF_UNICODE_HEAP_STRING _albumTitle;
};
class PVA_FF_AssetInfoRecordingYearAtom : public PVA_FF_FullAtom
{
public:
PVA_FF_AssetInfoRecordingYearAtom();
virtual ~PVA_FF_AssetInfoRecordingYearAtom() {};
virtual bool renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP *fp);
// Member gets
void setRecordingYear(uint16 aRecordingYear)
{
_recordingYear = aRecordingYear;
recomputeSize();
}
virtual void recomputeSize();
private:
uint16 _recordingYear;
};
#endif // ASSETINFOATOMS_H_INCLUDED