Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
canorusmlimport.h
Go to the documentation of this file.
1 
8 #ifndef CANORUSMLIMPORT_H_
9 #define CANORUSMLIMPORT_H_
10 
11 #include <QStack>
12 #include <QHash>
13 #include <QXmlDefaultHandler>
14 #include <QColor>
15 
16 #include "import/import.h"
17 
18 #include "core/diatonicpitch.h"
19 #include "core/playablelength.h"
20 #include "core/diatonickey.h"
21 
22 class CAContext;
23 class CAKeySignature;
24 class CATimeSignature;
25 class CAClef;
26 class CABarline;
27 class CANote;
28 class CARest;
29 class CASlur;
30 class CASyllable;
31 class CAMusElement;
32 class CAMark;
33 class CATuplet;
34 
36 public:
37  CACanorusMLImport( QTextStream *stream=0 );
38  CACanorusMLImport( const QString stream );
39  virtual ~CACanorusMLImport();
40 
41  void initCanorusMLImport();
42 
44 
45  bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName,
46  const QXmlAttributes& attributes);
47  bool endElement(const QString& namespaceURI, const QString& localName,
48  const QString& qName);
49  bool fatalError(const QXmlParseException& exception);
50  bool characters(const QString& ch);
51 
52 private:
53  void importMark( const QXmlAttributes& attributes );
54  void importResource( const QXmlAttributes& attributes );
55 
56  inline CADocument *document() { return _document; }
58 
59  QString _version;
60  QString _errorMsg;
61  QStack<QString> _depth;
62 
63  // Pointers to the current elements when reading the XML file
83  QHash<CALyricsContext*, int> _lcMap; // lyrics context associated voice indices
84  QHash<CASyllable*, int> _syllableMap; // syllable associated voice indices
85  QColor _color; // foreground color of elements
86 
88  // Temporary properties for each XML stanza //
90  QString _cha;
91 };
92 
93 #endif /* CANORUSMLIMPORT_H_ */
Represents a single sheet of paper in the document.
Definition: sheet.h:20
CAPlayableLength _curTempoPlayableLength
Definition: canorusmlimport.h:82
CAVoice * _curVoice
Definition: canorusmlimport.h:66
CAClef * _curClef
Definition: canorusmlimport.h:69
void importMark(const QXmlAttributes &attributes)
Definition: canorusmlimport.cpp:681
CADocument * document()
Definition: canorusmlimport.h:56
virtual ~CACanorusMLImport()
Definition: canorusmlimport.cpp:60
CABarline * _curBarline
Definition: canorusmlimport.h:70
Definition: clef.h:18
Class used for tuplets (triplets, duols etc.)
Definition: tuplet.h:16
Represents a key signature sign in the staff.
Definition: keysignature.h:19
CAContext * _curContext
Definition: canorusmlimport.h:65
CAPlayableLength _curPlayableLength
Definition: canorusmlimport.h:81
QTextStream * stream()
Definition: file.h:33
Marks that depend on other music elements.
Definition: mark.h:15
Represents a rest in the score.
Definition: rest.h:15
CADocument * _document
Definition: canorusmlimport.h:57
Class which represents a voice in the staff.
Definition: voice.h:22
Represents a time signature in the staff.
Definition: timesignature.h:18
CADocument * importDocumentImpl()
Definition: canorusmlimport.cpp:89
CASlur * _curTie
Definition: canorusmlimport.h:75
Class which represents the current document.
Definition: document.h:19
void importResource(const QXmlAttributes &attributes)
Definition: canorusmlimport.cpp:817
CASheet * _curSheet
Definition: canorusmlimport.h:64
Represents a note in the score.
Definition: note.h:18
Base class for import filters.
Definition: import.h:20
CASlur * _curPhrasingSlur
Definition: canorusmlimport.h:78
CAMark * _curMark
Definition: canorusmlimport.h:74
CADiatonicKey _curDiatonicKey
Definition: canorusmlimport.h:80
bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Definition: canorusmlimport.cpp:467
Musical note pitch.
Definition: diatonicpitch.h:14
Musical length of notes and rests.
Definition: playablelength.h:16
bool characters(const QString &ch)
Definition: canorusmlimport.cpp:675
QColor _color
Definition: canorusmlimport.h:85
bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes)
Definition: canorusmlimport.cpp:132
CACanorusMLImport(QTextStream *stream=0)
Definition: canorusmlimport.cpp:50
Definition: canorusmlimport.h:35
CAKeySignature * _curKeySig
Definition: canorusmlimport.h:67
An abstract class which represents every music element in the score.
Definition: muselement.h:20
bool fatalError(const QXmlParseException &exception)
Definition: canorusmlimport.cpp:114
CATuplet * _curTuplet
Definition: canorusmlimport.h:77
CADiatonicPitch _curDiatonicPitch
Definition: canorusmlimport.h:79
QString _errorMsg
Definition: canorusmlimport.h:60
Slur, Tie, Phrasing slur and Laissez vibrer tie This class represents any type of slur...
Definition: slur.h:18
CARest * _curRest
Definition: canorusmlimport.h:72
QHash< CASyllable *, int > _syllableMap
Definition: canorusmlimport.h:84
QStack< QString > _depth
Definition: canorusmlimport.h:61
CANote * _curNote
Definition: canorusmlimport.h:71
CAMusElement * _curMusElt
Definition: canorusmlimport.h:73
Musical key.
Definition: diatonickey.h:15
Lyrics under the note.
Definition: syllable.h:19
CATimeSignature * _curTimeSig
Definition: canorusmlimport.h:68
QHash< CALyricsContext *, int > _lcMap
Definition: canorusmlimport.h:83
Music element which represents a barline in the score.
Definition: barline.h:17
CASlur * _curSlur
Definition: canorusmlimport.h:76
QString _version
Definition: canorusmlimport.h:59
void initCanorusMLImport()
Definition: canorusmlimport.cpp:63
Line of music elements in the sheet.
Definition: context.h:16
QString _cha
Definition: canorusmlimport.h:90