20 #ifndef DRUMSTICK_QWRK_H
21 #define DRUMSTICK_QWRK_H
73 const QByteArray HEADER(
"CAKEWALK");
89 void readFromStream(QDataStream *stream);
90 void readFromFile(
const QString& fileName);
91 QTextCodec* getTextCodec();
92 void setTextCodec(QTextCodec *codec);
98 int getKeySig()
const;
100 int getAutoSave()
const;
101 int getPlayDelay()
const;
102 bool getZeroCtrls()
const;
103 bool getSendSPP()
const;
104 bool getSendCont()
const;
105 bool getPatchSearch()
const;
106 bool getAutoStop()
const;
107 unsigned int getStopTime()
const;
108 bool getAutoRewind()
const;
109 int getRewindTime()
const;
110 bool getMetroPlay()
const;
111 bool getMetroRecord()
const;
112 bool getMetroAccent()
const;
113 int getCountIn()
const;
114 bool getThruOn()
const;
115 bool getAutoRestart()
const;
116 int getCurTempoOfs()
const;
117 int getTempoOfs1()
const;
118 int getTempoOfs2()
const;
119 int getTempoOfs3()
const;
120 bool getPunchEnabled()
const;
121 int getPunchInTime()
const;
122 int getPunchOutTime()
const;
123 int getEndAllTime()
const;
125 QByteArray getLastChunkRawData()
const;
126 double getRealTime(
long ticks)
const;
135 void signalWRKError(
const QString& errorStr);
143 void signalWRKUnknownChunk(
int type,
const QByteArray& data);
151 void signalWRKHeader(
int verh,
int verl);
161 void signalWRKStreamEnd(
long time);
173 void signalWRKNote(
int track,
long time,
int chan,
int pitch,
int vol,
int dur);
184 void signalWRKKeyPress(
int track,
long time,
int chan,
int pitch,
int press);
195 void signalWRKCtlChange(
int track,
long time,
int chan,
int ctl,
int value);
205 void signalWRKPitchBend(
int track,
long time,
int chan,
int value);
215 void signalWRKProgram(
int track,
long time,
int chan,
int patch);
225 void signalWRKChanPress(
int track,
long time,
int chan,
int press);
234 void signalWRKSysexEvent(
int track,
long time,
int bank);
245 void signalWRKSysex(
int bank,
const QString& name,
bool autosend,
int port,
const QByteArray& data);
255 void signalWRKText(
int track,
long time,
int type,
const QString& data);
264 void signalWRKTimeSig(
int bar,
int num,
int den);
272 void signalWRKKeySig(
int bar,
int alt);
283 void signalWRKTempo(
long time,
int tempo);
299 void signalWRKTrack(
const QString& name1,
300 const QString& name2,
301 int trackno,
int channel,
int pitch,
302 int velocity,
int port,
303 bool selected,
bool muted,
bool loop );
310 void signalWRKTimeBase(
int timebase);
320 void signalWRKGlobalVars();
336 void signalWRKThru(
int mode,
int port,
int channel,
int keyPlus,
int velPlus,
int localPort);
344 void signalWRKTrackOffset(
int track,
int offset);
352 void signalWRKTrackReps(
int track,
int reps);
360 void signalWRKTrackPatch(
int track,
int patch);
368 void signalWRKTrackBank(
int track,
int bank);
376 void signalWRKTimeFormat(
int frames,
int offset);
383 void signalWRKComments(
const QString& data);
392 void signalWRKVariableRecord(
const QString& name,
const QByteArray& data);
400 void signalWRKTrackVol(
int track,
int vol);
415 void signalWRKNewTrack(
const QString& name,
416 int trackno,
int channel,
int pitch,
417 int velocity,
int port,
418 bool selected,
bool muted,
bool loop );
425 void signalWRKSoftVer(
const QString& version);
433 void signalWRKTrackName(
int track,
const QString& name);
440 void signalWRKStringTable(
const QStringList& strs);
449 void signalWRKSegment(
int track,
long time,
const QString& name);
459 void signalWRKChord(
int track,
long time,
const QString& name,
const QByteArray& data);
469 void signalWRKExpression(
int track,
long time,
int code,
const QString& text);
479 void signalWRKHairpin(
int track,
long time,
int code,
int dur);
483 quint16 to16bit(quint8 c1, quint8 c2);
484 quint32 to32bit(quint8 c1, quint8 c2, quint8 c3, quint8 c4);
488 QString readString(
int len);
489 QString readVarString();
490 void readRawData(
int size);
491 void readGap(
int size);
493 void seek(qint64 pos);
496 void processTrackChunk();
497 void processVarsChunk();
498 void processTimebaseChunk();
499 void processNoteArray(
int track,
int events);
500 void processStreamChunk();
501 void processMeterChunk();
502 void processTempoChunk(
int factor = 1);
503 void processSysexChunk();
504 void processSysex2Chunk();
505 void processNewSysexChunk();
506 void processThruChunk();
507 void processTrackOffset();
508 void processTrackReps();
509 void processTrackPatch();
510 void processTrackBank();
511 void processTimeFormat();
512 void processComments();
513 void processVariableRecord(
int max);
514 void processNewTrack();
515 void processSoftVer();
516 void processTrackName();
517 void processStringTable();
518 void processLyricsStream();
519 void processTrackVol();
520 void processNewTrackOffset();
521 void processMeterKeyChunk();
522 void processSegmentChunk();
523 void processNewStream();
524 void processUnknown(
int id);
525 void processEndChunk();
542 #endif // DRUMSTICK_QWRK_H