/****************************************************************************** * * Update volume and separation (panning) of 2D source * *****************************************************************************/ EXPORT void HWRAPI (Update2DSoundParms) (INT32 chan, INT32 vol, INT32 sep) { FSOUND_SAMPLE *fmsample; if (chan < 0) return; fmsample = FSOUND_GetCurrentSample(chan); if (fmsample) { if (!FSOUND_Sample_GetMode(fmsample) & FSOUND_2D) { DBG_Printf("FMOD(Update2DSoundParms,Main): 2D Vol/Pan on 3D channel %i?\n",chan); //return; } } else return; if (!FSOUND_SetPaused(chan, true)) DBG_Printf("FMOD(Update2DSoundParms, FSOUND_SetPaused, Pause, channel %i): %s\n", chan,FMOD_ErrorString(FSOUND_GetError())); if (!FSOUND_SetVolume(chan,vol)) DBG_Printf("FMOD(Update2DSoundParms, , channel %i to volume %i): %s\n", chan,vol,FMOD_ErrorString(FSOUND_GetError())); if (!FSOUND_SetPan(chan, sep == NORMAL_SEP ? FSOUND_STEREOPAN : sep)) DBG_Printf("FMOD(Update2DSoundParms, FSOUND_SetPan, channel %i to sep %i): %s\n", chan,sep,FMOD_ErrorString(FSOUND_GetError())); if (!FSOUND_SetPaused(chan, false)) DBG_Printf("FMOD(Update2DSoundParms, FSOUND_SetPaused, Resume, channel %i): %s\n", chan,FMOD_ErrorString(FSOUND_GetError())); }
void LLAudioBufferFMOD::set3DMode(bool use3d) { U16 current_mode = FSOUND_Sample_GetMode(mSamplep); if (use3d) { if (!FSOUND_Sample_SetMode(mSamplep, (current_mode & (~FSOUND_2D)))) { llwarns << "LLAudioBufferFMOD::set3DMode error: " << FMOD_ErrorString(FSOUND_GetError()) << llendl; } } else { if (!FSOUND_Sample_SetMode(mSamplep, current_mode | FSOUND_2D)) { llwarns << "LLAudioBufferFMOD::set3DMode error: " << FMOD_ErrorString(FSOUND_GetError()) << llendl; } } }
EXPORT INT32 HWRAPI (StartSource) (INT32 chan) { FSOUND_SAMPLE *fmsample; if (chan < 0) return -1; fmsample = FSOUND_GetCurrentSample(chan); if (!fmsample) return -1; #ifdef MORESTUFF if (FSOUND_Sample_GetMode(fmsample) & FSOUND_2D) { DBG_Printf("FMOD(StartSource,Main): Starting 2D channel %i?\n",chan); //return -1; } else { DBG_Printf("FMOD(StartSource,Main): Starting 3D Channel %i?\n",chan); //return -1; } #endif if (FSOUND_GetPaused(relcheckup(chan))) { if (!FSOUND_SetPaused(relcheckup(chan), false)) DBG_Printf("FMOD(StartSource,FSOUND_SetPaused, channel %i): %s\n", chan,FMOD_ErrorString(FSOUND_GetError())); else if (relstack(chan) != -1) relarray[relstack(chan)].pos.active = false; } else DBG_Printf("FMOD(StartSource,FSOUND_GetPaused): Channel %i is playing already",chan); return chan; }