diff options
Diffstat (limited to 'Libraries/OSC/OSCMessage.h')
| -rw-r--r-- | Libraries/OSC/OSCMessage.h | 101 |
1 files changed, 42 insertions, 59 deletions
diff --git a/Libraries/OSC/OSCMessage.h b/Libraries/OSC/OSCMessage.h index 2660b91..052fe9f 100644 --- a/Libraries/OSC/OSCMessage.h +++ b/Libraries/OSC/OSCMessage.h @@ -1,88 +1,57 @@ /* - + ArdOSC - OSC Library for Arduino. - + -------- Lisence ----------------------------------------------------------- - + ArdOSC - - The MIT License - - Copyright (c) 2009 - 2010 recotana( http://recotana.com ) All right reserved - - */ + The MIT License + Copyright (c) 2009 - 2010 recotana( http://recotana.com ) All right reserved + */ #ifndef OSCMessage_h #define OSCMessage_h - #include "OSCcommon.h" - -class OSCMessage{ - -private: - - uint16_t allPackSize; // - char *oscAddress; // "/ard" - uint16_t oscAdrSize; // "/ard" ->4 - uint16_t oscAdrPacSize; // "/ard\0\0\0\0" ->8 - - char *typeTag; // "iif" - uint16_t typeTagSize; // ",iif" -> 4 - uint16_t typeTagPacSize; // ",iif\0\0\0\0" -> 8 - - - void **arguments; - uint16_t argsNum; // "iif" -> 3 - uint16_t argsPacSize; // "iif" -> 4 + 4 + 4 = 12 - - uint8_t ipAddress[4]; //{192,168,0,10} - uint16_t portNumber; //10000 - +class OSCMessage +{ public: - - - OSCMessage(); OSCMessage(const char *_oscAddress); ~OSCMessage(); void flush(); - - + uint16_t getAllPackSize(); uint16_t getStrPackSize(const char* data); - uint16_t getPackSize(uint16_t size); - - - + static uint16_t getPackSize(uint16_t size); + void setAddress(uint8_t *_ip , uint16_t _port); - - void setIpAddress( uint8_t *_ip ); + + void setIpAddress( uint8_t *_ip ); void setIpAddress( uint8_t _ip1, uint8_t _ip2, uint8_t _ip3, uint8_t _ip4); - + uint8_t *getIpAddress(); void setPortNumber(uint16_t _port); uint16_t getPortNumber(); - + int16_t setOSCMessage( const char *_address ,char *types , ... ); int16_t getArgsNum(); - + int16_t setOSCAddress(const char *_address); - char *getOSCAddress(); - + const char* getOSCAddress(); + uint16_t getOSCAddressLen() { return oscAdrSize; } + int16_t setTypeTags(const char *_tags); - char *getTypeTags(); - char getTypeTag(uint16_t _index); - - - + const char* getTypeTags(); + char getTypeTag(uint16_t _index); + int32_t getInteger32(uint16_t _index); - + #ifdef _USE_FLOAT_ float getFloat(uint16_t _index); #endif @@ -90,15 +59,29 @@ public: #ifdef _USE_STRING_ char *getString(uint16_t _index); #endif - - - + friend class OSCServer; friend class OSCClient; friend class OSCDecoder; friend class OSCEncoder; - -}; +private: + uint16_t allPackSize; // + const char* oscAddress; // "/ard" + uint16_t oscAdrSize; // "/ard" ->4 + uint16_t oscAdrPacSize; // "/ard\0\0\0\0" ->8 + + const char* typeTag; // "iif" + uint16_t typeTagSize; // ",iif" -> 4 + uint16_t typeTagPacSize; // ",iif\0\0\0\0" -> 8 + + const uint8_t* argStart; + uint16_t argsNum; // "iif" -> 3 + uint16_t argsPacSize; // "iif" -> 4 + 4 + 4 = 12 + uint8_t ipAddress[4]; //{192,168,0,10} + uint16_t portNumber; //10000 + + void getRaw(uint16_t _index, void* ptr); +}; #endif |
