mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-16 09:04:38 +00:00
guiAudiocCtrl fixes
ditch description: not needed. set process ticking off when the gui element is put to sleep for the case of re-use of 3d sounds, set emission to the listener position
This commit is contained in:
parent
cfe76944e7
commit
9b5f137f77
2 changed files with 16 additions and 27 deletions
|
|
@ -43,42 +43,38 @@ GuiAudioCtrl::GuiAudioCtrl()
|
||||||
mTickPeriodMS = 100;
|
mTickPeriodMS = 100;
|
||||||
mLastThink = 0;
|
mLastThink = 0;
|
||||||
mCurrTick = 0;
|
mCurrTick = 0;
|
||||||
mPlayIf = "";
|
|
||||||
mSoundPlaying = NULL;
|
mSoundPlaying = NULL;
|
||||||
|
|
||||||
mUseTrackDescriptionOnly = false;
|
mUseTrackDescriptionOnly = false;
|
||||||
mDescription.mIs3D = false;
|
|
||||||
mDescription.mIsLooping = true;
|
|
||||||
mDescription.mIsStreaming = false;
|
|
||||||
mDescription.mFadeInTime = -1.f;
|
|
||||||
mDescription.mFadeOutTime = -1.f;
|
|
||||||
|
|
||||||
mVolume = 1;
|
mVolume = 1;
|
||||||
mPitch = 1;
|
mPitch = 1;
|
||||||
mFadeInTime = -1;
|
mFadeInTime = -1;
|
||||||
mFadeOutTime = -1;
|
mFadeOutTime = -1;
|
||||||
mSourceGroup = NULL;
|
mSourceGroup = NULL;
|
||||||
setProcessTicks();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GuiAudioCtrl::~GuiAudioCtrl()
|
GuiAudioCtrl::~GuiAudioCtrl()
|
||||||
{
|
{
|
||||||
if (mSoundPlaying)
|
|
||||||
mSoundPlaying->stop();
|
|
||||||
SFX_DELETE(mSoundPlaying);
|
SFX_DELETE(mSoundPlaying);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GuiAudioCtrl::onWake()
|
bool GuiAudioCtrl::onWake()
|
||||||
{
|
{
|
||||||
return Parent::onWake();
|
bool awake = Parent::onWake();
|
||||||
|
setProcessTicks();
|
||||||
|
_update();
|
||||||
|
return awake;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiAudioCtrl::onSleep()
|
void GuiAudioCtrl::onSleep()
|
||||||
{
|
{
|
||||||
if (mSoundPlaying)
|
|
||||||
mSoundPlaying->stop();
|
|
||||||
SFX_DELETE(mSoundPlaying);
|
|
||||||
Parent::onSleep();
|
Parent::onSleep();
|
||||||
|
_update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiAudioCtrl::onRemove()
|
||||||
|
{
|
||||||
|
Parent::onRemove();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiAudioCtrl::processTick()
|
void GuiAudioCtrl::processTick()
|
||||||
|
|
@ -154,22 +150,13 @@ void GuiAudioCtrl::initPersistFields()
|
||||||
|
|
||||||
void GuiAudioCtrl::_update()
|
void GuiAudioCtrl::_update()
|
||||||
{
|
{
|
||||||
if (isSoundValid())
|
|
||||||
{
|
|
||||||
//mLocalProfile = *mSoundAsset->getSfxProfile();
|
|
||||||
mDescription = *mSoundAsset->getSfxDescription();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure all the settings are valid.
|
|
||||||
mDescription.validate();
|
|
||||||
|
|
||||||
bool useTrackDescriptionOnly = (mUseTrackDescriptionOnly && getSoundProfile());
|
bool useTrackDescriptionOnly = (mUseTrackDescriptionOnly && getSoundProfile());
|
||||||
|
|
||||||
if (getSoundProfile())
|
if (getSoundProfile())
|
||||||
{
|
{
|
||||||
if (mSoundPlaying == NULL)
|
if (mSoundPlaying == NULL)
|
||||||
{
|
{
|
||||||
mSoundPlaying = SFX->createSource(getSoundProfile());
|
mSoundPlaying = SFX->createSource(getSoundProfile(), &(SFX->getListener().getTransform()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -193,9 +180,9 @@ void GuiAudioCtrl::_update()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (testCondition() && isActive() && isAwake())
|
if (isAwake())
|
||||||
{
|
{
|
||||||
if (mSoundPlaying && !mSoundPlaying->isPlaying())
|
if (testCondition() && mSoundPlaying && !mSoundPlaying->isPlaying())
|
||||||
{
|
{
|
||||||
mSoundPlaying->play();
|
mSoundPlaying->play();
|
||||||
}
|
}
|
||||||
|
|
@ -205,6 +192,8 @@ void GuiAudioCtrl::_update()
|
||||||
if (mSoundPlaying != NULL)
|
if (mSoundPlaying != NULL)
|
||||||
{
|
{
|
||||||
mSoundPlaying->stop();
|
mSoundPlaying->stop();
|
||||||
|
SFX_DELETE(mSoundPlaying);
|
||||||
|
setProcessTicks(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,6 @@ protected:
|
||||||
bool mUseTrackDescriptionOnly;
|
bool mUseTrackDescriptionOnly;
|
||||||
|
|
||||||
/// The description and variant values used by the local profile.
|
/// The description and variant values used by the local profile.
|
||||||
SFXDescription mDescription;
|
|
||||||
SFXSource* mSourceGroup;
|
SFXSource* mSourceGroup;
|
||||||
F32 mVolume;
|
F32 mVolume;
|
||||||
F32 mPitch;
|
F32 mPitch;
|
||||||
|
|
@ -91,6 +90,7 @@ public:
|
||||||
// GuiControl.
|
// GuiControl.
|
||||||
bool onWake() override;
|
bool onWake() override;
|
||||||
void onSleep() override;
|
void onSleep() override;
|
||||||
|
void onRemove() override;
|
||||||
void setActive(bool value) override {};
|
void setActive(bool value) override {};
|
||||||
bool testCondition();
|
bool testCondition();
|
||||||
static void initPersistFields();
|
static void initPersistFields();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue