3 OLDCODE#include <config.h>
5 OLDCODE#
if !defined(IPHONE) && !defined(_ANDROID) && !defined(GLES2) && !defined(AQUA)
17 OLDCODEtypedef
int (*functions)(const
char *path, const
char *types, lo_arg **argv,
int argc,
void *data,
void *user_data) ;
19 OLDCODEint nullOSC_handler(const
char *path, const
char *types, lo_arg **argv,
int argc,
void *data,
void *user_data) ;
20 OLDCODEint defaultOSC_handler(const
char *path, const
char *types, lo_arg **argv,
int argc,
void *data,
void *user_data) ;
22 OLDCODEint nullOSC_handler(const
char *path, const
char *types, lo_arg **argv,
int argc,
void *data,
void *user_data)
27 OLDCODE printf(
"nullOSC_handler (%s,%d) : description='%s'\n",__FILE__,__LINE__, realnode->description->strptr) ;
28 OLDCODE printf(
"nullOSC_handler (%s,%d) : filter=%s\n",__FILE__,__LINE__, realnode->filter->strptr) ;
29 OLDCODE printf(
"nullOSC_handler (%s,%d) : listenfor=%s\n",__FILE__,__LINE__, realnode->listenfor->strptr);
31 OLDCODE printf(
"%s (%d,%s) <-", path, argc,types);
33 OLDCODE
for (i=0 ; i < argc ; i++) {
34 OLDCODE
switch (types[i]) {
36 OLDCODE printf(
" %c:%f", types[i], argv[i]->f) ;
39 OLDCODE printf(
" %c:%d", types[i], argv[i]->i) ;
42 OLDCODE printf(
" %c:??", types[i]) ;
46 OLDCODE printf(
"\n\n") ;
47 OLDCODE fflush(stdout);
51 OLDCODEint defaultOSC_handler(
const char *path,
const char *types, lo_arg **argv,
int argc,
void *data,
void *user_data)
56 OLDCODE
int willOverflow = 0;
57 OLDCODE
int freeCount;
58 OLDCODE
int iFltCount;
59 OLDCODE
int iIntCount;
60 OLDCODE
int iStrCount;
61 OLDCODE
int iBlobCount;
62 OLDCODE
int iMidiCount;
63 OLDCODE
int iOtherCount;
65 OLDCODE utilOSCcounts((
char*) types,&iIntCount,&iFltCount,&iStrCount,&iBlobCount,&iMidiCount,&iOtherCount);
72 OLDCODE
if (realnode->FIFOsize > 0) {
73 OLDCODE freeCount = RingBuffer_freeLen(realnode->_floatInpFIFO) ;
74 OLDCODE
if (iFltCount > freeCount) {willOverflow++;}
76 OLDCODE freeCount = RingBuffer_freeLen(realnode->_int32InpFIFO ) ;
77 OLDCODE
if ((iIntCount+iMidiCount) > freeCount) {willOverflow++;}
79 OLDCODE freeCount = RingBuffer_freeLen(realnode->_stringInpFIFO) ;
80 OLDCODE
if ((iStrCount+iBlobCount+iOtherCount) > freeCount) {willOverflow++;}
115 OLDCODE
if (willOverflow > 0) {
116 OLDCODE printf(
"defaultOSC_handler would overflow in %s,%d\n", __FILE__,__LINE__);
119 OLDCODE #
if TRACK_OSC_MSG
120 OLDCODE printf(
"%s (%d,%s) <-", path, argc,types);
123 OLDCODE
int pushBuffError = 0 ;
124 OLDCODE
for (i=0 ; i < argc ; i++) {
125 OLDCODE
switch (types[i]) {
127 OLDCODE #
if TRACK_OSC_MSG
128 OLDCODE printf(
" %c:%f", types[i], argv[i]->f) ;
130 OLDCODE realnode->floatInp = (argv[i]->f) ;
131 OLDCODE
if (realnode->FIFOsize > 0) {
132 OLDCODE #
if TRACK_OSC_MSG
133 OLDCODE printf(
"_floatInpFIFO = %p\n",realnode->_floatInpFIFO) ;
135 OLDCODE pushBuffError = RingBuffer_pushFloat(realnode->_floatInpFIFO, argv[i]->f) ;
139 OLDCODE #
if TRACK_OSC_MSG
140 OLDCODE printf(
" %c:%d", types[i], argv[i]->i) ;
142 OLDCODE realnode->int32Inp = (argv[i]->i) ;
143 OLDCODE
if (realnode->FIFOsize > 0) {
144 OLDCODE #
if TRACK_OSC_MSG
145 OLDCODE printf(
"_int32InpFIFO = %p\n",realnode->_int32InpFIFO) ;
147 OLDCODE pushBuffError = RingBuffer_pushInt(realnode->_int32InpFIFO, argv[i]->i) ;
151 OLDCODE #
if TRACK_OSC_MSG
152 OLDCODE printf(
" %c:%s", types[i], (
char *)argv[i]) ;
154 OLDCODE
if (realnode->stringInp != NULL) {FREE(realnode->stringInp);}
155 OLDCODE realnode->stringInp = newASCIIString((
char *)argv[i]);
156 OLDCODE
if (realnode->FIFOsize > 0) {
157 OLDCODE #
if TRACK_OSC_MSG
158 OLDCODE printf(
"_stringInpFIFO = %p\n",realnode->_stringInpFIFO) ;
160 OLDCODE pushBuffError = RingBuffer_pushPointer(realnode->_stringInpFIFO, (newASCIIString((
char *)argv[i]))->strptr);
164 OLDCODE printf(
" %c:??", types[i]) ;
165 OLDCODE lo_arg_pp(types[i], argv[i]);
168 OLDCODE #
if TRACK_OSC_MSG
172 OLDCODE #
if TRACK_OSC_MSG
173 OLDCODE printf(
"\n\n") ;
175 OLDCODE fflush(stdout);
177 OLDCODE
if (realnode->enabled) {
178 OLDCODE realnode->gotEvents += 1;
179 OLDCODE MARK_EVENT (X3D_NODE(realnode), offsetof(
struct X3D_OSC_Sensor, gotEvents));
182 OLDCODE #
if TRACK_OSC_MSG
183 OLDCODE printf(
"\n");
184 OLDCODE printf(
"defaultOSC_handler : description='%s'\n", realnode->description->strptr) ;
185 OLDCODE printf(
"defaultOSC_handler : int32Inp=%d\n", realnode->int32Inp);
186 OLDCODE printf(
"defaultOSC_handler : floatInp=%f\n", realnode->floatInp);
187 OLDCODE printf(
"defaultOSC_handler : stringInp=%s\n", realnode->stringInp->strptr);
188 OLDCODE printf(
"\n");
190 OLDCODE
if (realnode->FIFOsize > 0) {
191 OLDCODE
int qLen , iTemp ;
192 OLDCODE
float fTemp ;
193 OLDCODE
char * sTemp ;
195 OLDCODE qLen = RingBuffer_qLen(realnode->_floatInpFIFO) ;
196 OLDCODE
if (qLen > 0) {
197 OLDCODE fTemp = RingBuffer_peekUnion(realnode->_floatInpFIFO)->f ;
198 OLDCODE printf(
"%d : float length=%d , head=%f\n",__LINE__,qLen,fTemp);
201 OLDCODE qLen = RingBuffer_qLen(realnode->_int32InpFIFO) ;
202 OLDCODE
if (qLen > 0) {
203 OLDCODE iTemp = RingBuffer_peekUnion(realnode->_int32InpFIFO)->i ;
204 OLDCODE printf(
"%d : int length=%d , head=%d\n",__LINE__,qLen,iTemp);
207 OLDCODE qLen = RingBuffer_qLen(realnode->_stringInpFIFO) ;
208 OLDCODE
if (qLen > 0) {
209 OLDCODE sTemp = (
char *)RingBuffer_peekUnion(realnode->_stringInpFIFO)->p ;
210 OLDCODE printf(
"%d : string length=%d , head=%s\n",__LINE__,qLen,sTemp);
213 OLDCODE printf(
"\n");
219 OLDCODE#define OSCfuncCount 2
220 OLDCODEfunctions OSCcallbacks[OSCfuncCount] = {nullOSC_handler,defaultOSC_handler};
221 OLDCODEchar *OSCfuncNames[OSCfuncCount] = {
"",
"default" };