From 8d1e0ca32455c3c5872279d7f76f39c5b506b86f Mon Sep 17 00:00:00 2001
From: Ivan Epifanov <[EMAIL REDACTED]>
Date: Thu, 16 Sep 2021 12:48:39 +0300
Subject: [PATCH] Vita: add support for disabling 'screensaver' (screen dimming
and suspend)
---
CMakeLists.txt | 1 +
src/video/vita/SDL_vitavideo.c | 9 ++++++++-
src/video/vita/SDL_vitavideo.h | 1 -
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 01e2c54985..880415ed3b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2246,6 +2246,7 @@ elseif(VITA)
SceHid_stub
SceMotion_stub
ScePower_stub
+ SceProcessmgr_stub
m
)
if(HAVE_VIDEO_VITA_PIB)
diff --git a/src/video/vita/SDL_vitavideo.c b/src/video/vita/SDL_vitavideo.c
index 0de9c1d1b8..4ea96faaef 100644
--- a/src/video/vita/SDL_vitavideo.c
+++ b/src/video/vita/SDL_vitavideo.c
@@ -33,6 +33,7 @@
#include "../../events/SDL_keyboard_c.h"
/* VITA declarations */
+#include <psp2/kernel/processmgr.h>
#include "SDL_vitavideo.h"
#include "SDL_vitatouch.h"
#include "SDL_vitakeyboard.h"
@@ -346,8 +347,8 @@ VITA_RestoreWindow(_THIS, SDL_Window * window)
void
VITA_SetWindowGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
{
-
}
+
void
VITA_DestroyWindow(_THIS, SDL_Window * window)
{
@@ -555,6 +556,12 @@ void VITA_PumpEvents(_THIS)
#if !defined(SDL_VIDEO_VITA_PVR)
SDL_VideoData *videodata = (SDL_VideoData *)_this->driverdata;
#endif
+
+ if (_this->suspend_screensaver) {
+ // cancel all idle timers to prevent vita going to sleep
+ sceKernelPowerTick(SCE_KERNEL_POWER_TICK_DEFAULT);
+ }
+
VITA_PollTouch();
VITA_PollKeyboard();
VITA_PollMouse();
diff --git a/src/video/vita/SDL_vitavideo.h b/src/video/vita/SDL_vitavideo.h
index 372c192ef7..1b1aa4f6fe 100644
--- a/src/video/vita/SDL_vitavideo.h
+++ b/src/video/vita/SDL_vitavideo.h
@@ -38,7 +38,6 @@ typedef struct SDL_VideoData
SceWChar16 ime_buffer[SCE_IME_DIALOG_MAX_TEXT_LENGTH];
SDL_bool ime_active;
-
} SDL_VideoData;