Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
transpose.h
Go to the documentation of this file.
1 
8 #ifndef TRANSPOSE_H_
9 #define TRANSPOSE_H_
10 
11 #include <QList>
12 #include <QSet>
13 
14 #include "core/interval.h"
15 #include "core/diatonickey.h"
16 
17 class CAMusElement;
18 class CASheet;
19 class CAContext;
20 
21 class CATranspose {
22 public:
23  CATranspose();
24  CATranspose( CASheet *sheet );
25 #ifndef SWIG
26  CATranspose( QList<CAContext*> contexts );
27 #endif
28  CATranspose( QList<CAMusElement*> selection );
29  ~CATranspose();
30 
31  void transposeBySemitones( int semitones );
33  void transposeByKeySig( CADiatonicKey from, CADiatonicKey to, int direction );
34 
35  void addSheet( CASheet *s );
36  void addContext( CAContext *context );
37  void addMusElement( CAMusElement *musElt) { _elements << musElt; }
38 
39 private:
40  QSet<CAMusElement*> _elements;
41 };
42 
43 #endif /* TRANSPOSE_H_ */