itproperties.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_ITPROPERTIES_H
23 #define TAGLIB_ITPROPERTIES_H
24 
25 #include "taglib.h"
26 #include "audioproperties.h"
27 
28 namespace TagLib {
29  namespace IT {
31  friend class File;
32  public:
34  enum {
35  Stereo = 1,
36  Vol0MixOptimizations = 2,
37  UseInstruments = 4,
38  LinearSlides = 8,
39  OldEffects = 16,
40  LinkEffects = 32,
41  UseMidiPitchController = 64,
42  RequestEmbeddedMidiConf = 128
43  };
44 
46  enum {
47  MessageAttached = 1,
48  MidiConfEmbedded = 8
49  };
50 
51  Properties(AudioProperties::ReadStyle propertiesStyle);
52  virtual ~Properties();
53 
54  int length() const;
55  int lengthInSeconds() const;
56  int lengthInMilliseconds() const;
57  int bitrate() const;
58  int sampleRate() const;
59  int channels() const;
60 
61  ushort lengthInPatterns() const;
62  bool stereo() const;
63  ushort instrumentCount() const;
64  ushort sampleCount() const;
65  ushort patternCount() const;
66  ushort version() const;
67  ushort compatibleVersion() const;
68  ushort flags() const;
69  ushort special() const;
70  uchar globalVolume() const;
71  uchar mixVolume() const;
72  uchar tempo() const;
73  uchar bpmSpeed() const;
74  uchar panningSeparation() const;
75  uchar pitchWheelDepth() const;
76 
77  void setChannels(int channels);
78  void setLengthInPatterns(ushort lengthInPatterns);
79  void setInstrumentCount(ushort instrumentCount);
80  void setSampleCount (ushort sampleCount);
81  void setPatternCount(ushort patternCount);
82  void setVersion (ushort version);
83  void setCompatibleVersion(ushort compatibleVersion);
84  void setFlags (ushort flags);
85  void setSpecial (ushort special);
86  void setGlobalVolume(uchar globalVolume);
87  void setMixVolume (uchar mixVolume);
88  void setTempo (uchar tempo);
89  void setBpmSpeed (uchar bpmSpeed);
90  void setPanningSeparation(uchar panningSeparation);
91  void setPitchWheelDepth (uchar pitchWheelDepth);
92 
93  private:
94  Properties(const Properties&);
95  Properties &operator=(const Properties&);
96 
97  class PropertiesPrivate;
98  PropertiesPrivate *d;
99  };
100  }
101 }
102 
103 #endif
Definition: itproperties.h:30
unsigned short ushort
Definition: taglib.h:65
unsigned char uchar
Definition: taglib.h:64
ReadStyle
Definition: audioproperties.h:53
#define TAGLIB_EXPORT
Definition: taglib_export.h:40
A simple, abstract interface to common audio properties.
Definition: audioproperties.h:42
Definition: itfile.h:36
A namespace for all TagLib related classes and functions.
Definition: apefile.h:41