~aleteoryx/muditaos

af85469c2675707455ecd9b64c58c3a665d4d0e7 — Marcin Smoczyński 5 years ago 250e7ea
[EGD-3864] main file cleanup (#761)

Remove dead code; cleanup and sort include list. Introduce config file.
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;
}