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"); } }