63 lines
1.1 KiB
C++
63 lines
1.1 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
|
||
|
||
*/
|
||
|
||
#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
|