loquendo_tts_driver.cpp
Go to the documentation of this file.
00001 #include "loquendo_tts_driver.h"
00002 
00003 #include "exceptions.h"
00004 #include "loquendo_tts_exceptions.h"
00005 
00006 LoquendoTtsDriver::LoquendoTtsDriver(void)
00007 {
00008   tts = NULL;
00009   setDriverId("loquendo_tts");
00010 }
00011 
00012 bool LoquendoTtsDriver::openDriver(void)
00013 { 
00014   try
00015   {
00016     this->lock();
00017       tts = new CLoquendoTTS(config_.speaker);
00018     this->unlock();
00019   }
00020   catch(CException &e)
00021   {
00022     ROS_FATAL("'%s'", e.what().c_str());
00023     this->unlock();
00024 
00025     return false;
00026   }
00027 
00028   return true;
00029 }
00030 
00031 bool LoquendoTtsDriver::closeDriver(void)
00032 {
00033   delete tts;
00034   return true;
00035 }
00036 
00037 bool LoquendoTtsDriver::startDriver(void)
00038 {
00039   return true;
00040 }
00041 
00042 bool LoquendoTtsDriver::stopDriver(void)
00043 {
00044   return true;
00045 }
00046 
00047 void LoquendoTtsDriver::config_update(const Config& new_cfg, uint32_t level)
00048 {
00049   this->lock();
00050   
00051   try
00052   {
00053     // depending on current state
00054     // update driver with new_cfg data
00055     switch(this->getState())
00056     {
00057       case LoquendoTtsDriver::CLOSED:
00058         break;
00059 
00060       case LoquendoTtsDriver::OPENED:
00061         break;
00062 
00063       case LoquendoTtsDriver::RUNNING:
00064         break;
00065     }
00066 
00067     // update current speaker voice
00068     if( tts != NULL )
00069       tts->setCurrentSpeaker(new_cfg.speaker);
00070   }
00071   catch(CException &e)
00072   {
00073     ROS_ERROR("'%s'", e.what().c_str());
00074   }
00075 
00076   // save the current configuration
00077   this->config_ = new_cfg;
00078 
00079   this->unlock();
00080 }
00081 
00082 LoquendoTtsDriver::~LoquendoTtsDriver()
00083 {
00084   //delete tts;
00085 }
00086 
00087 bool LoquendoTtsDriver::playSpeech(const std::string & msg)
00088 {
00089 //   try
00090 //   {
00091     tts->playSpeech(msg);
00092     return true;
00093 //   }
00094 //   catch(CLoquendoTTSException &e)
00095 //   {
00096 //     ROS_ERROR("'%s'", e.what().c_str());
00097 //     return false;
00098 //   }
00099 }
00100 
00101 bool LoquendoTtsDriver::stopSpeech(void)
00102 {
00103 //   try
00104 //   {
00105     tts->stopSpeech();
00106     return true;
00107 //   }
00108 //   catch(CLoquendoTTSException &e)
00109 //   {
00110 //     ROS_ERROR("'%s'", e.what().c_str());
00111 //     return false;
00112 //   }
00113 }
00114 
00115 bool LoquendoTtsDriver::pauseSpeech(void)
00116 {
00117 //   try
00118 //   {
00119     tts->pauseSpeech();
00120     return true;
00121 //   }
00122 //   catch(CLoquendoTTSException &e)
00123 //   {
00124 //     ROS_ERROR("'%s'", e.what().c_str());
00125 //     return false;
00126 //   }
00127 }
00128 
00129 bool LoquendoTtsDriver::resumeSpeech(void)
00130 {
00131 //   try
00132 //   {
00133     tts->resumeSpeech();
00134     return true;
00135 //   }
00136 //   catch(CLoquendoTTSException &e)
00137 //   {
00138 //     ROS_ERROR("'%s'", e.what().c_str());
00139 //     return false;
00140 //   }
00141 }
00142 
00143 bool LoquendoTtsDriver::isBusy(void)
00144 {
00145   //{ TO_BE_INIT, AVAILABLE, BUSY, PAUSED };
00146   if( tts->getCurrentState() != CLoquendoTTS::AVAILABLE)
00147     return true;
00148   else
00149     return false;
00150 }
00151 
00152 


iri_loquendo_tts
Author(s): Joan Perez, jnperez at iri.upc.edu
autogenerated on Fri Dec 6 2013 22:13:38