69 lines
1.3 KiB
C++
69 lines
1.3 KiB
C++
/*
|
||
|
||
ArdOSC 2.1 - OSC Library for Arduino.
|
||
|
||
-------- Lisence -----------------------------------------------------------
|
||
|
||
ArdOSC
|
||
|
||
The MIT License
|
||
|
||
Copyright (c) 2009 - 2011 recotana( http://recotana.com ) All right reserved
|
||
|
||
*/
|
||
|
||
#include <stdlib.h>
|
||
#include <string.h>
|
||
#include "OSCServer.h"
|
||
#include "OSCcommon.h"
|
||
#include "OSCMessage.h"
|
||
|
||
#include "Pattern.h"
|
||
|
||
|
||
|
||
Pattern::Pattern(){
|
||
patternNum=0;
|
||
sinkNum=0;
|
||
|
||
}
|
||
Pattern::~Pattern(){
|
||
}
|
||
|
||
void Pattern::addOscAddress(char *_adr , AdrFunc _func){
|
||
adrFunc[patternNum] = _func;
|
||
addr[patternNum] = _adr;
|
||
patternNum++;
|
||
}
|
||
|
||
void Pattern::addOscMessageSink(OscMessageSink* sink ){
|
||
sinks[sinkNum]=sink;
|
||
sinkNum++;
|
||
}
|
||
|
||
void Pattern::execFunc(uint8_t _index,OSCMessage *_mes){
|
||
adrFunc[_index](_mes);
|
||
}
|
||
|
||
void Pattern::paternComp(OSCMessage *_mes){
|
||
/*
|
||
Serial.print("got message, adress:_");
|
||
Serial.print(_mes->_oscAddress );
|
||
Serial.println("_");
|
||
*/
|
||
for (uint8_t i=0 ; i<patternNum ; i++) {
|
||
if ( strcmp( addr[i] , _mes->_oscAddress ) == 0 ) execFunc( i , _mes );
|
||
}
|
||
|
||
for (uint8_t i=0 ; i<sinkNum ; i++) {
|
||
/*
|
||
Serial.print("sending message to sink: _");
|
||
Serial.print(sinks[i]-> getAdress());
|
||
Serial.print("_: ");
|
||
//Serial.println("triggering sink");
|
||
*/
|
||
sinks[i]->digestMessage(_mes);
|
||
|
||
}
|
||
}
|