lib-of-vs-apps-addonsExamples-oscSenderExample-src-testApp.cpp / cpp
include <testApp.h> //-------------------------------------------------------------- void testApp::setup(){ // listen on the given port std::cout << "listening for osc messages on port " << PORT << "\n"; receiver.setup( PORT ); current_msg_string = 0; mouseX = 0; mouseY = 0; strcpy( mouseButtonState, "" ); ofBackground( 30, 30, 130 ); } //-------------------------------------------------------------- void testApp::update(){ // hide old messages for ( int i=0; i<NUM_MSG_STRINGS; i++ ) { if ( timers[i] < ofGetElapsedTimef() ) msg_strings[i] = ""; } // check for waiting messages while( receiver.hasWaitingMessages() ) { // get the next message ofxOscMessage m; receiver.getNextMessage( &m ); // check for mouse moved message if ( strcmp( m.getAddress().c_str(), "/mouse/position" ) == 0 ) { // both the arguments are int32's mouseX = m.getArgAsInt32( 0 ); mouseY = m.getArgAsInt32( 1 ); } // check for mouse button message else if ( strcmp( m.getAddress().c_str(), "/mouse/button" ) == 0 ) { // the single argument is a string strcpy( mouseButtonState, m.getArgAsString( 0 ).c_str() ); } else { // unrecognized message: display on the bottom of the screen char msg_string[16384]; strcpy( msg_string, m.getAddress().c_str() ); strcat( msg_string, ": " ); for ( int i=0; i<m.getNumArgs(); i++ ) { // get the argument type strcat( msg_string, m.getArgTypeName( i ).c_str() ); strcat( msg_string, ":" ); // display the argument - make sure we get the right type if( m.getArgType( i ) == OFXOSC_TYPE_INT32 ) sprintf( msg_string, "\ %s\ %d ", msg_string, m.getArgAsInt32( i ) ); else if( m.getArgType( i ) == OFXOSC_TYPE_FLOAT ) sprintf( msg_string, "\ %s\ %f ", msg_string, m.getArgAsFloat( i ) ); else if( m.getArgType( i ) == OFXOSC_TYPE_STRING ) sprintf( msg_string, "\ %s\"\ %s\" ", msg_string, m.getArgAsString( i ) ); else strcat( msg_string, "unknown" ); } // add to the list of strings to display msg_strings[current_msg_string] = msg_string; timers[current_msg_string] = ofGetElapsedTimef() + 5.0f; current_msg_string = ( current_msg_string + 1 ) % NUM_MSG_STRINGS; // clear the next line msg_strings[current_msg_string] = ""; } } } //-------------------------------------------------------------- void testApp::draw(){ char buf[256]; sprintf( buf, "listening for osc messages on port\ %d", PORT ); ofDrawBitmapString( buf, 10, 20 ); // draw mouse state sprintf( buf, "mouse: % 4d % 4d", mouseX, mouseY ); ofDrawBitmapString( buf, 430, 20 ); ofDrawBitmapString( mouseButtonState, 580, 20 ); for ( int i=0; i<NUM_MSG_STRINGS; i++ ) { ofDrawBitmapString( (char*)msg_strings[i].c_str(), 10, 40+15*i ); } } //-------------------------------------------------------------- void testApp::keyPressed (int key){ } //-------------------------------------------------------------- void testApp::mouseMoved(int x, int y ){ } //-------------------------------------------------------------- void testApp::mouseDragged(int x, int y, int button){ } //-------------------------------------------------------------- void testApp::mousePressed(int x, int y, int button){ } //-------------------------------------------------------------- void testApp::mouseReleased(int x, int y, int button){ } //-------------------------------------------------------------- void testApp::windowResized(int w, int h){ }
(C) Æliens 04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.