From ef4cd5f5194229114a00e8d1fc0c8f64d6ffefe3 Mon Sep 17 00:00:00 2001
From: Thomas Goyne <plorkyeran@aegisub.org>
Date: Tue, 16 Oct 2012 14:08:20 -0700
Subject: [PATCH] Play right-clicked syllables when in karaoke mode

---
 aegisub/src/audio_timing_karaoke.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/aegisub/src/audio_timing_karaoke.cpp b/aegisub/src/audio_timing_karaoke.cpp
index 9a91590f3..205d2c1e5 100644
--- a/aegisub/src/audio_timing_karaoke.cpp
+++ b/aegisub/src/audio_timing_karaoke.cpp
@@ -136,7 +136,7 @@ public:
 	void ModifyStart(int delta);
 	bool IsNearbyMarker(int ms, int sensitivity) const;
 	std::vector<AudioMarker*> OnLeftClick(int ms, bool, int sensitivity, int);
-	std::vector<AudioMarker*> OnRightClick(int, bool, int, int) { return std::vector<AudioMarker*>(); }
+	std::vector<AudioMarker*> OnRightClick(int ms, bool, int, int);
 	void OnMarkerDrag(std::vector<AudioMarker*> const& marker, int new_position, int);
 
 	AudioTimingControllerKaraoke(agi::Context *c, AssKaraoke *kara, agi::signal::Connection& file_changed);
@@ -362,6 +362,16 @@ std::vector<AudioMarker*> AudioTimingControllerKaraoke::OnLeftClick(int ms, bool
 	return std::vector<AudioMarker*>();
 }
 
+std::vector<AudioMarker*> AudioTimingControllerKaraoke::OnRightClick(int ms, bool, int, int) {
+	cur_syl = distance(markers.begin(), lower_bound(markers.begin(), markers.end(), ms));
+
+	AnnounceUpdatedPrimaryRange();
+	AnnounceUpdatedStyleRanges();
+	c->audioController->PlayPrimaryRange();
+
+	return std::vector<AudioMarker*>();
+}
+
 int AudioTimingControllerKaraoke::MoveMarker(KaraokeMarker *marker, int new_position) {
 	// No rearranging of syllables allowed
 	new_position = mid(
-- 
GitLab