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, MA         *
19  *   02110-1301  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_MODPROPERTIES_H
27 #define TAGLIB_MODPROPERTIES_H
28 
29 #include "taglib.h"
30 #include "audioproperties.h"
31 
32 namespace TagLib {
33 
34   namespace Mod {
35 
36     class TAGLIB_EXPORT Properties : public AudioProperties
37     {
38     public:
39       Properties(AudioProperties::ReadStyle propertiesStyle);
40       virtual ~Properties();
41 
42       int length()               const;
43       int lengthInSeconds()      const;
44       int lengthInMilliseconds() const;
45       int bitrate()              const;
46       int sampleRate()           const;
47       int channels()             const;
48 
49       unsigned int  instrumentCount()  const;
50       unsigned char lengthInPatterns() const;
51 
52       void setChannels(int channels);
53 
54       void setInstrumentCount(unsigned int sampleCount);
55       void setLengthInPatterns(unsigned char lengthInPatterns);
56 
57     private:
58       friend class File;
59 
60       Properties(const Properties&);
61       Properties &operator=(const Properties&);
62 
63       class PropertiesPrivate;
64       PropertiesPrivate *d;
65     };
66 
67   }
68 
69 }
70 
71 #endif
72