/* ArdOSC 2.1 - OSC Library for Arduino. -------- Lisence ----------------------------------------------------------- ArdOSC The MIT License Copyright (c) 2009 - 2011 recotana( http://recotana.com ) All right reserved */ #ifndef ArdOSC_patternmatch_h #define ArdOSC_patternmatch_h #define kMaxPatternMatch 50 #define kMaxSinks 50 #include "OSCMessage.h" #include "Arduino.h" /// OscMessageSinks are notified if a message with their adress is received class OscMessageSink{ public: virtual const __FlashStringHelper* getAdress()=0; virtual void digestMessage(OSCMessage *_mes)=0; }; class Pattern{ private: typedef void (*AdrFunc)(OSCMessage*); AdrFunc adrFunc[kMaxPatternMatch]; OscMessageSink* sinks[kMaxPatternMatch]; char *addr[kMaxPatternMatch]; uint8_t patternNum; uint8_t sinkNum; public: Pattern(); ~Pattern(); void addOscAddress(char *_adr , AdrFunc _func ); void addOscMessageSink(OscMessageSink* sink ); void execFunc(uint8_t _index,OSCMessage *_mes); void paternComp(OSCMessage *_mes); friend class OSCServer; }; #endif