Isle
Loading...
Searching...
No Matches
mxstreamprovider.h
Go to the documentation of this file.
1#ifndef MXSTREAMPROVIDER_H
2#define MXSTREAMPROVIDER_H
3
4#include "decomp.h"
5#include "mxcore.h"
6
8class MxDSAction;
9class MxDSFile;
10
16class MxStreamProvider : public MxCore {
17public:
20
23 const char* ClassName() const override // vtable+0x0c
24 {
25 return "MxStreamProvider";
26 }
27
31 MxBool IsA(const char* p_name) const override // vtable+0x10
32 {
33 return !strcmp(p_name, MxStreamProvider::ClassName()) || MxCore::IsA(p_name);
34 }
35
40 {
41 m_pLookup = p_pLookup;
42 return SUCCESS;
43 } // vtable+0x14
44
47 virtual MxU32 GetFileSize() = 0; // vtable+0x18
48
51 virtual MxS32 GetStreamBuffersNum() = 0; // vtable+0x1c
52
56 virtual void VTable0x20(MxDSAction* p_action) {} // vtable+0x20
57
60 virtual MxU32 GetLengthInDWords() = 0; // vtable+0x24
61
64 virtual MxU32* GetBufferForDWords() = 0; // vtable+0x28
65
66protected:
69};
70
71// SYNTHETIC: LEGO1 0x100d0870
72// MxStreamProvider::`scalar deleting destructor'
73
74// SYNTHETIC: LEGO1 0x100d08e0
75// MxStreamProvider::~MxStreamProvider
76
77#endif // MXSTREAMPROVIDER_H
[AI] Base virtual class for all Mindscape engine (Mx) objects.
Definition: mxcore.h:15
virtual MxBool IsA(const char *p_name) const
[AI] Checks whether this object's class type or parents match the given name.
Definition: mxcore.h:46
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
Definition: mxdsaction.h:17
[AI] Represents a source file handler for SI (Streamer Interface) files, providing buffered access fo...
Definition: mxdsfile.h:20
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
[AI] Abstract base class for stream resource providers in the LEGO Island engine.
virtual MxU32 GetFileSize()=0
[AI] Gets the file size, in bytes, of the underlying SI file resource.
virtual MxResult SetResourceToGet(MxStreamController *p_pLookup)
[AI] Attaches a stream controller as the resource to provide data for.
virtual MxS32 GetStreamBuffersNum()=0
[AI] Returns the number of stream buffers internally maintained for this resource.
MxStreamProvider()
[AI] Default constructor. Initializes stream provider with no lookup or file resource attached....
MxDSFile * m_pFile
[AI] Pointer to the loaded SI file associated with this provider. [AI]
virtual void VTable0x20(MxDSAction *p_action)
[AI] Virtual hook for subclasses to react to new stream actions being queued.
const char * ClassName() const override
[AI] Returns the name identifier for this class.
virtual MxU32 GetLengthInDWords()=0
[AI] Gets the full buffer length, interpreted as a DWORD-count, for direct buffer streaming.
virtual MxU32 * GetBufferForDWords()=0
[AI] Returns a pointer to the underlying buffer, cast as an array of DWORDs, for streaming purposes.
MxStreamController * m_pLookup
[AI] The stream controller using this provider as its data source. [AI]
MxBool IsA(const char *p_name) const override
[AI] Checks if this object is of the requested class name, or a subclass thereof.
#define override
Definition: compat.h:21
#define NULL
[AI] Null pointer value (C/C++ semantics).
Definition: legotypes.h:26
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
Definition: legotypes.h:30
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
signed int MxS32
[AI]
Definition: mxtypes.h:38
unsigned int MxU32
[AI]
Definition: mxtypes.h:32