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
Cakewalk WRK file format (input only)
Extended thru parameters.
The QObject class is the base class of all Qt objects.
Drumstick visibility macros.
Events stream with lyrics.
Table of text event types.
WrkChunkType
Record types within a WRK file.
Software version which saved the file.
Timebase. If present is the first chunk in the file.