diff src/melodyTriangle.cpp @ 8:3d9e0db254dc

Added OSC receive
author Henrik Ekeus <hekeus@eecs.qmul.ac.uk>
date Thu, 26 Jan 2012 23:42:13 +0000
parents 38f63c4300d7
children a8f71b5bdb0e
line wrap: on
line diff
--- a/src/melodyTriangle.cpp	Wed Jan 25 16:32:57 2012 +0000
+++ b/src/melodyTriangle.cpp	Thu Jan 26 23:42:13 2012 +0000
@@ -11,13 +11,15 @@
  
  
  */
-melodyTriangle::melodyTriangle(const char *host, int port, int numVoices, bool enableKeys,int voiceIdOffset){
-	printf("in constructor: %s %i %i %i\n",host,port,numVoices,enableKeys);
+melodyTriangle::melodyTriangle(const char *host, int port, int numVoices, bool enableKeys,int voiceIdOffset,int receivePort){
+	printf("in constructor: %s %i %i %i %i %i\n",host,port,numVoices,enableKeys,voiceIdOffset,receivePort);
 	this->numVoices=numVoices;
 	this->enableKeys=enableKeys;
 	this->voiceIdOffset=voiceIdOffset;
 	//voices=*Voice[numVoices];
 	sender.setup( host,port );
+	receiver.setup( receivePort );
+
 }
 
 //--------------------------------------------------------------
@@ -57,6 +59,32 @@
 
 //--------------------------------------------------------------
 void melodyTriangle::update(){
+	while( receiver.hasWaitingMessages() )
+	{
+		// get the next message
+		ofxOscMessage m;
+		receiver.getNextMessage( &m );
+		string msg_string;
+		msg_string = m.getAddress();
+		msg_string += ": ";
+		for ( int i=0; i<m.getNumArgs(); i++ )
+		{
+			// get the argument type
+			msg_string += m.getArgTypeName( i );
+			msg_string += ":";
+			// display the argument - make sure we get the right type
+			if( m.getArgType( i ) == OFXOSC_TYPE_INT32 )
+				msg_string += ofToString( m.getArgAsInt32( i ) );
+			else if( m.getArgType( i ) == OFXOSC_TYPE_FLOAT )
+				msg_string += ofToString( m.getArgAsFloat( i ) );
+			else if( m.getArgType( i ) == OFXOSC_TYPE_STRING )
+				msg_string += m.getArgAsString( i );
+			else
+				msg_string += "unknown";
+		}
+		cout<< msg_string << "\n";
+		
+	}
 }
 
 bool melodyTriangle::isInTriangle(int x, int y){