void dumpOSC(int mode, int size, char* inData) { if (mode & 1) { if (strcmp(inData, "#bundle") == 0) { char* data = inData + 8; printf("[ \"#bundle\", %lld, ", OSCtime(data)); data += 8; char* dataEnd = inData + size; while (data < dataEnd) { int32 msgSize = OSCint(data); data += sizeof(int32); printf("\n "); dumpOSCmsg(msgSize, data); data += msgSize; if (data < dataEnd) printf(","); } printf("\n]\n"); } else { dumpOSCmsg(size, inData); printf("\n"); } } if (mode & 2) hexdump(size, inData); }
static bool dumpOSCbndl(int indent, int size, char *inData) { char* data = inData + 8; char* dataEnd = inData + size; scprintf("[ \"#bundle\", %" PRIu64 ", ", OSCtime(data)); data += 8; while (data < dataEnd) { int contentPrinted; int32 msgSize = OSCint(data); data += sizeof(int32); scprintf("\n"); for (int i=0; i<indent+1; i++) scprintf(" "); if (!strcmp(data, "#bundle")) contentPrinted = dumpOSCbndl(indent+1, msgSize, data); else contentPrinted = dumpOSCmsg(msgSize, data, true); data += msgSize; if ( (data < dataEnd) && contentPrinted) scprintf(","); } scprintf("\n"); for (int i=0; i<indent; i++) scprintf(" "); scprintf("]"); return true; }
static void dumpOSC(int mode, int size, char* inData) { if (mode & 1) { int indent = 0; bool contentPrinted; if (strcmp(inData, "#bundle") == 0) contentPrinted = dumpOSCbndl(indent, size, inData); else contentPrinted = dumpOSCmsg(size, inData, true); if (contentPrinted) scprintf("\n"); } if (mode & 2) hexdump(size, inData); }