13 m_pendingChunkCursor =
NULL;
14 m_consumedChunkCursor =
NULL;
26 if (m_pendingChunkCursor) {
27 delete m_pendingChunkCursor;
29 m_pendingChunkCursor =
NULL;
31 if (m_consumedChunkCursor) {
32 delete m_consumedChunkCursor;
34 m_consumedChunkCursor =
NULL;
40 m_objectId = p_objectId;
41 m_unk0x48 = p_unk0x48;
46 m_controller = p_controller;
49 if (!m_pendingChunkCursor) {
54 if (!m_consumedChunkCursor) {
68 while (m_pendingChunkCursor->
First(chunk)) {
69 m_pendingChunkCursor->
Detach();
73 while (m_consumedChunkCursor->
First(chunk)) {
74 m_consumedChunkCursor->
Detach();
83 if (m_pendingChunkCursor) {
85 m_pendingChunks.
Append(p_chunk);
88 m_pendingChunks.
Prepend(p_chunk);
100 if (m_pendingChunkCursor) {
101 m_pendingChunkCursor->
First(chunk);
105 m_pendingChunkCursor->
Detach();
106 m_consumedChunks.
Append(chunk);
117 if (m_pendingChunkCursor) {
118 m_pendingChunkCursor->
First(chunk);
128 if (m_consumedChunkCursor->
Find(p_chunk)) {
129 m_consumedChunkCursor->
Detach();
144 for (iterator it = begin(); it != end(); it++) {
MxU16 GetChunkFlags()
[AI] Returns the chunk's flag bitfield. [AI]
[AI] Base class for any object deserialized from an SI (script/data) file in the LEGO Island engine.
MxS16 GetUnknown24()
[AI] Returns the unknown 0x24 value (may be data version or usage state). [AI]
MxU32 GetObjectId()
[AI] Returns the object id numeric value.
[AI] List container for pointers to MxDSSubscriber objects, with utility methods.
MxDSSubscriber * Find(MxDSObject *p_object)
[AI] Searches for a subscriber corresponding to the provided MxDSObject.
[AI] Handles the receipt, queuing, and batch management of data chunks streamed by a MxStreamControll...
MxResult Create(MxStreamController *p_controller, MxU32 p_objectId, MxS16 p_unk0x48)
[AI] Initializes subscription to a streaming controller, sets identifiers, and establishes chunk curs...
MxResult AddData(MxStreamChunk *p_chunk, MxBool p_append)
[AI] Appends or prepends a new data chunk to the pending stream buffer.
MxStreamChunk * PopData()
[AI] Pops the next available pending data chunk for consumption, moving it to the consumed list.
void DestroyData()
[AI] Frees and detaches all currently managed/pending/consumed data chunks from both lists; intended ...
~MxDSSubscriber() override
[AI] Destructor, unregisters and frees associated memory/buffers.
void FreeDataChunk(MxStreamChunk *p_chunk)
[AI] Frees (deletes) a data chunk if it's found in the consumed data list; also forcibly deletes sing...
MxStreamChunk * PeekData()
[AI] Returns but does not remove the first pending data chunk ("peek" operation).
MxBool First(T &p_obj)
[AI]
void Prepend(T p_obj)
[AI]
[AI] Cursor for iterating over a MxStreamChunkList.
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
void RemoveSubscriber(MxDSSubscriber *p_subscriber)
[AI] Removes a previously registered subscriber from the stream notification list.
void AddSubscriber(MxDSSubscriber *p_subscriber)
[AI] Adds a subscriber to the list who will receive streaming action data.
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define FAILURE
[AI] Used to indicate a failed operation in result codes.
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
#define DS_CHUNK_BIT1
[AI] Flag bit indicating that the data should be released (freed) when the chunk is destroyed.