1 /**************************************************************************
2 copyright : (C) 2007 by Lukáš Lalinský
3 email : lalinsky@gmail.com
4 **************************************************************************/
6 /***************************************************************************
7 * This library is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU Lesser General Public License version *
9 * 2.1 as published by the Free Software Foundation. *
11 * This library is distributed in the hope that it will be useful, but *
12 * WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14 * Lesser General Public License for more details. *
16 * You should have received a copy of the GNU Lesser General Public *
17 * License along with this library; if not, write to the Free Software *
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
21 * Alternatively, this file is available under the Mozilla Public *
22 * License Version 1.1. You may obtain a copy of the License at *
23 * http://www.mozilla.org/MPL/ *
24 ***************************************************************************/
26 #ifndef TAGLIB_MP4FILE_H
27 #define TAGLIB_MP4FILE_H
31 #include "taglib_export.h"
32 #include "mp4properties.h"
37 //! An implementation of MP4 (AAC, ALAC, ...) metadata
43 * This implements and provides an interface for MP4 files to the
44 * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
45 * the abstract TagLib::File API as well as providing some additional
46 * information specific to MP4 files.
48 class TAGLIB_EXPORT File : public TagLib::File
52 * Contructs a MP4 file from \a file. If \a readProperties is true the
53 * file's audio properties will also be read using \a propertiesStyle. If
54 * false, \a propertiesStyle is ignored.
56 * \note In the current implementation, both \a readProperties and
57 * \a propertiesStyle are ignored.
59 File(FileName file, bool readProperties = true, Properties::ReadStyle audioPropertiesStyle = Properties::Average);
62 * Destroys this instance of the File.
67 * Returns a pointer to the MP4 tag of the file.
69 * MP4::Tag implements the tag interface, so this serves as the
70 * reimplementation of TagLib::File::tag().
72 * \note The Tag <b>is still</b> owned by the MP4::File and should not be
73 * deleted by the user. It will be deleted when the file (object) is
79 * Returns the MP4 audio properties for this file.
81 Properties *audioProperties() const;
86 * This returns true if the save was successful.
92 void read(bool readProperties, Properties::ReadStyle audioPropertiesStyle);
93 bool checkValid(const MP4::AtomList &list);