TagLib  2.2.1
itfile.h
Go to the documentation of this file.
1 /***************************************************************************
2  copyright : (C) 2011 by Mathias Panzenböck
3  email : grosser.meister.morti@gmx.net
4  ***************************************************************************/
5 
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. *
10  * *
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. *
15  * *
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., 51 Franklin Street, Fifth Floor, Boston, *
19  * MA 02110-1301 USA *
20  ***************************************************************************/
21 
22 #ifndef TAGLIB_ITFILE_H
23 #define TAGLIB_ITFILE_H
24 
25 #include "tfile.h"
26 #include "taglib_export.h"
27 #include "audioproperties.h"
28 #include "modfilebase.h"
29 #include "modtag.h"
30 #include "itproperties.h"
31 
32 namespace TagLib {
33 
35 
40  namespace IT {
41 
43 
51  class TAGLIB_EXPORT File : public Mod::FileBase {
52  public:
60  File(FileName file, bool readProperties = true,
61  AudioProperties::ReadStyle propertiesStyle =
63 
74  File(IOStream *stream, bool readProperties = true,
75  AudioProperties::ReadStyle propertiesStyle =
77 
81  ~File() override;
82 
83  File(const File &) = delete;
84  File &operator=(const File &) = delete;
85 
86  Mod::Tag *tag() const override;
87 
92  IT::Properties *audioProperties() const override;
93 
100  bool save() override;
101 
102  private:
103  void read(bool readProperties);
104 
105  class FilePrivate;
107  std::unique_ptr<FilePrivate> d;
108  };
109  } // namespace IT
110 } // namespace TagLib
111 
112 #endif
An abstract class that provides operations on a sequence of bytes.
Definition: tiostream.h:64
An implementation of audio property reading for IT.
Definition: itproperties.h:34
Base class for module files.
Definition: modfilebase.h:37
Read more of the file and make better values guesses.
Definition: audioproperties.h:60
const char * FileName
Definition: tiostream.h:59
#define TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE
Definition: taglib_export.h:55
ReadStyle
Definition: audioproperties.h:56
#define TAGLIB_EXPORT
Definition: taglib_export.h:40
A module file tag implementation.
Definition: modtag.h:48
An implementation of TagLib::File with IT specific methods.
Definition: itfile.h:51
A namespace for all TagLib related classes and functions.
Definition: apefile.h:41