Isle
Loading...
Searching...
No Matches
mxmediapresenter.h
Go to the documentation of this file.
1#ifndef MXMEDIAPRESENTER_H
2#define MXMEDIAPRESENTER_H
3
4#include "decomp.h"
5#include "mxpresenter.h"
6#include "mxstreamchunklist.h"
7
9
10// VTABLE: LEGO1 0x100d4cd8
11// SIZE 0x50
12
18public:
23
29
34 void Destroy() override { Destroy(FALSE); } // vtable+0x38
35
40 MxResult Tickle() override; // vtable+0x08
41
46 static const char* HandlerClassName()
47 {
48 // STRING: LEGO1 0x100f074c
49 return "MxMediaPresenter";
50 }
51
56 const char* ClassName() const override // vtable+0x0c
57 {
58 return HandlerClassName();
59 }
60
65 MxBool IsA(const char* p_name) const override // vtable+0x10
66 {
67 return !strcmp(p_name, MxMediaPresenter::ClassName()) || MxPresenter::IsA(p_name);
68 }
69
74 void StreamingTickle() override; // vtable+0x20
75
80 void RepeatingTickle() override; // vtable+0x24
81
85 void DoneTickle() override; // vtable+0x2c
86
92 MxResult StartAction(MxStreamController*, MxDSAction*) override; // vtable+0x3c
93
97 void EndAction() override; // vtable+0x40
98
103 void Enable(MxBool p_enable) override; // vtable+0x54
104
109 virtual void LoopChunk(MxStreamChunk* p_chunk); // vtable+0x58
110
116
122
123 // SYNTHETIC: LEGO1 0x1000c680
124 // MxMediaPresenter::`scalar deleting destructor'
125
126protected:
131
136
141
146
150 void Init();
151
156 void Destroy(MxBool p_fromDestructor);
157};
158
159// SYNTHETIC: LEGO1 0x100b46e0
160// MxStreamChunkListCursor::`scalar deleting destructor'
161
162// TEMPLATE: LEGO1 0x100b4750
163// MxListCursor<MxStreamChunk *>::~MxListCursor<MxStreamChunk *>
164
165// SYNTHETIC: LEGO1 0x100b47a0
166// MxListCursor<MxStreamChunk *>::`scalar deleting destructor'
167
168// FUNCTION: LEGO1 0x100b4810
169// MxStreamChunkListCursor::~MxStreamChunkListCursor
170
171#endif // MXMEDIAPRESENTER_H
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
Definition: mxdsaction.h:17
[AI] Handles the receipt, queuing, and batch management of data chunks streamed by a MxStreamControll...
[AI] Abstract base class for presenters that play back continuous media streams such as video or audi...
MxStreamChunk * CurrentChunk()
[AI] Returns a pointer to the current data chunk at the head of the stream, without consuming it.
MxMediaPresenter()
[AI] Constructs the presenter, initializing all member variables.
MxStreamChunk * NextChunk()
[AI] Returns the next data chunk in the stream, removing it from the stream queue.
void Init()
[AI] Initializes all member variables to a known default state (NULL pointers, etc).
void Destroy() override
[AI] Cleans up internal resources and resets the presenter to an uninitialized state.
void EndAction() override
[AI] Ends the media playback action, releasing all resources, notifying listeners if necessary.
void RepeatingTickle() override
[AI] Per-frame update while looping/repeating over known chunks.
MxResult Tickle() override
[AI] Advances the presenter's state and media stream, if any, by tickling (i.e., updating) components...
void Enable(MxBool p_enable) override
[AI] Enables or disables media stream playback and transitions state as needed.
MxBool IsA(const char *p_name) const override
[AI] Returns TRUE if the provided class name matches this class or any of its parents.
void DoneTickle() override
[AI] Per-frame update for the "done" state; transitions this presenter to idle and ends the action.
MxStreamChunkList * m_loopingChunks
[AI] Linked list of all chunks available for looping/repeating playback.
void StreamingTickle() override
[AI] Per-frame update when streaming the media stream.
~MxMediaPresenter() override
[AI] Destructor; cleans up and optionally destroys all internal resources as well as the MxDSSubscrib...
const char * ClassName() const override
[AI] Returns the class name for this presenter (see HandlerClassName()).
virtual void LoopChunk(MxStreamChunk *p_chunk)
[AI] Adds a chunk to the looping chunk list, making it available for repeated playback.
static const char * HandlerClassName()
[AI] Gets the class name string for handler dispatch and RTTI emulation.
MxStreamChunkListCursor * m_loopingChunkCursor
[AI] Cursor used to iterate through the loopingChunk list during repeat mode.
MxDSSubscriber * m_subscriber
[AI] Subscriber that provides the stream data (e.g., audio/video chunks) for this presenter.
MxStreamChunk * m_currentChunk
[AI] Currently active data chunk for playback or processing.
MxResult StartAction(MxStreamController *, MxDSAction *) override
[AI] Begins a new media playback action, wiring up the stream and chunk lists as needed.
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
Definition: mxpresenter.h:20
MxBool IsA(const char *p_name) const override
[AI] Determines if this object is of (or inherits) the specified named class.
Definition: mxpresenter.h:141
[AI] Cursor for iterating over a MxStreamChunkList.
[AI] A list for managing collections of pointers to MxStreamChunk objects, used for organizing and ma...
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
Definition: mxstreamchunk.h:19
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
#define override
Definition: compat.h:21
#define TRUE
Definition: d3drmdef.h:28
#define FALSE
Definition: d3drmdef.h:27
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106