From 090ed5044a26d47484e7d1d9a02326f6d7826687 Mon Sep 17 00:00:00 2001 From: Henry Sternberg Date: Tue, 8 Jul 2025 08:49:26 +0100 Subject: [PATCH] [routing] Improved TTS for roundabouts Signed-off-by: Henry Sternberg --- routing/turns_notification_manager.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/routing/turns_notification_manager.cpp b/routing/turns_notification_manager.cpp index 10641edb9..d2a33d012 100644 --- a/routing/turns_notification_manager.cpp +++ b/routing/turns_notification_manager.cpp @@ -77,9 +77,12 @@ std::string NotificationManager::GenerateTurnText(uint32_t distanceUnits, uint8_ { auto const lengthUnits = m_settings.GetLengthUnits(); - if (turn.m_turn != CarDirection::None) + if (turn.m_turn != CarDirection::None && turn.m_turn != CarDirection::EnterRoundAbout) return m_getTtsText.GetTurnNotification( {distanceUnits, exitNum, useThenInsteadOfDistance, turn.m_turn, lengthUnits, nextStreetInfo}); + else if (turn.m_turn == CarDirection::EnterRoundAbout) // Don't include roundabout street name in TTS + return m_getTtsText.GetTurnNotification( + {distanceUnits, exitNum, useThenInsteadOfDistance, turn.m_turn, lengthUnits}); return m_getTtsText.GetTurnNotification({distanceUnits, exitNum, useThenInsteadOfDistance, turn.m_pedestrianTurn, lengthUnits, nextStreetInfo}); } @@ -133,9 +136,9 @@ void NotificationManager::GenerateTurnNotifications(std::vector co return; } - if (distBetweenTurnsMeters < kDistanceNotifyThresholdM) + if ((distBetweenTurnsMeters < kDistanceNotifyThresholdM) || IsClassicEntranceToRoundabout(firstTurn, secondTurn)) { - // distanceUnits is not used because of "Then" is used + // distanceUnits is not used because "Then" is used distBetweenTurnsMeters = 0; }