123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- #ifndef OSCBUNDLE_h
- #define OSCBUNDLE_h
- #include "OSCMessage.h"
- extern osctime_t zerotime;
- class OSCBundle
- {
- private:
-
- OSCMessage ** messages;
-
- int numMessages;
-
- osctime_t timetag;
-
-
- OSCErrorCode error;
-
-
-
- enum DecodeState {
- STANDBY,
- HEADER,
- TIMETAG,
- MESSAGE_SIZE,
- MESSAGE,
- } decodeState;
-
-
- uint8_t * incomingBuffer;
- int incomingBufferSize;
-
-
- int incomingMessageSize;
-
-
- void addToIncomingBuffer(uint8_t);
-
- void clearIncomingBuffer();
-
-
- void decode(uint8_t);
- void decodeTimetag();
- void decodeHeader();
- void decodeMessage(uint8_t);
-
-
- OSCMessage & add();
- public:
-
-
- OSCBundle(osctime_t = zerotime);
-
- ~OSCBundle();
-
- OSCBundle& empty();
-
-
-
- OSCMessage & add(const char * address);
-
-
- OSCMessage & add(OSCMessage & msg);
-
- template <typename T>
- OSCBundle& setTimetag(T t){
- timetag = (osctime_t) t;
- return *this;
- }
-
- OSCBundle& setTimetag(uint8_t * buff){
- memcpy(&timetag, buff, 8);
- return *this;
- }
-
-
-
- OSCMessage * getOSCMessage(char * addr);
-
-
- OSCMessage * getOSCMessage(int position);
-
-
-
- bool dispatch(const char * pattern, void (*callback)(OSCMessage&), int = 0);
-
-
-
- bool route(const char * pattern, void (*callback)(OSCMessage&, int), int = 0);
-
-
- int size();
-
-
- bool hasError();
-
- OSCErrorCode getError();
-
-
- OSCBundle& send(Print &p);
-
-
- OSCBundle& fill(uint8_t incomingByte);
-
- OSCBundle& fill(const uint8_t * incomingBytes, int length);
- };
- #endif
|