|
Canorus
0.7
|
00001 00008 #ifndef SLUR_H_ 00009 #define SLUR_H_ 00010 00011 #include <QString> 00012 00013 #include "core/muselement.h" 00014 00015 class CAContext; 00016 class CANote; 00017 00018 class CASlur : public CAMusElement { 00019 public: 00020 enum CASlurDirection { 00021 SlurUp, 00022 SlurDown, 00023 SlurNeutral, 00024 SlurPreferred 00025 }; 00026 00027 enum CASlurStyle { 00028 Undefined = 0, 00029 SlurSolid, 00030 SlurDotted 00031 }; 00032 00033 enum CASlurType { 00034 TieType, 00035 SlurType, 00036 PhrasingSlurType 00037 }; 00038 00039 CASlur( CASlurType, CASlurDirection, CAContext *c, CANote *noteStart, CANote *noteEnd=0, CASlurStyle style=SlurSolid ); 00040 virtual ~CASlur(); 00041 00042 CASlur *clone(CAContext* context=0); 00043 CASlur *clone(CAContext* context, CANote* noteStart, CANote* noteEnd); 00044 int compare( CAMusElement *elt ); 00045 00046 inline CASlurDirection slurDirection() { return _slurDirection; } 00047 inline void setSlurDirection(CASlurDirection dir) { _slurDirection = dir; } 00048 00049 inline CASlurType slurType() { return _slurType; } 00050 inline CANote *noteStart() { return _noteStart; } 00051 inline CANote *noteEnd() { return _noteEnd; } 00052 inline CASlurStyle slurStyle() { return _slurStyle; } 00053 inline void setNoteStart( CANote *noteStart ) { _noteStart = noteStart; } 00054 inline void setNoteEnd( CANote *noteEnd ) { _noteEnd = noteEnd; } 00055 inline void setSlurStyle( CASlurStyle slurStyle ) { _slurStyle = slurStyle; } 00056 00057 static const QString slurStyleToString( CASlurStyle style ); 00058 static CASlurStyle slurStyleFromString( const QString style ); 00059 00060 static const QString slurDirectionToString( CASlurDirection dir ); 00061 static CASlurDirection slurDirectionFromString( const QString dir ); 00062 00063 private: 00064 inline void setSlurType( CASlurType type ) { _slurType = type; } 00065 00066 CASlurDirection _slurDirection; 00067 CASlurStyle _slurStyle; 00068 CASlurType _slurType; 00069 00070 CANote *_noteStart; 00071 CANote *_noteEnd; 00072 }; 00073 00074 #endif /*SLUR_H_*/
1.8.0