SoundTest() { //soundManager = new SoundManager(); //soundManager->connectToServer("localhost",57120); // More concise method of above two lines soundManager = new SoundManager("localhost",57120); soundManager->showDebugInfo(true); // Get default sound environment env = soundManager->getSoundEnvironment(); while( !soundManager->isSoundServerRunning() ) { soundManager->startSoundServer(); } // Load sound assets //env->setAssetDirectory("menu_sounds"); showMenuSound = env->loadSoundFromFile("showMenuSound","menu_sounds/menu_load.wav"); hideMenuSound = env->loadSoundFromFile("hideMenuSound","menu_sounds/menu_closed.wav"); scrollMenuSound = env->loadSoundFromFile("scrollMenuSound","menu_sounds/menu_scroll.wav"); selectMenuSound = env->loadSoundFromFile("selectMenuSound","menu_sounds/menu_select.wav"); soundLoop = env->loadSoundFromFile("mus","Omega4Relay.wav"); SoundInstance* soundInstance = new SoundInstance(showMenuSound); soundInstance->setReverb( 1.0, 1.0 ); soundInstance->setVolume(1.0); soundInstance->setPosition( Vector3f(0,1,0) ); soundInstance->play(); rewindingSoundInstance = new SoundInstance(showMenuSound); }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Checks the type of event. If a valid event, creates an event packet and returns true. Else return false. virtual bool handleEvent(const Event& evt) { float leftRightAnalog; float upDownAnalog; float zeroTolerence = 0.008f; float xPos; float yPos; float zPos; switch(evt.getServiceType()) { case Service::Wand: leftRightAnalog = evt.getExtraDataFloat(0); upDownAnalog = evt.getExtraDataFloat(1); volume = evt.getExtraDataFloat(4); if( soundLoopInstance != NULL ) { soundLoopInstance->setVolume(volume); } if( evt.getType() == Event::Down ){ if( evt.getFlags() & Event::Button3){ // Cross soundLoopInstance->setEnvironmentSound( true ); soundLoopInstance->setLoop( true ); soundLoopInstance->playStereo(); } if( evt.getFlags() & Event::Button2){ // Circle soundLoopInstance->stop(); } if( evt.getFlags() & Event::Button5){ // L1 soundLoopInstance = new SoundInstance(soundLoop); } if( evt.getFlags() & Event::ButtonRight){ rewindingSoundInstance->setPosition( Vector3f(leftRightAnalog,1,0) ); rewindingSoundInstance->setReverb( upDownAnalog, upDownAnalog ); rewindingSoundInstance->play(); } if( evt.getFlags() & Event::ButtonLeft){ SoundInstance* soundInstance = new SoundInstance(hideMenuSound); soundInstance->setPosition( Vector3f(leftRightAnalog,1,0) ); soundInstance->setReverb( upDownAnalog, upDownAnalog ); soundInstance->play(); } if( evt.getFlags() & Event::ButtonUp){ SoundInstance* soundInstance = new SoundInstance(selectMenuSound); soundInstance->setPosition( Vector3f(leftRightAnalog,1,0) ); soundInstance->setReverb( upDownAnalog, upDownAnalog ); soundInstance->play(); } if( evt.getFlags() & Event::ButtonDown){ SoundInstance* soundInstance = new SoundInstance(scrollMenuSound); soundInstance->setPosition( Vector3f(leftRightAnalog,1,0) ); soundInstance->setReverb( upDownAnalog, upDownAnalog ); soundInstance->play(); } //printf("%d \n", evt.getFlags() ); } if( (leftRightAnalog > zeroTolerence || leftRightAnalog < -zeroTolerence) && (upDownAnalog > zeroTolerence || upDownAnalog < -zeroTolerence) ){ position[0] = leftRightAnalog; position[1] = upDownAnalog; printf("Analog Stick: %f %f\n", position[0], position[1]); } if( volume > 0 ) printf("Analog Trigger (L2): %f\n", volume); return true; break; case Service::Mocap: //if( evt.getSourceId() == 0 ) // soundManager->setListenerPosition( evt.getPosition() ); //env->setListenerPosition( Vector3f(0,0,0) ); //else if( instanceCreated && evt.getSourceId() == 1 ) // soundInstance->setPosition( evt.getPosition() ); //printf("ID: %d Pos: %f %f %f\n", evt.getSourceId(), evt.getPosition(0), evt.getPosition(1), evt.getPosition(2) ); break; } return false; }