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 bitrate() const;
56  int sampleRate() const;
57  int channels() const;
58 
59  ushort lengthInPatterns() const;
60  bool stereo() const;
61  ushort instrumentCount() const;
62  ushort sampleCount() const;
63  ushort patternCount() const;
64  ushort version() const;
65  ushort compatibleVersion() const;
66  ushort flags() const;
67  ushort special() const;
68  uchar globalVolume() const;
69  uchar mixVolume() const;
70  uchar tempo() const;
71  uchar bpmSpeed() const;
72  uchar panningSeparation() const;
73  uchar pitchWheelDepth() const;
74 
75  void setChannels(int channels);
76  void setLengthInPatterns(ushort lengthInPatterns);
77  void setInstrumentCount(ushort instrumentCount);
78  void setSampleCount (ushort sampleCount);
79  void setPatternCount(ushort patternCount);
80  void setVersion (ushort version);
81  void setCompatibleVersion(ushort compatibleVersion);
82  void setFlags (ushort flags);
83  void setSpecial (ushort special);
84  void setGlobalVolume(uchar globalVolume);
85  void setMixVolume (uchar mixVolume);
86  void setTempo (uchar tempo);
87  void setBpmSpeed (uchar bpmSpeed);
88  void setPanningSeparation(uchar panningSeparation);
89  void setPitchWheelDepth (uchar pitchWheelDepth);
90 
91  private:
92  Properties(const Properties&);
93  Properties &operator=(const Properties&);
94 
95  class PropertiesPrivate;
96  PropertiesPrivate *d;
97  };
98  }
99 }
100 
101 #endif