commit code

This commit is contained in:
Misha 2023-10-28 15:41:01 -04:00
parent cc2bb16a9e
commit af4f7becf0
No known key found for this signature in database
GPG Key ID: 8441D12AEF33FED8
8 changed files with 49 additions and 10 deletions

View File

@ -244,7 +244,14 @@ const char *GetNoCD_SourceName()
// OFFSET: LEGO1 0x1005b5f0
MxLong LegoOmni::Notify(MxParam &p)
{
// FIXME: Stub
MxResult result;
MxBool videoOver;
// check if nocd video is over, if so exit
if (((MxNotificationParam&) p).GetType() == MXSTREAMER_UNKNOWN)
{
}
return 0;
}

View File

@ -1,6 +1,9 @@
#include "mxdiskstreamprovider.h"
#include "mxthread.h"
#include "mxomni.h"
#include "mxstring.h"
#include "mxstreamcontroller.h"
DECOMP_SIZE_ASSERT(MxDiskStreamProvider, 0x60);
@ -47,10 +50,35 @@ void MxDiskStreamProvider::PerformWork()
// TODO
}
// OFFSET: LEGO1 0x100d13d0 STUB
MxResult MxDiskStreamProvider::SetResourceToGet(void* p_resource)
// OFFSET: LEGO1 0x100d13d0
MxResult MxDiskStreamProvider::SetResourceToGet(MxStreamController* p_resource)
{
// TODO
m_pLookup = p_resource;
MxString path = MxString(MxOmni::GetHD()) + p_resource->GetAtom().GetInternal() + ".si";
MxDSFile* file = new MxDSFile(path.GetData(), 0);
m_pFile = file;
if (file != NULL)
{
if (file->Open(0) != 0)
{
path = MxString(MxOmni::GetCD()) + p_resource->GetAtom().GetInternal() + ".si";
file->SetFileName(path);
if (file->Open(0) != 0)
{
return FAILURE;
}
}
m_remainingWork = 1;
MxResult success = m_busySemaphore.Init(0, 100);
//m_thread.Start();
if (success == SUCCESS && p_resource != NULL)
{
return SUCCESS;
}
}
return FAILURE;
}

View File

@ -49,7 +49,7 @@ class MxDiskStreamProvider : public MxStreamProvider
void PerformWork();
virtual MxResult SetResourceToGet(void* p_resource) override; //vtable+0x14
virtual MxResult SetResourceToGet(MxStreamController* p_resource) override; //vtable+0x14
virtual MxU32 GetFileSize() override; //vtable+0x18
virtual MxU32 GetStreamBuffersNum() override; //vtable+0x1c
virtual void vtable0x20(undefined4 p_unknown1) override; //vtable+0x20

View File

@ -32,6 +32,8 @@ class MxDSFile : public MxDSSource
__declspec(dllexport) virtual MxLong Seek(MxLong,int); // vtable+0x24
__declspec(dllexport) virtual MxULong GetBufferSize(); // vtable+0x28
__declspec(dllexport) virtual MxULong GetStreamBuffersNum(); // vtable+0x2c
inline void SetFileName(MxString p_filename) { m_filename = p_filename; }
private:
MxLong ReadChunks();
struct ChunkHeader {

View File

@ -29,7 +29,7 @@ MxRAMStreamProvider::~MxRAMStreamProvider()
}
// OFFSET: LEGO1 0x100d0ae0 STUB
MxResult MxRAMStreamProvider::SetResourceToGet(void* p_resource)
MxResult MxRAMStreamProvider::SetResourceToGet(MxStreamController* p_resource)
{
return FAILURE;
}

View File

@ -10,7 +10,7 @@ class MxRAMStreamProvider : public MxStreamProvider
MxRAMStreamProvider();
virtual ~MxRAMStreamProvider() override;
virtual MxResult SetResourceToGet(void* p_resource) override; //vtable+0x14
virtual MxResult SetResourceToGet(MxStreamController* p_resource) override; //vtable+0x14
virtual MxU32 GetFileSize() override; //vtable+0x18
virtual MxU32 GetStreamBuffersNum() override; //vtable+0x1c
virtual MxU32 GetLengthInDWords() override; //vtable+0x24

View File

@ -4,7 +4,7 @@
DECOMP_SIZE_ASSERT(MxStreamProvider, 0x10);
// OFFSET: LEGO1 0x100d07c0
MxResult MxStreamProvider::SetResourceToGet(void* p_resource)
MxResult MxStreamProvider::SetResourceToGet(MxStreamController* p_resource)
{
m_pLookup = p_resource;
return SUCCESS;

View File

@ -5,6 +5,8 @@
#include "mxcore.h"
#include "mxdsfile.h"
class MxStreamController;
// VTABLE 0x100dd100
// SIZE 0x10
class MxStreamProvider : public MxCore
@ -24,7 +26,7 @@ class MxStreamProvider : public MxCore
return !strcmp(name, MxStreamProvider::ClassName()) || MxCore::IsA(name);
}
virtual MxResult SetResourceToGet(void* p_resource); //vtable+0x14
virtual MxResult SetResourceToGet(MxStreamController* p_resource); //vtable+0x14
virtual MxU32 GetFileSize() = 0; //vtable+0x18
virtual MxU32 GetStreamBuffersNum() = 0; //vtable+0x1c
virtual void vtable0x20(undefined4 p_unknown1); //vtable+0x20
@ -32,7 +34,7 @@ class MxStreamProvider : public MxCore
virtual MxU32* GetBufferForDWords() = 0; //vtable+0x28
protected:
void *m_pLookup;
MxStreamController *m_pLookup;
MxDSFile* m_pFile;
};