Added a screensaver-game-select custom event

This commit is contained in:
Leon Styhre 2025-02-10 18:55:59 +01:00
parent eccf485d6d
commit fe10e14b80
2 changed files with 17 additions and 0 deletions

View file

@ -11,6 +11,7 @@
#include "FileData.h" #include "FileData.h"
#include "Log.h" #include "Log.h"
#include "Scripting.h"
#include "SystemData.h" #include "SystemData.h"
#include "UIModeController.h" #include "UIModeController.h"
#include "components/VideoFFmpegComponent.h" #include "components/VideoFFmpegComponent.h"
@ -88,6 +89,7 @@ void Screensaver::startScreensaver(bool generateMediaList)
if (Settings::getInstance()->getBool("ScreensaverSlideshowCustomImages")) { if (Settings::getInstance()->getBool("ScreensaverSlideshowCustomImages")) {
if (generateMediaList) if (generateMediaList)
generateCustomImageList(); generateCustomImageList();
pickRandomCustomImage(path); pickRandomCustomImage(path);
// We've cycled through all games, so start from the beginning again. // We've cycled through all games, so start from the beginning again.
@ -103,7 +105,9 @@ void Screensaver::startScreensaver(bool generateMediaList)
else { else {
if (generateMediaList) if (generateMediaList)
generateImageList(); generateImageList();
pickRandomImage(path); pickRandomImage(path);
triggerCustomEvent();
} }
// We've cycled through all games, so start from the beginning again. // We've cycled through all games, so start from the beginning again.
@ -151,7 +155,9 @@ void Screensaver::startScreensaver(bool generateMediaList)
// Load a random video. // Load a random video.
if (generateMediaList) if (generateMediaList)
generateVideoList(); generateVideoList();
pickRandomVideo(path); pickRandomVideo(path);
triggerCustomEvent();
// We've cycled through all games, so start from the beginning again. // We've cycled through all games, so start from the beginning again.
if (mVideoFiles.size() == 0 && mFilesInventory.size() > 0) if (mVideoFiles.size() == 0 && mFilesInventory.size() > 0)
@ -783,3 +789,13 @@ void Screensaver::generateOverlayInfo()
mGameOverlayRectangleCoords.push_back(mGameOverlay->getSize().x + marginX * 2.0f); mGameOverlayRectangleCoords.push_back(mGameOverlay->getSize().x + marginX * 2.0f);
mGameOverlayRectangleCoords.push_back(mGameOverlay->getSize().y); mGameOverlayRectangleCoords.push_back(mGameOverlay->getSize().y);
} }
void Screensaver::triggerCustomEvent()
{
if (mCurrentGame == nullptr)
return;
Scripting::fireEvent("screensaver-game-select", mCurrentGame->getPath(),
mCurrentGame->metadata.get("name"), mCurrentGame->getSystem()->getName(),
mCurrentGame->getSystem()->getFullName());
}

View file

@ -43,6 +43,7 @@ private:
void pickRandomVideo(std::string& path); void pickRandomVideo(std::string& path);
void pickRandomCustomImage(std::string& path); void pickRandomCustomImage(std::string& path);
void generateOverlayInfo(); void generateOverlayInfo();
void triggerCustomEvent();
Renderer* mRenderer; Renderer* mRenderer;
Window* mWindow; Window* mWindow;