Isle
Loading...
Searching...
No Matches
mxdiskstreamcontroller.h
Go to the documentation of this file.
1#ifndef MXDISKSTREAMCONTROLLER_H
2#define MXDISKSTREAMCONTROLLER_H
3
4#include "decomp.h"
5#include "mxdsbuffer.h"
6#include "mxstl/stlcompat.h"
8#include "mxtypes.h"
9
10#include <string.h>
11
13
14// VTABLE: LEGO1 0x100dccb8
15// VTABLE: BETA10 0x101c2818
16// SIZE 0xc8
24public:
26 ~MxDiskStreamController() override;
27
28 MxResult Tickle() override; // vtable+0x08
31
32 // FUNCTION: LEGO1 0x100c7360
33 // FUNCTION: BETA10 0x10155c00
38 const char* ClassName() const override // vtable+0x0c
39 {
40 // STRING: LEGO1 0x10102144
41 return "MxDiskStreamController";
42 }
43
44 // FUNCTION: LEGO1 0x100c7370
50 MxBool IsA(const char* p_name) const override // vtable+0x10
51 {
52 return !strcmp(p_name, MxDiskStreamController::ClassName()) || MxStreamController::IsA(p_name);
53 }
54
55 MxResult Open(const char* p_filename) override; // vtable+0x14
59
60 MxResult VTable0x18(undefined4, undefined4) override; // vtable+0x18
62
63 MxResult VTable0x20(MxDSAction* p_action) override; // vtable+0x20
66
67 MxResult VTable0x24(MxDSAction* p_action) override; // vtable+0x24
70
71 MxDSStreamingAction* VTable0x28() override; // vtable+0x28
73
74 MxResult VTable0x30(MxDSAction* p_action) override; // vtable+0x30
77
78 virtual MxResult VTable0x34(undefined4); // vtable+0x34
80
85 MxBool GetUnk0xc4() const { return m_unk0xc4; }
86
92
97 void FUN_100c7cb0(MxDSStreamingAction* p_action);
98
103 void FUN_100c7f40(MxDSStreamingAction* p_streamingaction);
104
109 void FUN_100c8120(MxDSAction* p_action);
110
115 void InsertToList74(MxDSBuffer* p_buffer);
116
121 void FUN_100c8670(MxDSStreamingAction* p_streamingAction);
122
123private:
124 MxDSObjectList m_list0x64;
125 MxBool m_unk0x70;
126 list<MxDSBuffer*> m_list0x74;
127 MxDSObjectList m_list0x80;
128 undefined2 m_unk0x8c;
129 MxDSObjectList m_list0x90;
130 MxCriticalSection m_critical9c;
131 MxDSObjectList m_list0xb8;
132 MxBool m_unk0xc4;
133
137 void FUN_100c7970();
138
142 void FUN_100c7ce0(MxDSBuffer* p_buffer);
143
147 MxResult FUN_100c7d10();
148
152 void FUN_100c7980();
153
158 MxDSStreamingAction* FUN_100c7db0();
159
163 MxResult FUN_100c8360(MxDSStreamingAction* p_action);
164
168 void FUN_100c8540();
169
173 void FUN_100c8720();
174};
175
176#endif // MXDISKSTREAMCONTROLLER_H
[AI] Provides a critical section object for mutual exclusion with optional use of OS mutex.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
Definition: mxdsaction.h:17
[AI] Buffer for managing streamed DS (Data Stream) chunks and actions.
Definition: mxdsbuffer.h:50
[AI] Utility list for managing dynamic sequence (DS) objects, provides search and removal by pointer ...
Definition: mxdsobject.h:18
[AI] Represents an action that streams data from a buffer within a DirectScript (DS) media timeline.
[AI] Controller for streaming from disk-based SI resources, manages buffers and streaming actions.
virtual MxResult VTable0x34(undefined4)
[AI] Cleans up/aborts all queued streaming actions associated with the specified action.
~MxDiskStreamController() override
[AI] Destructor. Cleans up streaming actions, buffers, and provider. Unregisters from tickle manager.
void FUN_100c7f40(MxDSStreamingAction *p_streamingaction)
[AI] Adds a streaming action to m_list0x64 for processing.
MxResult VTable0x18(undefined4, undefined4) override
[AI] Opens the given resource file for streaming.
MxBool IsA(const char *p_name) const override
[AI] Checks whether the provided string matches the class name or any ancestor's class name.
MxResult VTable0x30(MxDSAction *p_action) override
[AI] Pops a queued (ready) streaming action and prepares it for buffer assignment....
MxDiskStreamController()
[AI] Constructor. Initializes internal state and buffer counters.
void FUN_100c8120(MxDSAction *p_action)
[AI] Cleans up an action and all associated resources, notifies provider.
MxResult VTable0x24(MxDSAction *p_action) override
[AI] Start or queue the streaming action for the given action, potentially using buffer reuse and str...
void FUN_100c7cb0(MxDSStreamingAction *p_action)
[AI] Destroys the given streaming action and any associated buffers.
const char * ClassName() const override
[AI] Update the controller, handling buffer processing and queued actions.
void FUN_100c8670(MxDSStreamingAction *p_streamingAction)
[AI] Pushes an action to a private list (m_list0xb8) for later cleanup.
MxResult Tickle() override
[AI] Called by tickle managers to allow the object to update itself.
MxResult Open(const char *p_filename) override
[AI] Opens a data stream with the specified resource filename.
MxBool GetUnk0xc4() const
[AI] Placeholder/overridden method—purpose unknown from context.
MxResult VTable0x20(MxDSAction *p_action) override
[AI] Placeholder/overridden method—purpose unknown from context.
MxResult FUN_100c7890(MxDSStreamingAction *p_action)
[AI] Adds a streaming action to the list (m_list0x80) and possibly processes buffer allocation.
MxDSStreamingAction * VTable0x28() override
[AI] Marks an action as completed and cleans up associated resources.
void InsertToList74(MxDSBuffer *p_buffer)
[AI] Inserts a buffer to the buffer reuse list (m_list0x74).
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
MxBool IsA(const char *p_name) const override
[AI] Performs runtime type checking, matching the given name with this or any parent class.
#define override
Definition: compat.h:21
unsigned short undefined2
Definition: decomp.h:27
unsigned int undefined4
Definition: decomp.h:28
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
[AI] STL compatibility layer header to provide consistent STL (Standard Template Library) types and a...