From 6d7d970e17d12fa41cf3be3c757325e96d16af77 Mon Sep 17 00:00:00 2001 From: Die4Ever Date: Mon, 26 Sep 2022 05:44:37 -0500 Subject: [PATCH] VIDEO: subtitles dev mode config --- video/subtitles.cpp | 21 +++++++++++++++++---- video/subtitles.h | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/video/subtitles.cpp b/video/subtitles.cpp index f5d97f8a576..777ce2c25d2 100644 --- a/video/subtitles.cpp +++ b/video/subtitles.cpp @@ -31,6 +31,7 @@ #include "graphics/surface.h" #include "video/subtitles.h" +#include "common/config-manager.h" namespace Video { @@ -118,8 +119,10 @@ bool SRTParser::parseFile(const char *fname) { cleanup(); - if (!f.open(fname)) + if (!f.open(fname)) { + _entries.push_back(new SRTEntry(0, 0, 99999999, fname)); return false; + } byte buf[3]; f.read(buf, 3); @@ -230,6 +233,7 @@ Common::String SRTParser::getSubtitle(uint32 timestamp) { Subtitles::Subtitles() : _loaded(false), _font(nullptr), _hPad(0), _vPad(0) { _surface = new Graphics::Surface(); + _subtitleDev = ConfMan.getBool("subtitle_dev"); } Subtitles::~Subtitles() { @@ -284,10 +288,19 @@ void Subtitles::setPadding(uint16 horizontal, uint16 vertical) { } void Subtitles::drawSubtitle(uint32 timestamp, bool force) { - if (!_loaded) - return; - Common::String subtitle = _srtParser.getSubtitle(timestamp); + + if (!_loaded) { + if (!_subtitleDev) + return; + uint32 hours, mins, secs, msecs; + secs = timestamp / 1000; + hours = secs / 3600; + mins = (secs / 60) % 60; + secs %= 60; + msecs = timestamp % 1000; + subtitle += " " + Common::String::format("%u:%u:%u,%u", hours, mins, secs, msecs); + } if (!force && subtitle == _prevSubtitle) return; diff --git a/video/subtitles.h b/video/subtitles.h index 0e5cdf95635..364c4c9f89b 100644 --- a/video/subtitles.h +++ b/video/subtitles.h @@ -73,6 +73,7 @@ public: private: SRTParser _srtParser; bool _loaded; + bool _subtitleDev; const Graphics::Font *_font; int _fontHeight;