diff --git a/rpcs3/Emu/Cell/Modules/cellRec.cpp b/rpcs3/Emu/Cell/Modules/cellRec.cpp index fcc0cc9a2a..5d879659cb 100644 --- a/rpcs3/Emu/Cell/Modules/cellRec.cpp +++ b/rpcs3/Emu/Cell/Modules/cellRec.cpp @@ -1,41 +1,90 @@ #include "stdafx.h" #include "Emu/Cell/PPUModule.h" +namespace vm { using namespace ps3; } + logs::channel cellRec("cellRec"); -s32 cellRecOpen() +struct CellRecSpursParam { - fmt::throw_exception("Unimplemented" HERE); + vm::ptr pSpurs; + be_t spu_usage_rate; + u8 priority[8]; +}; + +struct CellRecOption +{ + be_t option; + union + { + be_t ppu_thread_priority; + be_t spu_thread_priority; + be_t capture_priority; + be_t use_system_spu; + be_t fit_to_youtube; + be_t xmb_bgm; + be_t mpeg4_fast_encode; + be_t ring_sec; + be_t video_input; + be_t audio_input; + be_t audio_input_mix_vol; + be_t reduce_memsize; + be_t show_xmb; + vm::ptr metadata_filename; + vm::ptr pSpursParam; + be_t dummy; + } value; +}; + +struct CellRecParam +{ + be_t videoFmt; + be_t audioFmt; + be_t numOfOpt; + vm::ptr pOpt; +}; + +using CellRecCallback = void(s32 recStatus, s32 recError, vm::ptr userdata); + +s32 cellRecOpen(vm::cptr pDirName, vm::cptr pFileName, vm::cptr pParam, u32 container, vm::ptr cb, vm::ptr cbUserData) +{ + cellRec.todo("cellRecOpen(pDirName=%s, pFileName=%s, pParam=*0x%x, container=0x%x, cb=*0x%x, cbUserData=*0x%x)", pDirName, pFileName, pParam, container, cb, cbUserData); + return CELL_OK; } -s32 cellRecClose() +s32 cellRecClose(s32 isDiscard) { - fmt::throw_exception("Unimplemented" HERE); + cellRec.todo("cellRecClose(isDiscard=0x%x)", isDiscard); + return CELL_OK; } -s32 cellRecGetInfo() +void cellRecGetInfo(s32 info, vm::ptr pValue) { - fmt::throw_exception("Unimplemented" HERE); + cellRec.todo("cellRecGetInfo(info=0x%x, pValue=*0x%x)", info, pValue); } s32 cellRecStop() { - fmt::throw_exception("Unimplemented" HERE); + cellRec.todo("cellRecStop()"); + return CELL_OK; } s32 cellRecStart() { - fmt::throw_exception("Unimplemented" HERE); + cellRec.todo("cellRecStart()"); + return CELL_OK; } -s32 cellRecQueryMemSize() +u32 cellRecQueryMemSize(vm::cptr pParam) { - fmt::throw_exception("Unimplemented" HERE); + cellRec.todo("cellRecQueryMemSize(pParam=*0x%x)", pParam); + return 1 * 1024 * 1024; // dummy memory size } -s32 cellRecSetInfo() +s32 cellRecSetInfo(s32 setInfo, u64 value) { - fmt::throw_exception("Unimplemented" HERE); + cellRec.todo("cellRecSetInfo(setInfo=0x%x, value=0x%x)", setInfo, value); + return CELL_OK; }