void Soloud::oscillateRelativePlaySpeed(handle aVoiceHandle, float aFrom, float aTo, time aTime) { if (aTime <= 0 || aTo == aFrom) { setRelativePlaySpeed(aVoiceHandle, aTo); return; } if (mLockMutexFunc) mLockMutexFunc(mMutex); int ch = getVoiceFromHandle(aVoiceHandle); if (ch == -1) { if (mUnlockMutexFunc) mUnlockMutexFunc(mMutex); return; } mVoice[ch]->mRelativePlaySpeedFader.setLFO(aFrom, aTo, aTime, mVoice[ch]->mStreamTime); if (mUnlockMutexFunc) mUnlockMutexFunc(mMutex); }
void Soloud::fadeRelativePlaySpeed(int aVoiceHandle, float aTo, float aTime) { float from = getRelativePlaySpeed(aVoiceHandle); if (aTime <= 0 || aTo == from) { setRelativePlaySpeed(aVoiceHandle, aTo); return; } if (mLockMutexFunc) mLockMutexFunc(mMutex); int ch = getVoiceFromHandle(aVoiceHandle); if (ch == -1) { if (mUnlockMutexFunc) mUnlockMutexFunc(mMutex); return; } mVoice[ch]->mRelativePlaySpeedFader.set(from, aTo, aTime, mVoice[ch]->mStreamTime); if (mUnlockMutexFunc) mUnlockMutexFunc(mMutex); }