Add callbacks for cellPhotoDecode

This commit is contained in:
scribam 2018-01-13 00:17:38 +01:00 committed by Ivan
parent b63461f599
commit be834a67d1

View file

@ -1,5 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
#include "cellSysutil.h"
@ -16,42 +17,67 @@ enum
CELL_PHOTO_DECODE_ERROR_DECODE = 0x8002c906, CELL_PHOTO_DECODE_ERROR_DECODE = 0x8002c906,
}; };
// Datatypes
struct CellPhotoDecodeSetParam struct CellPhotoDecodeSetParam
{ {
u32 dstBuffer_addr; vm::bptr<void> dstBuffer;
u16 width; be_t<u16> width;
u16 height; be_t<u16> height;
vm::bptr<void> reserved1;
vm::bptr<void> reserved2;
}; };
struct CellPhotoDecodeReturnParam struct CellPhotoDecodeReturnParam
{ {
u16 width; be_t<u16> width;
u16 height; be_t<u16> height;
vm::bptr<void> reserved1;
vm::bptr<void> reserved2;
}; };
// Functions using CellPhotoDecodeFinishCallback = void(s32 result, vm::ptr<void> userdata);
s32 cellPhotoDecodeInitialize()
error_code cellPhotoDecodeInitialize(u32 version, u32 container1, u32 container2, vm::ptr<CellPhotoDecodeFinishCallback> funcFinish, vm::ptr<void> userdata)
{ {
UNIMPLEMENTED_FUNC(cellPhotoDecode); cellPhotoDecode.todo("cellPhotoDecodeInitialize(version=0x%x, container1=0x%x, container2=0x%x, funcFinish=*0x%x, userdata=*0x%x)", version, container1, container2, funcFinish, userdata);
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
funcFinish(ppu, CELL_OK, userdata);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellPhotoDecodeInitialize2() error_code cellPhotoDecodeInitialize2(u32 version, u32 container2, vm::ptr<CellPhotoDecodeFinishCallback> funcFinish, vm::ptr<void> userdata)
{ {
UNIMPLEMENTED_FUNC(cellPhotoDecode); cellPhotoDecode.todo("cellPhotoDecodeInitialize2(version=0x%x, container2=0x%x, funcFinish=*0x%x, userdata=*0x%x)", version, container2, funcFinish, userdata);
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
funcFinish(ppu, CELL_OK, userdata);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellPhotoDecodeFinalize() error_code cellPhotoDecodeFinalize(vm::ptr<CellPhotoDecodeFinishCallback> funcFinish, vm::ptr<void> userdata)
{ {
UNIMPLEMENTED_FUNC(cellPhotoDecode); cellPhotoDecode.todo("cellPhotoDecodeFinalize(funcFinish=*0x%x, userdata=*0x%x)", funcFinish, userdata);
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
funcFinish(ppu, CELL_OK, userdata);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellPhotoDecodeFromFile() error_code cellPhotoDecodeFromFile(vm::cptr<char> srcHddDir, vm::cptr<char> srcHddFile, vm::ptr<CellPhotoDecodeSetParam> set_param, vm::ptr<CellPhotoDecodeReturnParam> return_param)
{ {
UNIMPLEMENTED_FUNC(cellPhotoDecode); cellPhotoDecode.todo("cellPhotoDecodeFromFile(srcHddDir=%s, srcHddFile=%s, set_param=*0x%x, return_param=*0x%x)", srcHddDir, srcHddFile, set_param, return_param);
return CELL_OK; return CELL_OK;
} }