TinyOSC简单的 OSC 库
TinyOSC 是极其简单的 Open Sound Control (OSC) 库,使用 C 编写,常用示例是解析直接从一个 socket 接收的原生缓冲。
代码示例:
#include "tinyosc.h"
tosc_tinyosc osc; // declare the TinyOSC structure
char buffer[1024]; // declare a buffer into which to read the socket contents
int len = 0; // the number of bytes read from the socket
while ((len = READ_BYTES_FROM_SOCKET(buffer)) > 0) {
// parse the buffer contents (the raw OSC bytes)
// a return value of 0 indicates no error
if (!tosc_init(&osc, buffer, len)) {
printf("Received OSC message: [%i bytes] %s %s ",
len, // the number of bytes in the OSC message
osc.address, // the OSC address string, e.g. "/button1"
osc.format); // the OSC format string, e.g. "f"
for (int i = 0; osc.format[i] != '\0'; i++) {
switch (osc.format[i]) {
case 'f': printf("%g ", tosc_getNextFloat(&osc)); break;
case 'i': printf("%i ", tosc_getNextInt32(&osc)); break;
case 's': printf("%s ", tosc_getNextString(&osc)); break;
default: continue;
}
}
printf("\n");
}
}评论
