diff --git a/rpcs3/Emu/Cell/Modules/cellVideoUpload.cpp b/rpcs3/Emu/Cell/Modules/cellVideoUpload.cpp index 73a4c89e30..8d436a5640 100644 --- a/rpcs3/Emu/Cell/Modules/cellVideoUpload.cpp +++ b/rpcs3/Emu/Cell/Modules/cellVideoUpload.cpp @@ -1,11 +1,15 @@ #include "stdafx.h" #include "Emu/Cell/PPUModule.h" +#include "cellVideoUpload.h" + logs::channel cellVideoUpload("cellVideoUpload", logs::level::notice); -s32 cellVideoUploadInitialize() +s32 cellVideoUploadInitialize(vm::cptr pParam, vm::ptr cb, vm::ptr userdata) { - fmt::throw_exception("Unimplemented" HERE); + cellVideoUpload.todo("cellVideoUploadInitialize(pParam=*0x%x, cb=*0x%x, userdata=*0x%x)", pParam, cb, userdata); + + return CELL_OK; } DECLARE(ppu_module_manager::cellVideoUpload)("cellVideoUpload", []() diff --git a/rpcs3/Emu/Cell/Modules/cellVideoUpload.h b/rpcs3/Emu/Cell/Modules/cellVideoUpload.h new file mode 100644 index 0000000000..9abc051b9f --- /dev/null +++ b/rpcs3/Emu/Cell/Modules/cellVideoUpload.h @@ -0,0 +1,61 @@ +#pragma once + +namespace vm { using namespace ps3; } + +struct CellVideoUploadOption +{ + be_t type; + be_t value; +}; + +struct CellVideoUploadParam +{ + be_t siteID; + vm::bcptr pFilePath; + union + { + struct + { + vm::bcptr pClientId; + vm::bcptr pDeveloperKey; + vm::bcptr pTitle_UTF8; + vm::bcptr pDescription_UTF8; + vm::bcptr pKeyword_1_UTF8; + vm::bcptr pKeyword_2_UTF8; + vm::bcptr pKeyword_3_UTF8; + u8 isPrivate; + u8 rating; + } youtube; + } u; + be_t numOfOption; + vm::bptr pOption; +}; + +typedef void(CellVideoUploadCallback)(s32 status, s32 errorCode, vm::cptr pResultURL, vm::ptr userdata); + +enum +{ + CELL_VIDEO_UPLOAD_MAX_FILE_PATH_LEN = 1023, + CELL_VIDEO_UPLOAD_MAX_YOUTUBE_CLIENT_ID_LEN = 64, + CELL_VIDEO_UPLOAD_MAX_YOUTUBE_DEVELOPER_KEY_LEN = 128, + CELL_VIDEO_UPLOAD_MAX_YOUTUBE_TITLE_LEN = 61, + CELL_VIDEO_UPLOAD_MAX_YOUTUBE_DESCRIPTION_LEN = 1024, + CELL_VIDEO_UPLOAD_MAX_YOUTUBE_KEYWORD_LEN = 25 +}; + +// Return Codes +enum +{ + CELL_VIDEO_UPLOAD_ERROR_CANCEL = 0x8002d000, + CELL_VIDEO_UPLOAD_ERROR_NETWORK = 0x8002d001, + CELL_VIDEO_UPLOAD_ERROR_SERVICE_STOP = 0x8002d002, + CELL_VIDEO_UPLOAD_ERROR_SERVICE_BUSY = 0x8002d003, + CELL_VIDEO_UPLOAD_ERROR_SERVICE_UNAVAILABLE = 0x8002d004, + CELL_VIDEO_UPLOAD_ERROR_SERVICE_QUOTA = 0x8002d005, + CELL_VIDEO_UPLOAD_ERROR_ACCOUNT_STOP = 0x8002d006, + CELL_VIDEO_UPLOAD_ERROR_OUT_OF_MEMORY = 0x8002d020, + CELL_VIDEO_UPLOAD_ERROR_FATAL = 0x8002d021, + CELL_VIDEO_UPLOAD_ERROR_INVALID_VALUE = 0x8002d022, + CELL_VIDEO_UPLOAD_ERROR_FILE_OPEN = 0x8002d023, + CELL_VIDEO_UPLOAD_ERROR_INVALID_STATE = 0x8002d024 +}; diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index 3f39116a21..8266fe734d 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -591,6 +591,7 @@ + diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index 0cb05cdc3b..ee0cf4890e 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -1384,6 +1384,9 @@ Emu\Cell\Modules + + Emu\Cell\Modules + Emu\Cell\Modules