Isle
|
[AI] Manages 3D sound effects and music playback for LEGO Island, integrating with DirectSound and providing caching. More...
#include <legosoundmanager.h>
Public Member Functions | |
LegoSoundManager () | |
[AI] Constructs the LegoSoundManager and initializes its internal members. More... | |
~LegoSoundManager () override | |
[AI] Destructor. Cleans up resources, optionally as part of destruction. More... | |
MxResult | Tickle () override |
[AI] Performs periodic processing, such as updating the cache sound manager. More... | |
void | Destroy () override |
[AI] Cleans up and releases all resources used by the sound manager and its cache. More... | |
MxResult | Create (MxU32 p_frequencyMS, MxBool p_createThread) override |
[AI] Initializes the sound manager with a desired tick frequency and threading option. More... | |
void | UpdateListener (const float *p_position, const float *p_direction, const float *p_up, const float *p_velocity) |
[AI] Updates the 3D sound listener properties in DirectSound, reflecting player/world changes. More... | |
LegoCacheSoundManager * | GetCacheSoundManager () |
[AI] Returns the cache sound manager used to cache and reuse sound effects. More... | |
![]() | |
MxSoundManager () | |
[AI] Constructs a new MxSoundManager instance. More... | |
~MxSoundManager () override | |
[AI] Destructor for MxSoundManager. More... | |
void | Destroy () override |
[AI] Releases sound resources and unregisters from tickle system. More... | |
void | SetVolume (MxS32 p_volume) override |
[AI] Sets the global audio output volume for all managed sound presenters. More... | |
virtual MxResult | Create (MxU32 p_frequencyMS, MxBool p_createThread) |
[AI] Initializes and sets up the DirectSound environment. More... | |
virtual void | Pause () |
[AI] Pauses all currently playing wave presenters. More... | |
virtual void | Resume () |
[AI] Resumes all previously paused wave presenters. More... | |
LPDIRECTSOUND | GetDirectSound () |
[AI] Gets pointer to internal DirectSound interface. More... | |
MxS32 | GetAttenuation (MxU32 p_volume) |
[AI] Maps a percentage volume (1-100) to a DirectSound-specific attenuation value. More... | |
MxPresenter * | FUN_100aebd0 (const MxAtomId &p_atomId, MxU32 p_objectId) |
[AI] Finds a presenter matching a specific atom ID and object ID. More... | |
![]() | |
MxAudioManager () | |
[AI] Constructs the audio manager and initializes default volume. More... | |
~MxAudioManager () override | |
[AI] Destructs the audio manager and handles cleanup of resources. More... | |
MxResult | Create () override |
[AI] Initializes audio subsystem resources and registers an instance for global audio management. More... | |
void | Destroy () override |
[AI] Tears down the audio subsystem instance and unregisters it from global management. More... | |
virtual MxS32 | GetVolume () |
[AI] Gets the current global audio volume. More... | |
virtual void | SetVolume (MxS32 p_volume) |
[AI] Sets the current global audio volume. More... | |
![]() | |
MxMediaManager () | |
[AI] Constructor. More... | |
~MxMediaManager () override | |
[AI] Destructor. More... | |
MxResult | Tickle () override |
[AI] Called by the tickle manager to step through and update all presenters, and process their output data. More... | |
virtual MxResult | Create () |
[AI] Allocates and initializes the internal presenter list for this manager, ensuring thread safety. More... | |
virtual void | Destroy () |
[AI] Destroys all registered presenters and resets the internal state, ensuring safe resource disposal. More... | |
virtual void | RegisterPresenter (MxPresenter &p_presenter) |
[AI] Register a new presenter for tickle management and playback coordination. More... | |
virtual void | UnregisterPresenter (MxPresenter &p_presenter) |
[AI] Remove a presenter from tickle and managed output lists. More... | |
virtual void | StopPresenters () |
[AI] Stops/ends the action on all registered presenters, typically halting all playback and output. More... | |
MxResult | Init () |
[AI] Initializes all internal members to their default values. More... | |
![]() | |
MxCore () | |
[AI] Constructs a new MxCore object and assigns it a unique id. More... | |
virtual | ~MxCore () |
[AI] Virtual destructor. Required for correct polymorphic cleanup in derived classes. More... | |
virtual MxLong | Notify (MxParam &p_param) |
[AI] Virtual callback notification mechanism. More... | |
virtual MxResult | Tickle () |
[AI] Called by tickle managers to allow the object to update itself. More... | |
virtual const char * | ClassName () const |
[AI] Returns the runtime class name of this object. More... | |
virtual MxBool | IsA (const char *p_name) const |
[AI] Checks whether this object's class type or parents match the given name. More... | |
MxU32 | GetId () |
[AI] Gets the unique (per-process) id assigned to this object instance. More... | |
Additional Inherited Members | |
![]() | |
void | Init () |
[AI] Internal initialization routine for member variables and DirectSound pointers. More... | |
void | Destroy (MxBool p_fromDestructor) |
[AI] Internal destroy logic for use both in destructor and standard resource reset. More... | |
![]() | |
void | Init () |
[AI] Initializes audio manager state, setting default volume and other relevant fields. More... | |
![]() | |
LPDIRECTSOUND | m_directSound |
[AI] Pointer to main DirectSound interface. Needed for all DirectSound operations. More... | |
LPDIRECTSOUNDBUFFER | m_dsBuffer |
[AI] Primary DirectSound buffer interface for setting output format/volume. More... | |
undefined | m_unk0x38 [4] |
[AI] Unknown, reserved/unused memory or opaque data per binary compatibility. [AI_SUGGESTED_NAME: reserved] [AI] More... | |
![]() | |
MxS32 | m_volume |
[AI] Holds the current global audio volume for the game. More... | |
![]() | |
MxPresenterList * | m_presenters |
[AI] Pointer to list of currently registered (active) presenters. More... | |
MxThread * | m_thread |
[AI] Optional pointer to a worker thread used for media dispatch/IO (if multi-threaded operation is used, otherwise NULL). More... | |
MxCriticalSection | m_criticalSection |
[AI] Critical section object used for guarding access to the presenter list and internal members for thread safety. More... | |
[AI] Manages 3D sound effects and music playback for LEGO Island, integrating with DirectSound and providing caching.
[AI] This class extends MxSoundManager to add LEGO-specific sound management, including 3D audio listener control and caching of sound resources through LegoCacheSoundManager. It is responsible for initializing DirectSound interfaces, updating the listener's position/orientation for 3D sound, and coordinating sound resource caches. Size: 0x44 bytes. VTABLE: LEGO1 0x100d6b10 / BETA10 0x101bec30
Definition at line 14 of file legosoundmanager.h.
LegoSoundManager::LegoSoundManager | ( | ) |
[AI] Constructs the LegoSoundManager and initializes its internal members.
Definition at line 12 of file legosoundmanager.cpp.
|
override |
[AI] Destructor. Cleans up resources, optionally as part of destruction.
Definition at line 18 of file legosoundmanager.cpp.
[AI] Initializes the sound manager with a desired tick frequency and threading option.
p_frequencyMS | [AI] Desired tick/update interval, in milliseconds. |
p_createThread | [AI] If TRUE, creates a separate audio thread for updates. |
Reimplemented from MxSoundManager.
Definition at line 43 of file legosoundmanager.cpp.
|
overridevirtual |
[AI] Cleans up and releases all resources used by the sound manager and its cache.
Reimplemented from MxMediaManager.
Definition at line 91 of file legosoundmanager.cpp.
|
inline |
[AI] Returns the cache sound manager used to cache and reuse sound effects.
Definition at line 45 of file legosoundmanager.h.
|
overridevirtual |
[AI] Performs periodic processing, such as updating the cache sound manager.
Called by the main tick loop.
Reimplemented from MxCore.
Definition at line 98 of file legosoundmanager.cpp.
void LegoSoundManager::UpdateListener | ( | const float * | p_position, |
const float * | p_direction, | ||
const float * | p_up, | ||
const float * | p_velocity | ||
) |
[AI] Updates the 3D sound listener properties in DirectSound, reflecting player/world changes.
p_position | [AI] 3D position vector of the listener (array of 3 floats). Can be nullptr. |
p_direction | [AI] Forward direction vector of the listener (array of 3 floats). Can be nullptr. |
p_up | [AI] Up vector of the listener (array of 3 floats). Can be nullptr. |
p_velocity | [AI] Velocity vector of the listener (array of 3 floats). Can be nullptr. |
[AI] If any vector is not nullptr, applies the change and updates the DirectSound listener object.
Definition at line 108 of file legosoundmanager.cpp.