void QSpyWrk::globalVars() { dumpStr(0, "Global Vars", QString()); if (m_verbosity) { dumpVar("Now", m_engine->getNow()); dumpVar("From", m_engine->getFrom()); dumpVar("Thru", m_engine->getThru()); dumpVar("KeySig", m_engine->getKeySig()); dumpVar("Clock", m_engine->getClock()); dumpVar("AutoSave", m_engine->getAutoSave()); dumpVar("PlayDelay", m_engine->getPlayDelay()); dumpVar("ZeroCtrls", m_engine->getZeroCtrls()); dumpVar("SendSPP", m_engine->getSendSPP()); dumpVar("SendCont", m_engine->getSendCont()); dumpVar("PatchSearch", m_engine->getPatchSearch()); dumpVar("AutoStop", m_engine->getAutoStop()); dumpVar("StopTime", m_engine->getStopTime()); dumpVar("AutoRewind", m_engine->getAutoRewind()); dumpVar("RewindTime", m_engine->getRewindTime()); dumpVar("MetroPlay", m_engine->getMetroPlay()); dumpVar("MetroRecord", m_engine->getMetroRecord()); dumpVar("MetroAccent", m_engine->getMetroAccent()); dumpVar("CountIn", m_engine->getCountIn()); dumpVar("ThruOn", m_engine->getThruOn()); dumpVar("AutoRestart", m_engine->getAutoRestart()); dumpVar("CurTempoOfs", m_engine->getCurTempoOfs()); dumpVar("TempoOfs1", m_engine->getTempoOfs1()); dumpVar("TempoOfs2", m_engine->getTempoOfs2()); dumpVar("TempoOfs3", m_engine->getTempoOfs3()); dumpVar("PunchEnabled", m_engine->getPunchEnabled()); dumpVar("PunchInTime", m_engine->getPunchInTime()); dumpVar("PunchOutTime", m_engine->getPunchOutTime()); dumpVar("EndAllTime", m_engine->getEndAllTime()); } }
void QSpyWrk::variableRecord(const QString& name, const QByteArray& data) { QString s = name; bool isReadable = ( name == "Title" || name == "Author" || name == "Copyright" || name == "Subtitle" || name == "Instructions" || name == "Keywords" ); if (isReadable) { s += ": "; if (m_engine->getTextCodec() == 0) s += QString(data); else s += m_engine->getTextCodec()->toUnicode(data); } dumpStr(0, "Variable Record", s.trimmed()); if (!isReadable) dumpHex(data); }
void dumpPtd( __bytefield__ *f, __WORD__ pos ) { __WORD__ addr = (__WORD__)f->field + pos; __BWORD__ bptd = __boxptd(_A1_, addr); __WORD__ nextpos = pos; __WORD__ slen; __WORD__ stail; __WORD__ spad; switch (__boxsubtype(_A1_, bptd)) { case __VEC_TYPE__: dumpVec(f, pos); nextpos += (__unboxint(_A1_, __vectorLength(_A1_, bptd)) * __WORDSIZE__) + sizeof(__vector__); break; case __STR_TYPE__: dumpStr(f, pos); slen = __unboxint(_A1_, __stringLength(_A1_, bptd)) + 1; stail = (slen % __WORDSIZE__); spad = 0; if (stail != 0) spad = __WORDSIZE__ - stail; nextpos += slen + spad + sizeof(__string__); break; case __CHAR_TYPE__: dumpChar(f, pos); nextpos += sizeof(__char__); break; default: printf("Unrecognized object type."); exit(__FAIL__); } dumpObject(f, nextpos); }
void QSpyWrk::unknownChunk(int type, const QByteArray& data) { QString name = QString("Unknown Chunk %1 (0x%2)").arg(type).arg(type, 2, 16, QChar('0')); dumpStr(0, name, QString("size=%2").arg(data.length())); dumpHex(data); }
void QSpyWrk::stringTable(const QStringList& table) { dumpStr(0, "String Table", table.join(", ")); }
void QSpyWrk::softVersion(const QString& version) { dumpStr(0, "Software Version", version); }
void QSpyWrk::comments(const QString& cmt) { dumpStr(0, "Comment", cmt.trimmed()); }
void QSpyWrk::timeFormat(int frsec, int ofs) { dumpStr(0, "SMPTE Time Format", QString("%1 frames/second, offset=%2").arg(frsec).arg(ofs)); }
void QSpyWrk::thruMode(int mode, int port, int channel, int keyPlus, int velPlus, int localPort) { dumpStr(0, "Thru Mode", QString("mode=%1 port=%2 chan=%3 key+=%4 vel+=%5 port=%6").arg(mode).arg(port).arg(channel).arg(keyPlus).arg(velPlus).arg(localPort)); }
void QSpyWrk::tempoEvent(long time, int tempo) { double bpm = tempo / 100.0; dumpStr(time, "Tempo", QString::number(bpm, 'f', 2)); }
void QSpyWrk::keySigEvent(int bar, int alt) { dumpStr(0, "Key Signature", QString("bar=%1, alt=%2").arg(bar).arg(alt)); }
void QSpyWrk::timeSigEvent(int bar, int num, int den) { dumpStr(0, "Time Signature", QString("bar=%1, %2/%3").arg(bar).arg(num).arg(den)); }
void QSpyWrk::sysexEventBank(int bank, const QString& name, bool autosend, int port, const QByteArray& data) { dumpStr(0, "System Exclusive Bank", QString("bank=%1 name='%2' auto=%3 port=%4").arg(bank).arg(name).arg(autosend).arg(port)); dumpHex(data); }
void QSpyWrk::timeBase(int timebase) { dumpStr(0, "Ticks per Quarter Note", QString::number(timebase)); }
void QSpyWrk::fileHeader(int verh, int verl) { dumpStr(0, "WRK File Version", QString("%1.%2").arg(verh).arg(verl)); }
void dumpCurPath(){dumpStr(QDir::currentPath());}