From 189c0787586602185fea7dcbc3ef37665b75ba45 Mon Sep 17 00:00:00 2001 From: jdl Date: Tue, 6 Aug 2002 12:13:57 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r75, which included commits to RCS files with non-trunk default branches. svn path=/trunk/externals/OSCx/; revision=76 --- libOSC/test_OSC.c | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 libOSC/test_OSC.c (limited to 'libOSC/test_OSC.c') diff --git a/libOSC/test_OSC.c b/libOSC/test_OSC.c new file mode 100644 index 0000000..4593ec6 --- /dev/null +++ b/libOSC/test_OSC.c @@ -0,0 +1,149 @@ +/* + * Copyright (c) 1997 Regents of the University of California. + * All rights reserved. + * + * The name of the University may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE + * IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + +/* + test_OSC.c + Trivial program to test OpenSoundControl.[ch] + + Matt Wright 6/2/97 +*/ + +#include +#include +#include "OpenSoundControl.h" + +#define SIZE 10000 + +void PrintBuf(OSCbuf *b) { + printf("Buffer is %sempty.\n", OSC_isBufferEmpty(b) ? "" : "not "); + printf("%d bytes free in buffer\n", OSC_freeSpaceInBuffer(b)); + printf("Buffer is %sready to send\n", OSC_isBufferDone(b) ?"":"not "); + + printf("Buffer: bufptr %p, state %d, thisMsgSize %p, bundleDepth %d\n" + "prevCounts[%d] %p\n", b->bufptr, b->state, b->thisMsgSize, + b->bundleDepth, b->bundleDepth, b->prevCounts[b->bundleDepth]); +} + +void PrintPacket(OSCbuf *b) { + char *p = OSC_getPacket(b); + int size = OSC_packetSize(b); + unsigned int *intp; + int i; + + printf("PrintPacket: packet at %p, size %d\n", p, size); + if (p == 0 || size == 0) return; + + printf("Hex version:"); + for (i = 0, intp = (unsigned int *)p; i < size; i += 4, intp++) { + if (i % 40 == 0) printf("\n"); + printf("%x ", *intp); + } + + printf("\n\nString version:"); + for (i = 0; i < size; i++) { + if (i % 40 == 0) printf("\n"); + if (isprint(p[i])) { + printf("%c", p[i]); + } else { + printf("\\%x", p[i] & 0x000000ff); + } + } + printf("\n"); +} + + +main() { + OSCbuf myBuf; + OSCbuf *b = &myBuf; + char bytes[SIZE]; + OSCTimeTag tt; + + printf("OSC_initBuffer\n"); + OSC_initBuffer(b, SIZE, bytes); + + PrintBuf(b); + + printf("Testing one-message packet\n"); + if (OSC_writeAddress(b, "/blah/bleh/singlemessage")) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + if (OSC_writeFloatArg(b, 1.23456f)) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + { + float floatarray[10]; + int i; + for (i = 0; i < 10; ++i) { + floatarray[i] = i * 10.0f; + } + if (OSC_writeFloatArgs(b, 10, floatarray)) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + } + + if (OSC_writeIntArg(b, 123456)) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + if (OSC_writeStringArg(b, "This is a cool string, dude.")) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + PrintBuf(b); + PrintPacket(b); + + printf("Resetting\n"); + OSC_resetBuffer(b); + + printf("Testing time tags\n"); + tt = OSCTT_CurrentTime(); + printf("Time now is %llx\n", tt); + + printf("Testing bundles\n"); + if (OSC_openBundle(b, tt)) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + if (OSC_writeAddress(b, "/a/hello")) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + if (OSC_writeIntArg(b, 16)) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + if (OSC_writeIntArg(b, 32)) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + if (OSC_openBundle(b, OSCTT_PlusSeconds(tt, 1.0f))) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + if (OSC_writeAddress(b, "/b/hello")) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + if (OSC_writeAddress(b, "/c/hello")) { + printf("** ERROR: %s\n", OSC_errorMessage); + } + + OSC_closeAllBundles(b); + + PrintBuf(b); + PrintPacket(b); +} + + + -- cgit v1.2.1