diff options
Diffstat (limited to 'src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx')
-rw-r--r-- | src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx b/src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx index a7b8419..782150e 100644 --- a/src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx +++ b/src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx @@ -49,7 +49,7 @@ #include <navit/track.h> #include <navit/vehicle.h> #include <navit/route.h> - +#include <navit/messages.h> #include "navigation-common-dbus.h" #include "log.h" @@ -73,11 +73,11 @@ class SpeechOutput SpeechOutput(DBus::Connection &connection) : DBus::ObjectProxy(connection, "/org/genivi/hmi/speechservice/SpeechOutput", - "org.genivi.navigation.hmi.speechservice.SpeechOutput") + "org.genivi.hmi.speechservice.SpeechOutput") { } - void notifyConnectionStatus(const uint32_t& connectionStatus) + void notifyConnectionStatus(const int32_t& connectionStatus) { } @@ -87,12 +87,12 @@ class SpeechOutput } - void notifyQueueStatus(const uint32_t& queueStatus) + void notifyQueueStatus(const int32_t& queueStatus) { } - void notifyTTSStatus(const uint32_t& ttsStatus) + void notifyTTSStatus(const int32_t& ttsStatus) { } @@ -690,12 +690,17 @@ void GuidanceObj::SetVoiceGuidance(const bool& activate, const std::string& voic void GuidanceObj::PlayVoiceManeuver() { +#if (SPEECH_ENABLED) message *messages; messages = navit_get_messages(get_navit()); -#if (SPEECH_ENABLED) - m_speechoutput->openPrompter(GENIVI_SPEECHSERVICE_CT_NAVIGATION,GENIVI_SPEECHSERVICE_PPT_NAVIGATION); - m_speechoutput->addTextChunk(messages); - m_speechoutput->closePrompter(); + if(messages){ + m_speechoutput->openPrompter(GENIVI_SPEECHSERVICE_CT_NAVIGATION,GENIVI_SPEECHSERVICE_PPT_NAVIGATION); + while(messages){ + m_speechoutput->addTextChunk(std::string(messages->text)); + messages=messages->next; + } + m_speechoutput->closePrompter(); + } #endif } @@ -754,6 +759,7 @@ GuidanceObj_Callback(GuidanceObj *obj) } obj->m_guidance->ManeuverChanged(maneuver); LOG_INFO(gCtx,"Maneuver: %d",maneuver); + obj->PlayVoiceManeuver(); } else { LOG_ERROR(gCtx,"Maneuver item not found: %p",item); } |