19 #ifndef DRUMSTICK_QWRK_H 20 #define DRUMSTICK_QWRK_H 72 const QByteArray HEADER(
"CAKEWALK");
88 void readFromStream(QDataStream *stream);
89 void readFromFile(
const QString& fileName);
90 QTextCodec* getTextCodec();
91 void setTextCodec(QTextCodec *codec);
97 int getKeySig()
const;
99 int getAutoSave()
const;
100 int getPlayDelay()
const;
101 bool getZeroCtrls()
const;
102 bool getSendSPP()
const;
103 bool getSendCont()
const;
104 bool getPatchSearch()
const;
105 bool getAutoStop()
const;
106 unsigned int getStopTime()
const;
107 bool getAutoRewind()
const;
108 int getRewindTime()
const;
109 bool getMetroPlay()
const;
110 bool getMetroRecord()
const;
111 bool getMetroAccent()
const;
112 int getCountIn()
const;
113 bool getThruOn()
const;
114 bool getAutoRestart()
const;
115 int getCurTempoOfs()
const;
116 int getTempoOfs1()
const;
117 int getTempoOfs2()
const;
118 int getTempoOfs3()
const;
119 bool getPunchEnabled()
const;
120 int getPunchInTime()
const;
121 int getPunchOutTime()
const;
122 int getEndAllTime()
const;
124 QByteArray getLastChunkRawData()
const;
125 double getRealTime(
long ticks)
const;
134 void signalWRKError(
const QString& errorStr);
142 void signalWRKUnknownChunk(
int type,
const QByteArray& data);
150 void signalWRKHeader(
int verh,
int verl);
160 void signalWRKStreamEnd(
long time);
172 void signalWRKNote(
int track,
long time,
int chan,
int pitch,
int vol,
int dur);
183 void signalWRKKeyPress(
int track,
long time,
int chan,
int pitch,
int press);
194 void signalWRKCtlChange(
int track,
long time,
int chan,
int ctl,
int value);
204 void signalWRKPitchBend(
int track,
long time,
int chan,
int value);
214 void signalWRKProgram(
int track,
long time,
int chan,
int patch);
224 void signalWRKChanPress(
int track,
long time,
int chan,
int press);
233 void signalWRKSysexEvent(
int track,
long time,
int bank);
244 void signalWRKSysex(
int bank,
const QString& name,
bool autosend,
int port,
const QByteArray& data);
254 void signalWRKText(
int track,
long time,
int type,
const QString& data);
263 void signalWRKTimeSig(
int bar,
int num,
int den);
271 void signalWRKKeySig(
int bar,
int alt);
282 void signalWRKTempo(
long time,
int tempo);
298 void signalWRKTrack(
const QString& name1,
299 const QString& name2,
300 int trackno,
int channel,
int pitch,
301 int velocity,
int port,
302 bool selected,
bool muted,
bool loop );
309 void signalWRKTimeBase(
int timebase);
319 void signalWRKGlobalVars();
335 void signalWRKThru(
int mode,
int port,
int channel,
int keyPlus,
int velPlus,
int localPort);
343 void signalWRKTrackOffset(
int track,
int offset);
351 void signalWRKTrackReps(
int track,
int reps);
359 void signalWRKTrackPatch(
int track,
int patch);
367 void signalWRKTrackBank(
int track,
int bank);
375 void signalWRKTimeFormat(
int frames,
int offset);
382 void signalWRKComments(
const QString& data);
391 void signalWRKVariableRecord(
const QString& name,
const QByteArray& data);
399 void signalWRKTrackVol(
int track,
int vol);
414 void signalWRKNewTrack(
const QString& name,
415 int trackno,
int channel,
int pitch,
416 int velocity,
int port,
417 bool selected,
bool muted,
bool loop );
424 void signalWRKSoftVer(
const QString& version);
432 void signalWRKTrackName(
int track,
const QString& name);
439 void signalWRKStringTable(
const QStringList& strs);
448 void signalWRKSegment(
int track,
long time,
const QString& name);
458 void signalWRKChord(
int track,
long time,
const QString& name,
const QByteArray& data);
468 void signalWRKExpression(
int track,
long time,
int code,
const QString& text);
478 void signalWRKHairpin(
int track,
long time,
int code,
int dur);
482 quint16 to16bit(quint8 c1, quint8 c2);
483 quint32 to32bit(quint8 c1, quint8 c2, quint8 c3, quint8 c4);
487 QString readString(
int len);
488 QString readVarString();
489 void readRawData(
int size);
490 void readGap(
int size);
492 void seek(qint64 pos);
495 void processTrackChunk();
496 void processVarsChunk();
497 void processTimebaseChunk();
498 void processNoteArray(
int track,
int events);
499 void processStreamChunk();
500 void processMeterChunk();
501 void processTempoChunk(
int factor = 1);
502 void processSysexChunk();
503 void processSysex2Chunk();
504 void processNewSysexChunk();
505 void processThruChunk();
506 void processTrackOffset();
507 void processTrackReps();
508 void processTrackPatch();
509 void processTrackBank();
510 void processTimeFormat();
511 void processComments();
512 void processVariableRecord(
int max);
513 void processNewTrack();
514 void processSoftVer();
515 void processTrackName();
516 void processStringTable();
517 void processLyricsStream();
518 void processTrackVol();
519 void processNewTrackOffset();
520 void processMeterKeyChunk();
521 void processSegmentChunk();
522 void processNewStream();
523 void processUnknown(
int id);
524 void processEndChunk();
541 #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.