38 m_controller = p_ctrlr;
186 switch (p_blockSize) {
188 return m_pool64.
Get();
191 return m_pool128.
Get();
194 assert(
"Invalid block size for memory pool" ==
NULL);
208 switch (p_blockSize) {
218 assert(
"Invalid block size for memory pool" ==
NULL);
224 list<MxStreamController*> m_controllers;
[AI] Base virtual class for all Mindscape engine (Mx) objects.
virtual MxBool IsA(const char *p_name) const
[AI] Checks whether this object's class type or parents match the given name.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
[AI] Base class for any object deserialized from an SI (script/data) file in the LEGO Island engine.
[AI] Fixed-size memory pool template for fast allocation and deallocation.
void Release(MxU8 *p_buf)
[AI] Releases the block at the given pointer back into the pool.
MxU8 * Get()
[AI] Gets a pointer to the next available block in the memory pool.
[AI] Parameter object representing a single notification or event, carrying an identifier and sender ...
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
Streamer notification param for streaming events in MxStreamer [AI].
MxStreamController * GetController()
[AI] Retrieve the stream controller associated with this notification.
MxStreamerNotification(NotificationId p_type, MxCore *p_sender, MxStreamController *p_ctrlr)
[AI] Create a streamer notification with a controller reference.
MxNotificationParam * Clone() const override
[AI] Clone this notification param.
Streams and manages media data, handles memory pools for RAM/disk streaming [AI].
MxStreamController * Open(const char *p_name, MxU16 p_openMode)
Open a stream, returning a controller for further access [AI].
void ReleaseMemoryBlock(MxU8 *p_block, MxU32 p_blockSize)
Return a previously-acquired memory block to the pool.
MxResult DeleteObject(MxDSAction *p_dsAction)
Ask all controllers to remove a DS Action's object.
MxBool FUN_100b9b30(MxDSObject &p_dsObject)
Check stream state for a dsObject's Atom ID.
MxResult AddStreamControllerToOpenList(MxStreamController *p_stream)
Add a controller to the open list, asserting if already present.
MxU8 * GetMemoryBlock(MxU32 p_blockSize)
Allocate a temporary memory block from the streamer pool.
MxStreamController * GetOpenStream(const char *p_name)
Search for and return an open stream controller with a matching name.
~MxStreamer() override
Destructor—Stops all stream controllers and unregisters from notification manager.
MxLong Notify(MxParam &p_param) override
Handle notifications, including deferred controller deletion [AI].
MxLong Close(const char *p_name)
Close a named stream and remove its controller from the open list [AI].
MxResult FUN_100b99b0(MxDSAction *p_action)
Internal: Calls stream controller's specific command for action execution.
const char * ClassName() const override
Return the class name string at runtime.
MxBool IsA(const char *p_name) const override
Query for run-time type information by class name.
MxStreamer()
Construct a streamer and register it for notifications.
OpenMode
Available streaming resource loading modes.
@ e_diskStream
Load streaming resource from disk [AI].
@ e_RAMStream
Load streaming resource fully to RAM [AI].
virtual MxResult Create()
Allocate memory pools needed for streaming operation.
void FUN_100b98f0(MxDSAction *p_action)
Internal: Delegate stream operation on MxDSAction to a DiskStreamController if present.
#define NULL
[AI] Null pointer value (C/C++ semantics).
NotificationId
Several of those should be defined in LegoOmni.
MxMemoryPool< 128, 2 > MxMemoryPool128
Memory pool for 128-byte blocks, 2 blocks total. [AI].
MxMemoryPool< 64, 22 > MxMemoryPool64
Memory pool for 64-byte blocks, 22 blocks total. [AI].
[AI] STL compatibility layer header to provide consistent STL (Standard Template Library) types and a...