|
Isle
|
MIDI presenter class responsible for handling playback of MIDI music streams. More...
#include <mxmidipresenter.h>


Public Member Functions | |
| MxMIDIPresenter () | |
| Constructs an MxMIDIPresenter object and initializes its data. More... | |
| ~MxMIDIPresenter () override | |
| Destructor, ensures proper resource cleanup for MIDI playback. More... | |
| const char * | ClassName () const override |
| Returns the class name for run-time type identification. More... | |
| MxBool | IsA (const char *p_name) const override |
| Checks if this instance matches a class type by name. More... | |
| void | ReadyTickle () override |
| Tickle state for preparing the presenter before playback starts. More... | |
| void | StartingTickle () override |
| Tickle state for initializing MIDI playback of the current chunk. More... | |
| void | StreamingTickle () override |
| Tickle state for streaming (playing) the MIDI chunk. More... | |
| void | DoneTickle () override |
| Tickle state signaling that playback is done. More... | |
| void | Destroy () override |
| Cleanup resources, free MIDI data, and deinitialize MIDI. More... | |
| void | EndAction () override |
| Called when playback/action is finished or needs to be ended. More... | |
| MxResult | PutData () override |
| Actually provides MIDI stream data to the playback system. More... | |
| void | SetVolume (MxS32 p_volume) override |
| Sets the playback volume for MIDI music. More... | |
Public Member Functions inherited from MxMusicPresenter | |
| MxMusicPresenter () | |
| [AI] Constructs and initializes the music presenter object. More... | |
| ~MxMusicPresenter () override | |
| [AI] Destroys the music presenter instance and unregisters from the music manager. More... | |
| const char * | ClassName () const override |
| [AI] Returns the runtime class name of the MxMusicPresenter. More... | |
| MxBool | IsA (const char *p_name) const override |
| [AI] Checks if this object's class matches or is derived from the specified name. More... | |
| MxResult | AddToManager () override |
| [AI] Registers this music presenter with the MxMusicManager. More... | |
| void | Destroy () override |
| [AI] Destroys this presenter, safely unregisters from music manager. More... | |
Public Member Functions inherited from MxAudioPresenter | |
| MxAudioPresenter () | |
| [AI] Constructs an audio presenter with default volume at 100%. More... | |
| virtual MxS32 | GetVolume () |
| [AI] Returns the current runtime audio volume for this presenter (0-100). More... | |
| virtual void | SetVolume (MxS32 p_volume) |
| [AI] Sets the presentation volume for playback (0-100). More... | |
| const char * | ClassName () const override |
| [AI] Returns the run-time class name string. More... | |
| MxBool | IsA (const char *p_name) const override |
| [AI] Checks if this object is or derives from the given class name. More... | |
Public Member Functions inherited from MxMediaPresenter | |
| 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... | |
| MxStreamChunk * | CurrentChunk () |
| [AI] Returns a pointer to the current data chunk at the head of the stream, without consuming it. More... | |
| MxStreamChunk * | NextChunk () |
| [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... | |
| MxEntity * | CreateEntity (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... | |
| MxDSAction * | GetAction () 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 () |
| Returns the handler class name for this presenter. More... | |
Static Public Member Functions inherited from MxMusicPresenter | |
| static const char * | HandlerClassName () |
| [AI] Returns the handler class name string for use in PresenterNameDispatch and dynamic class recognition. More... | |
Static Public Member Functions inherited from MxAudioPresenter | |
| static const char * | HandlerClassName () |
| [AI] Returns the class handler name used for presenter type registration and lookup. More... | |
Static Public Member Functions inherited from MxMediaPresenter | |
| 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 Attributes | |
| MxStreamChunk * | m_chunk |
| Current MIDI data chunk being streamed/played. More... | |
Protected Attributes inherited from MxAudioPresenter | |
| MxS32 | m_volume |
| [AI] Current playback volume, range 0-100 (percent). More... | |
Protected Attributes inherited from MxMediaPresenter | |
| MxDSSubscriber * | m_subscriber |
| [AI] Subscriber that provides the stream data (e.g., audio/video chunks) for this presenter. More... | |
| MxStreamChunkList * | m_loopingChunks |
| [AI] Linked list of all chunks available for looping/repeating playback. More... | |
| MxStreamChunkListCursor * | m_loopingChunkCursor |
| [AI] Cursor used to iterate through the loopingChunk list during repeat mode. More... | |
| MxStreamChunk * | m_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... | |
| MxDSAction * | m_action |
| [AI] The associated action currently being presented by this presenter. More... | |
| MxCriticalSection | m_criticalSection |
| [AI] Thread synchronization for presenter state and data. More... | |
| MxCompositePresenter * | m_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... | |
Protected Member Functions inherited from MxMediaPresenter | |
| 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... | |
MIDI presenter class responsible for handling playback of MIDI music streams.
[AI]
[AI] The MxMIDIPresenter class extends MxMusicPresenter and manages the streaming, initialization, and control of MIDI music playback, using the tickle architecture to advance playback states. It interacts with a MxMusicManager to control MIDI hardware/software. It also manages the lifecycle of the streamed MIDI chunks. [AI]
Definition at line 18 of file mxmidipresenter.h.
| MxMIDIPresenter::MxMIDIPresenter | ( | ) |
Constructs an MxMIDIPresenter object and initializes its data.
[AI]
[AI] Calls Init() to initialize internal pointers and state. [AI]
Definition at line 13 of file mxmidipresenter.cpp.
|
override |
Destructor, ensures proper resource cleanup for MIDI playback.
[AI]
[AI] Calls Destroy(TRUE) for full destruction, cleaning up stream chunks and deinitializing the MIDI system. [AI]
Definition at line 19 of file mxmidipresenter.cpp.
|
overridevirtual |
Returns the class name for run-time type identification.
[AI]
Reimplemented from MxAudioPresenter.
|
overridevirtual |
Cleanup resources, free MIDI data, and deinitialize MIDI.
[AI]
[AI] Public interface for resource cleanup. [AI]
Reimplemented from MxMediaPresenter.
Definition at line 93 of file mxmidipresenter.cpp.
|
overridevirtual |
Tickle state signaling that playback is done.
[AI]
[AI] Ends the current action if MIDI subsystem is no longer initialized. [AI]
Reimplemented from MxMediaPresenter.
Definition at line 85 of file mxmidipresenter.cpp.
|
overridevirtual |
Called when playback/action is finished or needs to be ended.
[AI]
[AI] Cleans up MIDI and resets tickle state as needed. [AI]
Reimplemented from MxMediaPresenter.
Definition at line 116 of file mxmidipresenter.cpp.
|
static |
Returns the handler class name for this presenter.
[AI]
|
overridevirtual |
Checks if this instance matches a class type by name.
[AI]
| p_name | The class name string to compare. [AI] |
Reimplemented from MxAudioPresenter.
|
overridevirtual |
Actually provides MIDI stream data to the playback system.
[AI]
[AI] Initializes and starts playback of MIDI data if streaming and the chunk is ready. [AI] Ends the action if initialization fails. [AI]
Reimplemented from MxPresenter.
Definition at line 99 of file mxmidipresenter.cpp.
|
overridevirtual |
Tickle state for preparing the presenter before playback starts.
[AI]
[AI] Releases the next MIDI chunk if available and transitions to starting tickle. [AI]
Reimplemented from MxPresenter.
Definition at line 52 of file mxmidipresenter.cpp.
|
overridevirtual |
Sets the playback volume for MIDI music.
[AI]
| p_volume | The new volume multiplier value. [AI] |
[AI] Updates both internal volume and notifies the music manager to use the correct multiplier. [AI]
Reimplemented from MxAudioPresenter.
Definition at line 127 of file mxmidipresenter.cpp.
|
overridevirtual |
Tickle state for initializing MIDI playback of the current chunk.
[AI]
[AI] Waits for the correct time and transitions to streaming tickle when ready. [AI]
Reimplemented from MxPresenter.
Definition at line 64 of file mxmidipresenter.cpp.
|
overridevirtual |
Tickle state for streaming (playing) the MIDI chunk.
[AI]
[AI] Moves to done tickle state if chunk has finished, otherwise fetches next chunk. [AI]
Reimplemented from MxMediaPresenter.
Definition at line 74 of file mxmidipresenter.cpp.
|
protected |
Current MIDI data chunk being streamed/played.
[AI]
[AI] Set when a new MIDI chunk is obtained and cleared on playback completion or destruction. [AI]
Definition at line 139 of file mxmidipresenter.h.