M module-audio/Audio/decoder/taglib => module-audio/Audio/decoder/taglib +1 -1
@@ 1,1 1,1 @@
-Subproject commit b2a6e50aedf0cfe1f808eb23dc9f572a848ddffe
+Subproject commit fa37896f615f3d347a41f0db711e23746774b15f
M module-sys/SystemManager/SystemManager.cpp => module-sys/SystemManager/SystemManager.cpp +1 -1
@@ 89,7 89,7 @@ namespace sys
};
}
- void SystemManager::StartSystem(std::function<int()> init)
+ void SystemManager::StartSystem(InitFunction init)
{
LOG_FATAL("Initializing system...");
M module-sys/SystemManager/SystemManager.hpp => module-sys/SystemManager/SystemManager.hpp +4 -2
@@ 41,6 41,8 @@ namespace sys
class SystemManager : public Service
{
public:
+ using InitFunction = std::function<bool()>;
+
enum class State
{
Running,
@@ 54,7 56,7 @@ namespace sys
~SystemManager();
- void StartSystem(std::function<int()> init);
+ void StartSystem(InitFunction init);
// Invoke system close procedure
static bool CloseSystem(Service *s);
@@ 125,7 127,7 @@ namespace sys
TickType_t pingInterval;
uint32_t pingPongTimerID;
- std::function<int()> userInit;
+ InitFunction userInit;
static std::vector<std::shared_ptr<Service>> servicesList;
static cpp_freertos::MutexStandard destroyMutex;
A source/config.h => source/config.h +7 -0
@@ 0,0 1,7 @@
+#pragma once
+
+#if defined(TARGET_Linux) && not defined(SERIAL_PORT)
+#define ENABLE_GSM (0)
+#else
+#define ENABLE_GSM (1)
+#endif
M source/main.cpp => source/main.cpp +54 -160
@@ 1,146 1,46 @@
-
-#include <memory>
-#include <list>
-
-#include "../module-gui/gui/core/ImageManager.hpp"
-#include "log/log.hpp"
-#include "memory/usermem.h"
-#include "ticks.hpp"
+#include "config.h"
+
+// applications
+#include <application-antenna/ApplicationAntenna.hpp>
+#include <application-call/ApplicationCall.hpp>
+#include <application-calllog/ApplicationCallLog.hpp>
+#include <application-desktop/ApplicationDesktop.hpp>
+#include <application-messages/ApplicationMessages.hpp>
+#include <application-notes/ApplicationNotes.hpp>
+#include <application-phonebook/ApplicationPhonebook.hpp>
+#include <application-settings/ApplicationSettings.hpp>
+#include <application-settings-new/ApplicationSettings.hpp>
+#include <application-special-input/AppSpecialInput.hpp>
+#include <application-calendar/ApplicationCalendar.hpp>
+#include <application-music-player/ApplicationMusicPlayer.hpp>
+
+// services
+#include <service-appmgr/ApplicationManager.hpp>
+#include <service-audio/ServiceAudio.hpp>
+#include <service-bluetooth/ServiceBluetooth.hpp>
+#include <service-db/ServiceDB.hpp>
+#include <service-evtmgr/Constants.hpp>
+#include <service-evtmgr/EventManager.hpp>
+#include <service-lwip/ServiceLwIP.hpp>
+#if ENABLE_GSM == 1
+#include <service-fota/ServiceFota.hpp>
+#include <service-cellular/ServiceCellular.hpp>
+#endif
+
+#include <bsp/bsp.hpp>
+#include <Application.hpp>
+#include <log/log.hpp>
+#include <phonenumbers/phonenumberutil.h>
#include <source/version.hpp>
+#include <SystemManager/SystemManager.hpp>
+#include <thread.hpp>
+#include <vfs.hpp>
-// module-applications
-#include "application-antenna/ApplicationAntenna.hpp"
-#include "application-call/ApplicationCall.hpp"
-#include "application-calllog/ApplicationCallLog.hpp"
-#include "application-clock/ApplicationClock.hpp"
-#include "application-desktop/ApplicationDesktop.hpp"
-#include "application-messages/ApplicationMessages.hpp"
-#include "application-notes/ApplicationNotes.hpp"
-#include "application-phonebook/ApplicationPhonebook.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-#include "application-settings-new/ApplicationSettings.hpp"
-#include "application-special-input/AppSpecialInput.hpp"
-#include "application-calendar/ApplicationCalendar.hpp"
-#include "application-music-player/ApplicationMusicPlayer.hpp"
-
-// module-services
-#include "service-appmgr/ApplicationManager.hpp"
-#include "service-audio/ServiceAudio.hpp"
-#include "service-audio/api/AudioServiceAPI.hpp"
-#include "service-bluetooth/ServiceBluetooth.hpp"
-#include "service-cellular/ServiceCellular.hpp"
-#include "service-cellular/api/CellularServiceAPI.hpp"
-#include "service-db/ServiceDB.hpp"
-#include "service-db/api/DBServiceAPI.hpp"
-#include "service-desktop/ServiceDesktop.hpp"
-#include "service-evtmgr/Constants.hpp"
-#include "service-evtmgr/EventManager.hpp"
-#include "service-lwip/ServiceLwIP.hpp"
-#include "service-fota/ServiceFota.hpp"
-#include "service-antenna/ServiceAntenna.hpp"
-
-// module-bsp
-#include "bsp/bsp.hpp"
-#include "bsp/rtc/rtc.hpp"
-#include "bsp/keyboard/keyboard.hpp"
-
-// module-vfs
-#include "vfs.hpp"
-
-// module-sys
-#include "SystemManager/SystemManager.hpp"
-
-// libphonenumber
-#include <phonenumbers/phonenumberutil.h>
+#include <memory>
+#include <vector>
class vfs vfs;
-class BlinkyService : public sys::Service
-{
-
- public:
- BlinkyService(const std::string &name) : sys::Service(name)
- {
- timerBlinkyID = CreateTimer(5000, true);
- // ReloadTimer(timer_id);
- }
-
- ~BlinkyService()
- {}
- // DBThreadResponseMessage* threadResponse = reinterpret_cast<DBThreadResponseMessage*>(ret.second.get());
- // if((ret.first == sys::ReturnCodes::Success) && (threadResponse->retCode == true)){
- // return std::move(threadResponse->records);
- // }
- // else{
- // return std::make_unique<std::vector<ThreadRecord>>();
- // }
- // Invoked upon receiving data message
- sys::Message_t DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp = nullptr) override
- {
-
-#if 0 // M.P: left here on purpose
- // auto ret = AudioServiceAPI::PlaybackStart(this,"/home/mateusz/Music/limowreck.mp3");
-/* auto ret = AudioServiceAPI::PlaybackStart(this,"sys/audio/limowreck.flac");
- AudioServiceAPI::Stop(this);
- AudioServiceAPI::PlaybackStart(this,"sys/audio/limowreck.flac");*/
- //vTaskDelay(3000);
- //AudioServiceAPI::SetOutputVolume(this,0.6);
- //auto ret = AudioServiceAPI::RecordingStart(this,"sys/audio/rec1mono.wav");
- //vTaskDelay(3000);
- //ret = AudioServiceAPI::Stop(this);
- //vTaskDelay(500);
- //ret = AudioServiceAPI::PlaybackStart(this,"sys/audio/limowreck.flac");
-
-
- //auto ret = AudioServiceAPI::RoutingStart(this);
- /*
- //AudioServiceAPI::RoutingRecordCtrl(this,true);
- vTaskDelay(1000);
- //AudioServiceAPI::RoutingSpeakerPhone(this,true);
- vTaskDelay(2000);
- AudioServiceAPI::Stop(this);*/
-
- //auto ret = AudioServiceAPI::PlaybackStart(this,"sys/audio/limowreck.flac");
-
-#endif
-
- return std::make_shared<sys::ResponseMessage>();
- }
-
- // Invoked when timer ticked
- void TickHandler(uint32_t id) override
- {
-
-#if 0 // M.P: left here on purpose
- LOG_DEBUG("Blinky service tick!");
-
- stopTimer(timerClockID);
- std::shared_ptr<sys::DataMessage> msg = std::make_shared<sys::DataMessage>(static_cast<uint32_t >(MessageType::AudioSetInputGain));
-
- sys::Bus::SendUnicast(msg,GetName(),this);
-#endif
- }
-
- // Invoked during initialization
- sys::ReturnCodes InitHandler() override
- {
-
- return sys::ReturnCodes::Success;
- }
-
- sys::ReturnCodes DeinitHandler() override
- {
- return sys::ReturnCodes::Success;
- }
-
- sys::ReturnCodes SwitchPowerModeHandler(const sys::ServicePowerMode /*mode*/) override final
- {
- return sys::ReturnCodes::Success;
- }
-
- uint32_t timerBlinkyID = 0;
-};
-
int main()
{
@@ 158,10 58,9 @@ int main()
LOG_PRINTF("Launching PurePhone \n");
LOG_PRINTF("commit: %s tag: %s branch: %s\n", GIT_REV, GIT_TAG, GIT_BRANCH);
-#if 1
auto sysmgr = std::make_shared<sys::SystemManager>(5000);
- sysmgr->StartSystem([sysmgr]() -> int {
+ sysmgr->StartSystem([sysmgr]() {
/// force initialization of PhonenumberUtil because of its stack usage
/// otherwise we would end up with an init race and PhonenumberUtil could
/// be initiated in a task with stack not big enough to handle it
@@ 169,27 68,24 @@ int main()
vfs.Init();
- bool ret = false;
+ auto ret = true;
- ret |=
+ ret &=
sys::SystemManager::CreateService(std::make_shared<EventManager>(service::name::evt_manager), sysmgr.get());
- ret |= sys::SystemManager::CreateService(std::make_shared<ServiceDB>(), sysmgr.get());
- ret |= sys::SystemManager::CreateService(std::make_shared<BlinkyService>("Blinky"), sysmgr.get());
-// ret |= sys::SystemManager::CreateService(std::make_shared<ServiceAntenna>(), sysmgr.get());
-#if defined(TARGET_Linux) && not defined(SERIAL_PORT)
+ ret &= sys::SystemManager::CreateService(std::make_shared<ServiceDB>(), sysmgr.get());
+
+#if ENABLE_GSM == 0
// For now disable pernamenlty Service cellular when there is no GSM configured
LOG_INFO("ServiceCellular (GSM) - Disabled");
#else
LOG_INFO("ServiceCellular (GSM) - Enabling");
- ret |= sys::SystemManager::CreateService(std::make_shared<ServiceCellular>(), sysmgr.get());
- ret |= sys::SystemManager::CreateService(std::make_shared<FotaService::Service>(), sysmgr.get());
+ ret &= sys::SystemManager::CreateService(std::make_shared<ServiceCellular>(), sysmgr.get());
+ ret &= sys::SystemManager::CreateService(std::make_shared<FotaService::Service>(), sysmgr.get());
#endif
- ret |= sys::SystemManager::CreateService(std::make_shared<ServiceAudio>(), sysmgr.get());
- ret |= sys::SystemManager::CreateService(std::make_shared<ServiceBluetooth>(), sysmgr.get());
- ret |= sys::SystemManager::CreateService(std::make_shared<ServiceLwIP>(), sysmgr.get());
- // Service Desktop disabled on master - pulling read on usb driver
- // ret |= sys::SystemManager::CreateService(std::make_shared<ServiceDesktop>(), sysmgr.get());
+ ret &= sys::SystemManager::CreateService(std::make_shared<ServiceAudio>(), sysmgr.get());
+ ret &= sys::SystemManager::CreateService(std::make_shared<ServiceBluetooth>(), sysmgr.get());
+ ret &= sys::SystemManager::CreateService(std::make_shared<ServiceLwIP>(), sysmgr.get());
// vector with launchers to applications
std::vector<std::unique_ptr<app::ApplicationLauncher>> applications;
@@ 201,6 97,8 @@ int main()
#endif
#ifdef ENABLE_APP_SETTINGS
applications.push_back(app::CreateLauncher<app::ApplicationSettings>(app::name_settings));
+#endif
+#ifdef ENABLE_APP_SETTINGS_NEW
applications.push_back(app::CreateLauncher<app::ApplicationSettingsNew>(app::name_settings_new));
#endif
#ifdef ENABLE_APP_NOTES
@@ 229,17 127,13 @@ int main()
#endif
// start application manager
- ret |= sysmgr->CreateService(
+ ret &= sysmgr->CreateService(
std::make_shared<sapm::ApplicationManager>("ApplicationManager", sysmgr.get(), applications), sysmgr.get());
- if (ret) {
- return 0;
- }
-
- return 0;
+ return ret;
});
cpp_freertos::Thread::StartScheduler();
-#endif
+
return 1;
}