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
|