19#ifndef DRUMSTICK_QWRK_H
20#define DRUMSTICK_QWRK_H
24#include <QScopedPointer>
93 void readFromStream(QDataStream *stream);
94 void readFromFile(
const QString& fileName);
95 Q_DECL_DEPRECATED QTextCodec* getTextCodec();
96 Q_DECL_DEPRECATED
void setTextCodec(QTextCodec *codec);
102 int getKeySig()
const;
103 int getClock()
const;
104 int getAutoSave()
const;
105 int getPlayDelay()
const;
106 bool getZeroCtrls()
const;
107 bool getSendSPP()
const;
108 bool getSendCont()
const;
109 bool getPatchSearch()
const;
110 bool getAutoStop()
const;
111 unsigned int getStopTime()
const;
112 bool getAutoRewind()
const;
113 int getRewindTime()
const;
114 bool getMetroPlay()
const;
115 bool getMetroRecord()
const;
116 bool getMetroAccent()
const;
117 int getCountIn()
const;
118 bool getThruOn()
const;
119 bool getAutoRestart()
const;
120 int getCurTempoOfs()
const;
121 int getTempoOfs1()
const;
122 int getTempoOfs2()
const;
123 int getTempoOfs3()
const;
124 bool getPunchEnabled()
const;
125 int getPunchInTime()
const;
126 int getPunchOutTime()
const;
127 int getEndAllTime()
const;
129 QByteArray getLastChunkRawData()
const;
130 double getRealTime(
long ticks)
const;
183 void signalWRKNote(
int track,
long time,
int chan,
int pitch,
int vol,
int dur);
255 void signalWRKSysex(
int bank,
const QString& name,
bool autosend,
int port,
const QByteArray& data);
267 Q_DECL_DEPRECATED
void signalWRKText(
int track,
long time,
int type,
const QString& data);
315 const QString& name2,
316 int trackno,
int channel,
int pitch,
317 int velocity,
int port,
318 bool selected,
bool muted,
bool loop );
351 void signalWRKThru(
int mode,
int port,
int channel,
int keyPlus,
int velPlus,
int localPort);
436 int trackno,
int channel,
int pitch,
437 int velocity,
int port,
438 bool selected,
bool muted,
bool loop );
485 void signalWRKChord(
int track,
long time,
const QString& name,
const QByteArray& data);
536 const QByteArray& name2,
537 int trackno,
int channel,
int pitch,
538 int velocity,
int port,
539 bool selected,
bool muted,
bool loop );
564 int trackno,
int channel,
int pitch,
565 int velocity,
int port,
566 bool selected,
bool muted,
bool loop );
630 quint16 to16bit(quint8 c1, quint8 c2);
631 quint32 to32bit(quint8 c1, quint8 c2, quint8 c3, quint8 c4);
635 QString readString(
int len);
636 QString readVarString();
637 void readRawData(
int size);
638 void readGap(
int size);
640 void seek(qint64 pos);
643 void processTrackChunk();
644 void processVarsChunk();
645 void processTimebaseChunk();
646 void processNoteArray(
int track,
int events);
647 void processStreamChunk();
648 void processMeterChunk();
649 void processTempoChunk(
int factor = 1);
650 void processSysexChunk();
651 void processSysex2Chunk();
652 void processNewSysexChunk();
653 void processThruChunk();
654 void processTrackOffset();
655 void processTrackReps();
656 void processTrackPatch();
657 void processTrackBank();
658 void processTimeFormat();
659 void processComments();
660 void processVariableRecord(
int max);
661 void processNewTrack();
662 void processSoftVer();
663 void processTrackName();
664 void processStringTable();
665 void processLyricsStream();
666 void processTrackVol();
667 void processNewTrackOffset();
668 void processMeterKeyChunk();
669 void processSegmentChunk();
670 void processNewStream();
671 void processUnknown(
int id);
672 void processEndChunk();
674 QByteArray readByteArray(
int len);
675 QByteArray readVarByteArray();
676 void processMarkers();
685 QScopedPointer<QWrkPrivate> d;
The QObject class is the base class of all Qt objects.
Cakewalk WRK file format (input only)
void signalWRKTrackPatch(int track, int patch)
Emitted after reading a track patch chunk.
Q_DECL_DEPRECATED void signalWRKSegment(int track, long time, const QString &name)
Emitted after reading a segment prefix chunk.
void signalWRKProgram(int track, long time, int chan, int patch)
Emitted after reading a Program change message.
void signalWRKChord(int track, long time, const QString &name, const QByteArray &data)
Emitted after reading a chord diagram chunk.
static const QByteArray HEADER
Cakewalk WRK file format header string id.
void signalWRKHeader(int verh, int verl)
Emitted after reading a WRK header.
void signalWRKSysexEvent(int track, long time, int bank)
Emitted after reading a System Exclusive event.
void signalWRKMarker2(long time, int type, const QByteArray &data)
Emitted after reading a text marker This signal is emitted when getTextCodec() is nullptr.
void signalWRKGlobalVars()
Emitted after reading the global variables chunk.
void signalWRKSoftVer(const QString &version)
Emitted after reading a software version chunk.
void signalWRKSegment2(int track, long time, const QByteArray &name)
Emitted after reading a segment prefix chunk.
void signalWRKTrackOffset(int track, int offset)
Emitted after reading a track offset chunk.
void signalWRKChanPress(int track, long time, int chan, int press)
Emitted after reading a Channel Aftertouch message.
void signalWRKStreamEnd(long time)
Emitted after reading the last event of a event stream.
void signalWRKText2(int track, long time, int type, const QByteArray &data)
Emitted after reading a text message This signal is emitted when getTextCodec() is nullptr.
void signalWRKKeyPress(int track, long time, int chan, int pitch, int press)
Emitted after reading a Polyphonic Aftertouch message.
void signalWRKVariableRecord(const QString &name, const QByteArray &data)
Emitted after reading a variable chunk.
void signalWRKTrackVol(int track, int vol)
Emitted after reading a track volume chunk.
void signalWRKExpression2(int track, long time, int code, const QByteArray &text)
Emitted after reading an expression indication (notation) chunk.
void signalWRKTrackName2(int track, const QByteArray &name)
Emitted after reading a track name chunk.
Q_DECL_DEPRECATED void signalWRKNewTrack(const QString &name, int trackno, int channel, int pitch, int velocity, int port, bool selected, bool muted, bool loop)
Emitted after reading a new track prefix.
void signalWRKTrack2(const QByteArray &name1, const QByteArray &name2, int trackno, int channel, int pitch, int velocity, int port, bool selected, bool muted, bool loop)
Emitted after reading a track prefix chunk This signal is emitted when getTextCodec() is nullptr.
void signalWRKError(const QString &errorStr)
Emitted for a WRK file read error.
void signalWRKTempo(long time, int tempo)
Emitted after reading a Tempo Change message.
void signalWRKTimeSig(int bar, int num, int den)
Emitted after reading a WRK Time signature.
void signalWRKHairpin(int track, long time, int code, int dur)
Emitted after reading a hairpin symbol (notation) chunk.
void signalWRKPitchBend(int track, long time, int chan, int value)
Emitted after reading a Bender message.
void signalWRKEnd()
Emitted after reading the last chunk of a WRK file.
Q_DECL_DEPRECATED void signalWRKTrackName(int track, const QString &name)
Emitted after reading a track name chunk.
void signalWRKNewTrack2(const QByteArray &name, int trackno, int channel, int pitch, int velocity, int port, bool selected, bool muted, bool loop)
Emitted after reading a new track prefix This signal is emitted when getTextCodec() is nullptr.
void signalWRKThru(int mode, int port, int channel, int keyPlus, int velPlus, int localPort)
Emitted after reading an Extended Thru parameters chunk.
void signalWRKNote(int track, long time, int chan, int pitch, int vol, int dur)
Emitted after reading a Note message.
Q_DECL_DEPRECATED void signalWRKStringTable(const QStringList &strs)
Emitted after reading a string event types chunk.
void signalWRKUnknownChunk(int type, const QByteArray &data)
Emitted after reading an unknown chunk.
void signalWRKTrackBank(int track, int bank)
Emitted after reading a track bank chunk.
void signalWRKComments2(const QByteArray &data)
Emitted after reading a comments chunk This signal is emitted when getTextCodec() is nullptr.
void signalWRKTimeBase(int timebase)
Emitted after reading the timebase chunk.
Q_DECL_DEPRECATED void signalWRKExpression(int track, long time, int code, const QString &text)
Emitted after reading an expression indication (notation) chunk.
Q_DECL_DEPRECATED void signalWRKText(int track, long time, int type, const QString &data)
Emitted after reading a text message.
void signalWRKTimeFormat(int frames, int offset)
Emitted after reading a SMPTE time format chunk.
void signalWRKSysex(int bank, const QString &name, bool autosend, int port, const QByteArray &data)
Emitted after reading a System Exclusive Bank.
Q_DECL_DEPRECATED void signalWRKComments(const QString &data)
Emitted after reading a comments chunk.
void signalWRKCtlChange(int track, long time, int chan, int ctl, int value)
Emitted after reading a Control Change message.
void signalWRKTrackReps(int track, int reps)
Emitted after reading a track offset chunk.
void signalWRKKeySig(int bar, int alt)
Emitted after reading a WRK Key Signature.
Q_DECL_DEPRECATED void signalWRKTrack(const QString &name1, const QString &name2, int trackno, int channel, int pitch, int velocity, int port, bool selected, bool muted, bool loop)
Emitted after reading a track prefix chunk.
Q_DECL_DEPRECATED void signalWRKMarker(long time, int type, const QString &data)
Emitted after reading a text marker This is deprecated because the class QTextCodec was removed from ...
void signalWRKStringTable2(const QList< QByteArray > &strs)
Emitted after reading a string event types chunk.
WrkChunkType
Record types within a WRK file.
@ NTRKOFS_CHUNK
Track offset.
@ NTRACK_CHUNK
Track prefix.
@ TRKPATCH_CHUNK
Track patch.
@ STRTAB_CHUNK
Table of text event types.
@ NTEMPO_CHUNK
New Tempo map.
@ VARS_CHUNK
Global variables.
@ TRKBANK_CHUNK
Track bank.
@ COMMENTS_CHUNK
Comments.
@ SGMNT_CHUNK
Segment prefix.
@ SOFTVER_CHUNK
Software version which saved the file.
@ TRKNAME_CHUNK
Track name.
@ TIMEFMT_CHUNK
SMPTE time format.
@ END_CHUNK
Last chunk, end of file.
@ STREAM_CHUNK
Events stream.
@ TRACK_CHUNK
Track prefix.
@ TIMEBASE_CHUNK
Timebase. If present is the first chunk in the file.
@ TRKOFFS_CHUNK
Track offset.
@ NSYSEX_CHUNK
System exclusive bank.
@ THRU_CHUNK
Extended thru parameters.
@ SYSEX2_CHUNK
System exclusive bank.
@ NSTREAM_CHUNK
Events stream.
@ VARIABLE_CHUNK
Variable record chunk.
@ METERKEY_CHUNK
Meter/Key map.
@ MEMRGN_CHUNK
Memory region.
@ TRKREPS_CHUNK
Track repetitions.
@ TRKVOL_CHUNK
Track volume.
@ SYSEX_CHUNK
System exclusive bank.
@ LYRICS_CHUNK
Events stream with lyrics.
Drumstick visibility macros.