mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-26 08:05:38 +00:00
Cosmetic code cleanup of VideoComponent.
This commit is contained in:
parent
df18a822b7
commit
623c302174
|
@ -18,11 +18,6 @@
|
||||||
|
|
||||||
#define SCREENSAVER_FADE_IN_TIME 1200
|
#define SCREENSAVER_FADE_IN_TIME 1200
|
||||||
|
|
||||||
void VideoComponent::setScreensaverMode(bool isScreensaver)
|
|
||||||
{
|
|
||||||
mScreensaverMode = isScreensaver;
|
|
||||||
}
|
|
||||||
|
|
||||||
VideoComponent::VideoComponent(
|
VideoComponent::VideoComponent(
|
||||||
Window* window)
|
Window* window)
|
||||||
: GuiComponent(window),
|
: GuiComponent(window),
|
||||||
|
@ -61,24 +56,6 @@ VideoComponent::~VideoComponent()
|
||||||
stopVideo();
|
stopVideo();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoComponent::onOriginChanged()
|
|
||||||
{
|
|
||||||
// Update the embeded static image.
|
|
||||||
mStaticImage.setOrigin(mOrigin);
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onPositionChanged()
|
|
||||||
{
|
|
||||||
// Update the embeded static image.
|
|
||||||
mStaticImage.setPosition(mPosition);
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onSizeChanged()
|
|
||||||
{
|
|
||||||
// Update the embeded static image.
|
|
||||||
mStaticImage.onSizeChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool VideoComponent::setVideo(std::string path)
|
bool VideoComponent::setVideo(std::string path)
|
||||||
{
|
{
|
||||||
// Convert the path into a generic format.
|
// Convert the path into a generic format.
|
||||||
|
@ -101,6 +78,11 @@ bool VideoComponent::setVideo(std::string path)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VideoComponent::setDefaultVideo()
|
||||||
|
{
|
||||||
|
setVideo(mConfig.defaultVideoPath);
|
||||||
|
}
|
||||||
|
|
||||||
void VideoComponent::setImage(std::string path)
|
void VideoComponent::setImage(std::string path)
|
||||||
{
|
{
|
||||||
// Check that the image has changed.
|
// Check that the image has changed.
|
||||||
|
@ -111,17 +93,106 @@ void VideoComponent::setImage(std::string path)
|
||||||
mStaticImagePath = path;
|
mStaticImagePath = path;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoComponent::setDefaultVideo()
|
void VideoComponent::setScreensaverMode(bool isScreensaver)
|
||||||
{
|
{
|
||||||
setVideo(mConfig.defaultVideoPath);
|
mScreensaverMode = isScreensaver;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoComponent::setOpacity(unsigned char opacity)
|
void VideoComponent::setOpacity(unsigned char opacity)
|
||||||
{
|
{
|
||||||
// Set the opacity for the embedded static image.
|
|
||||||
mOpacity = opacity;
|
mOpacity = opacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onShow()
|
||||||
|
{
|
||||||
|
mBlockPlayer = false;
|
||||||
|
mPause = false;
|
||||||
|
mShowing = true;
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onHide()
|
||||||
|
{
|
||||||
|
mShowing = false;
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onPauseVideo()
|
||||||
|
{
|
||||||
|
mBlockPlayer = true;
|
||||||
|
mPause = true;
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onUnpauseVideo()
|
||||||
|
{
|
||||||
|
mBlockPlayer = false;
|
||||||
|
mPause = false;
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onScreensaverActivate()
|
||||||
|
{
|
||||||
|
mBlockPlayer = true;
|
||||||
|
mPause = true;
|
||||||
|
if (Settings::getInstance()->getString("ScreensaverType") == "dim")
|
||||||
|
stopVideo();
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onScreensaverDeactivate()
|
||||||
|
{
|
||||||
|
mBlockPlayer = false;
|
||||||
|
// Stop video when deactivating the screensaver to force a reload of the
|
||||||
|
// static image (if the theme is configured as such).
|
||||||
|
stopVideo();
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onGameLaunchedActivate()
|
||||||
|
{
|
||||||
|
mGameLaunched = true;
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onGameLaunchedDeactivate()
|
||||||
|
{
|
||||||
|
mGameLaunched = false;
|
||||||
|
stopVideo();
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::topWindow(bool isTop)
|
||||||
|
{
|
||||||
|
if (isTop) {
|
||||||
|
mBlockPlayer = false;
|
||||||
|
mPause = false;
|
||||||
|
// Stop video when closing the menu to force a reload of the
|
||||||
|
// static image (if the theme is configured as such).
|
||||||
|
stopVideo();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mBlockPlayer = true;
|
||||||
|
mPause = true;
|
||||||
|
}
|
||||||
|
manageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onOriginChanged()
|
||||||
|
{
|
||||||
|
mStaticImage.setOrigin(mOrigin);
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onPositionChanged()
|
||||||
|
{
|
||||||
|
mStaticImage.setPosition(mPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
void VideoComponent::onSizeChanged()
|
||||||
|
{
|
||||||
|
mStaticImage.onSizeChanged();
|
||||||
|
}
|
||||||
|
|
||||||
void VideoComponent::render(const Transform4x4f& parentTrans)
|
void VideoComponent::render(const Transform4x4f& parentTrans)
|
||||||
{
|
{
|
||||||
if (!isVisible())
|
if (!isVisible())
|
||||||
|
@ -207,35 +278,24 @@ std::vector<HelpPrompt> VideoComponent::getHelpPrompts()
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoComponent::handleStartDelay()
|
void VideoComponent::update(int deltaTime)
|
||||||
{
|
{
|
||||||
if (mBlockPlayer)
|
if (mBlockPlayer) {
|
||||||
return;
|
setImage(mStaticImagePath);
|
||||||
|
|
||||||
// Only play if any delay has timed out.
|
|
||||||
if (mStartDelayed) {
|
|
||||||
// If the setting to override the theme-supplied video delay setting has been enabled,
|
|
||||||
// then play the video immediately.
|
|
||||||
if (!Settings::getInstance()->getBool("PlayVideosImmediately")) {
|
|
||||||
// If there is a video file available but no static image, then start playing the
|
|
||||||
// video immediately regardless of theme configuration or settings.
|
|
||||||
if (mStaticImagePath != "") {
|
|
||||||
if (mStartTime > SDL_GetTicks()) {
|
|
||||||
// Timeout not yet completed.
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
// Completed.
|
|
||||||
mStartDelayed = false;
|
|
||||||
// Clear the playing flag so startVideo works.
|
|
||||||
mIsPlaying = false;
|
|
||||||
startVideo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::handleLooping()
|
manageState();
|
||||||
{
|
|
||||||
|
// Fade in videos, which is handled a bit differently depending on whether it's the
|
||||||
|
// video screensaver that is running, or if it's the video in the gamelist.
|
||||||
|
if (mScreensaverMode && mFadeIn < 1.0f)
|
||||||
|
mFadeIn = Math::clamp(mFadeIn + (deltaTime /
|
||||||
|
static_cast<float>(SCREENSAVER_FADE_IN_TIME)), 0.0, 1.0);
|
||||||
|
else if (mFadeIn < 1.0f)
|
||||||
|
mFadeIn = Math::clamp(mFadeIn + 0.01, 0.0f, 1.0f);
|
||||||
|
|
||||||
|
GuiComponent::update(deltaTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoComponent::startVideoWithDelay()
|
void VideoComponent::startVideoWithDelay()
|
||||||
|
@ -261,24 +321,31 @@ void VideoComponent::startVideoWithDelay()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoComponent::update(int deltaTime)
|
void VideoComponent::handleStartDelay()
|
||||||
{
|
{
|
||||||
if (mBlockPlayer) {
|
if (mBlockPlayer)
|
||||||
setImage(mStaticImagePath);
|
return;
|
||||||
|
|
||||||
|
// Only play if any delay has timed out.
|
||||||
|
if (mStartDelayed) {
|
||||||
|
// If the setting to override the theme-supplied video delay setting has been enabled,
|
||||||
|
// then play the video immediately.
|
||||||
|
if (!Settings::getInstance()->getBool("PlayVideosImmediately")) {
|
||||||
|
// If there is a video file available but no static image, then start playing the
|
||||||
|
// video immediately regardless of theme configuration or settings.
|
||||||
|
if (mStaticImagePath != "") {
|
||||||
|
if (mStartTime > SDL_GetTicks()) {
|
||||||
|
// Timeout not yet completed.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
manageState();
|
}
|
||||||
|
// Completed.
|
||||||
// Fade in videos, which is handled a bit differently depending on whether it's the
|
mStartDelayed = false;
|
||||||
// video screensaver that is running, or if it's the video in the gamelist.
|
// Clear the playing flag so startVideo works.
|
||||||
if (mScreensaverMode && mFadeIn < 1.0f)
|
mIsPlaying = false;
|
||||||
mFadeIn = Math::clamp(mFadeIn + (deltaTime /
|
startVideo();
|
||||||
static_cast<float>(SCREENSAVER_FADE_IN_TIME)), 0.0, 1.0);
|
}
|
||||||
else if (mFadeIn < 1.0f)
|
|
||||||
mFadeIn = Math::clamp(mFadeIn + 0.01, 0.0f, 1.0f);
|
|
||||||
|
|
||||||
GuiComponent::update(deltaTime);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoComponent::manageState()
|
void VideoComponent::manageState()
|
||||||
|
@ -314,79 +381,3 @@ void VideoComponent::manageState()
|
||||||
if (mGameLaunched && show && !mPause)
|
if (mGameLaunched && show && !mPause)
|
||||||
mPause = true;
|
mPause = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoComponent::onShow()
|
|
||||||
{
|
|
||||||
mBlockPlayer = false;
|
|
||||||
mPause = false;
|
|
||||||
mShowing = true;
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onHide()
|
|
||||||
{
|
|
||||||
mShowing = false;
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onPauseVideo()
|
|
||||||
{
|
|
||||||
mBlockPlayer = true;
|
|
||||||
mPause = true;
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onUnpauseVideo()
|
|
||||||
{
|
|
||||||
mBlockPlayer = false;
|
|
||||||
mPause = false;
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onScreensaverActivate()
|
|
||||||
{
|
|
||||||
mBlockPlayer = true;
|
|
||||||
mPause = true;
|
|
||||||
if (Settings::getInstance()->getString("ScreensaverType") == "dim")
|
|
||||||
stopVideo();
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onScreensaverDeactivate()
|
|
||||||
{
|
|
||||||
mBlockPlayer = false;
|
|
||||||
// Stop video when deactivating the screensaver to force a reload of the
|
|
||||||
// static image (if the theme is configured as such).
|
|
||||||
stopVideo();
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onGameLaunchedActivate()
|
|
||||||
{
|
|
||||||
mGameLaunched = true;
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::onGameLaunchedDeactivate()
|
|
||||||
{
|
|
||||||
mGameLaunched = false;
|
|
||||||
stopVideo();
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VideoComponent::topWindow(bool isTop)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (isTop) {
|
|
||||||
mBlockPlayer = false;
|
|
||||||
mPause = false;
|
|
||||||
// Stop video when closing the menu to force a reload of the
|
|
||||||
// static image (if the theme is configured as such).
|
|
||||||
stopVideo();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
mBlockPlayer = true;
|
|
||||||
mPause = true;
|
|
||||||
}
|
|
||||||
manageState();
|
|
||||||
}
|
|
||||||
|
|
|
@ -32,14 +32,14 @@ public:
|
||||||
|
|
||||||
// Loads the video at the given filepath.
|
// Loads the video at the given filepath.
|
||||||
bool setVideo(std::string path);
|
bool setVideo(std::string path);
|
||||||
// Loads a static image that is displayed if the video cannot be played.
|
|
||||||
void setImage(std::string path);
|
|
||||||
|
|
||||||
// Configures the component to show the default video.
|
// Configures the component to show the default video.
|
||||||
void setDefaultVideo();
|
void setDefaultVideo();
|
||||||
|
// Loads a static image that is displayed if the video cannot be played.
|
||||||
|
void setImage(std::string path);
|
||||||
// Sets whether it's going to render in screensaver mode.
|
// Sets whether it's going to render in screensaver mode.
|
||||||
void setScreensaverMode(bool isScreensaver);
|
void setScreensaverMode(bool isScreensaver);
|
||||||
|
// Set the opacity for the embedded static image.
|
||||||
|
void setOpacity(unsigned char opacity) override;
|
||||||
|
|
||||||
virtual void onShow() override;
|
virtual void onShow() override;
|
||||||
virtual void onHide() override;
|
virtual void onHide() override;
|
||||||
|
@ -52,10 +52,10 @@ public:
|
||||||
virtual void onGameLaunchedDeactivate() override;
|
virtual void onGameLaunchedDeactivate() override;
|
||||||
virtual void topWindow(bool isTop) override;
|
virtual void topWindow(bool isTop) override;
|
||||||
|
|
||||||
|
// These functions update the embedded static image.
|
||||||
void onOriginChanged() override;
|
void onOriginChanged() override;
|
||||||
void onPositionChanged() override;
|
void onPositionChanged() override;
|
||||||
void onSizeChanged() override;
|
void onSizeChanged() override;
|
||||||
void setOpacity(unsigned char opacity) override;
|
|
||||||
|
|
||||||
void render(const Transform4x4f& parentTrans) override;
|
void render(const Transform4x4f& parentTrans) override;
|
||||||
void renderSnapshot(const Transform4x4f& parentTrans);
|
void renderSnapshot(const Transform4x4f& parentTrans);
|
||||||
|
@ -87,15 +87,13 @@ private:
|
||||||
virtual void stopVideo() {};
|
virtual void stopVideo() {};
|
||||||
// Pause the video when a game has been launched.
|
// Pause the video when a game has been launched.
|
||||||
virtual void pauseVideo() {};
|
virtual void pauseVideo() {};
|
||||||
// Handle looping the video. Must be called periodically.
|
// Handle looping of the video. Must be called periodically.
|
||||||
virtual void handleLooping();
|
virtual void handleLooping() {};
|
||||||
|
|
||||||
// Start the video after any configured delay.
|
// Start the video after any configured delay.
|
||||||
void startVideoWithDelay();
|
void startVideoWithDelay();
|
||||||
|
|
||||||
// Handle any delay to the start of playing the video clip. Must be called periodically.
|
// Handle any delay to the start of playing the video clip. Must be called periodically.
|
||||||
void handleStartDelay();
|
void handleStartDelay();
|
||||||
|
|
||||||
// Manage the playing state of the component.
|
// Manage the playing state of the component.
|
||||||
void manageState();
|
void manageState();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue