Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
musicxmlimport.h
Go to the documentation of this file.
1 
8 #ifndef MUSICXMLIMPORT_H_
9 #define MUSICXMLIMPORT_H_
10 
11 #include <QXmlStreamReader>
12 #include <QString>
13 #include <QStack>
14 #include <QHash>
15 #include <QMultiHash>
16 
17 #include "core/playablelength.h"
18 #include "core/diatonicpitch.h"
19 #include "import/import.h"
20 
21 class CADocument;
22 class CASheet;
23 class CAStaff;
24 class CAClef;
25 class CAKeySignature;
26 class CATimeSignature;
27 
28 class CAMusicXmlImport: public CAImport, private QXmlStreamReader {
29 public:
30  CAMusicXmlImport( QTextStream *stream=0 );
31  CAMusicXmlImport( const QString stream );
32  virtual ~CAMusicXmlImport();
33 
34  const QString readableStatus();
35 
36 private:
37  void initMusicXmlImport();
39 
40  void readHeader();
41  void readScorePartwise();
42  void readScoreTimewise();
43  void readWork();
44  void readIdentification();
45  void readDefaults();
46  void readPartList();
47  void readPart();
48  void readMeasure( QString partId );
49  void readAttributes( QString partId );
50  void readNote( QString partId, int );
51  void readForward( QString partId, int );
52  CAVoice *addVoiceIfNeeded( QString partId, int staff, int voice );
53 
55 
57  QHash<QString, QHash<int, CAVoice*> > _partMapVoice; // part name -> map of voice number : voice
58  QHash<QString, QList<CAStaff*> > _partMapStaff; // part name -> list of staffs
59  QHash<QString, QHash<int, CAClef*> > _partMapClef; // part name -> map of staff number : last clef
60  QHash<QString, QHash<int, CAKeySignature*> > _partMapKeySig; // part name -> map of staff number : last keysig
61  QHash<QString, QHash<int, CATimeSignature*> > _partMapTimeSig; // part name -> map of staff number : last timesig
62  QHash<QString, int> _midiChannel;
63  QHash<QString, int> _midiProgram;
64  QHash<QString, QString> _partName;
65  QHash<QString, int> _divisions; // part name -> divisions
66 };
67 
68 #endif /* MUSICXMLIMPORT_H_ */
Represents a single sheet of paper in the document.
Definition: sheet.h:20
Definition: musicxmlimport.h:28
CADocument * importDocumentImpl()
Definition: musicxmlimport.cpp:69
Definition: clef.h:18
QHash< QString, int > _midiChannel
Definition: musicxmlimport.h:62
Represents a key signature sign in the staff.
Definition: keysignature.h:19
QHash< QString, QHash< int, CAKeySignature * > > _partMapKeySig
Definition: musicxmlimport.h:60
QTextStream * stream()
Definition: file.h:33
void readAttributes(QString partId)
Definition: musicxmlimport.cpp:290
Class which represents a voice in the staff.
Definition: voice.h:22
Represents a time signature in the staff.
Definition: timesignature.h:18
Class which represents the current document.
Definition: document.h:19
void readHeader()
Definition: musicxmlimport.cpp:111
CADocument * _document
Definition: musicxmlimport.h:56
void readPartList()
Definition: musicxmlimport.cpp:207
Base class for import filters.
Definition: import.h:20
QString _musicXmlVersion
Definition: musicxmlimport.h:54
CAVoice * addVoiceIfNeeded(QString partId, int staff, int voice)
Definition: musicxmlimport.cpp:488
QHash< QString, int > _divisions
Definition: musicxmlimport.h:65
QHash< QString, QString > _partName
Definition: musicxmlimport.h:64
QHash< QString, QHash< int, CAVoice * > > _partMapVoice
Definition: musicxmlimport.h:57
void readWork()
Definition: musicxmlimport.cpp:164
const QString readableStatus()
Definition: musicxmlimport.cpp:103
void readIdentification()
Definition: musicxmlimport.cpp:187
void readDefaults()
Definition: musicxmlimport.cpp:178
void readScorePartwise()
Definition: musicxmlimport.cpp:119
QHash< QString, QHash< int, CATimeSignature * > > _partMapTimeSig
Definition: musicxmlimport.h:61
QHash< QString, int > _midiProgram
Definition: musicxmlimport.h:63
virtual ~CAMusicXmlImport()
Definition: musicxmlimport.cpp:58
QHash< QString, QHash< int, CAClef * > > _partMapClef
Definition: musicxmlimport.h:59
void readForward(QString partId, int)
Definition: musicxmlimport.cpp:526
void readPart()
Definition: musicxmlimport.cpp:236
Represents a staff in the sheet.
Definition: staff.h:24
void readMeasure(QString partId)
Definition: musicxmlimport.cpp:256
void initMusicXmlImport()
Definition: musicxmlimport.cpp:61
CAMusicXmlImport(QTextStream *stream=0)
Definition: musicxmlimport.cpp:48
void readNote(QString partId, int)
Definition: musicxmlimport.cpp:401
QHash< QString, QList< CAStaff * > > _partMapStaff
Definition: musicxmlimport.h:58
void readScoreTimewise()
Definition: musicxmlimport.cpp:156