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 ITUNESILSTMETADATAATOM_H_INCLUDED 19 #define ITUNESILSTMETADATAATOM_H_INCLUDED 20 21 #include "atom.h" 22 #include "pvmi_kvp.h" 23 24 25 class ITunesILstMetaDataAtom 26 { 27 public: 28 ITunesILstMetaDataAtom(MP4_FF_FILE *fp, uint32 size, uint32 type); 29 virtual ~ITunesILstMetaDataAtom(); 30 getName()31 OSCL_wHeapString<OsclMemAllocator> getName() const 32 { 33 return _name; 34 } 35 getArtist()36 OSCL_wHeapString<OsclMemAllocator> getArtist() const 37 { 38 return _artist; 39 } 40 getAlbum()41 OSCL_wHeapString<OsclMemAllocator> getAlbum() const 42 { 43 return _album; 44 } 45 46 // Gnre ** Starts ** getGnreID()47 uint16 getGnreID() const 48 { 49 return _gnreID; 50 } getGnreString()51 OSCL_wHeapString<OsclMemAllocator> getGnreString() const 52 { 53 return _gnreString; 54 } 55 56 //This function will tell the type of Genre-- TRUE- If it is Integer, FALSE- if it is String getGnreVesion()57 bool getGnreVesion() const 58 { 59 return _gnreVersion; 60 } 61 // Gnre ** Ends ** 62 63 64 // Returns the 4-byte YEAR when the song was recorded getDay()65 OSCL_wHeapString<OsclMemAllocator> getDay() const 66 { 67 return _day; 68 } 69 getTool()70 OSCL_wHeapString<OsclMemAllocator> getTool() const 71 { 72 return _tool; 73 } 74 getWriter()75 OSCL_wHeapString<OsclMemAllocator> getWriter() 76 { 77 return _writer; 78 } 79 getGroup()80 OSCL_wHeapString<OsclMemAllocator> getGroup() 81 { 82 return _group; 83 } 84 getComment()85 OSCL_wHeapString<OsclMemAllocator> getComment() 86 { 87 return _comment; 88 } 89 getThisTrackNo()90 uint16 getThisTrackNo() 91 { 92 return _thisTrackNo; 93 } getTotalTracks()94 uint16 getTotalTracks() 95 { 96 return _totalTracks; 97 } 98 IsCompilationPart()99 bool IsCompilationPart() 100 { 101 return _compilationPart; 102 } 103 getBeatsPerMinute()104 uint16 getBeatsPerMinute() 105 { 106 return _beatsPerMin; 107 } 108 getPNGImageData()109 PvmfApicStruct getPNGImageData() 110 { 111 return _PNGimageData; 112 } 113 getThisDiskNo()114 uint16 getThisDiskNo() 115 { 116 return _thisDiskNo; 117 } 118 getTotalDisks()119 uint16 getTotalDisks() 120 { 121 return _totalDisks; 122 } 123 getLyrics()124 OSCL_wHeapString<OsclMemAllocator> getLyrics() 125 { 126 return _lyrics; 127 } 128 getNormalizationData()129 OSCL_wHeapString<OsclMemAllocator> getNormalizationData() 130 { 131 return _normlizationData; 132 } 133 getCDIdentifier()134 OSCL_wHeapString<OsclMemAllocator> getCDIdentifier() 135 { 136 return _cdIdentifier; 137 } 138 139 140 private: 141 142 // Title of Song 143 OSCL_wHeapString<OsclMemAllocator> _name; 144 145 // Artist/Performer of the Song 146 OSCL_wHeapString<OsclMemAllocator> _artist; 147 148 // Album of Song 149 OSCL_wHeapString<OsclMemAllocator> _album; 150 151 // Genre 152 OSCL_wHeapString<OsclMemAllocator> _gnreString; // Customized String of Genre 153 uint16 _gnreID; // Genre ID 154 bool _gnreVersion; // Whether gnre is String or ID Number 155 156 // 4 byte String representing Year, when song was recorded. 157 OSCL_wHeapString<OsclMemAllocator> _day; 158 159 // Tool/Encoder used for creation of this file. 160 OSCL_wHeapString<OsclMemAllocator> _tool; 161 162 // Writer of the Song 163 OSCL_wHeapString<OsclMemAllocator> _writer; 164 165 // Group data. 166 OSCL_wHeapString<OsclMemAllocator> _group; 167 168 // Comment 169 OSCL_wHeapString<OsclMemAllocator> _comment; 170 171 // Track Number 172 uint16 _thisTrackNo; 173 uint16 _totalTracks; 174 175 // Whether this file is the Part of Compilation or not. 176 bool _compilationPart; 177 178 // Number of Beats per Minute 179 uint16 _beatsPerMin; 180 181 // Album Art Data- PNG Image data 182 PvmfApicStruct _PNGimageData; 183 184 // Disk Number 185 uint16 _thisDiskNo; 186 uint16 _totalDisks; 187 188 // Lyrics of the Song 189 OSCL_wHeapString<OsclMemAllocator> _lyrics; 190 191 // Free Form Data/ Normalization Data. 192 OSCL_wHeapString<OsclMemAllocator> _normlizationData; 193 194 //CD Identifier 195 OSCL_wHeapString<OsclMemAllocator> _cdIdentifier; 196 197 }; 198 199 200 #endif //ITUNESILSTMETADATAATOM_H_INCLUDED 201 202