Update the libspeechd_loader

This commit is contained in:
Cheng Zhao 2015-12-08 10:26:32 +08:00
parent e8b5a6dedf
commit c3f7f2447c
2 changed files with 15 additions and 0 deletions

View file

@ -33,6 +33,7 @@ class LibSpeechdLoader {
decltype(&::spd_set_synthesis_voice) spd_set_synthesis_voice;
decltype(&::spd_list_modules) spd_list_modules;
decltype(&::spd_set_output_module) spd_set_output_module;
decltype(&::spd_set_language) spd_set_language;
private:

View file

@ -201,6 +201,19 @@ bool LibSpeechdLoader::Load(const std::string& library_name) {
return false;
}
#if defined(LIBRARY_LOADER_OUT_RELEASE_GEN_LIBRARY_LOADERS_LIBSPEECHD_H_DLOPEN)
spd_set_language =
reinterpret_cast<decltype(this->spd_set_language)>(
dlsym(library_, "spd_set_language"));
#endif
#if defined(LIBRARY_LOADER_OUT_RELEASE_GEN_LIBRARY_LOADERS_LIBSPEECHD_H_DT_NEEDED)
spd_set_language = &::spd_set_language;
#endif
if (!spd_set_language) {
CleanUp(true);
return false;
}
loaded_ = true;
return true;
@ -227,5 +240,6 @@ void LibSpeechdLoader::CleanUp(bool unload) {
spd_set_synthesis_voice = NULL;
spd_list_modules = NULL;
spd_set_output_module = NULL;
spd_set_language = NULL;
}