Isle
|
[AI] Represents an action that streams data from a buffer within a DirectScript (DS) media timeline. More...
#include <mxdsstreamingaction.h>
Public Member Functions | |
MxDSStreamingAction (MxDSAction &p_dsAction, MxU32 p_offset) | |
[AI] Constructs a streaming action from a base DS action with a given offset into the media buffer. More... | |
MxDSStreamingAction (MxDSStreamingAction &p_dsStreamingAction) | |
[AI] Copy constructor, creates a new streaming action from an existing streaming action. More... | |
~MxDSStreamingAction () override | |
[AI] Destructor. More... | |
MxDSStreamingAction * | CopyFrom (MxDSStreamingAction &p_dsStreamingAction) |
[AI] Copies fields from another MxDSStreamingAction, deeply cloning the internal action if needed. More... | |
MxBool | HasId (MxU32 p_objectId) override |
[AI] Determines if this action or its internal action correspond to the given object ID. More... | |
void | Init () |
[AI] Initializes default values for members. More... | |
void | SetInternalAction (MxDSAction *p_dsAction) |
[AI] Sets or replaces the internal action held by this streaming action (ownership is transferred). More... | |
void | FUN_100cd2d0 () |
[AI] Updates duration, loop count, and accumulates advanced streaming time for repeated playback. More... | |
MxU32 | GetUnknown94 () |
[AI] Gets the streaming offset or status value at 0x94. More... | |
MxS32 | GetUnknown9c () |
[AI] Retrieves an internal integer—purpose unknown—held at 0x9c. More... | |
MxDSBuffer * | GetUnknowna0 () |
[AI] Returns a pointer to the first streaming buffer (possibly current read buffer). More... | |
MxDSBuffer * | GetUnknowna4 () |
[AI] Returns a pointer to the second streaming buffer (possibly for prefetch or double buffering). More... | |
MxLong | GetUnknowna8 () |
[AI] Accumulated streaming duration, used for repeat or seek calculations. More... | |
MxDSAction * | GetInternalAction () |
[AI] Returns the internal sub-action representing the actual user-level action being streamed. More... | |
MxU32 | GetBufferOffset () |
[AI] Gets the buffer offset where streaming is currently positioned. More... | |
void | SetUnknown94 (MxU32 p_unk0x94) |
[AI] Sets the streaming offset/status at 0x94. More... | |
void | SetUnknown9c (MxS32 p_unk0x9c) |
[AI] Sets the unknown integer at 0x9c. More... | |
void | SetUnknowna0 (MxDSBuffer *p_unk0xa0) |
[AI] Assigns a streaming buffer to this action (ownership rules apply). More... | |
void | SetUnknowna4 (MxDSBuffer *p_unk0xa4) |
[AI] Assigns a secondary streaming buffer to this action. More... | |
void | SetBufferOffset (MxU32 p_bufferOffset) |
[AI] Sets the current buffer read offset. More... | |
void | ClearUnknowna0 () |
[AI] Clears/deallocates (sets to NULL) the current buffer pointer (a0). More... | |
![]() | |
MxDSAction () | |
[AI] Default constructor. More... | |
~MxDSAction () override | |
[AI] Destructor. More... | |
MxDSAction (MxDSAction &p_dsAction) | |
[AI] Copy constructor from another MxDSAction More... | |
void | CopyFrom (MxDSAction &p_dsAction) |
[AI] Copies all properties from another MxDSAction (deep copy, including extra data string) More... | |
MxDSAction & | operator= (MxDSAction &p_dsAction) |
[AI] Assignment operator: deep-copy from a different MxDSAction, including base class data and extra fields. More... | |
const char * | ClassName () const override |
[AI] Returns the class name for RTTI or reflection purposes. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Run-time type check, compares provided name with this or any ancestor type. More... | |
undefined4 | VTable0x14 () override |
[AI] Unknown virtual placeholder, possibly for additional interfaces. More... | |
MxU32 | GetSizeOnDisk () override |
[AI] Serializes the size on disk of this action (all fields + extra data length) More... | |
void | Deserialize (MxU8 *&p_source, MxS16 p_unk0x24) override |
[AI] Deserializes this action's data from a binary buffer. More... | |
virtual MxLong | GetDuration () |
[AI] Gets the duration for which this action is intended to run. More... | |
virtual void | SetDuration (MxLong p_duration) |
[AI] Sets the duration of this action in ticks or time units. More... | |
virtual MxDSAction * | Clone () |
[AI] Clones (deep-copies) this action and returns a new pointer. More... | |
virtual void | MergeFrom (MxDSAction &p_dsAction) |
[AI] Copies/merges properties from another action. More... | |
virtual MxBool | HasId (MxU32 p_objectId) |
[AI] Checks if this action contains/was created for a specific SI object id. More... | |
virtual void | SetUnknown90 (MxLong p_unk0x90) |
[AI] Set unknown value at offset 0x90, used as baseline in GetElapsedTime. More... | |
virtual MxLong | GetUnknown90 () |
[AI] Gets the unknown value at offset 0x90, likely a start timestamp. More... | |
virtual MxLong | GetElapsedTime () |
[AI] Gets elapsed time for this action since the last time field 0x90 was set. More... | |
void | AppendExtra (MxU16 p_extraLength, const char *p_extraData) |
[AI] Concatenates or stores extra data associated with this action, robust for multi-part actions. More... | |
void | GetExtra (MxU16 &p_extraLength, char *&p_extraData) |
[AI] Retrieves the extra data and its length for this action. More... | |
MxU32 | GetFlags () |
[AI] Returns the flag field for this action (bitmask). More... | |
void | SetFlags (MxU32 p_flags) |
[AI] Sets the flag bitmask controlling action logic (enabled, looping, etc). More... | |
char * | GetExtraData () |
[AI] Accessor for extra data (not null-terminated). More... | |
MxU16 | GetExtraLength () const |
[AI] Returns the length (in bytes) of extra data. More... | |
MxLong | GetStartTime () const |
[AI] Gets the nominal start time for the action, as loaded or scheduled. More... | |
MxS32 | GetLoopCount () |
[AI] Returns the loop count for this action. More... | |
void | SetLoopCount (MxS32 p_loopCount) |
[AI] Sets the loop count for this action. More... | |
const Vector3 & | GetLocation () |
[AI] Gets the location vector for this action (world or local space). More... | |
const Vector3 & | GetDirection () |
[AI] Gets the direction vector (typically forward vector) for this action. More... | |
const Vector3 & | GetUp () |
[AI] Gets the up vector for this action (global or local). More... | |
void | SetLocation (const Vector3 &p_location) |
[AI] Sets the location vector for this action. More... | |
void | SetDirection (const Vector3 &p_direction) |
[AI] Sets the direction vector for this action. More... | |
void | SetUp (const Vector3 &p_up) |
[AI] Sets the up vector for this action. More... | |
MxCore * | GetUnknown84 () |
[AI] Returns a pointer to an associated or auxiliary core object. More... | |
void | SetUnknown84 (MxCore *p_unk0x84) |
[AI] Sets the auxiliary core pointer for this action. More... | |
MxCore * | GetOrigin () |
[AI] Returns a pointer to the "origin" core object, which may be used to localize the action. More... | |
void | SetOrigin (MxCore *p_origin) |
[AI] Sets the origin core pointer for this action, if spatially transforming/localizing this action. More... | |
MxBool | IsLooping () const |
[AI] Whether this action is set to loop based on current flags. More... | |
MxBool | IsBit3 () const |
[AI] Tests for the state of the (unknown purpose) bit 3 flag in m_flags. More... | |
![]() | |
MxDSObject () | |
[AI] Default constructor. Initializes to e_object and clears names and pointers. More... | |
~MxDSObject () override | |
[AI] Destructor. Frees allocated objectName/sourceName memory. More... | |
void | CopyFrom (MxDSObject &p_dsObject) |
[AI] Copy data from another MxDSObject, performing deep string copy for names. More... | |
MxDSObject (MxDSObject &p_dsObject) | |
[AI] Copy constructor. More... | |
MxDSObject & | operator= (MxDSObject &p_dsObject) |
[AI] Assignment operator. More... | |
void | SetObjectName (const char *p_objectName) |
[AI] Sets object (internal) unique name; deep copies the string. More... | |
void | SetSourceName (const char *p_sourceName) |
[AI] Sets the source name (usually source SI file); deep copies the string. More... | |
const char * | ClassName () const override |
[AI] Returns the class identifier string for run-time type ID. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Runtime type check; supports derived/parent class lookup by name. More... | |
virtual undefined4 | VTable0x14 () |
[AI] Placeholder for early vtable slot (purpose unknown, may be used for RTTI). More... | |
virtual MxU32 | GetSizeOnDisk () |
[AI] Calculates serialized size of this object on disk (for buffer allocation). More... | |
virtual void | Deserialize (MxU8 *&p_source, MxS16 p_unk0x24) |
[AI] Initializes this object from serialized (memory buffer) data. More... | |
virtual void | SetAtomId (MxAtomId p_atomId) |
[AI] Sets the atom id for this object instance, used for indexing or lookup. More... | |
Type | GetType () const |
[AI] Returns the object's type enum as stored in m_type. More... | |
const char * | GetSourceName () const |
[AI] Returns the source name string (typically the originating SI file). More... | |
const char * | GetObjectName () const |
[AI] Returns the object name string. More... | |
MxU32 | GetObjectId () |
[AI] Returns the object id numeric value. More... | |
const MxAtomId & | GetAtomId () |
[AI] Returns a const-reference to the object's atom identifier. More... | |
MxS16 | GetUnknown24 () |
[AI] Returns the unknown 0x24 value (may be data version or usage state). [AI] More... | |
MxPresenter * | GetUnknown28 () |
[AI] Returns the pointer stored at 0x28, likely a presenter or handler for this DS object. More... | |
void | SetType (Type p_type) |
[AI] Sets the DS object type. More... | |
void | SetObjectId (MxU32 p_objectId) |
[AI] Sets the object id (for serialization or lookup). More... | |
void | SetUnknown24 (MxS16 p_unk0x24) |
[AI] Sets the unknown field at 0x24 (possibly version/state). More... | |
void | SetUnknown28 (MxPresenter *p_unk0x28) |
[AI] Sets the pointer at 0x28 (presenter or handler). More... | |
void | ClearAtom () |
[AI] Clears the atom id, releasing its association. 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 | |
![]() | |
enum | { c_looping = 0x01 , c_bit3 = 0x04 , c_bit4 = 0x08 , c_bit5 = 0x10 , c_enabled = 0x20 , c_bit7 = 0x40 , c_world = 0x80 , c_bit9 = 0x100 , c_bit10 = 0x200 , c_bit11 = 0x400 } |
[AI] Action bitmask flag options controlling flow (loop, enable, world-space, etc) More... | |
![]() | |
enum | Type { e_object = 0 , e_action , e_mediaAction , e_anim , e_sound , e_multiAction , e_serialAction , e_parallelAction , e_event , e_selectAction , e_still , e_objectAction } |
[AI] Enumerated type value for each kind of DS object. More... | |
![]() | |
MxU32 | m_sizeOnDisk |
[AI] The size of this action's fields on disk, not counting ancestor size. More... | |
MxU32 | m_flags |
[AI] Bitfield for flags (enabled, looping, etc). More... | |
MxLong | m_startTime |
[AI] Time at which the action is meant to start, or INT_MIN for unset. More... | |
MxLong | m_duration |
[AI] The duration to run the action, or INT_MIN for undefined. More... | |
MxS32 | m_loopCount |
[AI] Number of times to repeat the action, or -1 for infinite/not-set. More... | |
Mx3DPointFloat | m_location |
[AI] Location in 3D world or local space (x, y, z). More... | |
Mx3DPointFloat | m_direction |
[AI] "Forward" direction vector for this action. More... | |
Mx3DPointFloat | m_up |
[AI] "Up" vector for this action. More... | |
char * | m_extraData |
[AI] Opaque extra data for custom or extended behavior. More... | |
MxU16 | m_extraLength |
[AI] Length of extra data in bytes. More... | |
MxCore * | m_unk0x84 |
[AI] Pointer to an auxiliary MxCore object, purpose unknown. More... | |
undefined4 | m_unk0x88 |
[AI] 4 bytes at 0x88; usage not known. More... | |
MxCore * | m_origin |
[AI] Pointer to an "origin" MxCore object, for spatial/ownership reference. More... | |
MxLong | m_unk0x90 |
[AI] Unknown field, appears to store a timestamp for GetElapsedTime logics. More... | |
![]() | |
MxU32 | m_sizeOnDisk |
[AI] Cached/calculated disk size of object data for serialization. [AI] More... | |
MxU16 | m_type |
[AI] Object type enum (see Type) as read from data or set in code. [AI] More... | |
char * | m_sourceName |
[AI] Heap copy: SI file or source identifier string. [AI] More... | |
undefined4 | m_unk0x14 |
[AI] Unknown usage, possibly flags or reserved SI-format field. [AI] More... | |
char * | m_objectName |
[AI] Heap copy: Logical object name as referenced in script/data. [AI] More... | |
MxU32 | m_objectId |
[AI] Numeric id (unique per file or context, often -1). [AI] More... | |
MxAtomId | m_atomId |
[AI] String/value pair for engine lookup/reference. [AI] More... | |
MxS16 | m_unk0x24 |
[AI] Unknown usage, possibly used for context or flags during loading. [AI] More... | |
MxPresenter * | m_unk0x28 |
[AI] Presenter or handler associated to this object (may be null). [AI] More... | |
[AI] Represents an action that streams data from a buffer within a DirectScript (DS) media timeline.
[AI] MxDSStreamingAction specializes MxDSAction to support incremental reading ("streaming") from a buffer, as used for video and audio media. It manages buffer offsets, internal buffer objects, and potentially a sub-action that represents the actual payload action. Commonly used in scenarios where DS media format requires data to be loaded in parts rather than all at once. It maintains ownership of two buffers and its internal action. [AI]
Definition at line 16 of file mxdsstreamingaction.h.
MxDSStreamingAction::MxDSStreamingAction | ( | MxDSAction & | p_dsAction, |
MxU32 | p_offset | ||
) |
[AI] Constructs a streaming action from a base DS action with a given offset into the media buffer.
p_dsAction | [AI] The source MxDSAction to copy base parameters from. |
p_offset | [AI] Offset (in bytes or frames) in the buffer from which streaming should start. |
Definition at line 9 of file mxdsstreamingaction.cpp.
MxDSStreamingAction::MxDSStreamingAction | ( | MxDSStreamingAction & | p_dsStreamingAction | ) |
[AI] Copy constructor, creates a new streaming action from an existing streaming action.
p_dsStreamingAction | [AI] The source MxDSStreamingAction to copy from. |
Definition at line 27 of file mxdsstreamingaction.cpp.
|
override |
[AI] Destructor.
Cleans up internal buffers and internal action if set.
Definition at line 35 of file mxdsstreamingaction.cpp.
|
inline |
[AI] Clears/deallocates (sets to NULL) the current buffer pointer (a0).
Definition at line 135 of file mxdsstreamingaction.h.
MxDSStreamingAction * MxDSStreamingAction::CopyFrom | ( | MxDSStreamingAction & | p_dsStreamingAction | ) |
[AI] Copies fields from another MxDSStreamingAction, deeply cloning the internal action if needed.
p_dsStreamingAction | [AI] Source from which to copy. |
Definition at line 64 of file mxdsstreamingaction.cpp.
void MxDSStreamingAction::FUN_100cd2d0 | ( | ) |
[AI] Updates duration, loop count, and accumulates advanced streaming time for repeated playback.
[AI] Used by time management; decrements loop count and advances total duration. Skips if duration is -1 (infinite). [AI]
Definition at line 90 of file mxdsstreamingaction.cpp.
|
inline |
[AI] Gets the buffer offset where streaming is currently positioned.
Definition at line 100 of file mxdsstreamingaction.h.
|
inline |
[AI] Returns the internal sub-action representing the actual user-level action being streamed.
Definition at line 95 of file mxdsstreamingaction.h.
|
inline |
[AI] Gets the streaming offset or status value at 0x94.
Definition at line 70 of file mxdsstreamingaction.h.
|
inline |
[AI] Retrieves an internal integer—purpose unknown—held at 0x9c.
Definition at line 75 of file mxdsstreamingaction.h.
|
inline |
[AI] Returns a pointer to the first streaming buffer (possibly current read buffer).
Definition at line 80 of file mxdsstreamingaction.h.
|
inline |
[AI] Returns a pointer to the second streaming buffer (possibly for prefetch or double buffering).
Definition at line 85 of file mxdsstreamingaction.h.
|
inline |
[AI] Accumulated streaming duration, used for repeat or seek calculations.
Definition at line 90 of file mxdsstreamingaction.h.
[AI] Determines if this action or its internal action correspond to the given object ID.
p_objectId | [AI] Object id to test. |
Reimplemented from MxDSAction.
Definition at line 20 of file mxdsstreamingaction.cpp.
void MxDSStreamingAction::Init | ( | ) |
[AI] Initializes default values for members.
Called by constructors and reset. [AI]
Definition at line 50 of file mxdsstreamingaction.cpp.
|
inline |
[AI] Sets the current buffer read offset.
p_bufferOffset | [AI] New buffer offset to use in streaming operations. |
Definition at line 130 of file mxdsstreamingaction.h.
void MxDSStreamingAction::SetInternalAction | ( | MxDSAction * | p_dsAction | ) |
[AI] Sets or replaces the internal action held by this streaming action (ownership is transferred).
p_dsAction | [AI] The new internal sub-action; previously assigned action is deleted if present. |
Definition at line 81 of file mxdsstreamingaction.cpp.
|
inline |
[AI] Sets the streaming offset/status at 0x94.
p_unk0x94 | [AI] Value to set. |
Definition at line 106 of file mxdsstreamingaction.h.
|
inline |
[AI] Sets the unknown integer at 0x9c.
p_unk0x9c | [AI] Value to set. |
Definition at line 112 of file mxdsstreamingaction.h.
|
inline |
[AI] Assigns a streaming buffer to this action (ownership rules apply).
p_unk0xa0 | [AI] New buffer. |
Definition at line 118 of file mxdsstreamingaction.h.
|
inline |
[AI] Assigns a secondary streaming buffer to this action.
p_unk0xa4 | [AI] New buffer. |
Definition at line 124 of file mxdsstreamingaction.h.