Finish MxDiskStreamController methods (#359)

* more mxdiskstreamcontroller methods

* further debugging and fixes

* add more functions

* Update mxdiskstreamprovider.cpp

* fix build

* implement MxDiskStreamProvider::PerformWork

* Update mxdiskstreamprovider.cpp

* Update mxdiskstreamprovider.cpp

* Update mxdssource.h

* remove debug prints

* Update mxdiskstreamprovider.cpp

* Mostly match MxDiskStreamController::FUN_100c8540

* Mostly match MxDiskStreamProvider::FUN_100d1780

* Mostly match MxDiskStreamProvider::PerformWork

* Fixes

* Retype some members

* Various annotations

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Misha
2023-12-25 13:32:01 -05:00
committed by GitHub
parent f3c1fc75e2
commit cb8c143ce5
20 changed files with 301 additions and 64 deletions

View File

@@ -13,21 +13,20 @@ class MxDiskStreamProvider;
class MxDSStreamingAction;
// VTABLE: LEGO1 0x100dd130
// SIZE 0x1c
class MxDiskStreamProviderThread : public MxThread {
public:
// Only inlined, no offset
inline MxDiskStreamProviderThread() : MxThread() { m_target = NULL; }
MxResult Run() override;
MxResult StartWithTarget(MxDiskStreamProvider* p_target);
};
// VTABLE: LEGO1 0x100dd138
// SIZE 0x60
class MxDiskStreamProvider : public MxStreamProvider {
public:
MxDiskStreamProvider();
virtual ~MxDiskStreamProvider() override;
// FUNCTION: LEGO1 0x100d1160
@@ -46,6 +45,8 @@ public:
MxResult WaitForWorkToComplete();
MxResult FUN_100d1780(MxDSStreamingAction* p_action);
void PerformWork();
static MxBool FUN_100d1af0(MxDSStreamingAction* p_action);
MxResult FUN_100d1b20(MxDSStreamingAction* p_action);
virtual MxResult SetResourceToGet(MxStreamController* p_resource) override; // vtable+0x14
virtual MxU32 GetFileSize() override; // vtable+0x18
@@ -57,8 +58,8 @@ public:
private:
MxDiskStreamProviderThread m_thread; // 0x10
MxSemaphore m_busySemaphore; // 0x2c
undefined m_remainingWork; // 0x34
undefined m_unk0x35; // 0x35
MxBool m_remainingWork; // 0x34
MxBool m_unk0x35; // 0x35
MxCriticalSection m_criticalSection; // 0x38
MxStreamListMxDSAction m_list; // 0x54
};