Canorus 0.0
lilypondexport.h
Go to the documentation of this file.
1
8#ifndef LILYPONDEXPORT_H_
9#define LILYPONDEXPORT_H_
10
11#include <QTextStream>
12#include <QString>
13
14#include "score/keysignature.h"
15#include "score/timesignature.h"
16#include "score/clef.h"
17#include "score/barline.h"
18#include "score/playable.h"
19#include "score/note.h"
20#include "score/rest.h"
21#include "score/document.h"
22#include "score/lyricscontext.h"
23#include "score/syllable.h"
24
25#include "export/export.h"
26
27class CALilyPondExport : public CAExport {
28public:
29 CALilyPondExport( QTextStream *out=0 );
30
32 // Polling export status //
34 // Setter methods are private!
35 inline CAVoice *curVoice() { return _curVoice; }
36 inline CASheet *curSheet() { return _curSheet; }
37 inline CADocument *curDocument() { return _curDocument; }
38 inline CAContext *curContext() { return _curContext; }
39 inline int curContextIndex() { return _curContextIndex; }
40 inline int curIndentLevel() { return _curIndentLevel; }
41
42private:
43 void exportSheetImpl(CASheet *sheet);
44 void exportScoreBlock(CASheet *sheet);
45 void exportStaffVoices(CAStaff *staff);
46 void exportVoiceImpl(CAVoice *voice);
50 void exportNoteMarks( CANote* );
52 void exportPlayable( CAPlayable *elt );
53
55 void scanForRepeats(CAStaff *staff);
58
60 // Helper methods //
62 const QString clefTypeToLilyPond( CAClef::CAClefType type, int c1, int offset );
64 const QString playableLengthToLilyPond( CAPlayableLength length );
66 const QString restTypeToLilyPond(CARest::CARestType type);
68 const QString syllableToLilyPond( CASyllable *s );
69
70 inline const QString relativePitchToString(CANote* note, CADiatonicPitch prevPitch) {
71 return relativePitchToString( note->diatonicPitch(), prevPitch);
72 }
73 const QString relativePitchToString( CADiatonicPitch p, CADiatonicPitch prevPitch);
74 void voiceVariableName( QString &name, int staffNum, int voiceNum );
75 void spellNumbers( QString &s );
76
77 QString markupString( QString );
78 QString escapeWeirdChars( QString );
79
80 void indent();
81 inline void indentMore() { ++_curIndentLevel; }
82 inline void indentLess() { --_curIndentLevel; }
83
85 // Getter/Setter methods //
87 inline void setCurVoice(CAVoice *voice) { _curVoice = voice; }
88 inline void setCurSheet(CASheet *sheet) { _curSheet = sheet; }
89 inline void setCurContext(CAContext *context) { _curContext = context; }
90 inline void setCurContextIndex(int c) { _curContextIndex = c; }
91 inline void setCurDocument(CADocument *document) { _curDocument = document; }
92 inline void setIndentLevel( int level) { _curIndentLevel = level; }
93
95 // Members //
97 QTextStream *_out;
104
105 // Voice exporting current status
109
110 void voltaFunction( void );
114 static const QString _regExpVoltaRepeat;
115 static const QString _regExpVoltaBar;
117};
118
119#endif /* LILYPONDEXPORT_H_*/
CABarlineType
Definition: barline.h:19
CAClefType
Definition: clef.h:36
Line of music elements in the sheet.
Definition: context.h:16
CAGender
Definition: diatonickey.h:17
Musical note pitch.
Definition: diatonicpitch.h:16
Class which represents the current document.
Definition: document.h:19
Base class for export filters.
Definition: export.h:22
QTextStream & out()
Definition: export.h:71
LilyPond export filter This class is used to export the document or parts of the document to LilyPond...
Definition: lilypondexport.h:27
CAPlayableLength _lastPlayableLength
Definition: lilypondexport.h:107
void exportStaffVoices(CAStaff *staff)
Definition: lilypondexport.cpp:924
void exportLyricsContextBlock(CALyricsContext *lc)
Definition: lilypondexport.cpp:492
void indentMore()
Definition: lilypondexport.h:81
void scanForRepeats(CAStaff *staff)
Definition: lilypondexport.cpp:876
void setCurSheet(CASheet *sheet)
Definition: lilypondexport.h:88
CAVoice * curVoice()
Definition: lilypondexport.h:35
const QString restTypeToLilyPond(CARest::CARestType type)
Definition: lilypondexport.cpp:734
void doAnacrusisCheck(CATimeSignature *time)
Definition: lilypondexport.cpp:521
QString escapeWeirdChars(QString)
Definition: lilypondexport.cpp:914
bool _voltaBracketFinishAtRepeat
Definition: lilypondexport.h:112
void setCurContext(CAContext *context)
Definition: lilypondexport.h:89
CADocument * _curDocument
Definition: lilypondexport.h:101
static const QString _regExpVoltaBar
Definition: lilypondexport.h:115
void setCurDocument(CADocument *document)
Definition: lilypondexport.h:91
CADocument * curDocument()
Definition: lilypondexport.h:37
void exportVoiceImpl(CAVoice *voice)
Definition: lilypondexport.cpp:65
bool _voltaFunctionWritten
Definition: lilypondexport.h:111
const QString syllableToLilyPond(CASyllable *s)
Definition: lilypondexport.cpp:782
void voltaFunction(void)
Definition: lilypondexport.cpp:1190
void indent()
Definition: lilypondexport.cpp:1164
void exportLyricsContextImpl(CALyricsContext *lc)
Definition: lilypondexport.cpp:511
CASheet * _curSheet
Definition: lilypondexport.h:99
void exportSheetImpl(CASheet *sheet)
Definition: lilypondexport.cpp:804
bool _timeSignatureFound
Definition: lilypondexport.h:116
void exportPlayable(CAPlayable *elt)
Definition: lilypondexport.cpp:171
const QString diatonicKeyGenderToLilyPond(CADiatonicKey::CAGender gender)
Definition: lilypondexport.cpp:652
void setIndentLevel(int level)
Definition: lilypondexport.h:92
void voiceVariableName(QString &name, int staffNum, int voiceNum)
Definition: lilypondexport.cpp:954
void exportMarksBeforeElement(CAMusElement *)
Definition: lilypondexport.cpp:440
int curContextIndex()
Definition: lilypondexport.h:39
void exportNoteMarks(CANote *)
Definition: lilypondexport.cpp:405
CADiatonicPitch _lastNotePitch
Definition: lilypondexport.h:106
const QString relativePitchToString(CANote *note, CADiatonicPitch prevPitch)
Definition: lilypondexport.h:70
const QString diatonicPitchToLilyPond(CADiatonicPitch p)
Definition: lilypondexport.cpp:707
void spellNumbers(QString &s)
Definition: lilypondexport.cpp:1176
CAContext * curContext()
Definition: lilypondexport.h:38
void indentLess()
Definition: lilypondexport.h:82
CASheet * curSheet()
Definition: lilypondexport.h:36
void exportScoreBlock(CASheet *sheet)
Definition: lilypondexport.cpp:985
const QString playableLengthToLilyPond(CAPlayableLength length)
Definition: lilypondexport.cpp:664
void setCurContextIndex(int c)
Definition: lilypondexport.h:90
int _curIndentLevel
Definition: lilypondexport.h:103
int curIndentLevel()
Definition: lilypondexport.h:40
void exportMarksAfterElement(CAMusElement *)
Definition: lilypondexport.cpp:293
static const QString _regExpVoltaRepeat
Definition: lilypondexport.h:114
const QString clefTypeToLilyPond(CAClef::CAClefType type, int c1, int offset)
Definition: lilypondexport.cpp:608
CALilyPondExport(QTextStream *out=0)
Definition: lilypondexport.cpp:50
CAVoice * _curVoice
Definition: lilypondexport.h:98
const QString barlineTypeToLilyPond(CABarline::CABarlineType type)
Definition: lilypondexport.cpp:752
CADiatonicPitch writeRelativeIntro()
Definition: lilypondexport.cpp:557
QString markupString(QString)
Definition: lilypondexport.cpp:907
void setCurVoice(CAVoice *voice)
Definition: lilypondexport.h:87
CAContext * _curContext
Definition: lilypondexport.h:100
void writeDocumentHeader()
Definition: lilypondexport.cpp:857
int _curStreamTime
Definition: lilypondexport.h:108
int _curContextIndex
Definition: lilypondexport.h:102
QTextStream * _out
Definition: lilypondexport.h:97
bool _voltaBracketFinishAtBar
Definition: lilypondexport.h:113
One stanza line of lyrics.
Definition: lyricscontext.h:19
An abstract class which represents every music element in the score.
Definition: muselement.h:21
Represents a note in the score.
Definition: note.h:18
CADiatonicPitch & diatonicPitch()
Definition: note.h:35
Musical length of notes and rests.
Definition: playablelength.h:16
Playable instances of music elements.
Definition: playable.h:18
CARestType
Definition: rest.h:17
Represents a single sheet of paper in the document.
Definition: sheet.h:22
Represents a staff in the sheet.
Definition: staff.h:25
Lyrics under the note.
Definition: syllable.h:19
Represents a time signature in the staff.
Definition: timesignature.h:18
Class which represents a voice in the staff.
Definition: voice.h:23