mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-01-18 07:05:39 +00:00
Adding slider to control screensaver swap time
This commit is contained in:
parent
6d95146df6
commit
7caf70a5e5
|
@ -15,7 +15,6 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#define FADE_TIME 300
|
||||
#define SWAP_VIDEO_TIMEOUT 30000
|
||||
|
||||
SystemScreenSaver::SystemScreenSaver(Window* window) :
|
||||
mVideoScreensaver(NULL),
|
||||
|
@ -34,6 +33,7 @@ SystemScreenSaver::SystemScreenSaver(Window* window) :
|
|||
if(!boost::filesystem::exists(path))
|
||||
boost::filesystem::create_directory(path);
|
||||
srand((unsigned int)time(NULL));
|
||||
mVideoChangeTime = 30000;
|
||||
}
|
||||
|
||||
SystemScreenSaver::~SystemScreenSaver()
|
||||
|
@ -63,6 +63,7 @@ void SystemScreenSaver::startScreenSaver()
|
|||
mState = PowerSaver::getMode() == PowerSaver::INSTANT
|
||||
? STATE_SCREENSAVER_ACTIVE
|
||||
: STATE_FADE_OUT_WINDOW;
|
||||
mVideoChangeTime = Settings::getInstance()->getInt("ScreenSaverSwapVideoTimeout");
|
||||
mOpacity = 0.0f;
|
||||
|
||||
// Load a random video
|
||||
|
@ -117,6 +118,7 @@ void SystemScreenSaver::stopScreenSaver()
|
|||
{
|
||||
delete mVideoScreensaver;
|
||||
mVideoScreensaver = NULL;
|
||||
// we need this to loop through different videos
|
||||
mState = STATE_INACTIVE;
|
||||
PowerSaver::runningScreenSaver(false);
|
||||
}
|
||||
|
@ -291,7 +293,7 @@ void SystemScreenSaver::update(int deltaTime)
|
|||
{
|
||||
// Update the timer that swaps the videos
|
||||
mTimer += deltaTime;
|
||||
if (mTimer > SWAP_VIDEO_TIMEOUT)
|
||||
if (mTimer > mVideoChangeTime)
|
||||
{
|
||||
nextVideo();
|
||||
}
|
||||
|
|
|
@ -46,4 +46,5 @@ private:
|
|||
FileData* mCurrentGame;
|
||||
std::string mGameName;
|
||||
std::string mSystemName;
|
||||
int mVideoChangeTime;
|
||||
};
|
||||
|
|
|
@ -10,11 +10,21 @@
|
|||
#include "components/OptionListComponent.h"
|
||||
#include "components/MenuComponent.h"
|
||||
#include "guis/GuiMsgBox.h"
|
||||
#include "PowerSaver.h"
|
||||
|
||||
GuiScreensaverOptions::GuiScreensaverOptions(Window* window, const char* title) : GuiComponent(window), mMenu(window, title)
|
||||
{
|
||||
addChild(&mMenu);
|
||||
|
||||
// timeout to swap videos
|
||||
auto swap = std::make_shared<SliderComponent>(mWindow, 10.f, 1000.f, 1.f, "s");
|
||||
swap->setValue((float)(Settings::getInstance()->getInt("ScreenSaverSwapVideoTimeout") / (1000)));
|
||||
addWithLabel("SWAP VIDEO AFTER (SECS)", swap);
|
||||
addSaveFunc([swap] {
|
||||
Settings::getInstance()->setInt("ScreenSaverSwapVideoTimeout", (int)round(swap->getValue()) * (1000));
|
||||
PowerSaver::updateTimeouts();
|
||||
});
|
||||
|
||||
#ifdef _RPI_
|
||||
auto ss_omx = std::make_shared<SwitchComponent>(mWindow);
|
||||
ss_omx->setState(Settings::getInstance()->getBool("ScreenSaverOmxPlayer"));
|
||||
|
|
|
@ -25,7 +25,7 @@ void PowerSaver::updateTimeouts()
|
|||
{
|
||||
mScreenSaverTimeout = (unsigned int) Settings::getInstance()->getInt("ScreenSaverTime");
|
||||
mScreenSaverTimeout = mScreenSaverTimeout > 0 ? mScreenSaverTimeout - getMode() : -1;
|
||||
mPlayNextTimeout = 30000 - getMode();
|
||||
mPlayNextTimeout = Settings::getInstance()->getInt("ScreenSaverSwapVideoTimeout") - getMode();
|
||||
}
|
||||
|
||||
PowerSaver::mode PowerSaver::getMode()
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
class PowerSaver
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -94,6 +94,8 @@ void Settings::setDefaults()
|
|||
mBoolMap["ScreenSaverOmxPlayer"] = false;
|
||||
#endif
|
||||
|
||||
mIntMap["ScreenSaverSwapVideoTimeout"] = 30000;
|
||||
|
||||
mBoolMap["VideoAudio"] = true;
|
||||
mBoolMap["CaptionsCompatibility"] = true;
|
||||
// Audio out device for Video playback using OMX player.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "components/VideoComponent.h"
|
||||
#include "Renderer.h"
|
||||
#include "ThemeData.h"
|
||||
#include "Settings.h"
|
||||
#include "Util.h"
|
||||
#include "Window.h"
|
||||
#include "PowerSaver.h"
|
||||
|
@ -23,8 +24,11 @@ std::string getTitleFolder() {
|
|||
void writeSubtitle(const char* gameName, const char* systemName, bool always)
|
||||
{
|
||||
FILE* file = fopen(getTitlePath().c_str(), "w");
|
||||
int end = (int)(Settings::getInstance()->getInt("ScreenSaverSwapVideoTimeout") / (1000));
|
||||
if (always) {
|
||||
fprintf(file, "1\n00:00:01,000 --> 00:00:30,000\n");
|
||||
fprintf(file, "1\n00:00:01,000 --> 00:00:");
|
||||
fprintf(file, std::to_string(end).c_str());
|
||||
fprintf(file, ",000\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -34,9 +38,16 @@ void writeSubtitle(const char* gameName, const char* systemName, bool always)
|
|||
fprintf(file, "<i>%s</i>\n\n", systemName);
|
||||
|
||||
if (!always) {
|
||||
fprintf(file, "2\n00:00:26,000 --> 00:00:30,000\n");
|
||||
fprintf(file, "%s\n", gameName);
|
||||
fprintf(file, "<i>%s</i>\n", systemName);
|
||||
if (end > 12)
|
||||
{
|
||||
fprintf(file, "2\n00:00:");
|
||||
fprintf(file, std::to_string(end - 4).c_str());
|
||||
fprintf(file, ",000 --> 00:00:");
|
||||
fprintf(file, std::to_string(end).c_str());
|
||||
fprintf(file, ",000\n");
|
||||
fprintf(file, "%s\n", gameName);
|
||||
fprintf(file, "<i>%s</i>\n", systemName);
|
||||
}
|
||||
}
|
||||
|
||||
fflush(file);
|
||||
|
|
Loading…
Reference in a new issue