void DeviceTestApp::keyDown( KeyEvent event ) { TextInput *currentSelected = TextInput::getCurrentSelected(); if( ! currentSelected ) return; if( event.getCode() == KeyEvent::KEY_RETURN ) { #if defined( CINDER_COCOA_TOUCH ) hideKeyboard(); #endif try { if( currentSelected == &mSamplerateInput ) { int sr = currentSelected->getValue(); CI_LOG_V( "updating samplerate from: " << mOutputDeviceNode->getSampleRate() << " to: " << sr ); mOutputDeviceNode->getDevice()->updateFormat( audio::Device::Format().sampleRate( sr ) ); } else if( currentSelected == &mFramesPerBlockInput ) { int frames = currentSelected->getValue(); CI_LOG_V( "updating frames per block from: " << mOutputDeviceNode->getFramesPerBlock() << " to: " << frames ); mOutputDeviceNode->getDevice()->updateFormat( audio::Device::Format().framesPerBlock( frames ) ); } else if( currentSelected == &mNumInChannelsInput ) { int numChannels = currentSelected->getValue(); CI_LOG_V( "updating nnm input channels from: " << mInputDeviceNode->getNumChannels() << " to: " << numChannels ); setInputDevice( mInputDeviceNode->getDevice(), numChannels ); } else if( currentSelected == &mNumOutChannelsInput ) { int numChannels = currentSelected->getValue(); CI_LOG_V( "updating nnm output channels from: " << mOutputDeviceNode->getNumChannels() << " to: " << numChannels ); setOutputDevice( mOutputDeviceNode->getDevice(), numChannels ); } else if( currentSelected == &mSendChannelInput ) { if( mTestSelector.currentSection() == "send" || mTestSelector.currentSection() == "send stereo" ) setupTest( mTestSelector.currentSection() ); } else CI_LOG_E( "unhandled return for string: " << currentSelected->mInputString ); } catch( audio::AudioDeviceExc &exc ) { CI_LOG_E( "AudioDeviceExc caught, what: " << exc.what() ); auto ctx = audio::master(); mSamplerateInput.setValue( ctx->getSampleRate() ); mFramesPerBlockInput.setValue( ctx->getFramesPerBlock() ); return; } } else { if( event.getCode() == KeyEvent::KEY_BACKSPACE ) currentSelected->processBackspace(); else { currentSelected->processChar( event.getChar() ); } } }
void DeviceTestApp::setupSendStereo() { auto ctx = audio::master(); ctx->disconnectAllNodes(); auto router = ctx->makeNode( new audio::ChannelRouterNode( audio::Node::Format().channels( mOutputDeviceNode->getNumChannels() ) ) ); auto upmix = ctx->makeNode( new audio::Node( audio::Node::Format().channels( 2 ) ) ); int channelIndex = mSendChannelInput.getValue(); CI_LOG_V( "routing input to channel: " << channelIndex ); mGen >> upmix >> mGain >> router->route( 0, channelIndex ); router >> mMonitor >> ctx->getOutput(); mGen->enable(); }