diff --git a/LEGO1/mxcompositemediapresenter.cpp b/LEGO1/mxcompositemediapresenter.cpp index 7bbaf6bf..01a6e135 100644 --- a/LEGO1/mxcompositemediapresenter.cpp +++ b/LEGO1/mxcompositemediapresenter.cpp @@ -1,7 +1,47 @@ #include "mxcompositemediapresenter.h" -// STUB: LEGO1 0x10073ea0 +#include "legoomni.h" +#include "legovideomanager.h" + +DECOMP_SIZE_ASSERT(MxCompositeMediaPresenter, 0x50) + +// FUNCTION: LEGO1 0x10073ea0 MxCompositeMediaPresenter::MxCompositeMediaPresenter() +{ + m_unk0x4c = 0; + m_unk0x4e = 0; + VideoManager()->AddPresenter(*this); +} + +// FUNCTION: LEGO1 0x10074020 +MxCompositeMediaPresenter::~MxCompositeMediaPresenter() +{ + VideoManager()->RemovePresenter(*this); +} + +// STUB: LEGO1 0x10074090 +MxResult MxCompositeMediaPresenter::StartAction(MxStreamController* p_controller, MxDSAction* p_action) +{ + // TODO + return SUCCESS; +} + +// STUB: LEGO1 0x100742e0 +void MxCompositeMediaPresenter::StartingTickle() { // TODO } + +// STUB: LEGO1 0x10074470 +MxResult MxCompositeMediaPresenter::Tickle() +{ + // TODO + return SUCCESS; +} + +// STUB: LEGO1 0x10074540 +MxResult MxCompositeMediaPresenter::PutData() +{ + // TODO + return SUCCESS; +} diff --git a/LEGO1/mxcompositemediapresenter.h b/LEGO1/mxcompositemediapresenter.h index 80126469..f28465f2 100644 --- a/LEGO1/mxcompositemediapresenter.h +++ b/LEGO1/mxcompositemediapresenter.h @@ -3,11 +3,14 @@ #include "mxcompositepresenter.h" -// VTABLE: LEGO1 0x100dc618 +// VTABLE: LEGO1 0x100d96b0 // SIZE 0x50 class MxCompositeMediaPresenter : public MxCompositePresenter { public: MxCompositeMediaPresenter(); + virtual ~MxCompositeMediaPresenter() override; + + virtual MxResult Tickle() override; // vtable+0x08 // FUNCTION: LEGO1 0x10073f10 inline virtual const char* ClassName() const override // vtable+0x0c @@ -21,6 +24,17 @@ class MxCompositeMediaPresenter : public MxCompositePresenter { { return !strcmp(p_name, MxCompositeMediaPresenter::ClassName()) || MxCompositePresenter::IsA(p_name); } + + virtual void StartingTickle() override; // vtable+0x1c + virtual MxResult StartAction(MxStreamController*, MxDSAction* p_action) override; // vtable+0x3c + virtual MxResult PutData(); // vtable+0x4c + +private: + undefined2 m_unk0x4c; // 0x4c + undefined m_unk0x4e; // 0x4e }; +// SYNTHETIC: LEGO1 0x10074000 +// MxCompositeMediaPresenter::`scalar deleting destructor' + #endif // MXCOMPOSITEMEDIAPRESENTER_H