Update sfxSound.cpp

This commit is contained in:
irei1as 2018-03-11 17:29:30 +01:00 committed by GitHub
parent 23ded86100
commit 70d417a402

View file

@ -81,6 +81,7 @@ SFXSound::SFXSound( SFXProfile *profile, SFXDescription* desc )
: Parent( profile, desc ),
mVoice( NULL )
{
mSetPositionValue = 0;
}
//-----------------------------------------------------------------------------
@ -411,6 +412,9 @@ void SFXSound::_play()
Platform::outputDebugString( "[SFXSound] virtualizing playback of source '%i'", getId() );
#endif
}
if(getPosition() != mSetPositionValue)
setPosition(mSetPositionValue);
mSetPositionValue = 0; //Non looping sounds need this to reset.
}
//-----------------------------------------------------------------------------
@ -421,6 +425,7 @@ void SFXSound::_stop()
if( mVoice )
mVoice->stop();
mSetPositionValue = 0;
}
//-----------------------------------------------------------------------------
@ -431,6 +436,7 @@ void SFXSound::_pause()
if( mVoice )
mVoice->pause();
mSetPositionValue = getPosition();
}
//-----------------------------------------------------------------------------
@ -511,6 +517,8 @@ void SFXSound::_updatePriority()
U32 SFXSound::getPosition() const
{
if( getLastStatus() == SFXStatusStopped)
return mSetPositionValue;
if( mVoice )
return mVoice->getFormat().getDuration( mVoice->getPosition() );
else
@ -522,6 +530,8 @@ U32 SFXSound::getPosition() const
void SFXSound::setPosition( U32 ms )
{
AssertFatal( ms < getDuration(), "SFXSound::setPosition() - position out of range" );
mSetPositionValue = ms;
if( mVoice )
mVoice->setPosition( mVoice->getFormat().getSampleCount( ms ) );
else