91 lines
2.5 KiB
C++
91 lines
2.5 KiB
C++
#include "GeekOS.h"
|
|
#include "stdio.h"
|
|
#include "Pages/AppFactory.h"
|
|
#include "System/PageManager/PageManager.h"
|
|
#include "Resource/ResourcePool.h"
|
|
#include "Pages/SystemInfos/SystemInfos.h"
|
|
|
|
static AppFactory factory;
|
|
static PageManager manager(&factory);
|
|
|
|
#define ACCOUNT_SEND_CMD(ACT, CMD)\
|
|
do{\
|
|
DataProc::ACT##_Info_t info;\
|
|
memset(&info, 0, sizeof(info));\
|
|
info.cmd = DataProc::CMD;\
|
|
DataProc::Center()->AccountMain.Notify(#ACT, &info, sizeof(info));\
|
|
}while(0)
|
|
|
|
|
|
/**
|
|
* @brief print the usage of memory infomation for lvgl.
|
|
* @param void
|
|
* @date 2022-08-12
|
|
* @retval void
|
|
*/
|
|
void GeekOSMemMonitor() {
|
|
lv_mem_monitor_t monitor;
|
|
lv_mem_monitor(&monitor);
|
|
printf("used: %6d (%3d %%), frag: %3d %%, biggest free: %6d\n",
|
|
(int)monitor.total_size - monitor.free_size,
|
|
monitor.used_pct,
|
|
monitor.frag_pct,
|
|
(int)monitor.free_biggest_size);
|
|
}
|
|
|
|
/**
|
|
* @brief Initialize the GeekOS page and lvgl config mode.
|
|
* @param void
|
|
* @date 2022-08-12
|
|
* @retval void
|
|
*/
|
|
void GeekOS_Init() {
|
|
|
|
/* Make sure the default group exists */
|
|
if (!lv_group_get_default())
|
|
{
|
|
lv_group_t* group = lv_group_create();
|
|
lv_group_set_default(group);
|
|
}
|
|
/* Initialize the data processing node */
|
|
DataProc_Init();
|
|
|
|
/* Set screen style */
|
|
lv_obj_t* scr = lv_scr_act();
|
|
lv_obj_remove_style_all(scr);
|
|
lv_obj_set_style_bg_opa(lv_scr_act(), LV_OPA_COVER, 0);
|
|
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_black(), 0);
|
|
lv_obj_clear_flag(scr, LV_OBJ_FLAG_SCROLLABLE);
|
|
lv_disp_set_bg_color(lv_disp_get_default(), lv_color_black());
|
|
|
|
/* Set root default style */
|
|
static lv_style_t rootStyle;
|
|
lv_style_init(&rootStyle);
|
|
lv_style_set_width(&rootStyle, LV_HOR_RES);
|
|
lv_style_set_height(&rootStyle, LV_VER_RES);
|
|
lv_style_set_bg_opa(&rootStyle, LV_OPA_COVER);
|
|
lv_style_set_bg_color(&rootStyle, lv_color_black());
|
|
manager.SetRootDefaultStyle(&rootStyle);
|
|
|
|
/* Initialize resource pool */
|
|
ResourcePool::Init();
|
|
|
|
manager.Install("Launcher", "Pages/Launcher");
|
|
manager.Install("Template", "Pages/_Template");
|
|
manager.Install("Startup", "Pages/Startup");
|
|
manager.Install("SystemInfos", "Pages/SystemInfos");
|
|
|
|
/* Setting global lvgl load animation type */
|
|
manager.SetGlobalLoadAnimType(PageManager::LOAD_ANIM_OVER_TOP, 500);
|
|
|
|
/* launch the Startup Page. */
|
|
manager.Push("Pages/Startup");
|
|
|
|
/* show the current lvgl memory usage */
|
|
GeekOSMemMonitor();
|
|
}
|
|
|
|
void GeekOS_Uninit(){
|
|
|
|
}
|