Isle
|
Derived stream controller that manages media streaming from memory buffers as opposed to disk. More...
#include <mxramstreamcontroller.h>
Public Member Functions | |
MxRAMStreamController () | |
const char * | ClassName () const override |
Returns the class name for use in RTTI and type queries. More... | |
MxBool | IsA (const char *p_name) const override |
Checks if this object matches or inherits the named class. More... | |
MxResult | Open (const char *p_filename) override |
Opens and prepares a resource from a memory buffer for streaming. More... | |
MxResult | VTable0x20 (MxDSAction *p_action) override |
Custom stream controller dispatch, likely for initial action activation or stream setup (unknown semantics). More... | |
MxResult | VTable0x24 (MxDSAction *p_action) override |
Custom stream controller dispatch, likely for ending, cleanup, or secondary phase action (unknown semantics). More... | |
![]() | |
MxStreamController () | |
[AI] Constructor. More... | |
~MxStreamController () override | |
[AI] Destructor. More... | |
const char * | ClassName () const override |
[AI] Returns the class name used for runtime type checks. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Performs runtime type checking, matching the given name with this or any parent class. More... | |
virtual MxResult | Open (const char *p_filename) |
[AI] Opens a data stream with the specified resource filename. More... | |
virtual MxResult | VTable0x18 (undefined4, undefined4) |
[AI] Unknown virtual function placeholder. More... | |
virtual MxResult | VTable0x1c (undefined4, undefined4) |
[AI] Unknown virtual function placeholder. More... | |
virtual MxResult | VTable0x20 (MxDSAction *p_action) |
[AI] Streams data for the provided action by determining data offset and reading required chunk. More... | |
virtual MxResult | VTable0x24 (MxDSAction *p_action) |
[AI] Matches and processes an action in the "unk0x54" (pending) list and triggers sending to subscribers. More... | |
virtual MxDSStreamingAction * | VTable0x28 () |
[AI] Returns a pointer to the current/active streaming action object. More... | |
virtual MxResult | VTable0x2c (MxDSAction *p_action, MxU32 p_bufferval) |
[AI] Handles allocation and setup of a new streaming action and associated chunk for the action, with prefetch based on buffer value. More... | |
virtual MxResult | VTable0x30 (MxDSAction *p_action) |
[AI] Removes a completed action from in-progress ("unk0x3c") list and deletes its data block. More... | |
void | AddSubscriber (MxDSSubscriber *p_subscriber) |
[AI] Adds a subscriber to the list who will receive streaming action data. More... | |
void | RemoveSubscriber (MxDSSubscriber *p_subscriber) |
[AI] Removes a previously registered subscriber from the stream notification list. More... | |
MxResult | FUN_100c1800 (MxDSAction *p_action, MxU32 p_val) |
[AI] Helper function to add a next action data start object for tracking offsets for streaming actions. More... | |
MxResult | FUN_100c1a00 (MxDSAction *p_action, MxU32 p_offset) |
[AI] Allocates and inserts a streaming action chunk at a given buffer offset for the supplied action. More... | |
MxPresenter * | FUN_100c1e70 (MxDSAction &p_action) |
[AI] Returns the presenter associated with a given in-progress streaming action. More... | |
MxResult | FUN_100c1f00 (MxDSAction *p_action) |
[AI] Sends a streaming chunk to all current subscribers for the specified action, handling recursive send for multi-actions. More... | |
MxBool | IsStoped (MxDSObject *p_obj) |
[AI] Checks if the streaming operation for a given object/action has fully stopped and no longer has active subscribers. More... | |
MxResult | InsertActionToList54 (MxDSAction *p_action) |
[AI] Inserts a clone of the provided action into the pending ("unk0x54") list. More... | |
MxNextActionDataStart * | FindNextActionDataStartFromStreamingAction (MxDSStreamingAction *p_action) |
[AI] Finds the corresponding next action data start (offset info) for a streaming action. More... | |
MxAtomId & | GetAtom () |
[AI] Retrieves the atom ID (unique logical identifier) for this stream controller. More... | |
MxStreamProvider * | GetProvider () |
[AI] Retrieves the current stream provider abstraction used to access file/memory resources. More... | |
MxDSObjectList & | GetUnk0x3c () |
[AI] Returns the list of actions currently being streamed ("in progress" list). More... | |
MxDSObjectList & | GetUnk0x54 () |
[AI] Returns the list of actions pending to be streamed ("pending" list). More... | |
MxDSSubscriberList & | GetSubscriberList () |
[AI] Returns the list of current stream subscribers. 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 | |
![]() | |
MxCriticalSection | m_criticalSection |
[AI] Protects streaming controller state for thread-safety. More... | |
MxAtomId | m_atom |
[AI] Unique identifier for this stream, derived from source/resource name. More... | |
MxStreamProvider * | m_provider |
[AI] Stream provider abstraction, handling resource IO (RAM/disk). More... | |
undefined4 * | m_unk0x2c |
[AI] Unknown data, likely used for streaming internals or as a metadata pointer. More... | |
MxDSSubscriberList | m_subscribers |
[AI] List of current subscribers (listening entities for streamed data). More... | |
MxDSObjectList | m_unk0x3c |
[AI] List of actions currently being processed/streamed ("in progress" actions). More... | |
MxNextActionDataStartList | m_nextActionList |
[AI] List mapping from streamed object/action to starting offset (used for internal tracking). More... | |
MxDSObjectList | m_unk0x54 |
[AI] List of actions queued and ready to be streamed ("pending" actions). More... | |
MxDSAction * | m_action0x60 |
[AI] Current action pointer used during processing, moved from pending to active as actions are processed. More... | |
Derived stream controller that manages media streaming from memory buffers as opposed to disk.
[AI]
[AI] MxRAMStreamController is responsible for managing streamed resource access from memory, rather than file-based (disk) access. It is used by the game engine to handle in-memory SI file resources and routed through the generic MxStreamController interface. [AI]
This enables the engine to operate on data that has already been loaded into RAM for more efficient access, supporting streaming, deserialization, and synchronization with the rest of the system. [AI]
Definition at line 20 of file mxramstreamcontroller.h.
|
inline |
Definition at line 22 of file mxramstreamcontroller.h.
|
inlineoverridevirtual |
Returns the class name for use in RTTI and type queries.
[AI]
Reimplemented from MxCore.
Definition at line 28 of file mxramstreamcontroller.h.
|
inlineoverridevirtual |
Checks if this object matches or inherits the named class.
[AI]
p_name | Name of the class to compare. [AI] |
Reimplemented from MxCore.
Definition at line 39 of file mxramstreamcontroller.h.
|
overridevirtual |
Opens and prepares a resource from a memory buffer for streaming.
[AI]
[AI] This function overrides the base implementation and orchestrates the creation of a RAM stream provider, loads the resource data into memory (using MxRAMStreamProvider), and initializes the internal buffer with the file contents. Essential for supporting streaming directly from in-memory SI files. [AI]
p_filename | The resource identifier (typically SI file name, path-like). [AI] |
Reimplemented from MxStreamController.
Definition at line 10 of file mxramstreamcontroller.cpp.
|
overridevirtual |
Custom stream controller dispatch, likely for initial action activation or stream setup (unknown semantics).
[AI]
p_action | The DS Action to operate on. [AI] |
Reimplemented from MxStreamController.
Definition at line 38 of file mxramstreamcontroller.cpp.
|
overridevirtual |
Custom stream controller dispatch, likely for ending, cleanup, or secondary phase action (unknown semantics).
[AI]
p_action | The DS Action to operate on. [AI] |
Reimplemented from MxStreamController.
Definition at line 67 of file mxramstreamcontroller.cpp.