From b52e9459ba8cdfd29d2b8ecc68e838e52f1f13ba Mon Sep 17 00:00:00 2001 From: uyjulian Date: Fri, 29 Jan 2021 01:26:13 -0600 Subject: [PATCH] Add support for open URL --- CMakeLists.txt | 4 ++++ src/misc/vita/SDL_sysurl.c | 44 ++++++++++++++++++++++++++++++++++++++ src/video/SDL_video.c | 9 ++++++++ 3 files changed, 57 insertions(+) create mode 100644 src/misc/vita/SDL_sysurl.c diff --git a/CMakeLists.txt b/CMakeLists.txt index f5fb4cf3f..e7641547f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2021,6 +2021,10 @@ elseif(VITA) set_source_files_properties(${SDL2_SOURCE_DIR}/src/atomic/SDL_spinlock.c PROPERTIES COMPILE_FLAGS -marm) endif() + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/vita/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + if(SDL_AUDIO) set(SDL_AUDIO_DRIVER_VITA 1) file(GLOB VITA_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/vita/*.c) diff --git a/src/misc/vita/SDL_sysurl.c b/src/misc/vita/SDL_sysurl.c new file mode 100644 index 000000000..42f6c456e --- /dev/null +++ b/src/misc/vita/SDL_sysurl.c @@ -0,0 +1,44 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2020 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#include "../SDL_sysurl.h" + +#include +#include + +int +SDL_SYS_OpenURL(const char *url) +{ + SceAppUtilInitParam init_param; + SceAppUtilBootParam boot_param; + SceAppUtilWebBrowserParam browser_param; + SDL_zero(init_param); + SDL_zero(boot_param); + sceAppUtilInit(&init_param, &boot_param); + SDL_zero(browser_param); + browser_param.str = url; + browser_param.strlen = strlen(url); + sceAppUtilLaunchWebBrowser(&browser_param); + return 0; +} + +/* vi: set ts=4 sw=4 expandtab: */ + diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index e262a1969..c3782c05d 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -4024,6 +4024,9 @@ SDL_IsScreenKeyboardShown(SDL_Window *window) return SDL_FALSE; } +#if SDL_VIDEO_DRIVER_VITA +#include "vita/SDL_vitamessagebox.h" +#endif #if SDL_VIDEO_DRIVER_ANDROID #include "android/SDL_androidmessagebox.h" #endif @@ -4107,6 +4110,12 @@ SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid) } /* It's completely fine to call this function before video is initialized */ +#if SDL_VIDEO_DRIVER_VITA + if (retval == -1 && + VITA_ShowMessageBox(messageboxdata, buttonid) == 0) { + retval = 0; + } +#endif #if SDL_VIDEO_DRIVER_ANDROID if (retval == -1 && Android_ShowMessageBox(messageboxdata, buttonid) == 0) {