void PxlFkr::update() { while (listener.hasWaitingMessages()) { osc::Message message; listener.getNextMessage(&message); luaBridge.handleMessage(message); } luaBridge.update(); }
void MilluminApp::update() { while (listener.hasWaitingMessages()) { osc::Message message; listener.getNextMessage(&message); console() << "New message received" << std::endl; console() << "Address: " << message.getAddress() << std::endl; console() << "Num Arg: " << message.getNumArgs() << std::endl; for (int i = 0; i < message.getNumArgs(); i++) { console() << "-- Argument " << i << std::endl; console() << "---- type: " << message.getArgTypeName(i) << std::endl; if (message.getArgType(i) == osc::TYPE_INT32){ try { console() << "------ value: "<< message.getArgAsInt32(i) << std::endl; } catch (int value) { console() << "------ value through exception: "<< value << std::endl; } }else if (message.getArgType(i) == osc::TYPE_FLOAT){ try { console() << "------ value: " << message.getArgAsFloat(i) << std::endl; } catch (float val) { console() << "------ value trough exception: " << val << std::endl; } mRot += 1.f; }else if (message.getArgType(i) == osc::TYPE_STRING){ try { console() << "------ value: " << message.getArgAsString(i).c_str() << std::endl; } catch (std::string str) { console() << "------ value: " << str << std::endl; } } } } osc::Message message; message.addFloatArg( (cos(getElapsedSeconds()) / 2.0f + .5f)*100.f ); message.setAddress("/millumin/selectedLayer/opacity"); message.setRemoteEndpoint(host, port); sender.sendMessage(message); if(getElapsedFrames() % 2 == 0) // for those of us with slower computers randomizeSurface(&mSurface); mTex.update(mSurface); mRot += 0.2f; }
void osc_exampleApp::update() { while(mListener.hasWaitingMessages() ) { osc::Message message; mListener.getNextMessage( &message ); if (message.getAddress() == "/myo") { for (int i = 0; i < min((size_t)message.getNumArgs(), mEMG.size()); i++) { if( message.getArgType(i) == osc::TYPE_INT32 ) { mEMG[i].push_front(message.getArgAsInt32(i)); mEMG[i].pop_back(); } } } else { console() << "Unknown message: " << message.getAddress() << endl; } } }
void OSCListenerApp::update() { while( listener.hasWaitingMessages() ) { osc::Message message; listener.getNextMessage( &message ); console() << "New message received" << std::endl; console() << "Address: " << message.getAddress() << std::endl; console() << "Num Arg: " << message.getNumArgs() << std::endl; for (int i = 0; i < message.getNumArgs(); i++) { console() << "-- Argument " << i << std::endl; console() << "---- type: " << message.getArgTypeName(i) << std::endl; if( message.getArgType(i) == osc::TYPE_INT32 ) { try { console() << "------ value: "<< message.getArgAsInt32(i) << std::endl; } catch (...) { console() << "Exception reading argument as int32" << std::endl; } } else if( message.getArgType(i) == osc::TYPE_FLOAT ) { try { console() << "------ value: " << message.getArgAsFloat(i) << std::endl; } catch (...) { console() << "Exception reading argument as float" << std::endl; } } else if( message.getArgType(i) == osc::TYPE_STRING) { try { console() << "------ value: " << message.getArgAsString(i).c_str() << std::endl; } catch (...) { console() << "Exception reading argument as string" << std::endl; } } } if( message.getNumArgs() != 0 && message.getArgType( 0 ) == osc::TYPE_FLOAT ) positionX = message.getArgAsFloat(0); } }
void redEyeApp::update() { //--osc input while(mListener.hasWaitingMessages()) { osc::Message msg; mListener.getNextMessage(&msg); mOsc= msg.getAddress(); for(uint32_t i= 0; i<msg.getNumArgs(); i++) { mOsc= mOsc+" "+msg.getArgAsString(i, true); } if(msg.getAddress()=="/numSamples") { mNumSamples= math<int32_t>::clamp(msg.getArgAsInt32(0, true), 1, 2048); } else if(msg.getAddress()=="/downSample") { mDownSample= math<int32_t>::clamp(msg.getArgAsInt32(0, true), 0, 2047); } else if(msg.getAddress()=="/amplitude") { mAmplitude= msg.getArgAsFloat(0, true); } else if(msg.getAddress()=="/width") { mWidth= math<float>::clamp(msg.getArgAsFloat(0, true), 0, 1000); } else if(msg.getAddress()=="/colorBack") { ColorA col= ColorA(0, 0, 0, 1); for(uint32_t i= 0; i<min(msg.getNumArgs(), 4); i++) { col[i]= msg.getArgAsFloat(i, true); } mColorBack.set(col.r, col.g, col.b, col.a); } else if(msg.getAddress()=="/scale0") { Vec3f sca= Vec3f(1.0f, 1.0f, 1.0f); for(uint32_t i= 0; i<min(msg.getNumArgs(), 3); i++) { msg.getArgAsFloat(i, true); } mScale0.set(sca.x, sca.y, sca.z); } else if(msg.getAddress()=="/scale1") { Vec3f sca= Vec3f(1.0f, 1.0f, 1.0f); for(uint32_t i= 0; i<min(msg.getNumArgs(), 3); i++) { msg.getArgAsFloat(i, true); } mScale1.set(sca.x, sca.y, sca.z); } else if(msg.getAddress()=="/rotate0") { Vec3f rot= Vec3f::zero(); for(uint32_t i= 0; i<min(msg.getNumArgs(), 3); i++) { rot[i]= msg.getArgAsFloat(i, true); } mRotate0.set(rot.x, rot.y, rot.z); } else if(msg.getAddress()=="/rotate1") { Vec3f rot= Vec3f::zero(); for(uint32_t i= 0; i<min(msg.getNumArgs(), 3); i++) { rot[i]= msg.getArgAsFloat(i, true); } mRotate1.set(rot.x, rot.y, rot.z); } else if(msg.getAddress()=="/translate0") { Vec3f tra= Vec3f::zero(); for(uint32_t i= 0; i<min(msg.getNumArgs(), 3); i++) { tra[i]= msg.getArgAsFloat(i, true); } mTranslate0.set(tra.x, tra.y, tra.z); } else if(msg.getAddress()=="/translate1") { Vec3f tra= Vec3f::zero(); for(uint32_t i= 0; i<min(msg.getNumArgs(), 3); i++) { tra[i]= msg.getArgAsFloat(i, true); } mTranslate1.set(tra.x, tra.y, tra.z); } else if(msg.getAddress()=="/color0") { ColorA col= ColorA(0, 0, 0, 1); for(uint32_t i= 0; i<min(msg.getNumArgs(), 4); i++) { col[i]= msg.getArgAsFloat(i, true); } mColor0.set(col.r, col.g, col.b, col.a); } else if(msg.getAddress()=="/color1") { ColorA col= ColorA(0, 0, 0, 1); for(uint32_t i= 0; i<min(msg.getNumArgs(), 4); i++) { col[i]= msg.getArgAsFloat(i, true); } mColor1.set(col.r, col.g, col.b, col.a); } } //--audio input mPcmBuffer= mInput.getPcmBuffer(); if(mPcmBuffer) { mBufferSize= mPcmBuffer->getSampleCount(); //std::cout<<"mBufferSize: "<<mBufferSize<<std::endl; mBufferLeft= mPcmBuffer->getChannelData(audio::CHANNEL_FRONT_LEFT); //mBufferRight= mPcmBuffer->getChannelData(audio::CHANNEL_FRONT_RIGHT); mFftLeft= audio::calculateFft(mPcmBuffer->getChannelData(audio::CHANNEL_FRONT_LEFT), mBufferSize/2); //mFftRight= audio::calculateFft(mPcmBuffer->getChannelData(audio::CHANNEL_FRONT_LEFT), mBufferSize/2); mAmplitude= 0.0f; for(uint32_t i= 0; i<mBufferSize; i++) { mAmplitude += abs(mBufferLeft->mData[i]); } mAmplitude /= float(mBufferSize); //average amplitude Surface32f mSurfaceSnd(mBufferSize, 1, true); Surface32f::Iter sndIter(mSurfaceSnd.getIter()); uint32_t i= 0; while(sndIter.line()) { while(sndIter.pixel()) { sndIter.r()= mBufferLeft->mData[i]; i++; } } mTextureSnd= gl::Texture(mSurfaceSnd); Surface32f mSurfaceFft(mBufferSize/2, 1, true); Surface32f::Iter fftIter(mSurfaceFft.getIter()); uint32_t j= 0; float *fftBuffer= mFftLeft.get(); while(fftIter.line()) { while(fftIter.pixel()) { fftIter.r()= fftBuffer[j]; j++; } } mTextureFft= gl::Texture(mSurfaceFft); } //--shaders if(mShader!=NULL) { if((fs::last_write_time(mPathFrag)>mTimeFrag) || (fs::last_write_time(mPathVert)>mTimeVert)) { loadShader(); //hot-loading shader } } mFps= getAverageFps(); }
void EpicMonsterApp::update() { static int lastNodeIndex = -1; if ( mNodeIndex != lastNodeIndex ) { setupParams(); lastNodeIndex = mNodeIndex; } if ( !mNoBones ) { mAssimpLoader.setNodeOrientation( mNodeNames[ mNodeIndex ], mNodeOrientations[ mNodeIndex ] ); mAssimpLoader.setNodePosition( mNodeNames[ mNodeIndex ], mNodePositions[ mNodeIndex ] ); } mAssimpLoader.update(); mFps = getAverageFps(); computeAttractorPosition(); if (mStep) { gl::setMatricesWindow( mPPFbo.getSize(), false ); // false to prevent vertical flipping gl::setViewport( mPPFbo.getBounds() ); mPPFbo.updateBind(); mParticlesShader.bind(); mParticlesShader.uniform( "positions", 0 ); mParticlesShader.uniform( "velocities", 1 ); mParticlesShader.uniform( "attractorPos", mAttractor); mParticlesShader.uniform( "fallDirection", mFallDirection); gl::drawSolidRect(mPPFbo.getBounds()); mParticlesShader.unbind(); mPPFbo.updateUnbind(); mPPFbo.swap(); } //else { flockToBody(); //} while (listener.hasWaitingMessages()) { osc::Message message; listener.getNextMessage(&message); console() << "New message received" << std::endl; console() << "Address: " << message.getAddress() << std::endl; if(boneMap.find(message.getAddress()) != boneMap.end()) { string bone = boneMap.at(message.getAddress()); Vec3f pos = Vec3f(message.getArgAsFloat(0), message.getArgAsFloat(1), message.getArgAsFloat(2)); Quatf ori = Quatf(message.getArgAsFloat(3), message.getArgAsFloat(4), message.getArgAsFloat(5), message.getArgAsFloat(6)); mAssimpLoader.setNodePosition(bone, pos*0.2); mAssimpLoader.setNodeOrientation(bone, ori); } } }