From 9009c963e3e321c5910af7b73e7da8f2c3eb8f25 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Tue, 9 Oct 2012 20:39:43 -0700 Subject: [PATCH] Fix rounding errors that resulted in karaoke syllables drifting --- aegisub/src/ass_karaoke.cpp | 2 +- aegisub/src/audio_timing_karaoke.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/aegisub/src/ass_karaoke.cpp b/aegisub/src/ass_karaoke.cpp index 4bf6c4447..cd9c9375e 100644 --- a/aegisub/src/ass_karaoke.cpp +++ b/aegisub/src/ass_karaoke.cpp @@ -40,7 +40,7 @@ wxString AssKaraoke::Syllable::GetText(bool k_tag) const { wxString ret; if (k_tag) - ret = wxString::Format("{%s%d}", tag_type, duration / 10); + ret = wxString::Format("{%s%d}", tag_type, (duration + 5) / 10); size_t idx = 0; for (std::map::const_iterator ovr = ovr_tags.begin(); ovr != ovr_tags.end(); ++ovr) { diff --git a/aegisub/src/audio_timing_karaoke.cpp b/aegisub/src/audio_timing_karaoke.cpp index 07cd16e17..9a91590f3 100644 --- a/aegisub/src/audio_timing_karaoke.cpp +++ b/aegisub/src/audio_timing_karaoke.cpp @@ -375,7 +375,7 @@ int AudioTimingControllerKaraoke::MoveMarker(KaraokeMarker *marker, int new_posi marker->Move(new_position); size_t syl = marker - &markers.front() + 1; - kara->SetStartTime(syl, new_position); + kara->SetStartTime(syl, (new_position + 5) / 10 * 10); labels[syl - 1].range = TimeRange(labels[syl - 1].range.begin(), new_position); labels[syl].range = TimeRange(new_position, labels[syl].range.end());