feat(libs): implement sceWebBrowserDialogGetStatus
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
5895ea721a
commit
232719f9f8
|
|
@ -0,0 +1,20 @@
|
|||
add_library(libSceWebBrowserDialog SHARED EXCLUDE_FROM_ALL Export.cpp)
|
||||
target_include_directories(libSceWebBrowserDialog PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
configure_windows_unwind(libSceWebBrowserDialog)
|
||||
|
||||
if(MINGW)
|
||||
foreach(runtimeLinkFlag IN ITEMS -static-libgcc -static-libstdc++ -static)
|
||||
string(REPLACE "${runtimeLinkFlag}" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_test_executable(guest_web_browser_dialog_tests ${LIBS_INCLUDE_DIR}/tests/GuestWebBrowserDialog.cpp)
|
||||
target_include_directories(guest_web_browser_dialog_tests PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
target_link_libraries(guest_web_browser_dialog_tests PRIVATE libSceWebBrowserDialog)
|
||||
add_test(NAME guest_web_browser_dialog COMMAND guest_web_browser_dialog_tests)
|
||||
if(WIN32)
|
||||
set_tests_properties(guest_web_browser_dialog PROPERTIES ENVIRONMENT_MODIFICATION
|
||||
"PATH=path_list_prepend:$<TARGET_FILE_DIR:libSceWebBrowserDialog>")
|
||||
endif()
|
||||
endif()
|
||||
|
|
@ -46,6 +46,10 @@ int APS5_VABI sceWebBrowserDialogGetResult(void* result) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceWebBrowserDialogGetStatus(void) {
|
||||
return g_status.load();
|
||||
}
|
||||
|
||||
int APS5_VABI sceWebBrowserDialogOpen(const void* param) {
|
||||
const int status = g_status.load();
|
||||
if (status == COMMON_DIALOG_STATUS_NONE) return COMMON_DIALOG_ERROR_NOT_INITIALIZED;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
#include "prx/libc/include/general/VabiMacros.hpp"
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
|
||||
extern "C" {
|
||||
int APS5_VABI sceWebBrowserDialogInitialize(void);
|
||||
int APS5_VABI sceWebBrowserDialogTerminate(void);
|
||||
int APS5_VABI sceWebBrowserDialogOpen(const void* param);
|
||||
int APS5_VABI sceWebBrowserDialogGetStatus(void);
|
||||
int APS5_VABI sceWebBrowserDialogUpdateStatus(void);
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr int COMMON_DIALOG_STATUS_NONE = 0;
|
||||
constexpr int COMMON_DIALOG_STATUS_INITIALIZED = 1;
|
||||
constexpr int COMMON_DIALOG_STATUS_FINISHED = 3;
|
||||
|
||||
void Require(bool value) { if (!value) std::abort(); }
|
||||
|
||||
}
|
||||
|
||||
int main() {
|
||||
Require(sceWebBrowserDialogGetStatus() == COMMON_DIALOG_STATUS_NONE);
|
||||
Require(sceWebBrowserDialogInitialize() == 0);
|
||||
Require(sceWebBrowserDialogGetStatus() == COMMON_DIALOG_STATUS_INITIALIZED);
|
||||
Require(sceWebBrowserDialogTerminate() == 0);
|
||||
Require(sceWebBrowserDialogGetStatus() == COMMON_DIALOG_STATUS_NONE);
|
||||
Require(sceWebBrowserDialogInitialize() == 0);
|
||||
std::uint8_t param[64] = {};
|
||||
Require(sceWebBrowserDialogOpen(param) == 0);
|
||||
Require(sceWebBrowserDialogGetStatus() == COMMON_DIALOG_STATUS_FINISHED);
|
||||
Require(sceWebBrowserDialogUpdateStatus() == COMMON_DIALOG_STATUS_FINISHED);
|
||||
}
|
||||
Loading…
Reference in New Issue