~l0rdt/mixxx/features_replaygain

« back to all changes in this revision

Viewing changes to mixxx-win32lib-msvc/taglib/wavfile.h

  • Committer: Vittorio
  • Date: 2010-11-07 15:27:52 UTC
  • mfrom: (2444.1.99 mixxx-trunk)
  • Revision ID: l0rdt@gmx.it-20101107152752-ncar4splwz92k16i
MergingĀ fromĀ trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
    copyright            : (C) 2008 by Scott Wheeler
 
3
    email                : wheeler@kde.org
 
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  *
 
19
 *   USA                                                                   *
 
20
 *                                                                         *
 
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
 ***************************************************************************/
 
25
 
 
26
#ifndef TAGLIB_WAVFILE_H
 
27
#define TAGLIB_WAVFILE_H
 
28
 
 
29
#include "rifffile.h"
 
30
#include "id3v2tag.h"
 
31
#include "wavproperties.h"
 
32
 
 
33
namespace TagLib {
 
34
 
 
35
  namespace RIFF {
 
36
 
 
37
    //! An implementation of WAV metadata
 
38
 
 
39
    /*!
 
40
     * This is implementation of WAV metadata.
 
41
     *
 
42
     * This supports an ID3v2 tag as well as reading stream from the ID3 RIFF
 
43
     * chunk as well as properties from the file.
 
44
     */
 
45
 
 
46
    namespace WAV {
 
47
 
 
48
      //! An implementation of TagLib::File with WAV specific methods
 
49
 
 
50
      /*!
 
51
       * This implements and provides an interface for WAV files to the
 
52
       * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
 
53
       * the abstract TagLib::File API as well as providing some additional
 
54
       * information specific to WAV files.
 
55
       */
 
56
 
 
57
      class TAGLIB_EXPORT File : public TagLib::RIFF::File
 
58
      {
 
59
      public:
 
60
        /*!
 
61
         * Contructs an WAV file from \a file.  If \a readProperties is true the
 
62
         * file's audio properties will also be read using \a propertiesStyle.  If
 
63
         * false, \a propertiesStyle is ignored.
 
64
         */
 
65
        File(FileName file, bool readProperties = true,
 
66
             Properties::ReadStyle propertiesStyle = Properties::Average);
 
67
 
 
68
        /*!
 
69
         * Destroys this instance of the File.
 
70
         */
 
71
        virtual ~File();
 
72
 
 
73
        /*!
 
74
         * Returns the Tag for this file.
 
75
         */
 
76
        virtual ID3v2::Tag *tag() const;
 
77
 
 
78
        /*!
 
79
         * Returns the WAV::Properties for this file.  If no audio properties
 
80
         * were read then this will return a null pointer.
 
81
         */
 
82
        virtual Properties *audioProperties() const;
 
83
 
 
84
        /*!
 
85
         * Saves the file.
 
86
         */
 
87
        virtual bool save();
 
88
 
 
89
      private:
 
90
        File(const File &);
 
91
        File &operator=(const File &);
 
92
 
 
93
        void read(bool readProperties, Properties::ReadStyle propertiesStyle);
 
94
 
 
95
        class FilePrivate;
 
96
        FilePrivate *d;
 
97
      };
 
98
    }
 
99
  }
 
100
}
 
101
 
 
102
#endif