Add support for open URL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f5fb4cf..e764154 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 0000000..42f6c45
--- /dev/null
+++ b/src/misc/vita/SDL_sysurl.c
@@ -0,0 +1,44 @@
+/*
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
+
+ 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 <string.h>
+#include <psp2/apputil.h>
+
+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 e262a19..c3782c0 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) {