Lab_interaccio/2014/VDOSSIER_DIL/Pattern.h

63 lines
1.1 KiB
C
Raw Normal View History

2025-02-25 21:29:42 +01:00
/*
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