Browse Source

Don't display previous subtitles all at once when subtitles are enabled mid-audio play

(cherry picked from commit 40f200e066)
working-2022q1
ZarothYe 3 years ago committed by rarified
parent
commit
c0e83259f3
  1. 10
      Sources/Plasma/PubUtilLib/plAudio/plWin32Sound.cpp

10
Sources/Plasma/PubUtilLib/plAudio/plWin32Sound.cpp

@ -111,14 +111,16 @@ void plWin32Sound::IFreeBuffers( void )
void plWin32Sound::Update() void plWin32Sound::Update()
{ {
plSoundBuffer* buf = GetDataBuffer(); plSoundBuffer* buf = GetDataBuffer();
if (plgAudioSys::AreSubtitlesEnabled() && buf != nullptr) { if (buf != nullptr) {
plSrtFileReader* srtReader = buf->GetSrtReader(); plSrtFileReader* srtReader = buf->GetSrtReader();
if (srtReader != nullptr) { if (srtReader != nullptr) {
uint32_t currentTimeMs = (uint32_t)(GetActualTimeSec() * 1000.0f); uint32_t currentTimeMs = (uint32_t)(GetActualTimeSec() * 1000.0f);
while (plSrtEntry* nextEntry = srtReader->GetNextEntryStartingBeforeTime(currentTimeMs)) { while (plSrtEntry* nextEntry = srtReader->GetNextEntryStartingBeforeTime(currentTimeMs)) {
// add a plSubtitleMsg to go... to whoever is listening (probably the KI) if (plgAudioSys::AreSubtitlesEnabled()) {
plSubtitleMsg* msg = new plSubtitleMsg(nextEntry->GetSubtitleText(), nextEntry->GetSpeakerName()); // add a plSubtitleMsg to go... to whoever is listening (probably the KI)
msg->Send(); plSubtitleMsg* msg = new plSubtitleMsg(nextEntry->GetSubtitleText(), nextEntry->GetSpeakerName());
msg->Send();
}
} }
} }
} }

Loading…
Cancel
Save