summaryrefslogtreecommitdiff
path: root/Libraries/OSC/OSCMessage.h
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries/OSC/OSCMessage.h')
-rw-r--r--Libraries/OSC/OSCMessage.h101
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