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");
85 logger->info(
"NaoQiFawkes",
"*** Starting embedded Fawkes");
87 logger->info(
"NaoQiFawkes",
"*** Embedded Fawkes initialization done");
97 logger->info(
"NaoQiFawkes",
"--- Fawkes initialization failed, exception follows.");
98 logger->info(
"NaoQiFawkes", message);
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 play_sound(const char *filename)
Play startup sound.
NaoFawkesModule(AL::ALPtr< AL::ALBroker > broker, const std::string &name)
Constructor.
virtual ~NaoFawkesModule()
Destructor.
Message iterator for exceptions.
Base class for exceptions in Fawkes.
iterator end() noexcept
Get end iterator for messages.
iterator begin() noexcept
Get iterator for messages.
void full_start()
Start the thread and wait until once() completes.
@ MODULE_NODELETE
Do not unload the library during dlclose().
@ MODULE_FLAGS_DEFAULT
Default flags, these are MODULE_BIND_GLOBAL, MODULE_BIND_NOW and MODULE_BIND_DEEP.
void join()
Join the thread.
void cancel()
Cancel a thread.
Initialization options class.
InitOptions & loggers(const char *loggers)
Set loggers.
InitOptions & net_service_name(const char *service_name)
Set Fawkes network service name.
InitOptions & plugin_module_flags(Module::ModuleFlags flags)
Set module flags.
InitOptions & load_plugins(const char *plugin_list)
Set list of plugins to load during startup.
InitOptions & default_plugin(const char *default_plugin)
Set additional default plugin name.