Canorus  0.0
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 "score/diatonicpitch.h"
19 #include "score/playablelength.h"
20 #include "score/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
74  CAMusElement *_prevMusElt; // previous musElt by depth
84  QHash<CALyricsContext*, int> _lcMap; // lyrics context associated voice indices
85  QHash<CASyllable*, int> _syllableMap; // syllable associated voice indices
86  QColor _color; // foreground color of elements
87 
89  // Temporary properties for each XML stanza //
91  QString _cha;
92 };
93 
94 #endif /* CANORUSMLIMPORT_H_ */
CASlur::SlurPreferred
@ SlurPreferred
Definition: slur.h:24
CAMark::CAMarkType
CAMarkType
Definition: mark.h:17
rest.h
CADocument::setPoet
void setPoet(const QString poet)
Definition: document.h:54
CAMark::Crescendo
@ Crescendo
Definition: mark.h:23
CADiatonicKey::genderFromString
static CAGender genderFromString(const QString)
Definition: diatonickey.cpp:129
CACanorusMLImport::~CACanorusMLImport
virtual ~CACanorusMLImport()
Definition: canorusmlimport.cpp:73
CASlur::noteStart
CANote * noteStart()
Definition: slur.h:50
CAStaff::voiceList
const QList< CAVoice * > & voiceList()
Definition: staff.h:35
CANote::setSlurStart
void setSlurStart(CASlur *slurStart)
Definition: note.h:59
CADocument::setTitle
void setTitle(const QString title)
Definition: document.h:50
CARitardando
Ritardando and Accellerando marks.
Definition: ritardando.h:15
CAPlayable::staff
CAStaff * staff()
Definition: playable.h:33
CAContext::Staff
@ Staff
Definition: context.h:23
CADocument::setDateLastModified
void setDateLastModified(const QDateTime dateLastModified)
Definition: document.h:59
CARest
Represents a rest in the score.
Definition: rest.h:15
CACanorusMLImport::_curVoice
CAVoice * _curVoice
Definition: canorusmlimport.h:66
CACanorusMLImport::initCanorusMLImport
void initCanorusMLImport()
Definition: canorusmlimport.cpp:76
CACanorusMLImport::_curContext
CAContext * _curContext
Definition: canorusmlimport.h:65
note.h
CAArticulation
Note articulation marks.
Definition: articulation.h:14
CAMark::Pedal
@ Pedal
Definition: mark.h:24
CAClef
Definition: clef.h:18
figuredbasscontext.h
CANote
Represents a note in the score.
Definition: note.h:18
CACanorusMLImport::document
CADocument * document()
Definition: canorusmlimport.h:56
CACanorusMLImport::_cha
QString _cha
Definition: canorusmlimport.h:91
CACanorusMLImport::_curPlayableLength
CAPlayableLength _curPlayableLength
Definition: canorusmlimport.h:82
CADocument
Class which represents the current document.
Definition: document.h:19
CASheet::addContext
void addContext(CAContext *c)
Definition: sheet.h:33
CAMusElement::Clef
@ Clef
Definition: muselement.h:29
CACanorusMLImport::_curBarline
CABarline * _curBarline
Definition: canorusmlimport.h:70
CADocument::setDateCreated
void setDateCreated(const QDateTime dateCreated)
Definition: document.h:58
CANote::setPhrasingSlurEnd
void setPhrasingSlurEnd(CASlur *pSlurEnd)
Definition: note.h:62
CASlur::TieType
@ TieType
Definition: slur.h:34
CAVoice
Class which represents a voice in the staff.
Definition: voice.h:23
CADocument::setComments
void setComments(const QString comments)
Definition: document.h:61
CACanorusMLImport::_curSheet
CASheet * _curSheet
Definition: canorusmlimport.h:64
document.h
CAMusElement::Barline
@ Barline
Definition: muselement.h:28
CATimeSignature
Represents a time signature in the staff.
Definition: timesignature.h:18
CACanorusMLImport::importDocumentImpl
CADocument * importDocumentImpl()
Definition: canorusmlimport.cpp:97
CAMark::RehersalMark
@ RehersalMark
Definition: mark.h:27
CACanorusMLImport::_curPhrasingSlur
CASlur * _curPhrasingSlur
Definition: canorusmlimport.h:79
CACanorusMLImport::importMark
void importMark(const QXmlAttributes &attributes)
Definition: canorusmlimport.cpp:747
CATuplet::addNote
void addNote(CAPlayable *p)
Definition: tuplet.cpp:279
CASheet::voiceList
QList< CAVoice * > voiceList()
Definition: sheet.cpp:148
CAFiguredBassContext
Context for keeping the figured bass marks.
Definition: figuredbasscontext.h:16
CAPlayable::setTuplet
void setTuplet(CATuplet *t)
Definition: playable.h:29
CAResource::CAResourceType
CAResourceType
Definition: resource.h:17
CAKeySignature::modusFromString
static CAModus modusFromString(const QString)
Definition: keysignature.cpp:186
diatonicpitch.h
CAFiguredBassMark
Definition: figuredbassmark.h:17
canorusmlimport.h
CAPlayable
Playable instances of music elements.
Definition: playable.h:18
CAMusElement::setTimeLength
void setTimeLength(int length)
Definition: muselement.h:54
CAKeySignature::Custom
@ Custom
Definition: keysignature.h:24
CAKeySignature::MajorMinor
@ MajorMinor
Definition: keysignature.h:22
CAResource::setDescription
void setDescription(const QString n)
Definition: resource.h:32
CAVoice::setMidiChannel
void setMidiChannel(const unsigned char ch)
Definition: voice.h:105
functionmarkcontext.h
CACanorusMLImport
Class for opening the Canorus documents.
Definition: canorusmlimport.h:35
CASlur::slurDirectionFromString
static CASlurDirection slurDirectionFromString(const QString dir)
Definition: slur.cpp:135
CAMusElement::setColor
void setColor(const QColor c)
Definition: muselement.h:68
CAMark::Tempo
@ Tempo
Definition: mark.h:20
CAKeySignature::CAKeySignatureType
CAKeySignatureType
Definition: keysignature.h:21
CADiatonicKey
Musical key.
Definition: diatonickey.h:15
CADocument::setDedication
void setDedication(const QString dedication)
Definition: document.h:56
CAResource::resourceTypeFromString
static CAResourceType resourceTypeFromString(QString type)
Definition: resource.cpp:84
CAPlayable::setPlayableLength
void setPlayableLength(CAPlayableLength &l)
Definition: playable.h:24
CADocument::setComposer
void setComposer(const QString composer)
Definition: document.h:52
repeatmark.h
CACanorusMLImport::characters
bool characters(const QString &ch)
Definition: canorusmlimport.cpp:741
CAFunctionMark
Represents a function mark in the score.
Definition: functionmark.h:18
CACanorusMLImport::_document
CADocument * _document
Definition: canorusmlimport.h:57
CAVoice::setMidiPitchOffset
void setMidiPitchOffset(const char midiPitchOffset)
Definition: voice.h:111
CAArticulation::articulationTypeFromString
static CAArticulationType articulationTypeFromString(const QString s)
Definition: articulation.cpp:98
CAPlayable::tuplet
CATuplet * tuplet()
Definition: playable.h:28
crescendo.h
CAResourceCtl::importResource
static CAResource * importResource(QString name, QString fileName, bool isLinked=false, CADocument *parent=0, CAResource::CAResourceType t=CAResource::Other)
Definition: resourcectl.cpp:58
CACrescendo
Crescendo and Decrescendo marks.
Definition: crescendo.h:15
CAFile::stream
QTextStream * stream()
Definition: file.h:36
CAMark::RepeatMark
@ RepeatMark
Definition: mark.h:29
CAResource
Different resources included in the file.
Definition: resource.h:15
CAMusElement::TimeSignature
@ TimeSignature
Definition: muselement.h:30
CAMark::markType
CAMarkType markType()
Definition: mark.h:45
ritardando.h
functionmark.h
CACanorusMLImport::_curTie
CASlur * _curTie
Definition: canorusmlimport.h:76
CACanorusMLImport::_curKeySig
CAKeySignature * _curKeySig
Definition: canorusmlimport.h:67
CAMark::Fingering
@ Fingering
Definition: mark.h:31
instrumentchange.h
CACanorusMLImport::_curDiatonicKey
CADiatonicKey _curDiatonicKey
Definition: canorusmlimport.h:81
CAFunctionMarkContext
Context for function marks.
Definition: functionmarkcontext.h:19
CAFingering
Finger marks.
Definition: fingering.h:16
CARepeatMark::repeatMarkTypeFromString
static CARepeatMarkType repeatMarkTypeFromString(const QString r)
Definition: repeatmark.cpp:68
keysignature.h
dynamic.h
fingering.h
CACanorusMLImport::fatalError
bool fatalError(const QXmlParseException &exception)
Definition: canorusmlimport.cpp:126
CADocument::setTimeEdited
void setTimeEdited(const unsigned int timeEdited)
Definition: document.h:60
CANote::stemDirectionFromString
static CAStemDirection stemDirectionFromString(const QString)
Definition: note.cpp:310
CANote::setStemDirection
void setStemDirection(CAStemDirection direction)
Definition: note.cpp:228
CAMark::Articulation
@ Articulation
Definition: mark.h:30
CAKeySignature::keySignatureType
CAKeySignatureType keySignatureType()
Definition: keysignature.h:47
CADynamic
Absolute dynamic marks.
Definition: dynamic.h:16
CACanorusMLImport::importResource
void importResource(const QXmlAttributes &attributes)
Definition: canorusmlimport.cpp:885
syllable.h
CAMusElement::addMark
void addMark(CAMark *mark)
Definition: muselement.cpp:135
CAMark::Ritardando
@ Ritardando
Definition: mark.h:21
CAImport::fileName
QString fileName()
Definition: import.cpp:96
CAImport::_fileName
QString _fileName
Definition: import.h:73
CAFiguredBassMark::addNumber
void addNumber(int number)
Definition: figuredbassmark.cpp:28
CAFermata
Fermata mark.
Definition: fermata.h:16
CADiatonicPitch
Musical note pitch.
Definition: diatonicpitch.h:16
resource.h
CACanorusMLImport::_color
QColor _color
Definition: canorusmlimport.h:86
CACanorusMLImport::_curMark
CAMark * _curMark
Definition: canorusmlimport.h:75
CATempo
Tempo mark.
Definition: tempo.h:14
CACanorusMLImport::startElement
bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes)
Definition: canorusmlimport.cpp:144
CAClef::clefTypeFromString
static CAClefType clefTypeFromString(const QString)
Definition: clef.cpp:164
CADocument::setFileName
void setFileName(const QString fileName)
Definition: document.h:70
fermata.h
text.h
CACanorusMLImport::_prevMusElt
CAMusElement * _prevMusElt
Definition: canorusmlimport.h:74
CAMusElement::FunctionMark
@ FunctionMark
Definition: muselement.h:35
CARitardando::ritardandoTypeFromString
static CARitardandoType ritardandoTypeFromString(const QString r)
Definition: ritardando.cpp:62
CANote::setPhrasingSlurStart
void setPhrasingSlurStart(CASlur *pSlurStart)
Definition: note.h:61
CACanorusMLImport::_depth
QStack< QString > _depth
Definition: canorusmlimport.h:61
CAMusElement::KeySignature
@ KeySignature
Definition: muselement.h:31
CABarline::barlineTypeFromString
static CABarlineType barlineTypeFromString(const QString)
Definition: barline.cpp:83
CACanorusMLImport::endElement
bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Definition: canorusmlimport.cpp:525
CANote::updateTies
void updateTies()
Definition: note.cpp:236
CAVoice::musElementList
const QList< CAMusElement * > & musElementList()
Definition: voice.h:47
diatonickey.h
CATuplet
Class used for tuplets (triplets, duols etc.)
Definition: tuplet.h:17
CACanorusMLImport::_curTuplet
CATuplet * _curTuplet
Definition: canorusmlimport.h:78
CADocument::sheetList
const QList< CASheet * > & sheetList()
Definition: document.h:26
resourcectl.h
CAFingering::fingerNumberFromString
static CAFingerNumber fingerNumberFromString(const QString s)
Definition: fingering.cpp:90
CAStaff
Represents a staff in the sheet.
Definition: staff.h:25
CAMusElement
An abstract class which represents every music element in the score.
Definition: muselement.h:21
CASlur::PhrasingSlurType
@ PhrasingSlurType
Definition: slur.h:36
CAContext::contextType
CAContextType contextType()
Definition: context.h:32
articulation.h
CAKeySignature::setDiatonicKey
void setDiatonicKey(CADiatonicKey k)
Definition: keysignature.h:53
CASlur::slurStyleFromString
static CASlurStyle slurStyleFromString(const QString style)
Definition: slur.cpp:107
figuredbassmark.h
CAFunctionMark::functionTypeFromString
static CAFunctionType functionTypeFromString(const QString)
Definition: functionmark.cpp:163
CADocument::setCopyright
void setCopyright(const QString copyright)
Definition: document.h:57
CASlur::setSlurStyle
void setSlurStyle(CASlurStyle slurStyle)
Definition: slur.h:55
CAMusElement::isPlayable
bool isPlayable()
Definition: muselement.cpp:78
CARest::restTypeFromString
static CARestType restTypeFromString(const QString)
Definition: rest.cpp:78
CADocument::setTextTranslator
void setTextTranslator(const QString textTranslator)
Definition: document.h:55
CAPlayableLength
Musical length of notes and rests.
Definition: playablelength.h:16
playablelength.h
CANote::setDiatonicPitch
void setDiatonicPitch(CADiatonicPitch pitch)
Definition: note.h:36
CAFermata::fermataTypeFromString
static CAFermataType fermataTypeFromString(const QString r)
Definition: fermata.cpp:66
CAKeySignature
Represents a key signature sign in the staff.
Definition: keysignature.h:19
CASyllable
Lyrics under the note.
Definition: syllable.h:19
CAPlayableLength::musicLengthFromString
static CAMusicLength musicLengthFromString(const QString length)
Definition: playablelength.cpp:41
CANote::StemNeutral
@ StemNeutral
Definition: note.h:22
CABookMark
A bookmark shortcut.
Definition: bookmark.h:14
CACanorusMLImport::_curMusElt
CAMusElement * _curMusElt
Definition: canorusmlimport.h:73
CASheet::contextList
const QList< CAContext * > & contextList()
Definition: sheet.h:29
CADiatonicKey::setDiatonicPitch
void setDiatonicPitch(const CADiatonicPitch p)
Definition: diatonickey.h:46
CAVoice::append
void append(CAMusElement *elt, bool addToChord=false)
Definition: voice.cpp:120
CASlur::SlurType
@ SlurType
Definition: slur.h:35
CARepeatMark
Repeat marks like segno, volta, coda etc.
Definition: repeatmark.h:15
CANote::setTieStart
void setTieStart(CASlur *tieStart)
Definition: note.h:57
CASheet::staffList
QList< CAStaff * > staffList()
Definition: sheet.cpp:157
CACanorusMLImport::CACanorusMLImport
CACanorusMLImport(QTextStream *stream=0)
Definition: canorusmlimport.cpp:63
CACanorusMLImport::_errorMsg
QString _errorMsg
Definition: canorusmlimport.h:60
CAMark::InstrumentChange
@ InstrumentChange
Definition: mark.h:25
CACanorusMLImport::_curRest
CARest * _curRest
Definition: canorusmlimport.h:72
CATuplet::assignTimes
void assignTimes()
Definition: tuplet.cpp:159
CAVoice::setMidiProgram
void setMidiProgram(const unsigned char program)
Definition: voice.h:108
CACanorusMLImport::_curSlur
CASlur * _curSlur
Definition: canorusmlimport.h:77
sheet.h
CAVoice::lastNote
CANote * lastNote()
Definition: voice.cpp:495
CACrescendo::crescendoTypeFromString
static CACrescendoType crescendoTypeFromString(const QString r)
Definition: crescendo.cpp:60
CACanorusMLImport::_curDiatonicPitch
CADiatonicPitch _curDiatonicPitch
Definition: canorusmlimport.h:80
CALyricsContext
One stanza line of lyrics.
Definition: lyricscontext.h:19
timesignature.h
context.h
barline.h
CANote::setSlurEnd
void setSlurEnd(CASlur *slurEnd)
Definition: note.h:60
CAMusElement::timeStart
virtual int timeStart() const
Definition: muselement.h:51
CAVoice::staff
CAStaff * staff()
Definition: voice.h:29
muselement.h
CACanorusMLImport::_curNote
CANote * _curNote
Definition: canorusmlimport.h:71
bookmark.h
CAContext
Line of music elements in the sheet.
Definition: context.h:16
CAStaff::addVoice
void addVoice(CAVoice *voice)
Definition: staff.h:36
CACanorusMLImport::_curTimeSig
CATimeSignature * _curTimeSig
Definition: canorusmlimport.h:68
QXmlDefaultHandler
tempo.h
CACanorusMLImport::_syllableMap
QHash< CASyllable *, int > _syllableMap
Definition: canorusmlimport.h:85
CABarline
Music element which represents a barline in the score.
Definition: barline.h:17
CAText
Text sign.
Definition: text.h:14
CANote::CAStemDirection
CAStemDirection
Direction of the note's stem.
Definition: note.h:20
CAMark
Marks that depend on other music elements.
Definition: mark.h:15
CAMark::Undefined
@ Undefined
Definition: mark.h:18
voice.h
CADocument::addSheet
void addSheet(CASheet *sheet)
Definition: document.h:28
CAInstrumentChange
Instrument change during the score.
Definition: instrumentchange.h:16
clef.h
CATimeSignature::timeSignatureTypeFromString
static CATimeSignatureType timeSignatureTypeFromString(const QString)
Definition: timesignature.cpp:131
CASheet
Represents a single sheet of paper in the document.
Definition: sheet.h:22
CASlur::setSlurDirection
void setSlurDirection(CASlurDirection dir)
Definition: slur.h:47
CADocument::setArranger
void setArranger(const QString arranger)
Definition: document.h:53
CAMark::markTypeFromString
static CAMarkType markTypeFromString(const QString s)
Definition: mark.cpp:82
CAImport
Base class for import filters.
Definition: import.h:20
CADocument::setSubtitle
void setSubtitle(const QString subtitle)
Definition: document.h:51
CAKeySignature::Modus
@ Modus
Definition: keysignature.h:23
CAKeySignature::keySignatureTypeFromString
static CAKeySignatureType keySignatureTypeFromString(const QString)
Definition: keysignature.cpp:144
CAPlayable::calculateTimeLength
void calculateTimeLength()
Definition: playable.cpp:69
CAMark::Fermata
@ Fermata
Definition: mark.h:28
staff.h
CAMark::Text
@ Text
Definition: mark.h:19
CACanorusMLImport::_lcMap
QHash< CALyricsContext *, int > _lcMap
Definition: canorusmlimport.h:84
CASlur
Slur, Tie, Phrasing slur and Laissez vibrer tie This class represents any type of slur....
Definition: slur.h:18
lyricscontext.h
CAMark::Dynamic
@ Dynamic
Definition: mark.h:22
CAFile::file
QFile * file()
Definition: file.h:39
CAMusElement::musElementType
CAMusElementType musElementType()
Definition: muselement.h:46
mark.h
CAMark::BookMark
@ BookMark
Definition: mark.h:26
CACanorusMLImport::_curTempoPlayableLength
CAPlayableLength _curTempoPlayableLength
Definition: canorusmlimport.h:83
import.h
CACanorusMLImport::_version
QString _version
Definition: canorusmlimport.h:59
CASlur::setNoteEnd
void setNoteEnd(CANote *noteEnd)
Definition: slur.h:54
CACanorusMLImport::_curClef
CAClef * _curClef
Definition: canorusmlimport.h:69