00001 00008 #include "core/dynamic.h" 00009 #include "core/note.h" 00010 00018 CADynamic::CADynamic( QString text, int volume, CANote *note ) 00019 : CAMark( CAMark::Dynamic, note ) { 00020 setText(text); 00021 setVolume(volume); 00022 } 00023 00024 CADynamic::~CADynamic() { 00025 } 00026 00027 CAMusElement* CADynamic::clone() { 00028 return new CADynamic( text(), volume(), static_cast<CANote*>(associatedElement()) ); 00029 } 00030 00031 int CADynamic::compare( CAMusElement *elt ) { 00032 if (elt->musElementType()!=CAMusElement::Mark) 00033 return -2; 00034 00035 if (static_cast<CAMark*>(elt)->markType()!=CAMark::Dynamic) 00036 return -1; 00037 00038 if (static_cast<CADynamic*>(elt)->text()!=text()) 00039 return 1; 00040 00041 return 0; 00042 } 00043 00044 const QString CADynamic::dynamicTextToString( CADynamicText t ) { 00045 switch (t) { 00046 case ppppp: return "ppppp"; 00047 case pppp: return "pppp"; 00048 case ppp: return "ppp"; 00049 case pp: return "pp"; 00050 case p: return "p"; 00051 case fffff: return "fffff"; 00052 case ffff: return "ffff"; 00053 case fff: return "fff"; 00054 case ff: return "ff"; 00055 case f: return "f"; 00056 case fp: return "fp"; 00057 case mf: return "mf"; 00058 case mp: return "mp"; 00059 case rfz: return "rfz"; 00060 case sff: return "sff"; 00061 case sf: return "sf"; 00062 case sfz: return "sfz"; 00063 case spp: return "spp"; 00064 case sp: return "sp"; 00065 case Custom: return ""; 00066 } 00067 } 00068 00069 CADynamic::CADynamicText CADynamic::dynamicTextFromString( const QString t ) { 00070 if (t=="ppppp") return ppppp; 00071 if (t=="pppp") return pppp; 00072 if (t=="ppp") return ppp; 00073 if (t=="pp") return pp; 00074 if (t=="p") return p; 00075 if (t=="fffff") return fffff; 00076 if (t=="ffff") return ffff; 00077 if (t=="fff") return fff; 00078 if (t=="ff") return ff; 00079 if (t=="f") return f; 00080 if (t=="fp") return fp; 00081 if (t=="mf") return mf; 00082 if (t=="mp") return mp; 00083 if (t=="rfz") return rfz; 00084 if (t=="sff") return sff; 00085 if (t=="sf") return sf; 00086 if (t=="sfz") return sfz; 00087 if (t=="spp") return spp; 00088 if (t=="sp") return sp; 00089 return Custom; 00090 }
1.5.3