From 9b5f137f776b80f566ce24c96945996d8d345a71 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Mon, 5 Aug 2024 17:51:17 -0500 Subject: [PATCH] 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 --- Engine/source/gui/shiny/guiAudioCtrl.cpp | 41 +++++++++--------------- Engine/source/gui/shiny/guiAudioCtrl.h | 2 +- 2 files changed, 16 insertions(+), 27 deletions(-) diff --git a/Engine/source/gui/shiny/guiAudioCtrl.cpp b/Engine/source/gui/shiny/guiAudioCtrl.cpp index 96fe5f097..a077ee24f 100644 --- a/Engine/source/gui/shiny/guiAudioCtrl.cpp +++ b/Engine/source/gui/shiny/guiAudioCtrl.cpp @@ -43,42 +43,38 @@ GuiAudioCtrl::GuiAudioCtrl() mTickPeriodMS = 100; mLastThink = 0; mCurrTick = 0; - mPlayIf = ""; mSoundPlaying = NULL; mUseTrackDescriptionOnly = false; - mDescription.mIs3D = false; - mDescription.mIsLooping = true; - mDescription.mIsStreaming = false; - mDescription.mFadeInTime = -1.f; - mDescription.mFadeOutTime = -1.f; - mVolume = 1; mPitch = 1; mFadeInTime = -1; mFadeOutTime = -1; mSourceGroup = NULL; - setProcessTicks(); } GuiAudioCtrl::~GuiAudioCtrl() { - if (mSoundPlaying) - mSoundPlaying->stop(); SFX_DELETE(mSoundPlaying); } bool GuiAudioCtrl::onWake() { - return Parent::onWake(); + bool awake = Parent::onWake(); + setProcessTicks(); + _update(); + return awake; } void GuiAudioCtrl::onSleep() { - if (mSoundPlaying) - mSoundPlaying->stop(); - SFX_DELETE(mSoundPlaying); Parent::onSleep(); + _update(); +} + +void GuiAudioCtrl::onRemove() +{ + Parent::onRemove(); } void GuiAudioCtrl::processTick() @@ -154,22 +150,13 @@ void GuiAudioCtrl::initPersistFields() void GuiAudioCtrl::_update() { - if (isSoundValid()) - { - //mLocalProfile = *mSoundAsset->getSfxProfile(); - mDescription = *mSoundAsset->getSfxDescription(); - } - - // Make sure all the settings are valid. - mDescription.validate(); - bool useTrackDescriptionOnly = (mUseTrackDescriptionOnly && getSoundProfile()); if (getSoundProfile()) { 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(); } @@ -205,6 +192,8 @@ void GuiAudioCtrl::_update() if (mSoundPlaying != NULL) { mSoundPlaying->stop(); + SFX_DELETE(mSoundPlaying); + setProcessTicks(false); } } } diff --git a/Engine/source/gui/shiny/guiAudioCtrl.h b/Engine/source/gui/shiny/guiAudioCtrl.h index 32a674cf6..dabd32f60 100644 --- a/Engine/source/gui/shiny/guiAudioCtrl.h +++ b/Engine/source/gui/shiny/guiAudioCtrl.h @@ -72,7 +72,6 @@ protected: bool mUseTrackDescriptionOnly; /// The description and variant values used by the local profile. - SFXDescription mDescription; SFXSource* mSourceGroup; F32 mVolume; F32 mPitch; @@ -91,6 +90,7 @@ public: // GuiControl. bool onWake() override; void onSleep() override; + void onRemove() override; void setActive(bool value) override {}; bool testCondition(); static void initPersistFields();