23 #include "naoqi_broker.h" 25 #include <baseapp/run.h> 26 #include <baseapp/main_thread.h> 27 #include <core/exception.h> 28 #include <core/threading/thread.h> 29 #include <plugin/manager.h> 30 #include <utils/system/dynamic_module/module.h> 32 #include <alcore/altypes.h> 33 #include <alcommon/albroker.h> 34 #include <alcommon/albrokermanager.h> 35 #include <alcommon/almodule.h> 36 #include <alproxies/allauncherproxy.h> 37 #include <alproxies/alaudioplayerproxy.h> 38 #include <alproxies/alloggerproxy.h> 60 :
AL::ALModule(broker, name), broker(broker)
62 setModuleDescription(
"Fawkes integration module");
64 AL::ALPtr<AL::ALLoggerProxy> logger = broker->getLoggerProxy();
67 logger->info(
"NaoQiFawkes",
"*** Initializing embedded Fawkes");
79 .
loggers(
"console;syslog:NaoQiFawkes")
83 if (fawkes::runtime::init(init_options) != 0) {
85 logger->info(
"NaoQiFawkes",
"--- Fawkes initialization failed");
86 play_sound(RESDIR
"/sounds/naoshutdown.wav");
89 logger->info(
"NaoQiFawkes",
"*** Starting embedded Fawkes");
91 logger->info(
"NaoQiFawkes",
"*** Embedded Fawkes initialization done");
92 play_sound(RESDIR
"/sounds/naostartup.wav");
97 if (i != e.
begin()) message +=
"\n";
100 logger->info(
"NaoQiFawkes",
101 "--- Fawkes initialization failed, exception follows.");
102 logger->info(
"NaoQiFawkes", message);
103 play_sound(RESDIR
"/sounds/naoshutdown.wav");
114 fawkes::runtime::main_thread->
cancel();
115 fawkes::runtime::main_thread->
join();
116 fawkes::runtime::cleanup();
127 AL::ALPtr<AL::ALLauncherProxy> launcher(
new AL::ALLauncherProxy(broker));
128 bool is_auplayer_available = launcher->isModulePresent(
"ALAudioPlayer");
130 if (is_auplayer_available) {
131 AL::ALPtr<AL::ALAudioPlayerProxy>
132 auplayer(
new AL::ALAudioPlayerProxy(broker));
133 auplayer->playFile(filename);
135 }
catch (AL::ALError& e) {}
138 AL::ALPtr<AL::ALBroker> broker;
148 _createModule(AL::ALPtr<AL::ALBroker> broker)
153 AL::ALPtr<AL::ALLoggerProxy> logger = broker->getLoggerProxy();
155 logger->info(
"NaoQiFawkes",
"*** Setting broker stuff");
156 AL::ALBrokerManager::setInstance(broker->fBrokerManager.lock());
157 AL::ALBrokerManager::getInstance()->addBroker(broker);
159 fawkes::naoqi::broker = broker;
162 logger->info(
"NaoQiFawkes",
"*** Instantiating Module");
163 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.