23 #include "naoqi_broker.h" 25 #include <alcommon/albroker.h> 26 #include <alcommon/albrokermanager.h> 27 #include <alcommon/almodule.h> 28 #include <alcore/altypes.h> 29 #include <alproxies/alaudioplayerproxy.h> 30 #include <alproxies/allauncherproxy.h> 31 #include <alproxies/alloggerproxy.h> 32 #include <baseapp/main_thread.h> 33 #include <baseapp/run.h> 34 #include <core/exception.h> 35 #include <core/threading/thread.h> 36 #include <plugin/manager.h> 37 #include <utils/system/dynamic_module/module.h> 57 : AL::ALModule(broker, name), broker(broker)
59 setModuleDescription(
"Fawkes integration module");
61 AL::ALPtr<AL::ALLoggerProxy> logger = broker->getLoggerProxy();
64 logger->info(
"NaoQiFawkes",
"*** Initializing embedded Fawkes");
76 .
loggers(
"console;syslog:NaoQiFawkes")
80 if (fawkes::runtime::init(init_options) != 0) {
82 logger->info(
"NaoQiFawkes",
"--- Fawkes initialization failed");
83 play_sound(RESDIR
"/sounds/naoshutdown.wav");
85 logger->info(
"NaoQiFawkes",
"*** Starting embedded Fawkes");
87 logger->info(
"NaoQiFawkes",
"*** Embedded Fawkes initialization done");
88 play_sound(RESDIR
"/sounds/naostartup.wav");
97 logger->info(
"NaoQiFawkes",
"--- Fawkes initialization failed, exception follows.");
98 logger->info(
"NaoQiFawkes", message);
99 play_sound(RESDIR
"/sounds/naoshutdown.wav");
109 fawkes::runtime::main_thread->
cancel();
110 fawkes::runtime::main_thread->
join();
111 fawkes::runtime::cleanup();
122 AL::ALPtr<AL::ALLauncherProxy> launcher(
new AL::ALLauncherProxy(broker));
123 bool is_auplayer_available = launcher->isModulePresent(
"ALAudioPlayer");
125 if (is_auplayer_available) {
126 AL::ALPtr<AL::ALAudioPlayerProxy> auplayer(
new AL::ALAudioPlayerProxy(broker));
127 auplayer->playFile(filename);
129 }
catch (AL::ALError &e) {
134 AL::ALPtr<AL::ALBroker> broker;
142 _createModule(AL::ALPtr<AL::ALBroker> broker)
147 AL::ALPtr<AL::ALLoggerProxy> logger = broker->getLoggerProxy();
149 logger->info(
"NaoQiFawkes",
"*** Setting broker stuff");
150 AL::ALBrokerManager::setInstance(broker->fBrokerManager.lock());
151 AL::ALBrokerManager::getInstance()->addBroker(broker);
153 fawkes::naoqi::broker = broker;
156 logger->info(
"NaoQiFawkes",
"*** Instantiating Module");
157 AL::ALModule::createModule<NaoFawkesModule>(broker,
"NaoFawkesModule");
void full_start()
Start the thread and wait until once() completes.
virtual ~NaoFawkesModule()
Destructor.
InitOptions & default_plugin(const char *default_plugin)
Set additional default plugin name.
InitOptions & load_plugins(const char *plugin_list)
Set list of plugins to load during startup.
Message iterator for exceptions.
Initialization options class.
iterator end()
Get end iterator for messages.
Base class for exceptions in Fawkes.
Do not unload the library during dlclose().
iterator begin()
Get iterator for messages.
InitOptions & plugin_module_flags(Module::ModuleFlags flags)
Set module flags.
NaoFawkesModule(AL::ALPtr< AL::ALBroker > broker, const std::string &name)
Constructor.
void cancel()
Cancel a thread.
InitOptions & net_service_name(const char *service_name)
Set Fawkes network service name.
void play_sound(const char *filename)
Play startup sound.
InitOptions & loggers(const char *loggers)
Set loggers.
void join()
Join the thread.
Default flags, these are MODULE_BIND_GLOBAL, MODULE_BIND_NOW and MODULE_BIND_DEEP.