Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/src/core/transpose.h
Go to the documentation of this file.
00001 
00008 #ifndef TRANSPOSE_H_
00009 #define TRANSPOSE_H_
00010 
00011 #include <QList>
00012 #include <QSet>
00013 
00014 #include "core/interval.h"
00015 #include "core/diatonickey.h"
00016 
00017 class CAMusElement;
00018 class CASheet;
00019 class CAContext;
00020 
00021 class CATranspose {
00022 public:
00023         CATranspose();
00024         CATranspose( CASheet *sheet );
00025 #ifndef SWIG
00026         CATranspose( QList<CAContext*> contexts );
00027 #endif
00028         CATranspose( QList<CAMusElement*> selection );
00029         ~CATranspose();
00030 
00031         void transposeBySemitones( int semitones );
00032         void transposeByInterval( CAInterval );
00033         void transposeByKeySig( CADiatonicKey from, CADiatonicKey to, int direction );
00034 
00035         void addSheet( CASheet *s );
00036         void addContext( CAContext *context );
00037         void addMusElement( CAMusElement *musElt) { _elements << musElt; }
00038 
00039 private:
00040         QSet<CAMusElement*> _elements;
00041 };
00042 
00043 #endif /* TRANSPOSE_H_ */