void SamplePlayerNodeTestApp::triggerStartStop( bool start ) { float delaySeconds = mTriggerDelaySlider.mValueScaled; if( delaySeconds <= 0.001f ) { if( start ) mSamplePlayerNode->start(); else mSamplePlayerNode->stop(); } else { CI_LOG_V( "scheduling " << ( start ? "start" : "stop" ) << " with delay: " << delaySeconds << "\n\tprocessed frames: " << audio::master()->getNumProcessedFrames() << ", seconds: " << audio::master()->getNumProcessedSeconds() ); double when = audio::master()->getNumProcessedSeconds() + delaySeconds; if( start ) mSamplePlayerNode->start( when ); else mSamplePlayerNode->stop( when ); } }
void SamplePlayerNodeTestApp::processTap( Vec2i pos ) { if( mEnableSamplePlayerNodeButton.hitTest( pos ) ) mSamplePlayerNode->setEnabled( ! mSamplePlayerNode->isEnabled() ); else if( mStartPlaybackButton.hitTest( pos ) ) mSamplePlayerNode->start(); else if( mLoopButton.hitTest( pos ) ) mSamplePlayerNode->setLoopEnabled( ! mSamplePlayerNode->isLoopEnabled() ); else if( mRecordButton.hitTest( pos ) ) { if( mRecordButton.mEnabled ) mRecorder->start(); else mRecorder->disable(); } else if( mWriteButton.hitTest( pos ) ) writeRecordedToFile(); else if( mAutoResizeButton.hitTest( pos ) ) ; else if( mAsyncButton.hitTest( pos ) ) ; else if( pos.y > getWindowCenter().y ) seek( pos.x ); size_t currentIndex = mTestSelector.mCurrentSectionIndex; if( mTestSelector.hitTest( pos ) && currentIndex != mTestSelector.mCurrentSectionIndex ) { string currentTest = mTestSelector.currentSection(); CI_LOG_V( "selected: " << currentTest ); if( currentTest == "BufferPlayerNode" ) setupBufferPlayerNode(); if( currentTest == "FilePlayerNode" ) setupFilePlayerNode(); if( currentTest == "recorder" ) setupBufferRecorderNode(); } }