Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/src/core/slur.h
Go to the documentation of this file.
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_*/