From b63461f599aa2966dffab7a095d8a55d9d25140a Mon Sep 17 00:00:00 2001 From: scribam Date: Fri, 12 Jan 2018 22:45:50 +0100 Subject: [PATCH] Add callbacks for cellMusicExport --- rpcs3/Emu/Cell/Modules/cellMusicExport.cpp | 69 ++++++++++++++++++---- 1 file changed, 59 insertions(+), 10 deletions(-) diff --git a/rpcs3/Emu/Cell/Modules/cellMusicExport.cpp b/rpcs3/Emu/Cell/Modules/cellMusicExport.cpp index cdd09658e0..380cdc811c 100644 --- a/rpcs3/Emu/Cell/Modules/cellMusicExport.cpp +++ b/rpcs3/Emu/Cell/Modules/cellMusicExport.cpp @@ -1,5 +1,6 @@ #include "stdafx.h" #include "Emu/Cell/PPUModule.h" +#include "cellSysutil.h" @@ -20,33 +21,81 @@ enum CELL_MUSIC_EXPORT_UTIL_ERROR_INITIALIZE = 0x8002c60a, }; -s32 cellMusicExportInitialize() +struct CellMusicExportSetParam { - UNIMPLEMENTED_FUNC(cellMusicExport); + vm::bptr title; + vm::bptr game_title; + vm::bptr artist; + vm::bptr genre; + vm::bptr game_comment; + vm::bptr reserved1; + vm::bptr reserved2; +}; + +using CellMusicExportUtilFinishCallback = void(s32 result, vm::ptr userdata); + +error_code cellMusicExportInitialize(u32 version, u32 container, vm::ptr funcFinish, vm::ptr userdata) +{ + cellMusicExport.todo("cellMusicExportInitialize(version=0x%x, container=0x%x, funcFinish=*0x%x, userdata=*0x%x)", version, container, funcFinish, userdata); + + sysutil_register_cb([=](ppu_thread& ppu) -> s32 + { + funcFinish(ppu, CELL_OK, userdata); + return CELL_OK; + }); + return CELL_OK; } -s32 cellMusicExportInitialize2() +error_code cellMusicExportInitialize2(u32 version, vm::ptr funcFinish, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellMusicExport); + cellMusicExport.todo("cellMusicExportInitialize2(version=0x%x, funcFinish=*0x%x, userdata=*0x%x)", version, funcFinish, userdata); + + sysutil_register_cb([=](ppu_thread& ppu) -> s32 + { + funcFinish(ppu, CELL_OK, userdata); + return CELL_OK; + }); + return CELL_OK; } -s32 cellMusicExportFinalize() +error_code cellMusicExportFinalize(vm::ptr funcFinish, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellMusicExport); + cellMusicExport.todo("cellMusicExportFinalize(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; } -s32 cellMusicExportFromFile() +error_code cellMusicExportFromFile(vm::cptr srcHddDir, vm::cptr srcHddFile, vm::ptr param, vm::ptr funcFinish, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellMusicExport); + cellMusicExport.todo("cellMusicExportFromFile(srcHddDir=%s, srcHddFile=%s, param=*0x%x, funcFinish=*0x%x, userdata=*0x%x)", srcHddDir, srcHddFile, param, funcFinish, userdata); + + sysutil_register_cb([=](ppu_thread& ppu) -> s32 + { + funcFinish(ppu, CELL_OK, userdata); + return CELL_OK; + }); + return CELL_OK; } -s32 cellMusicExportProgress() +error_code cellMusicExportProgress(vm::ptr funcFinish, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellMusicExport); + cellMusicExport.todo("cellMusicExportProgress(funcFinish=*0x%x, userdata=*0x%x)", funcFinish, userdata); + + sysutil_register_cb([=](ppu_thread& ppu) -> s32 + { + funcFinish(ppu, 0xFFFF, userdata); + return CELL_OK; + }); + return CELL_OK; }