Isle
Loading...
Searching...
No Matches
MxRAMStreamController Class Reference

Derived stream controller that manages media streaming from memory buffers as opposed to disk. More...

#include <mxramstreamcontroller.h>

Inheritance diagram for MxRAMStreamController:
Collaboration diagram for MxRAMStreamController:

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...
 
- Public Member Functions inherited from MxStreamController
 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 MxDSStreamingActionVTable0x28 ()
 [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...
 
MxPresenterFUN_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...
 
MxNextActionDataStartFindNextActionDataStartFromStreamingAction (MxDSStreamingAction *p_action)
 [AI] Finds the corresponding next action data start (offset info) for a streaming action. More...
 
MxAtomIdGetAtom ()
 [AI] Retrieves the atom ID (unique logical identifier) for this stream controller. More...
 
MxStreamProviderGetProvider ()
 [AI] Retrieves the current stream provider abstraction used to access file/memory resources. More...
 
MxDSObjectListGetUnk0x3c ()
 [AI] Returns the list of actions currently being streamed ("in progress" list). More...
 
MxDSObjectListGetUnk0x54 ()
 [AI] Returns the list of actions pending to be streamed ("pending" list). More...
 
MxDSSubscriberListGetSubscriberList ()
 [AI] Returns the list of current stream subscribers. More...
 
- Public Member Functions inherited from MxCore
 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

- Protected Attributes inherited from MxStreamController
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...
 
MxStreamProviderm_provider
 [AI] Stream provider abstraction, handling resource IO (RAM/disk). More...
 
undefined4m_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...
 
MxDSActionm_action0x60
 [AI] Current action pointer used during processing, moved from pending to active as actions are processed. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ MxRAMStreamController()

MxRAMStreamController::MxRAMStreamController ( )
inline

Definition at line 22 of file mxramstreamcontroller.h.

Member Function Documentation

◆ ClassName()

const char * MxRAMStreamController::ClassName ( ) const
inlineoverridevirtual

Returns the class name for use in RTTI and type queries.

[AI]

Returns
Pointer to the class name string. [AI]

Reimplemented from MxCore.

Definition at line 28 of file mxramstreamcontroller.h.

◆ IsA()

MxBool MxRAMStreamController::IsA ( const char *  p_name) const
inlineoverridevirtual

Checks if this object matches or inherits the named class.

[AI]

Parameters
p_nameName of the class to compare. [AI]
Returns
TRUE if the object is of the provided class name, or a parent; otherwise FALSE. [AI]

Reimplemented from MxCore.

Definition at line 39 of file mxramstreamcontroller.h.

◆ Open()

MxResult MxRAMStreamController::Open ( const char *  p_filename)
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]

Parameters
p_filenameThe resource identifier (typically SI file name, path-like). [AI]
Returns
SUCCESS on success, FAILURE otherwise. [AI]

Reimplemented from MxStreamController.

Definition at line 10 of file mxramstreamcontroller.cpp.

◆ VTable0x20()

MxResult MxRAMStreamController::VTable0x20 ( MxDSAction p_action)
overridevirtual

Custom stream controller dispatch, likely for initial action activation or stream setup (unknown semantics).

[AI]

Parameters
p_actionThe DS Action to operate on. [AI]
Returns
Returns SUCCESS on successful deserialization; FAILURE otherwise. [AI]

Reimplemented from MxStreamController.

Definition at line 38 of file mxramstreamcontroller.cpp.

◆ VTable0x24()

MxResult MxRAMStreamController::VTable0x24 ( MxDSAction p_action)
overridevirtual

Custom stream controller dispatch, likely for ending, cleanup, or secondary phase action (unknown semantics).

[AI]

Parameters
p_actionThe DS Action to operate on. [AI]
Returns
Always returns SUCCESS. [AI]

Reimplemented from MxStreamController.

Definition at line 67 of file mxramstreamcontroller.cpp.


The documentation for this class was generated from the following files: