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

[AI] Abstract base class for presenters that play back continuous media streams such as video or audio. More...

#include <mxmediapresenter.h>

Inheritance diagram for MxMediaPresenter:
Collaboration diagram for MxMediaPresenter:

Public Member Functions

 MxMediaPresenter ()
 [AI] Constructs the presenter, initializing all member variables. More...
 
 ~MxMediaPresenter () override
 [AI] Destructor; cleans up and optionally destroys all internal resources as well as the MxDSSubscriber and chunk list/cursor. More...
 
void Destroy () override
 [AI] Cleans up internal resources and resets the presenter to an uninitialized state. More...
 
MxResult Tickle () override
 [AI] Advances the presenter's state and media stream, if any, by tickling (i.e., updating) components. More...
 
const char * ClassName () const override
 [AI] Returns the class name for this presenter (see HandlerClassName()). More...
 
MxBool IsA (const char *p_name) const override
 [AI] Returns TRUE if the provided class name matches this class or any of its parents. More...
 
void StreamingTickle () override
 [AI] Per-frame update when streaming the media stream. More...
 
void RepeatingTickle () override
 [AI] Per-frame update while looping/repeating over known chunks. More...
 
void DoneTickle () override
 [AI] Per-frame update for the "done" state; transitions this presenter to idle and ends the action. More...
 
MxResult StartAction (MxStreamController *, MxDSAction *) override
 [AI] Begins a new media playback action, wiring up the stream and chunk lists as needed. More...
 
void EndAction () override
 [AI] Ends the media playback action, releasing all resources, notifying listeners if necessary. More...
 
void Enable (MxBool p_enable) override
 [AI] Enables or disables media stream playback and transitions state as needed. More...
 
virtual void LoopChunk (MxStreamChunk *p_chunk)
 [AI] Adds a chunk to the looping chunk list, making it available for repeated playback. More...
 
MxStreamChunkCurrentChunk ()
 [AI] Returns a pointer to the current data chunk at the head of the stream, without consuming it. More...
 
MxStreamChunkNextChunk ()
 [AI] Returns the next data chunk in the stream, removing it from the stream queue. More...
 
- Public Member Functions inherited from MxPresenter
 MxPresenter ()
 [AI] Constructor. Initializes internal tickle state and other members. More...
 
MxResult Tickle () override
 [AI] Main tickle handler, called periodically to progress presenter's internal state. More...
 
virtual void VTable0x14 ()
 [AI] Reserved for future or specialized use in derived classes. More...
 
virtual void ReadyTickle ()
 [AI] Handles the transition and setup for the Ready state. Parses extra action data and advances state. More...
 
virtual void StartingTickle ()
 [AI] Handles actions required when first starting presentation. Advances to streaming state. More...
 
virtual void StreamingTickle ()
 [AI] Handles periodic updates during the streaming/presentation stage. Advances to repeating state. More...
 
virtual void RepeatingTickle ()
 [AI] Handles updates when in a repeating (looping) stage. Advances to freezing state. More...
 
virtual void FreezingTickle ()
 [AI] Handles updates during the freezing/suspended state. Advances to done state. More...
 
 ~MxPresenter () override
 [AI] Destructor, cleans up resources (base class: does nothing beyond Init). More...
 
virtual MxResult AddToManager ()
 [AI] Optional registration with a manager (such as TickleManager); by default does nothing. More...
 
virtual void Destroy ()
 [AI] Resets presenter state or cleans up resources after completion/removal. More...
 
virtual MxResult StartAction (MxStreamController *, MxDSAction *)
 [AI] Initiates presenter for a new action, setting up context and state. More...
 
virtual void EndAction ()
 [AI] Terminates the current action, notifies listeners and resets state. More...
 
virtual void SetTickleState (TickleState p_tickleState)
 [AI] Forces the tickle state, advancing to the requested lifecycle stage. More...
 
virtual MxBool HasTickleStatePassed (TickleState p_tickleState)
 [AI] Checks if the specified tickle state has ever been passed since last reset. More...
 
virtual MxResult PutData ()
 [AI] Allows the presenter to submit pending results or output to the engine. More...
 
virtual MxBool IsHit (MxS32 p_x, MxS32 p_y)
 [AI] Returns TRUE if the given (x, y) falls within hit-test bounds for the presenter (e.g. More...
 
virtual void Enable (MxBool p_enable)
 [AI] Enables or disables this presenter (controls action flags accordingly). More...
 
const char * ClassName () const override
 [AI] Returns the run-time class name for this presenter. More...
 
MxBool IsA (const char *p_name) const override
 [AI] Determines if this object is of (or inherits) the specified named class. More...
 
MxEntityCreateEntity (const char *p_defaultName)
 [AI] Creates an entity based on action 'extra' data, or uses the provided default name. More...
 
void SendToCompositePresenter (MxOmni *p_omni)
 [AI] Notifies a composite presenter (if one exists) that this presenter wishes to join a group. More...
 
MxBool IsEnabled ()
 [AI] Returns whether this presenter is logically enabled (based on the associated action's flags). More...
 
MxS32 GetCurrentTickleState () const
 [AI] Returns the current tickle state. More...
 
MxPoint32 GetLocation () const
 [AI] Returns the presenter's screen location (in pixels). More...
 
MxS32 GetX () const
 [AI] Returns the X coordinate of screen location. More...
 
MxS32 GetY () const
 [AI] Returns the Y coordinate of screen location. More...
 
MxS32 GetDisplayZ () const
 [AI] Returns the display Z (depth) order. More...
 
MxDSActionGetAction () const
 [AI] Returns the current action being presented. More...
 
void SetAction (MxDSAction *p_action)
 [AI] Sets the action associated with this presenter. More...
 
void SetCompositePresenter (MxCompositePresenter *p_compositePresenter)
 [AI] Sets the composite presenter to notify/join on completion. More...
 
void SetDisplayZ (MxS32 p_displayZ)
 [AI] Sets the display Z (depth) order for the presenter. 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...
 

Static Public Member Functions

static const char * HandlerClassName ()
 [AI] Gets the class name string for handler dispatch and RTTI emulation. More...
 
- Static Public Member Functions inherited from MxPresenter
static const char * HandlerClassName ()
 [AI] Returns the handler class name for identification and reflection purposes. More...
 

Protected Member Functions

void Init ()
 [AI] Initializes all member variables to a known default state (NULL pointers, etc). More...
 
void Destroy (MxBool p_fromDestructor)
 [AI] Frees all managed resources, owned memory and pointers, optionally preventing destruction of the base class. More...
 
- Protected Member Functions inherited from MxPresenter
virtual void DoneTickle ()
 [AI] Handles any post-completion logic, resetting to idle state. More...
 
virtual void ParseExtra ()
 [AI] Parses additional data from the associated action for configuration or world interaction. More...
 
void ProgressTickleState (TickleState p_tickleState)
 [AI] Helper for advancing the presenter's tickle state and updating transition history. More...
 
void Init ()
 [AI] Initializes object state to post-construction defaults. More...
 

Protected Attributes

MxDSSubscriberm_subscriber
 [AI] Subscriber that provides the stream data (e.g., audio/video chunks) for this presenter. More...
 
MxStreamChunkListm_loopingChunks
 [AI] Linked list of all chunks available for looping/repeating playback. More...
 
MxStreamChunkListCursorm_loopingChunkCursor
 [AI] Cursor used to iterate through the loopingChunk list during repeat mode. More...
 
MxStreamChunkm_currentChunk
 [AI] Currently active data chunk for playback or processing. More...
 
- Protected Attributes inherited from MxPresenter
TickleState m_currentTickleState
 [AI] Current state in the tickle lifecycle. More...
 
MxU32 m_previousTickleStates
 [AI] Bitfield representing all tickle states that have already occurred during this lifetime. More...
 
MxPoint32 m_location
 [AI] 2D display location for the presenter. More...
 
MxS32 m_displayZ
 [AI] Z-order value for display stacking. More...
 
MxDSActionm_action
 [AI] The associated action currently being presented by this presenter. More...
 
MxCriticalSection m_criticalSection
 [AI] Thread synchronization for presenter state and data. More...
 
MxCompositePresenterm_compositePresenter
 [AI] Owner composite presenter, if any. More...
 

Additional Inherited Members

- Public Types inherited from MxPresenter
enum  TickleState {
  e_idle = 0 , e_ready , e_starting , e_streaming ,
  e_repeating , e_freezing , e_done
}
 [AI] Represents the state of the presenter's tickle (update) lifecycle. More...
 

Detailed Description

[AI] Abstract base class for presenters that play back continuous media streams such as video or audio.

[AI] Handles streaming of media chunks, looping, action control, and communicates with a MxDSSubscriber for data provisioning.

Definition at line 17 of file mxmediapresenter.h.

Constructor & Destructor Documentation

◆ MxMediaPresenter()

MxMediaPresenter::MxMediaPresenter ( )
inline

[AI] Constructs the presenter, initializing all member variables.

Definition at line 22 of file mxmediapresenter.h.

◆ ~MxMediaPresenter()

MxMediaPresenter::~MxMediaPresenter ( )
inlineoverride

[AI] Destructor; cleans up and optionally destroys all internal resources as well as the MxDSSubscriber and chunk list/cursor.

[AI] If called from destructor, does not call base class Destroy to avoid double-destruction.

Definition at line 28 of file mxmediapresenter.h.

Member Function Documentation

◆ ClassName()

const char * MxMediaPresenter::ClassName ( ) const
inlineoverridevirtual

[AI] Returns the class name for this presenter (see HandlerClassName()).

Returns
[AI] Class name string for RTTI/dispatch.

Reimplemented from MxCore.

Reimplemented in MxMIDIPresenter, MxMusicPresenter, MxSmkPresenter, MxSoundPresenter, MxStillPresenter, MxVideoPresenter, and MxWavePresenter.

Definition at line 56 of file mxmediapresenter.h.

◆ CurrentChunk()

MxStreamChunk * MxMediaPresenter::CurrentChunk ( )

[AI] Returns a pointer to the current data chunk at the head of the stream, without consuming it.

Returns
[AI] May be NULL if no chunk is available.

Definition at line 63 of file mxmediapresenter.cpp.

◆ Destroy() [1/2]

void MxMediaPresenter::Destroy ( )
inlineoverridevirtual

[AI] Cleans up internal resources and resets the presenter to an uninitialized state.

[AI] This variant is called by the engine or directly to destroy; does NOT call base class destroy (useful for subclass-specific cleanup).

Reimplemented from MxPresenter.

Reimplemented in MxMIDIPresenter, MxMusicPresenter, MxSmkPresenter, MxSoundPresenter, MxStillPresenter, MxVideoPresenter, and MxWavePresenter.

Definition at line 34 of file mxmediapresenter.h.

◆ Destroy() [2/2]

void MxMediaPresenter::Destroy ( MxBool  p_fromDestructor)
protected

[AI] Frees all managed resources, owned memory and pointers, optionally preventing destruction of the base class.

Parameters
p_fromDestructor[AI] TRUE if called from the destructor, FALSE if called directly.

Definition at line 26 of file mxmediapresenter.cpp.

◆ DoneTickle()

void MxMediaPresenter::DoneTickle ( )
overridevirtual

[AI] Per-frame update for the "done" state; transitions this presenter to idle and ends the action.

Reimplemented from MxPresenter.

Reimplemented in MxMIDIPresenter, and MxWavePresenter.

Definition at line 225 of file mxmediapresenter.cpp.

◆ Enable()

void MxMediaPresenter::Enable ( MxBool  p_enable)
overridevirtual

[AI] Enables or disables media stream playback and transitions state as needed.

Parameters
p_enable[AI] TRUE to enable playback, FALSE to disable and reset.

Reimplemented from MxPresenter.

Reimplemented in MxStillPresenter, and MxWavePresenter.

Definition at line 248 of file mxmediapresenter.cpp.

◆ EndAction()

void MxMediaPresenter::EndAction ( )
overridevirtual

[AI] Ends the media playback action, releasing all resources, notifying listeners if necessary.

Reimplemented from MxPresenter.

Reimplemented in MxMIDIPresenter, MxVideoPresenter, and MxWavePresenter.

Definition at line 134 of file mxmediapresenter.cpp.

◆ HandlerClassName()

static const char * MxMediaPresenter::HandlerClassName ( )
inlinestatic

[AI] Gets the class name string for handler dispatch and RTTI emulation.

Returns
[AI] Static string "MxMediaPresenter"

Definition at line 46 of file mxmediapresenter.h.

◆ Init()

void MxMediaPresenter::Init ( )
protected

[AI] Initializes all member variables to a known default state (NULL pointers, etc).

Definition at line 17 of file mxmediapresenter.cpp.

◆ IsA()

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

[AI] Returns TRUE if the provided class name matches this class or any of its parents.

Parameters
p_name[AI] Class name to check for identity or inheritance

Reimplemented from MxCore.

Reimplemented in MxMIDIPresenter, MxMusicPresenter, MxSmkPresenter, MxSoundPresenter, MxStillPresenter, MxVideoPresenter, and MxWavePresenter.

Definition at line 65 of file mxmediapresenter.h.

◆ LoopChunk()

void MxMediaPresenter::LoopChunk ( MxStreamChunk p_chunk)
virtual

[AI] Adds a chunk to the looping chunk list, making it available for repeated playback.

Parameters
p_chunk[AI] Chunk to duplicate and append to loopingChunk list.

Reimplemented in MxWavePresenter.

Definition at line 233 of file mxmediapresenter.cpp.

◆ NextChunk()

MxStreamChunk * MxMediaPresenter::NextChunk ( )

[AI] Returns the next data chunk in the stream, removing it from the stream queue.

Returns
[AI] May be NULL if the stream is exhausted.

Definition at line 83 of file mxmediapresenter.cpp.

◆ RepeatingTickle()

void MxMediaPresenter::RepeatingTickle ( )
overridevirtual

[AI] Per-frame update while looping/repeating over known chunks.

[AI] Recirculates through buffered chunks if the action is set to loop mode.

Reimplemented from MxPresenter.

Reimplemented in MxStillPresenter, and MxVideoPresenter.

Definition at line 201 of file mxmediapresenter.cpp.

◆ StartAction()

MxResult MxMediaPresenter::StartAction ( MxStreamController p_controller,
MxDSAction p_action 
)
overridevirtual

[AI] Begins a new media playback action, wiring up the stream and chunk lists as needed.

Parameters
p_controller[AI] Controller providing the stream data source
p_action[AI] Data structure describing the action parameters for playback

Reimplemented from MxPresenter.

Definition at line 102 of file mxmediapresenter.cpp.

◆ StreamingTickle()

void MxMediaPresenter::StreamingTickle ( )
overridevirtual

[AI] Per-frame update when streaming the media stream.

[AI] Consumes and processes the next available chunk in the stream as data arrives.

Reimplemented from MxPresenter.

Reimplemented in MxMIDIPresenter, MxStillPresenter, MxVideoPresenter, and MxWavePresenter.

Definition at line 177 of file mxmediapresenter.cpp.

◆ Tickle()

MxResult MxMediaPresenter::Tickle ( )
overridevirtual

[AI] Advances the presenter's state and media stream, if any, by tickling (i.e., updating) components.

[AI] Handles chunk progression and invokes the correct tickle state based on stream state.

Reimplemented from MxCore.

Definition at line 167 of file mxmediapresenter.cpp.

Member Data Documentation

◆ m_currentChunk

MxStreamChunk* MxMediaPresenter::m_currentChunk
protected

[AI] Currently active data chunk for playback or processing.

Definition at line 145 of file mxmediapresenter.h.

◆ m_loopingChunkCursor

MxStreamChunkListCursor* MxMediaPresenter::m_loopingChunkCursor
protected

[AI] Cursor used to iterate through the loopingChunk list during repeat mode.

Definition at line 140 of file mxmediapresenter.h.

◆ m_loopingChunks

MxStreamChunkList* MxMediaPresenter::m_loopingChunks
protected

[AI] Linked list of all chunks available for looping/repeating playback.

Definition at line 135 of file mxmediapresenter.h.

◆ m_subscriber

MxDSSubscriber* MxMediaPresenter::m_subscriber
protected

[AI] Subscriber that provides the stream data (e.g., audio/video chunks) for this presenter.

Definition at line 130 of file mxmediapresenter.h.


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