diff --git a/BSP/linux-kernel/.48720.tmp b/BSP/linux-kernel/.48720.tmp deleted file mode 100644 index 50eb84054..000000000 Binary files a/BSP/linux-kernel/.48720.tmp and /dev/null differ diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c index 76d4dfd02..5bf5029c6 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c @@ -101927,6 +101927,198 @@ const lv_img_dsc_t sf_qr = { }; +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_SF_QR_PAGE +#define LV_ATTRIBUTE_IMG_SF_QR_PAGE +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_SF_QR_PAGE uint8_t sf_qr_page_map[] = { + /*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit*/ +#if LV_COLOR_DEPTH == 8 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +#elif LV_COLOR_DEPTH == 16 + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, +#elif LV_COLOR_DEPTH == 24 + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, +#elif LV_COLOR_DEPTH == 32 + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, +#endif + +}; + +const lv_img_dsc_t sf_qr_page = { + .header.always_zero = 0, + .header.w = 48, + .header.h = 40, + .data_size = 1920 * LV_COLOR_SIZE / 8, +#if ((LV_COLOR_DEPTH == 32) || (LV_COLOR_DEPTH == 24)) + .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, +#else + .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, +#endif + .data = sf_qr_page_map +}; + + #ifndef LV_ATTRIBUTE_MEM_ALIGN #define LV_ATTRIBUTE_MEM_ALIGN #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp index 16f5be1ff..42d91c0ae 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp @@ -4802,6 +4802,11 @@ "filename": "icons/sf_qr.bmp", "name": "sf_qr" }, + { + "colorFormat": "Indexed 256 in RGB332", + "filename": "icons/sf_qr_page.bmp", + "name": "sf_qr_page" + }, { "colorFormat": "Indexed 256 in RGB332", "filename": "icons/sf_reset.bmp", diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c index 67e562bd6..ae6ea325c 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c @@ -498,6 +498,7 @@ lv_plugin_img_t lv_plugin_UIFlowLVGL_img_table[] = { &sf_play }, { &sf_pwd_down_up }, { &sf_qr }, + { &sf_qr_page }, { &sf_reset }, { &sf_right }, { &sf_send_type }, diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h index da0a72f83..faa934a3e 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h @@ -544,6 +544,7 @@ LV_IMG_DECLARE(sf_picture_upon_daily_report); LV_IMG_DECLARE(sf_play); LV_IMG_DECLARE(sf_pwd_down_up); LV_IMG_DECLARE(sf_qr); +LV_IMG_DECLARE(sf_qr_page); LV_IMG_DECLARE(sf_reset); LV_IMG_DECLARE(sf_right); LV_IMG_DECLARE(sf_send_type); @@ -1038,41 +1039,42 @@ LV_IMG_DECLARE(work_mode); #define LV_PLUGIN_IMG_ID_SF_PLAY 457 #define LV_PLUGIN_IMG_ID_SF_PWD_DOWN_UP 458 #define LV_PLUGIN_IMG_ID_SF_QR 459 -#define LV_PLUGIN_IMG_ID_SF_RESET 460 -#define LV_PLUGIN_IMG_ID_SF_RIGHT 461 -#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE 462 -#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS 463 -#define LV_PLUGIN_IMG_ID_SF_SENSITVITY 464 -#define LV_PLUGIN_IMG_ID_SF_SHOOT_1 465 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL0 466 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL1 467 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL2 468 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL3 469 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL4 470 -#define LV_PLUGIN_IMG_ID_SF_SMS_CTRL 471 -#define LV_PLUGIN_IMG_ID_SF_STOP 472 -#define LV_PLUGIN_IMG_ID_SF_TAB_RELEASE 473 -#define LV_PLUGIN_IMG_ID_SF_TAB_SELECT 474 -#define LV_PLUGIN_IMG_ID_SF_VIDEO_LENGTH 475 -#define LV_PLUGIN_IMG_ID_SF_VIDEO_SIZE 476 -#define LV_PLUGIN_IMG_ID_SF_WARNING_BG 477 -#define LV_PLUGIN_IMG_ID_SF_WARNING_NOT_SELECT 478 -#define LV_PLUGIN_IMG_ID_SF_WARNING_SELECTED 479 -#define LV_PLUGIN_IMG_ID_SF_WIFI_CONNECTED 480 -#define LV_PLUGIN_IMG_ID_SF_WIFI_UNCONNECTED 481 -#define LV_PLUGIN_IMG_ID_SF_WIFI_UNSUPPORT 482 -#define LV_PLUGIN_IMG_ID_SY_BG_102X28 483 -#define LV_PLUGIN_IMG_ID_SY_BG_32X28 484 -#define LV_PLUGIN_IMG_ID_SY_BG_40X28 485 -#define LV_PLUGIN_IMG_ID_SY_BG_MSG 486 -#define LV_PLUGIN_IMG_ID_SY_BG_MSG2 487 -#define LV_PLUGIN_IMG_ID_SY_LANYA2 488 -#define LV_PLUGIN_IMG_ID_SY_LUZHI 489 -#define LV_PLUGIN_IMG_ID_SY_REDLINE 490 -#define LV_PLUGIN_IMG_ID_SY_REDLINE2 491 -#define LV_PLUGIN_IMG_ID_SY_WIFI2 492 -#define LV_PLUGIN_IMG_ID_WORK_MODE 493 -#define LV_PLUGIN_IMG_TABLE_SIZE 494 +#define LV_PLUGIN_IMG_ID_SF_QR_PAGE 460 +#define LV_PLUGIN_IMG_ID_SF_RESET 461 +#define LV_PLUGIN_IMG_ID_SF_RIGHT 462 +#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE 463 +#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS 464 +#define LV_PLUGIN_IMG_ID_SF_SENSITVITY 465 +#define LV_PLUGIN_IMG_ID_SF_SHOOT_1 466 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL0 467 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL1 468 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL2 469 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL3 470 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL4 471 +#define LV_PLUGIN_IMG_ID_SF_SMS_CTRL 472 +#define LV_PLUGIN_IMG_ID_SF_STOP 473 +#define LV_PLUGIN_IMG_ID_SF_TAB_RELEASE 474 +#define LV_PLUGIN_IMG_ID_SF_TAB_SELECT 475 +#define LV_PLUGIN_IMG_ID_SF_VIDEO_LENGTH 476 +#define LV_PLUGIN_IMG_ID_SF_VIDEO_SIZE 477 +#define LV_PLUGIN_IMG_ID_SF_WARNING_BG 478 +#define LV_PLUGIN_IMG_ID_SF_WARNING_NOT_SELECT 479 +#define LV_PLUGIN_IMG_ID_SF_WARNING_SELECTED 480 +#define LV_PLUGIN_IMG_ID_SF_WIFI_CONNECTED 481 +#define LV_PLUGIN_IMG_ID_SF_WIFI_UNCONNECTED 482 +#define LV_PLUGIN_IMG_ID_SF_WIFI_UNSUPPORT 483 +#define LV_PLUGIN_IMG_ID_SY_BG_102X28 484 +#define LV_PLUGIN_IMG_ID_SY_BG_32X28 485 +#define LV_PLUGIN_IMG_ID_SY_BG_40X28 486 +#define LV_PLUGIN_IMG_ID_SY_BG_MSG 487 +#define LV_PLUGIN_IMG_ID_SY_BG_MSG2 488 +#define LV_PLUGIN_IMG_ID_SY_LANYA2 489 +#define LV_PLUGIN_IMG_ID_SY_LUZHI 490 +#define LV_PLUGIN_IMG_ID_SY_REDLINE 491 +#define LV_PLUGIN_IMG_ID_SY_REDLINE2 492 +#define LV_PLUGIN_IMG_ID_SY_WIFI2 493 +#define LV_PLUGIN_IMG_ID_WORK_MODE 494 +#define LV_PLUGIN_IMG_TABLE_SIZE 495 #define LV_PLUGIN_FONT_ID_LV_FONT_MONTSERRAT_16 1 #define LV_PLUGIN_FONT_ID_NOTOSANSCJKSC_BLACK_16_1BPP 2 diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c index 6d26011d1..1c8d09f13 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c @@ -367,7 +367,7 @@ static void update_Network_Selection_msg(lv_obj_t* obj) static void network_scan_task_end(void) { - if(network_scan_task) + if(NULL != network_scan_task) { lv_task_del(network_scan_task); network_scan_task = NULL; @@ -555,14 +555,8 @@ void show_Network_Selection_page(lv_obj_t* obj, lv_obj_t* menu_obj) lv_obj_set_pos(plabel, 32, 67); lv_obj_set_width(plabel, 256); lv_obj_add_style(plabel, 0, &gMatrixStylebtn); - lv_task_t tas = { - 0, - 0, - NULL, - NULL, - 0, - 3, - }; + lv_task_t tas = {0,0,NULL,NULL,0,3}; + Countdown = 0; network_scan_task_cb(&tas); if(network_scan_task == NULL){ Countdown = 0; @@ -577,7 +571,7 @@ void hidde_Network_Selection_page(void) pMenu = NULL; - if(plabel) + if(NULL != plabel) { lv_obj_del(plabel); plabel = NULL; @@ -653,60 +647,170 @@ void Option_Network_Selection_Key(lv_obj_t* obj, uint32_t key) char *qr_code_str = "{\"imei\":\"%s\",\"verizonICCID\":\"%s\",\"attICCID\":\"%s\",\"isEsim\":%s}"; static lv_obj_t *qr = NULL; static lv_obj_t *label = NULL; -void show_qr_picture_page(lv_obj_t* obj) -{ - // lv_color_t colorDrak = {0}; - // lv_color_t colorLight = {0}; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - // const char *data = "https://github.com/topics/littlevgl"; -#define QR_DATA_LENGTH 1024 +static lv_obj_t *labelInit = NULL; +static lv_obj_t* QRImage = NULL; +static lv_obj_t *qr_info_msgbox = NULL; +static lv_task_t* qr_page_task = NULL; + +static void qr_page_task_cb(lv_task_t* task){ + lv_obj_t* obj = (lv_obj_t*)task->user_data; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + #define QR_DATA_LENGTH 1024 char qr_date[QR_DATA_LENGTH] = {0}; - if (sf_cardv_get_is_esim() == 1) + if(sf_cardv_get_sim_insert() == 0){ + lv_label_set_text(labelInit, "Please insert the SIM card and restart the camera"); + } + else if(sf_cardv_4G_status_get() == SF_4G_SEARCHING) + { + lv_label_set_text(labelInit, "\nQR code loading..."); + } + else if (sf_cardv_get_is_esim() == 1) { snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidV, puiPara->SimIccidA, "true"); + if(obj){ + /*Create a 100x100 QR code*/ + qr = lv_qrcode_create(obj, 120, (lv_color_t) { .full = 0x02}, (lv_color_t) { .full = 0x23}); + if(qr) + { + /*Set data*/ + lv_obj_set_hidden(qr_info_msgbox, true); + lv_qrcode_update(qr, qr_date, strlen(qr_date)); + lv_obj_set_pos(qr, 32, 70); + lv_obj_set_hidden(QRImage, false); + lv_obj_set_pos(label, 180, 80); + lv_obj_set_size(label, 130, 70); + lv_label_set_text(labelInit, ""); + lv_label_set_text(label, "Add Camera to Tactacam APP"); + } + } } - // else if (sf_cardv_get_is_esim() == 0) - // { - // snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidA, puiPara->SimIccidA, "false"); - // } - else + else if (sf_cardv_get_is_esim() == 0) { snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidA, puiPara->SimIccidA, "false"); + lv_label_set_text(labelInit, "\nPlease restart the camera"); } - - if(obj){ - - /*Create a 100x100 QR code*/ - qr = lv_qrcode_create(obj, 120, (lv_color_t) { .full = 0x02}, (lv_color_t) { .full = 0x23}); - - if(qr){ - /*Set data*/ - lv_qrcode_update(qr, qr_date, strlen(qr_date)); - lv_obj_set_pos(qr, 32, 70); - } - } - lv_color_t color = {0}; - static lv_style_t labelStyle; - lv_style_init(&labelStyle); - STYLE_COLOR_PROP(0xff, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&labelStyle, LV_STATE_DEFAULT, color); - lv_style_set_text_font(&labelStyle,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp); - label = lv_label_create(obj, NULL); - lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK); - lv_label_set_text(label, "Add Camera to Tactacam App"); - lv_obj_set_pos(label, 180, 78); - lv_obj_set_size(label, 110, 63); - lv_obj_add_style(label, 0, &labelStyle); } + +static void qr_page_task_end(void) +{ + if(NULL != qr_page_task) + { + lv_task_del(qr_page_task); + qr_page_task = NULL; + } +} + +void show_qr_picture_page(lv_obj_t* obj) +{ + init_Matrix_style(); + // lv_color_t colorDrak = {0}; + // lv_color_t colorLight = {0}; + + // const char *data = "https://github.com/topics/littlevgl"; + + //text qr page + label = lv_label_create(obj, NULL); + lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK); + lv_label_set_text(label, ""); + lv_obj_set_pos(label, 180, 70); + lv_obj_set_size(label, 130, 60); + + static lv_style_t labelStyle; + lv_style_init(&labelStyle); + lv_color_t color = {0}; + STYLE_COLOR_PROP(0xff, 0xff, 0xff, 0xff); + lv_style_set_text_color(&labelStyle, LV_STATE_DEFAULT, color); + lv_style_set_text_font(&labelStyle,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp); + lv_obj_add_style(label, 0, &labelStyle); + + //text qr msgbox + qr_info_msgbox = lv_btn_create(obj, button_msg_bg_scr_uiflowwrnmsg); + lv_obj_set_hidden(qr_info_msgbox, false); + labelInit = lv_label_create(qr_info_msgbox, label_msg_scr_uiflowwrnmsg); + lv_obj_align(labelInit, qr_info_msgbox, LV_ALIGN_CENTER, 0, -30); + lv_label_set_align(labelInit, LV_LABEL_ALIGN_CENTER); + lv_obj_add_style(labelInit, 0, &gMatrixStylebtn); + if(sf_cardv_get_sim_insert() == 0){ + lv_label_set_text(labelInit, "Please insert the SIM card and restart the camera"); + } + else{ + lv_label_set_text(labelInit, "\nQR code loading..."); + } + + + //icon + QRImage = lv_img_create(obj, NULL); + lv_obj_set_hidden(QRImage, true); + lv_obj_set_click(QRImage, false); + lv_obj_set_drag(QRImage, false); + lv_obj_set_pos(QRImage, 207, 122); + lv_obj_set_size(QRImage, 32, 32); + lv_img_set_src(QRImage, &sf_qr_page); + + if(qr_page_task == NULL){ + qr_page_task = lv_task_create(qr_page_task_cb, 1000, LV_TASK_PRIO_HIGHEST, (void*)obj); + } +} + + void hidde_qr_picture_page(void) { + qr_page_task_end(); + + printf("[hidde_qr_picture_page]hidde qr page\n"); if(NULL != qr) { lv_qrcode_delete(qr); + qr = NULL; } - if(label) + if(NULL != label) { lv_obj_del(label); + label = NULL; } + if(NULL != labelInit) + { + lv_obj_del(labelInit); + labelInit = NULL; + } + if(NULL != QRImage) + { + lv_obj_del(QRImage); + QRImage = NULL; + } + if(NULL != qr_info_msgbox){ + lv_obj_del(qr_info_msgbox); + qr_info_msgbox = NULL; + } +} + +void Option_qr_picture_Key(lv_obj_t* obj, uint32_t key) +{ + printf("[%s]key:%d\n", __FUNCTION__, key); + + switch(key) + { + case LV_USER_KEY_NEXT: + + break; + case LV_USER_KEY_PREV: + + break; + case LV_USER_KEY_LEFT: + lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); + hidde_qr_picture_page(); + break; + case LV_USER_KEY_RIGHT: + + break; + case LV_KEY_ENTER: + lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); + hidde_qr_picture_page(); + break; + default: + break; + } } // -------------------------------------------------------------------------- diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h index af8aa5c88..d2fcdd04d 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h @@ -16,6 +16,7 @@ extern void show_Camera_Name_page(lv_obj_t* obj); extern void hidde_Camera_Name_page(void); extern void Option_Network_Selection_Key(lv_obj_t* obj, uint32_t key); +extern void Option_qr_picture_Key(lv_obj_t* obj, uint32_t key); extern void Option_Password_Key(lv_obj_t* obj, uint32_t key); extern void Option_Password_Key_Long_Press(lv_obj_t* obj, uint32_t key); extern void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c index a1244c2b4..95167bd09 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c @@ -1223,7 +1223,7 @@ static void CommondOptionKeyCallback(lv_obj_t* obj, uint32_t* key) Option_Network_Selection_Key(obj, *key); break; case IDM_QR_PICTURE: - UIFlowMenuCommonOption_Key(obj, *key); + Option_qr_picture_Key(obj, *key); break; case IDM_PASSWORD: if(isSetting) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c index ae788d685..83c1617fd 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c @@ -367,21 +367,25 @@ printf(" UIFlowPasswordEventCallback %d\n", event); { case LV_PLUGIN_EVENT_SCR_OPEN: - UIFlowPassword_ScrOpen(obj); + { + UIFlowPassword_ScrOpen(obj); break; - + } case LV_PLUGIN_EVENT_SCR_CLOSE: - UIFlowPassword_ScrClose(obj); + { + UIFlowPassword_ScrClose(obj); break; - + } case LV_PLUGIN_EVENT_CHILD_SCR_CLOSE: + { set_indev_keypad_group(obj); break; - + } /* enter key state changed(pressed -> released) */ case LV_EVENT_CLICKED: + { break; - + } // case LV_EVENT_KEY: case LV_USER_EVENT_KEY_RELEASE: { @@ -410,13 +414,20 @@ printf(" UIFlowPasswordEventCallback %d\n", event); } case LV_EVENT_DRAG_BEGIN: + { break; + } + case LV_EVENT_DRAG_END: + { break; + } case LV_EVENT_DRAG_THROW_BEGIN: + { break; + } default: break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index 21aaab05c..2f2b60d76 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -1859,6 +1859,7 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) { case LV_USER_KEY_LEFT: { + printf("[UIFlowPhoto_Key]>>>LEFT\n"); if (KeyLeftPressingTimeMs < LONG_PRESS_INTERVAL) { UIFlowMenuCommonConfirmAPI_Open(IDM_ENTER_WORK_MODE); @@ -1868,6 +1869,7 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) } case LV_KEY_ENTER: { + printf("[UIFlowPhoto_Key]>>>ENTER\n"); #if HUNTING_CAMERA_MCU == ENABLE // sf_rtsp_stop(); if(TRUE == sf_get_send_statu()) @@ -1884,6 +1886,7 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_NEXT: case LV_USER_KEY_ZOOMIN: { + printf("[UIFlowPhoto_Key]>>>DOWN\n"); g_preview_info_ishidden = true; lv_obj_set_hidden(g_preview_info_msgbox, g_preview_info_ishidden); KeyDownPressingTimeMs = 0; @@ -1897,6 +1900,7 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_PREV: case LV_USER_KEY_ZOOMOUT: { + printf("[UIFlowPhoto_Key]>>>UP\n"); if(TRUE == sf_get_send_statu()) { printf("\r\n[%s] line:%d %d running\n", __FUNCTION__, __LINE__,key); @@ -1913,6 +1917,7 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_MENU: case LV_USER_KEY_RIGHT: { + printf("[UIFlowPhoto_Key]>>>RIGHT\n"); //SF_WIFI_STATUS_E status = sf_get_wifi_status(); if(TRUE == sf_get_send_statu()) { diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/icons/sf_qr_page.bmp b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/icons/sf_qr_page.bmp new file mode 100644 index 000000000..ea5e65534 Binary files /dev/null and b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/icons/sf_qr_page.bmp differ diff --git a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/build_all.sh b/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/build_all.sh deleted file mode 100644 index 4616e2a42..000000000 --- a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/build_all.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -#用于gitlab-ci.yml编译使用 - -#make app_clean - -echo "Start compile." -export ROOT_PATH=$PWD - -cd rtos -source build/envsetup.sh -lunch rtos cfg_565_HUNTING_EVB_LINUX_4G_S550 gcc-6.5-newlib-2.4-2019.11-arm-ca9-eabihf -#make clean -make all > /dev/null -cp output/application.bin ../ -cp output/rtos-main.bin ../ - - -cd $ROOT_PATH -source build/envsetup.sh -lunch Linux cfg_565_HUNTING_EVB_LINUX_4G_S550 arm-ca9-linux-uclibcgnueabihf-8.4.01 -#make clean -make all > /dev/null - -cd $ROOT_PATH -cd loader/MakeCommon -make release - -cd $ROOT_PATH -cp loader/Project/Model/Loader565_Data/Release/LD98565A.bin output/packed diff --git a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Plugin/lv_plugin_menu.c b/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Plugin/lv_plugin_menu.c deleted file mode 100644 index 2464ce423..000000000 --- a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Plugin/lv_plugin_menu.c +++ /dev/null @@ -1,1532 +0,0 @@ - -#include "Resource/Plugin/lv_plugin_common.h" -#include "Resource/Plugin/lv_plugin_menu.h" -#include - -typedef void (*btn_set_state_cb)(lv_obj_t *, lv_btn_state_t); - -typedef struct { - - void* imgbtn_scr_released; /* unfocused img for LV_BTN_STATE_RELEASED, it maps to source disabled */ - void* imgbtn_scr_focused; /* focused img for LV_BTN_STATE_RELEASED, it maps to source released */ - -} lv_plugin_menu_btn_user_data; - -typedef struct { - lv_plugin_res_id string_id[LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM]; - lv_plugin_res_id img_id[LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM]; - lv_plugin_menu_item_stat_t state; - void* user_data; -} lv_plugin_menu_item_t; - -typedef struct { - LV_PLUGIN_MENU_BASE_EXT base_ext; - - uint8_t btn_cnt; - lv_obj_t** btns; - lv_plugin_menu_item_t* items; - uint8_t item_cnt; - uint8_t first_displayed_item; - uint8_t selected_item; - uint8_t old_selected_item; - int16_t displayed_item_offset_forward; - int16_t displayed_item_offset_backward; - bool is_wrap; - bool focus_event_notified; - lv_coord_t pressed_offset_x; - lv_coord_t pressed_offset_y; - lv_plugin_menu_scroll_mode scroll_mode; -} lv_plugin_menu_ext_t; - -static LV_PLUG_RET _lv_plugin_menu_set_first_displayed_item(lv_plugin_menu_ext_t* ext, int16_t offset); -static LV_PLUG_RET _lv_plugin_menu_select_next_item(lv_plugin_menu_ext_t* ext); -static LV_PLUG_RET _lv_plugin_menu_select_prev_item(lv_plugin_menu_ext_t* ext); -static LV_PLUG_RET _lv_plugin_menu_calculate_distance(lv_plugin_menu_ext_t* ext, uint8_t idx, int16_t* distance); -static uint8_t _lv_plugin_menu_find_visible_item_index(lv_plugin_menu_ext_t* ext, uint8_t start, int16_t offset); -static LV_PLUG_RET _lv_plugin_menu_select_item(lv_plugin_menu_ext_t* ext, uint8_t index); -static LV_PLUG_RET _lv_plugin_menu_select_first_item(lv_plugin_menu_ext_t* ext); -static LV_PLUG_RET _lv_plugin_menu_select_last_item(lv_plugin_menu_ext_t* ext); -static void _lv_plugin_menu_navigate_next(lv_plugin_menu_ext_t* ext); -static void _lv_plugin_menu_navigate_prev(lv_plugin_menu_ext_t* ext); -static void _lv_plugin_menu_refresh_items(lv_plugin_menu_ext_t* ext); -static void _lv_plugin_menu_select_btn(lv_obj_t* menu, lv_obj_t* btn); -static void _lv_plugin_menu_send_item_focus_event(lv_obj_t* menu); -static void _lv_plugin_menu_send_item_selected_event(lv_obj_t* menu); -static LV_PLUG_RET _lv_plugin_menu_uninit_items(lv_plugin_menu_ext_t* ext); -static LV_PLUG_RET _lv_plugin_menu_calculate_distance_ext(lv_plugin_menu_ext_t* ext, uint8_t start, uint8_t end, int16_t* distance); - -static lv_signal_cb_t old_btn_signal_cb = NULL; -static lv_signal_cb_t old_imgbtn_signal_cb = NULL; -static lv_signal_cb_t old_menu_signal_cb = NULL; - -static void _lv_plugin_label_set_offset(lv_obj_t* label, lv_coord_t x, lv_coord_t y) -{ - lv_label_ext_t* ext = lv_obj_get_ext_attr(label); - - lv_label_long_mode_t mode = lv_label_get_long_mode(label); - - if (mode != LV_LABEL_LONG_SROLL && mode != LV_LABEL_LONG_SROLL_CIRC) { - ext->offset.x = x; - ext->offset.y = y; - lv_obj_invalidate(label); - } -} - - -static void _lv_plugin_menu_select_btn(lv_obj_t* menu, lv_obj_t* btn) -{ - lv_plugin_menu_ext_t* ext = menu->ext_attr; - uint8_t idx; - bool is_found = false; - - for(idx = 0 ; idx < ext->btn_cnt ; idx++) - { - if(ext->btns[idx] == btn){ - is_found = true; - break; - } - } - - if(is_found == true){ - idx = _lv_plugin_menu_find_visible_item_index(ext, ext->first_displayed_item, idx); - _lv_plugin_menu_select_item(ext, idx); - } - -} - -static lv_res_t lv_plugin_menu_imgbtn_signal(lv_obj_t * btn, lv_signal_t sign, void * param) -{ - if(sign == LV_SIGNAL_PRESSED || sign == LV_SIGNAL_RELEASED){ - - lv_obj_t* menu = lv_obj_get_parent(btn); - - if(menu){ - - if(sign == LV_SIGNAL_PRESSED) - _lv_plugin_menu_select_btn(menu, btn); - - lv_signal_cb_t cb = lv_obj_get_signal_cb(menu); - lv_res_t res = cb(menu, sign, param); - return res; - } - - } - - - return old_imgbtn_signal_cb(btn, sign, param); -} - -static lv_res_t lv_plugin_menu_btn_signal(lv_obj_t * btn, lv_signal_t sign, void * param) -{ - if(sign == LV_SIGNAL_PRESSED || sign == LV_SIGNAL_RELEASED){ - - lv_obj_t* menu = lv_obj_get_parent(btn); - - if(menu){ - - if(sign == LV_SIGNAL_PRESSED) - _lv_plugin_menu_select_btn(menu, btn); - - lv_signal_cb_t cb = lv_obj_get_signal_cb(menu); - lv_res_t res = cb(menu, sign, param); - return res; - } - - } - - return old_btn_signal_cb(btn, sign, param); - -} - -static void _lv_plugin_menu_send_item_selected_event(lv_obj_t* menu) -{ - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - if (ext->items) { - - lv_plugin_menu_event_data_t ev_data = { 0 }; - lv_plugin_menu_item_t* item = &ext->items[ext->selected_item]; - - ev_data.user_data = item->user_data; - ev_data.string_id = item->string_id[item->state]; - ev_data.img_id = item->img_id[item->state]; - ev_data.state = item->state; - ev_data.item_idx = ext->selected_item; - - lv_event_send(menu, LV_PLUGIN_EVENT_MENU_ITEM_SELECTED, &ev_data); - } -} - -static void _lv_plugin_menu_send_item_focus_event(lv_obj_t* menu) -{ - lv_plugin_menu_ext_t* ext = menu->ext_attr; - lv_plugin_menu_event_data_t ev_data = {0}; - - if(ext->focus_event_notified == true) - return; - - lv_plugin_menu_item_t* item = NULL; - - - if(ext->selected_item != LV_PLUGIN_MENU_ITEM_NONE && ext->selected_item <= ext->item_cnt){ - - item = &ext->items[ext->selected_item]; - - if(item->state == LV_PLUGIN_MENU_ITEM_STATE_FOCUSED){ - ev_data.user_data = item->user_data; - ev_data.string_id = item->string_id[item->state]; - ev_data.img_id = item->img_id[item->state]; - ev_data.state = item->state; - ev_data.item_idx = ext->selected_item; - - lv_event_send(menu, LV_PLUGIN_EVENT_MENU_ITEM_FOCUSED, &ev_data); - } - } - - - if(ext->old_selected_item != LV_PLUGIN_MENU_ITEM_NONE && ext->old_selected_item <= ext->item_cnt){ - - item = &ext->items[ext->old_selected_item]; - - if(item->state == LV_PLUGIN_MENU_ITEM_STATE_RELEASED){ - - ev_data.user_data = item->user_data; - ev_data.string_id = item->string_id[item->state]; - ev_data.img_id = item->img_id[item->state]; - ev_data.state = item->state; - ev_data.item_idx = ext->old_selected_item; - - lv_event_send(menu, LV_PLUGIN_EVENT_MENU_ITEM_DEFOCUSED, &ev_data); - } - } - - ext->focus_event_notified = true; -} - -static lv_res_t lv_plugin_menu_signal(lv_obj_t * menu, lv_signal_t sign, void * param) -{ - if(NULL == menu->ext_attr) - return LV_RES_INV; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - - if(sign == LV_SIGNAL_CONTROL) { - -#if LV_USE_GROUP - char c = *((char *)param); - if(c == LV_KEY_RIGHT && (NULL != ext->items)){ - - if (lv_plugin_menu_is_last_item(menu, ext->selected_item)) - lv_event_send(menu, LV_PLUGIN_EVENT_MENU_NOTIFY_END_OF_ITEM, NULL); - - _lv_plugin_menu_navigate_next(ext); - _lv_plugin_menu_refresh_items(ext); - _lv_plugin_menu_send_item_focus_event(menu); - } - else if(c == LV_KEY_LEFT && (NULL != ext->items)) { - - if (lv_plugin_menu_is_first_item(menu, ext->selected_item)) - lv_event_send(menu, LV_PLUGIN_EVENT_MENU_NOTIFY_END_OF_ITEM, NULL); - - _lv_plugin_menu_navigate_prev(ext); - _lv_plugin_menu_refresh_items(ext); - _lv_plugin_menu_send_item_focus_event(menu); - } -#endif - } - else if(sign == LV_SIGNAL_FOCUS){ - -// if(NULL != ext->items){ - -// if(ext->selected_item <= ext->item_cnt){ - -// if (ext->items[ext->selected_item].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE) { -// ext->focus_event_notified = false; -// ext->items[ext->selected_item].state = LV_PLUGIN_MENU_ITEM_STATE_FOCUSED; -// _lv_plugin_menu_refresh_items(ext); -// _lv_plugin_menu_send_item_focus_event(menu); -// } -// } -// } - } - else if(sign == LV_SIGNAL_DEFOCUS){ - -// if(NULL != ext->items){ - -// if(ext->selected_item <= ext->item_cnt){ - -// if (ext->items[ext->selected_item].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE) { -// ext->focus_event_notified = false; -// ext->old_selected_item = ext->selected_item; -// ext->items[ext->selected_item].state = LV_PLUGIN_MENU_ITEM_STATE_RELEASED; -// _lv_plugin_menu_refresh_items(ext); -// _lv_plugin_menu_send_item_focus_event(menu); -// } -// } -// } - } - else if(sign == LV_SIGNAL_PRESSED){ - - lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - if(indev_type == LV_INDEV_TYPE_POINTER || indev_type == LV_INDEV_TYPE_BUTTON) { - - lv_point_t p; - bool is_found = false; - /*Search the pressed area*/ - lv_indev_get_point(param, &p); - - for(uint8_t i=0 ; ibtn_cnt ; i++) - { - - if(lv_obj_is_point_on_coords(ext->btns[i], &p)){ - is_found = true; - break; - } - } - - if(!is_found) - return LV_RES_OK; - } - - if(NULL != ext->items){ - - if (ext->items[ext->selected_item].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE) { - ext->items[ext->selected_item].state = LV_PLUGIN_MENU_ITEM_STATE_PRESSED; - _lv_plugin_menu_refresh_items(ext); - _lv_plugin_menu_send_item_focus_event(menu); - } - } - } - else if(sign == LV_SIGNAL_RELEASED){ - - lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); - if (indev_type == LV_INDEV_TYPE_POINTER || indev_type == LV_INDEV_TYPE_BUTTON) { - - lv_point_t p; - bool is_found = false; - /*Search the pressed area*/ - lv_indev_get_point(param, &p); - - for (uint8_t i = 0; i < ext->btn_cnt; i++) - { - - if (lv_obj_is_point_on_coords(ext->btns[i], &p)) { - is_found = true; - break; - } - } - - if (!is_found) - return LV_RES_OK; - } - - if(NULL != ext->items){ - - if (ext->items[ext->selected_item].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE) { - ext->items[ext->selected_item].state = LV_PLUGIN_MENU_ITEM_STATE_FOCUSED; - _lv_plugin_menu_refresh_items(ext); - _lv_plugin_menu_send_item_selected_event(menu); - } - } - } - else{ - - if(sign == LV_SIGNAL_CLEANUP){ - - if (ext->items) { - _lv_plugin_menu_uninit_items(ext); - } - } - - return old_menu_signal_cb(menu, sign, param); - } - - - return LV_RES_OK; -} - -static uint8_t _lv_plugin_menu_find_visible_item_index(lv_plugin_menu_ext_t* ext, uint8_t start, int16_t offset) -{ - uint8_t ret = start; - - if(offset < 0){ - - uint8_t idx = start; - - while(offset++) - { - - while(true) - { - if(idx == 0) - break; - - idx--; - - if((ext->items[idx].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE)){ - ret = idx; - break; - } - } - } - - } - else if(offset > 0){ - - uint8_t idx = start; - - while(offset--) - { - - while(true) - { - if(++idx >= ext->item_cnt) - break; - - if((ext->items[idx].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE)){ - ret = idx; - break; - } - } - } - } - - return ret; -} - -LV_PLUG_RET lv_plugin_menu_select_item(lv_obj_t* menu, uint8_t index) -{ - LV_PLUG_RET ret = LV_PLUG_SUCCESS; - lv_plugin_menu_ext_t* ext = menu->ext_attr; - int16_t distance; - - switch (ext->scroll_mode) - { - case LV_PLUGIN_MENU_SCROLL_MODE_PAGE: - { - /* calculate visible item distance from first to target */ - ret = _lv_plugin_menu_calculate_distance_ext(ext, lv_plugin_menu_first_item_index(menu), index, &distance); - if (ret != LV_PLUG_SUCCESS) - return ret; - - /* select target */ - ret = _lv_plugin_menu_select_item(ext, index); - if (ret != LV_PLUG_SUCCESS) - return ret; - - /* move first displayed item divided by page */ - ret = _lv_plugin_menu_set_first_displayed_item(ext, -(abs(distance) % ext->btn_cnt)); - if (ret != LV_PLUG_SUCCESS) - return ret; - - break; - } - - case LV_PLUGIN_MENU_SCROLL_MODE_STEP: - case LV_PLUGIN_MENU_SCROLL_MODE_CUSTOM: - { - /* move selected item */ - ret = _lv_plugin_menu_select_item(ext, index); - if (ret != LV_PLUG_SUCCESS) - return ret; - - /* calculate distance from selected item to first displayed item */ - ret = _lv_plugin_menu_calculate_distance(ext, ext->first_displayed_item, &distance); - if (ret != LV_PLUG_SUCCESS) - return ret; - - /* move first displayed item if selected item out of page */ - if (abs(distance) > (ext->btn_cnt - 1)) - ret = _lv_plugin_menu_set_first_displayed_item(ext, -(ext->btn_cnt - 1)); - break; - } - - } - - _lv_plugin_menu_refresh_items(ext); - _lv_plugin_menu_send_item_selected_event(menu); - - return ret; - -} - - -LV_PLUG_RET _lv_plugin_menu_select_item(lv_plugin_menu_ext_t* ext, uint8_t index) -{ - uint8_t old_item = ext->selected_item; - - if(ext->items){ - - if(old_item < ext->item_cnt && - (old_item != index) && - ext->items[old_item].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE) - { - ext->items[old_item].state = LV_PLUGIN_MENU_ITEM_STATE_RELEASED; - } - - if(index < ext->item_cnt) - { - /* cant't select an invisible item */ - if((ext->items[index].state == LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE)) - return LV_PLUG_ERR_INVALID_OBJ; - - ext->old_selected_item = old_item; - ext->selected_item = index; - ext->focus_event_notified = false; - ext->items[ext->selected_item].state = LV_PLUGIN_MENU_ITEM_STATE_FOCUSED; - } - } - else{ - ext->selected_item = 0; - ext->old_selected_item = 0; - } - - return LV_PLUG_SUCCESS; -} - -LV_PLUG_RET lv_plugin_menu_select_next_item(lv_obj_t* menu) -{ - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - _lv_plugin_menu_navigate_next(ext); - _lv_plugin_menu_refresh_items(ext); - _lv_plugin_menu_send_item_selected_event(menu); - - return LV_PLUG_SUCCESS; - - -} - -static LV_PLUG_RET _lv_plugin_menu_select_next_item(lv_plugin_menu_ext_t* ext) -{ - uint8_t idx = _lv_plugin_menu_find_visible_item_index(ext, ext->selected_item, 1); - return _lv_plugin_menu_select_item(ext, idx); -} - -LV_PLUG_RET lv_plugin_menu_select_prev_item(lv_obj_t* menu) -{ - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - _lv_plugin_menu_navigate_prev(ext); - _lv_plugin_menu_refresh_items(ext); - _lv_plugin_menu_send_item_selected_event(menu); - return LV_PLUG_SUCCESS; -} - -LV_PLUG_RET lv_plugin_menu_select_first_item(lv_obj_t *menu) -{ - return lv_plugin_menu_select_item(menu, lv_plugin_menu_first_item_index(menu)); -} - -static LV_PLUG_RET _lv_plugin_menu_select_first_item(lv_plugin_menu_ext_t* ext) -{ - LV_PLUG_RET ret = LV_PLUG_SUCCESS; - - for(uint8_t idx = 0 ; idx < ext->item_cnt ; idx++) - { - ret = _lv_plugin_menu_select_item(ext, idx); - if(ret == LV_PLUG_SUCCESS) - break; - } - - return ret; -} - -LV_PLUG_RET lv_plugin_menu_select_last_item(lv_obj_t* menu) -{ - return lv_plugin_menu_select_item(menu, lv_plugin_menu_last_item_index(menu)); -} - -static LV_PLUG_RET _lv_plugin_menu_select_last_item(lv_plugin_menu_ext_t* ext) -{ - LV_PLUG_RET ret = LV_PLUG_SUCCESS; - - for(int16_t idx = ext->item_cnt - 1 ; idx >= 0 ; idx--) - { - ret = _lv_plugin_menu_select_item(ext, idx); - if(ret == LV_PLUG_SUCCESS) - break; - } - - return ret; -} - -static LV_PLUG_RET _lv_plugin_menu_select_prev_item(lv_plugin_menu_ext_t* ext) -{ - uint8_t idx = _lv_plugin_menu_find_visible_item_index(ext, ext->selected_item, -1); - return _lv_plugin_menu_select_item(ext, idx); -} - - -LV_PLUG_RET lv_plugin_menu_set_first_displayed_item(lv_obj_t * menu, int16_t offset) -{ - if(NULL == menu->ext_attr) - return LV_RES_INV; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - return _lv_plugin_menu_set_first_displayed_item(ext, offset); -} - - - -LV_PLUG_RET lv_plugin_menu_set_displayed_item_forward_offset(lv_obj_t *menu, int16_t offset) -{ - if(NULL == menu->ext_attr) - return LV_PLUG_ERR_OBJ_EXT_NOT_ALLOCATED; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - ext->displayed_item_offset_forward = offset; - - return LV_PLUG_SUCCESS; -} - -LV_PLUG_RET lv_plugin_menu_set_displayed_item_backward_offset(lv_obj_t *menu, int16_t offset) -{ - if(NULL == menu->ext_attr) - return LV_PLUG_ERR_OBJ_EXT_NOT_ALLOCATED; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - ext->displayed_item_offset_backward = offset; - - return LV_PLUG_SUCCESS; -} - -uint8_t lv_plugin_menu_item_cnt(lv_obj_t *menu) -{ - if(NULL == menu->ext_attr) - return LV_PLUG_ERR_OBJ_EXT_NOT_ALLOCATED; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - return ext->item_cnt; -} - -LV_PLUG_RET lv_plugin_menu_displayed_item_cnt(lv_obj_t *menu, uint8_t *cnt) -{ - if(NULL == menu->ext_attr) - return LV_PLUG_ERR_OBJ_EXT_NOT_ALLOCATED; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - *cnt = ext->btn_cnt; - - return LV_PLUG_SUCCESS; -} - -int16_t lv_plugin_menu_selected_item_index(lv_obj_t *menu) -{ - if(NULL == menu->ext_attr) - return -1; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - return ext->selected_item; -} - -int16_t lv_plugin_menu_first_item_index(lv_obj_t *menu) -{ - if (NULL == menu->ext_attr) - return -1; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - int16_t idx = 0; - - - while(idx < ext->item_cnt) - { - - if((ext->items[idx].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE)){ - return idx; - } - - idx++; - } - - return -1; -} - -int16_t lv_plugin_menu_last_item_index(lv_obj_t *menu) -{ - if (NULL == menu->ext_attr) - return -1; - - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - int16_t idx = ext->item_cnt - 1; - - while(idx >= 0) - { - if((ext->items[idx].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE)){ - return idx; - } - - idx--; - } - - return -1; - -} - -bool lv_plugin_menu_is_first_item(lv_obj_t* menu, uint8_t idx) -{ - if (NULL == menu->ext_attr) - return -1; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - uint8_t res = _lv_plugin_menu_find_visible_item_index(ext, idx, -1); - return (res == idx) ? true : false; - -} - -bool lv_plugin_menu_is_last_item(lv_obj_t* menu, uint8_t idx) -{ - if (NULL == menu->ext_attr) - return -1; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - uint8_t res = _lv_plugin_menu_find_visible_item_index(ext, idx, 1); - - return (res == idx) ? true : false; -} - -LV_PLUG_RET lv_plugin_menu_clear_selected_item(lv_obj_t *menu) -{ - if(NULL == menu->ext_attr) - return LV_PLUG_ERR_OBJ_EXT_NOT_ALLOCATED; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - lv_plugin_menu_item_t* item = &ext->items[ext->selected_item]; - - if(item->state == LV_PLUGIN_MENU_ITEM_STATE_FOCUSED || item->state == LV_PLUGIN_MENU_ITEM_STATE_PRESSED){ - - ext->focus_event_notified = false; - ext->old_selected_item = ext->selected_item; - item->state = LV_PLUGIN_MENU_ITEM_STATE_RELEASED; - _lv_plugin_menu_refresh_items(ext); - _lv_plugin_menu_send_item_focus_event(menu); - } - - return LV_PLUG_SUCCESS; -} - -int16_t lv_plugin_menu_first_displayed_item_index(lv_obj_t *menu) -{ - if(NULL == menu->ext_attr) - return -1; - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - return ext->first_displayed_item; -} - -static LV_PLUG_RET _lv_plugin_menu_set_first_displayed_item(lv_plugin_menu_ext_t* ext, int16_t offset) -{ - LV_PLUG_RET ret = LV_PLUG_SUCCESS; - int16_t distance; - uint8_t idx; - - idx = _lv_plugin_menu_find_visible_item_index(ext, ext->selected_item, offset); - ret = _lv_plugin_menu_calculate_distance(ext, idx, &distance); - if(ret != LV_PLUG_SUCCESS) - return ret; - - if( distance < ext->btn_cnt){ - ext->first_displayed_item = idx; - return LV_PLUG_SUCCESS; - } - else{ - ext->first_displayed_item = ext->selected_item; - return LV_PLUG_SUCCESS; - } -} - -LV_PLUG_RET lv_plugin_menu_init_items(lv_obj_t* menu, uint8_t item_cnt) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - if (ext->items != NULL) { - LV_LOG_WARN("already allocated!"); - return LV_PLUG_ERR_MENU_ALREADY_ALLOCATED; - } - - if(item_cnt == 0){ - LV_LOG_ERROR("item_cnt can't be zero!"); - return LV_PLUG_ERR_INVALID_PARAM; - } - - ext->items = (lv_plugin_menu_item_t*)lv_mem_alloc(sizeof(lv_plugin_menu_item_t) * item_cnt); - _lv_memset_00(ext->items, sizeof(lv_plugin_menu_item_t) * item_cnt); - ext->item_cnt = item_cnt; - _lv_plugin_menu_select_item(ext, 0); - _lv_plugin_menu_set_first_displayed_item(ext, 0); - _lv_plugin_menu_refresh_items(ext); - - return LV_PLUG_SUCCESS; -} - -LV_PLUG_RET _lv_plugin_menu_uninit_items(lv_plugin_menu_ext_t* ext) -{ - if (ext->items == NULL) { - LV_LOG_WARN("not allocated!"); - return LV_PLUG_ERR_MENU_NOT_ALLOCATED; - } - - lv_mem_free(ext->items); - ext->items = NULL; - ext->item_cnt = 0; - - return LV_PLUG_SUCCESS; -} - -LV_PLUG_RET lv_plugin_menu_uninit_items(lv_obj_t* menu) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - return _lv_plugin_menu_uninit_items(ext); -} - - -LV_PLUG_RET _lv_plugin_menu_set_item_hidden(lv_plugin_menu_ext_t* ext, uint8_t item_idx, bool is_hidden) -{ - if (ext->items == NULL || item_idx >= ext->item_cnt) { - LV_LOG_ERROR("out of index!"); - return LV_PLUG_ERR_MENU_OUT_OF_IDX; - } - - lv_plugin_menu_item_t* data = &ext->items[item_idx]; - - if (is_hidden) { - data->state = LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE; - } - else { - data->state = LV_PLUGIN_MENU_ITEM_STATE_RELEASED; - } - - return LV_PLUG_SUCCESS; -} - -LV_PLUG_RET lv_plugin_menu_set_item_hidden(lv_obj_t* menu, uint8_t item_idx, bool is_hidden) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - LV_PLUG_RET ret = LV_PLUG_SUCCESS; - - if (item_idx == LV_PLUGIN_MENU_ITEM_MAX) { - - for (int i=0 ; iitem_cnt ; i++) - { - ret |= _lv_plugin_menu_set_item_hidden(ext, i , is_hidden); - } - } - else { - - ret = _lv_plugin_menu_set_item_hidden(ext, item_idx, is_hidden); - } - - _lv_plugin_menu_refresh_items(ext); - - return ret; -} - -const lv_plugin_menu_item_t* lv_plugin_menu_items(lv_obj_t* menu) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - return ext->items; -} - -LV_PLUG_RET lv_plugin_menu_set_item_user_data(lv_obj_t* menu, uint8_t item_idx, void* user_sata) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - if (ext->items == NULL || item_idx >= ext->item_cnt){ - LV_LOG_ERROR("out of index!"); - return LV_PLUG_ERR_MENU_OUT_OF_IDX; - } - - ext->items[item_idx].user_data = user_sata; - - return LV_PLUG_SUCCESS; -} - -void* lv_plugin_menu_item_user_data(lv_obj_t* menu, uint8_t item_idx) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - if (ext->items == NULL || item_idx >= ext->item_cnt) - { - LV_LOG_ERROR("out of index!"); - return NULL; - } - - return ext->items[item_idx].user_data; -} - - -LV_PLUG_RET _lv_plugin_menu_set_item_string_id(lv_plugin_menu_ext_t* ext, uint8_t item_idx, lv_plugin_menu_item_stat_t state, lv_plugin_res_id id) -{ - - if (ext->items == NULL || item_idx >= ext->item_cnt){ - LV_LOG_ERROR("out of index!"); - return LV_PLUG_ERR_MENU_OUT_OF_IDX; - } - - lv_plugin_menu_item_t* data = &ext->items[item_idx]; - - if (state >= LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM) { - - for (uint16_t i = 0; i < LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM; i++) - { - data->string_id[i] = id; - } - } - else { - data->string_id[state] = id; - } - - return LV_PLUG_SUCCESS; -} - -LV_PLUG_RET lv_plugin_menu_set_item_string_id(lv_obj_t* menu, uint8_t item_idx, lv_plugin_menu_item_stat_t state, lv_plugin_res_id id) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - LV_PLUG_RET ret = LV_PLUG_SUCCESS; - - if (item_idx == LV_PLUGIN_MENU_ITEM_MAX) { - - for (int i = 0; i < ext->item_cnt; i++) - { - ret |= _lv_plugin_menu_set_item_string_id(ext, i, state, id); - } - } - else { - - ret = _lv_plugin_menu_set_item_string_id(ext, item_idx, state, id); - } - - _lv_plugin_menu_refresh_items(ext); - - return ret; -} - -LV_PLUG_RET _lv_plugin_menu_set_item_img_id(lv_plugin_menu_ext_t* ext, uint8_t item_idx, lv_plugin_menu_item_stat_t state, lv_plugin_res_id id) -{ - if (ext->items == NULL || item_idx >= ext->item_cnt){ - LV_LOG_ERROR("out of index!"); - return LV_PLUG_ERR_MENU_OUT_OF_IDX; - } - - lv_plugin_menu_item_t* data = &ext->items[item_idx]; - - if (state >= LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM) { - - for (uint16_t i = 0; i < LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM; i++) - { - data->img_id[i] = id; - } - } - else { - data->img_id[state] = id; - } - - return LV_PLUG_SUCCESS; -} - -LV_PLUG_RET lv_plugin_menu_set_item_img_id(lv_obj_t* menu, uint8_t item_idx, lv_plugin_menu_item_stat_t state, lv_plugin_res_id id) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - LV_PLUG_RET ret = LV_PLUG_SUCCESS; - - if(id == LV_PLUGIN_RES_ID_NONE){ - LV_LOG_ERROR("image id can't be NONE!"); - return LV_PLUG_ERR_INVALID_PARAM; - } - - if (item_idx == LV_PLUGIN_MENU_ITEM_MAX) { - - for (int i = 0; i < ext->item_cnt; i++) - { - ret |= _lv_plugin_menu_set_item_img_id(ext, i, state, id); - } - } - else { - - ret = _lv_plugin_menu_set_item_img_id(ext, item_idx, state, id); - } - - _lv_plugin_menu_refresh_items(ext); - - return ret; -} - -void lv_plugin_menu_set_wrap(lv_obj_t* menu, bool en) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - ext->is_wrap = en; -} - -void lv_plugin_menu_set_scroll_mode(lv_obj_t* menu, lv_plugin_menu_scroll_mode scroll_mode) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - ext->scroll_mode = scroll_mode; -} - -lv_plugin_menu_scroll_mode lv_plugin_menu_get_scroll_mode(lv_obj_t* menu) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - return ext->scroll_mode; -} - -void _lv_plugin_menu_apply_item_state(lv_obj_t* btn, lv_plugin_menu_item_t* item) -{ - if(item == NULL){ - - lv_obj_set_hidden(btn, true); - - } - else { - - lv_obj_set_hidden(btn, false); - - lv_plugin_res_id img_id = item->img_id[item->state]; - lv_plugin_res_id string_id = item->string_id[item->state]; - - lv_obj_t* parent = lv_obj_get_parent(btn); - lv_plugin_menu_ext_t* ext = lv_obj_get_ext_attr(parent); - - - lv_obj_t* label = lv_plugin_find_child_by_type(btn, NULL, lv_plugin_label_type_name()); - lv_obj_t* img = lv_plugin_find_child_by_type(btn, NULL, lv_plugin_img_type_name()); - lv_coord_t offset_x = 0, offset_y = 0; - - if (label) { - lv_plugin_label_allocate_ext_attr(label); - lv_plugin_label_set_text(label, string_id); - lv_plugin_label_update_font(label, LV_OBJ_PART_MAIN); - - switch(item->state) - { - - case LV_PLUGIN_MENU_ITEM_STATE_FOCUSED: - lv_obj_set_state(label, LV_STATE_FOCUSED); - break; - - case LV_PLUGIN_MENU_ITEM_STATE_DISABLED: - lv_obj_set_state(label, LV_STATE_DISABLED); - break; - - case LV_PLUGIN_MENU_ITEM_STATE_PRESSED: - lv_obj_set_state(label, LV_STATE_PRESSED); - break; - - case LV_PLUGIN_MENU_ITEM_STATE_RELEASED: - default: - lv_obj_set_state(label, LV_STATE_DEFAULT); - break; - } - } - - if (img && img_id != LV_PLUGIN_RES_ID_NONE) { - lv_plugin_img_set_src(img, img_id); - - switch(item->state) - { - - case LV_PLUGIN_MENU_ITEM_STATE_FOCUSED: - lv_obj_set_state(img, LV_STATE_FOCUSED); - break; - - case LV_PLUGIN_MENU_ITEM_STATE_DISABLED: - lv_obj_set_state(img, LV_STATE_DISABLED); - break; - - case LV_PLUGIN_MENU_ITEM_STATE_PRESSED: - lv_obj_set_state(img, LV_STATE_PRESSED); - break; - - case LV_PLUGIN_MENU_ITEM_STATE_RELEASED: - default: - lv_obj_set_state(img, LV_STATE_DEFAULT); - break; - } - } - - - btn_set_state_cb set_state_cb; - - if(lv_plugin_obj_is_btn(btn)){ - set_state_cb = lv_btn_set_state; - } - else if(lv_plugin_obj_is_imgbtn(btn)){ - set_state_cb = lv_imgbtn_set_state; - } - else{ - set_state_cb = lv_btn_set_state; - } - - switch (item->state) - { - case LV_PLUGIN_MENU_ITEM_STATE_RELEASED: - - if (lv_plugin_obj_is_imgbtn(btn)) - { - lv_plugin_menu_btn_user_data *user_data = lv_obj_get_user_data(btn); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, user_data->imgbtn_scr_released); - } - - set_state_cb(btn, LV_BTN_STATE_RELEASED); - lv_obj_clear_state(btn, LV_STATE_FOCUSED); - break; - - case LV_PLUGIN_MENU_ITEM_STATE_FOCUSED: - - if (lv_plugin_obj_is_imgbtn(btn)) - { - lv_plugin_menu_btn_user_data* user_data = lv_obj_get_user_data(btn); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, user_data->imgbtn_scr_focused); - } - - set_state_cb(btn, LV_BTN_STATE_RELEASED); - lv_obj_add_state(btn, LV_STATE_FOCUSED); - break; - - case LV_PLUGIN_MENU_ITEM_STATE_PRESSED: - set_state_cb(btn, LV_BTN_STATE_PRESSED); - - offset_x = ext->pressed_offset_x; - offset_y = ext->pressed_offset_y; - break; - - /* disabled object can't obtain focus */ - case LV_PLUGIN_MENU_ITEM_STATE_DISABLED: - set_state_cb(btn, LV_BTN_STATE_DISABLED); - lv_obj_set_state(btn, LV_STATE_DISABLED); - break; - - default: - break; - } - - if (img) { - lv_img_set_offset_x(img, offset_x); - lv_img_set_offset_y(img, offset_y); - } - - if (label) { - _lv_plugin_label_set_offset(label, offset_x, offset_y); - } - } - - lv_obj_invalidate(btn); -} - - - -static LV_PLUG_RET _lv_plugin_menu_calculate_distance(lv_plugin_menu_ext_t* ext, uint8_t idx, int16_t* distance) -{ - uint8_t start, end ; - int16_t factor, cnt = 0; - - if(idx >= ext->item_cnt || ext->selected_item >= ext->item_cnt){ - LV_LOG_ERROR("out of index!"); - return LV_PLUG_ERR_MENU_OUT_OF_IDX; - } - - - if(idx > ext->selected_item){ - start = ext->selected_item; - end = idx; - factor = -1; - } - else{ - start = idx; - end = ext->selected_item; - factor = 1; - } - - while(start != end) - { - ++start; - - if(ext->items[start].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE) - cnt++; - } - - - *distance = (cnt * factor); - - return LV_PLUG_SUCCESS; -} - -void _lv_plugin_menu_navigate_next(lv_plugin_menu_ext_t* ext) -{ - uint8_t selected_item_idx = ext->selected_item; - int16_t distance; - - if(_lv_plugin_menu_calculate_distance(ext, ext->first_displayed_item, &distance) != LV_PLUG_SUCCESS) - return; - - if(selected_item_idx == _lv_plugin_menu_find_visible_item_index(ext, selected_item_idx, 1)){ - if(ext->is_wrap){ - _lv_plugin_menu_select_first_item(ext); - _lv_plugin_menu_calculate_distance(ext, selected_item_idx, &distance); - - /* check cross page, ignore displayed_item_offset_backward when wrapping item ocurred */ - if (distance < 0 && abs(distance) >= ext->btn_cnt) { - - switch (ext->scroll_mode) - { - case LV_PLUGIN_MENU_SCROLL_MODE_PAGE: - case LV_PLUGIN_MENU_SCROLL_MODE_STEP: - _lv_plugin_menu_set_first_displayed_item(ext, 0); - break; - - case LV_PLUGIN_MENU_SCROLL_MODE_CUSTOM: - default: - _lv_plugin_menu_set_first_displayed_item(ext, ext->displayed_item_offset_backward); - break; - } - } - } - } - else if( distance >= 0 && distance < (ext->btn_cnt - 1)) - { - _lv_plugin_menu_select_next_item(ext); - } - else{ - _lv_plugin_menu_select_next_item(ext); - - switch (ext->scroll_mode) - { - case LV_PLUGIN_MENU_SCROLL_MODE_PAGE: - _lv_plugin_menu_set_first_displayed_item(ext, 0); - break; - - case LV_PLUGIN_MENU_SCROLL_MODE_STEP: - _lv_plugin_menu_set_first_displayed_item(ext, -(ext->btn_cnt - 1)); - break; - - case LV_PLUGIN_MENU_SCROLL_MODE_CUSTOM: - default: - _lv_plugin_menu_set_first_displayed_item(ext, ext->displayed_item_offset_forward); - break; - } - } -} - -void _lv_plugin_menu_navigate_prev(lv_plugin_menu_ext_t* ext) -{ - uint8_t selected_item_idx = ext->selected_item; - int16_t distance; - - if(_lv_plugin_menu_calculate_distance(ext, ext->first_displayed_item, &distance) != LV_PLUG_SUCCESS) - return; - - if(selected_item_idx == _lv_plugin_menu_find_visible_item_index(ext, selected_item_idx, -1)){ - - if(ext->is_wrap){ - _lv_plugin_menu_select_last_item(ext); - _lv_plugin_menu_calculate_distance(ext, selected_item_idx, &distance); - - /* check cross page, ignore displayed_item_offset_backward when wrapping item ocurred */ - if (distance > 0 && distance >= ext->btn_cnt) { - - switch (ext->scroll_mode) - { - case LV_PLUGIN_MENU_SCROLL_MODE_PAGE: - { - int16_t offset = -(distance % ext->btn_cnt); - _lv_plugin_menu_set_first_displayed_item(ext, offset); - } - break; - - case LV_PLUGIN_MENU_SCROLL_MODE_STEP: - _lv_plugin_menu_set_first_displayed_item(ext, -(ext->btn_cnt - 1)); - break; - - case LV_PLUGIN_MENU_SCROLL_MODE_CUSTOM: - default: - _lv_plugin_menu_set_first_displayed_item(ext, ext->displayed_item_offset_backward); - break; - } - } - } - } - else if( distance > 0 && distance < ext->btn_cnt) - { - _lv_plugin_menu_select_prev_item(ext); - } - else{ - _lv_plugin_menu_select_prev_item(ext); - - switch (ext->scroll_mode) - { - case LV_PLUGIN_MENU_SCROLL_MODE_PAGE: - _lv_plugin_menu_set_first_displayed_item(ext, -(ext->btn_cnt - 1)); - break; - - case LV_PLUGIN_MENU_SCROLL_MODE_STEP: - _lv_plugin_menu_set_first_displayed_item(ext, 0); - break; - - case LV_PLUGIN_MENU_SCROLL_MODE_CUSTOM: - default: - _lv_plugin_menu_set_first_displayed_item(ext, ext->displayed_item_offset_backward); - break; - } - } -} - - -/* won't change the menu item index */ -void _lv_plugin_menu_refresh_items(lv_plugin_menu_ext_t* ext) -{ - uint8_t curr_item_idx = ext->first_displayed_item; - - for(int i=0 ; ibtn_cnt ; i++) - { - lv_obj_t* btn = ext->btns[i]; - - /* hide all buttons if no item exists */ - if(NULL == ext->items){ - _lv_plugin_menu_apply_item_state(btn, NULL); - continue; - } - - /********************************************** - * 1. skip invisible item - * 2. hide button if out of index - **********************************************/ - while(true) - { - if(curr_item_idx < ext->item_cnt){ - - lv_plugin_menu_item_t* item = &ext->items[curr_item_idx++]; - - if(item){ - - if(item->state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE){ - _lv_plugin_menu_apply_item_state(btn, item); - break; - } - else - continue; - } - } - else{ - _lv_plugin_menu_apply_item_state(btn, NULL); - break; - } - } - } -} - -lv_obj_t* lv_plugin_menu_create(lv_obj_t *parent, lv_obj_t *cont) -{ - LV_ASSERT_OBJ(cont, lv_plugin_cont_type_name()) - - lv_obj_t* child = NULL; - lv_obj_t* menu = cont; - lv_plugin_menu_ext_t* ext = _lv_plugin_obj_allocate_ext_attr(menu, sizeof(lv_plugin_menu_ext_t)); - - if(NULL == old_menu_signal_cb) - old_menu_signal_cb = lv_obj_get_signal_cb(menu); - - ext->btns = NULL; - ext->btn_cnt = 0; - ext->items = NULL; - ext->item_cnt = 0; - ext->focus_event_notified = false; - ext->old_selected_item = 0; - ext->selected_item = 0; - ext->first_displayed_item = 0; - ext->is_wrap = false; - ext->pressed_offset_x = 3; - ext->pressed_offset_y = 3; - ext->scroll_mode = LV_PLUGIN_MENU_SCROLL_MODE_PAGE; - - lv_obj_t* tmp_btns[LV_PLUGIN_MENU_BTN_MAX] = { NULL }; - child = NULL; - while(true) - { - child = lv_obj_get_child_back(menu, child); - - if(child == NULL) - break; - - if(lv_plugin_obj_is_imgbtn(child) || lv_plugin_obj_is_btn(child)){ - - if(lv_plugin_obj_is_imgbtn(child)){ - - if(old_imgbtn_signal_cb == NULL){ - old_imgbtn_signal_cb = lv_obj_get_signal_cb(child); - } - - lv_obj_set_signal_cb(child, lv_plugin_menu_imgbtn_signal); - } - else if(lv_plugin_obj_is_btn(child)){ - - if(old_btn_signal_cb == NULL){ - old_btn_signal_cb = lv_obj_get_signal_cb(child); - } - - lv_obj_set_signal_cb(child, lv_plugin_menu_btn_signal); - } - - - tmp_btns[ext->btn_cnt] = child; - lv_obj_set_parent_event(child, true); - ext->btn_cnt++; - } - } - - ext->btns = lv_mem_alloc(sizeof(lv_obj_t*) * ext->btn_cnt); - memcpy(ext->btns, tmp_btns, sizeof(lv_obj_t*)*ext->btn_cnt); - - lv_plugin_menu_btn_user_data* btns_user_data = (lv_plugin_menu_btn_user_data*)lv_mem_alloc(sizeof(lv_plugin_menu_btn_user_data) * ext->btn_cnt); - - for (int i=0 ; i< ext->btn_cnt ; i++) - { - lv_obj_t* btn = ext->btns[i]; - lv_plugin_menu_btn_user_data* btn_user_data = &btns_user_data[i]; - - lv_obj_set_user_data(btn, btn_user_data); - - if (lv_plugin_obj_is_imgbtn(btn)) { - - /* image source backup */ - btn_user_data->imgbtn_scr_focused = (void*)lv_imgbtn_get_src(btn, LV_BTN_STATE_RELEASED); - btn_user_data->imgbtn_scr_released = (void*)lv_imgbtn_get_src(btn, LV_BTN_STATE_DISABLED); - - if (btn_user_data->imgbtn_scr_released == NULL) - btn_user_data->imgbtn_scr_released = btn_user_data->imgbtn_scr_focused; - } - } - - ext->displayed_item_offset_forward = 0; - ext->displayed_item_offset_backward = -((int16_t)ext->btn_cnt - 1); - - lv_obj_set_parent(menu, parent); - lv_obj_set_signal_cb(menu, lv_plugin_menu_signal); - - _lv_plugin_menu_refresh_items(ext); - - return menu; -} - -void lv_plugin_menu_set_selected_item_pressed(lv_obj_t *menu) -{ - lv_plugin_menu_signal(menu, LV_SIGNAL_PRESSED, NULL); -} - -void lv_plugin_menu_set_selected_item_released(lv_obj_t *menu) -{ - lv_plugin_menu_signal(menu, LV_SIGNAL_RELEASED, NULL); -} - -void lv_plugin_menu_set_pressed_offset(lv_obj_t *menu, lv_coord_t pressed_offset_x, lv_coord_t pressed_offset_y) -{ - LV_ASSERT_OBJ(menu, LV_PLUGIN_MENU_OBJ_NAME) - - lv_plugin_menu_ext_t* ext = menu->ext_attr; - - ext->pressed_offset_x = pressed_offset_x; - ext->pressed_offset_y = pressed_offset_y; -} - -int16_t lv_plugin_menu_current_page_index(lv_obj_t *menu) -{ - lv_plugin_menu_ext_t* ext = menu->ext_attr; - int16_t distance; - uint8_t start = lv_plugin_menu_first_item_index(menu); - uint8_t end = ext->selected_item; - - if(ext->scroll_mode != LV_PLUGIN_MENU_SCROLL_MODE_PAGE){ - LV_LOG_WARN("current scroll mode is not page mode"); - } - - if(_lv_plugin_menu_calculate_distance_ext(ext, start, end, &distance) != LV_PLUG_SUCCESS) - return -1; - - return (abs(distance) / ext->btn_cnt); -} - -int16_t lv_plugin_menu_page_cnt(lv_obj_t *menu) -{ - lv_plugin_menu_ext_t* ext = menu->ext_attr; - int16_t distance; - uint8_t start = lv_plugin_menu_first_item_index(menu); - uint8_t end = lv_plugin_menu_last_item_index(menu); - - - if(ext->scroll_mode != LV_PLUGIN_MENU_SCROLL_MODE_PAGE){ - LV_LOG_WARN("current scroll mode is not page mode"); - } - - if(_lv_plugin_menu_calculate_distance_ext(ext, start, end, &distance) != LV_PLUG_SUCCESS) - return -1; - - return (abs(distance) / ext->btn_cnt); -} - -static LV_PLUG_RET _lv_plugin_menu_calculate_distance_ext(lv_plugin_menu_ext_t* ext, uint8_t start, uint8_t end, int16_t* distance) -{ - int16_t factor, cnt = 0; - - if(start >= ext->item_cnt || end >= ext->item_cnt) - return LV_PLUG_ERR_MENU_OUT_OF_IDX; - - - if(start > end){ - uint8_t tmp; - - tmp = start; - start = end; - end = tmp; - - factor = -1; - } - else{ - factor = 1; - } - - while(start != end) - { - ++start; - - if(ext->items[start].state != LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE) - cnt++; - } - - - *distance = (cnt * factor); - - return LV_PLUG_SUCCESS; -} diff --git a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Plugin/lv_plugin_menu.h b/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Plugin/lv_plugin_menu.h deleted file mode 100644 index 7e019cbdd..000000000 --- a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Plugin/lv_plugin_menu.h +++ /dev/null @@ -1,346 +0,0 @@ - -#ifndef LV_PLUGIN_MENU_H -#define LV_PLUGIN_MENU_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "lvgl/lvgl.h" - -#define LV_PLUGIN_MENU_BASE_EXT lv_cont_ext_t - -typedef enum { - - LV_PLUGIN_MENU_SCROLL_MODE_PAGE, /* shift 1 page(btn_cnt) */ - LV_PLUGIN_MENU_SCROLL_MODE_STEP, /* shift 1 item */ - LV_PLUGIN_MENU_SCROLL_MODE_CUSTOM /* fully controlled by backward & forward offset */ - -} lv_plugin_menu_scroll_mode; - -typedef enum { - LV_PLUGIN_MENU_ITEM_STATE_RELEASED, - LV_PLUGIN_MENU_ITEM_STATE_FOCUSED, - LV_PLUGIN_MENU_ITEM_STATE_PRESSED, - LV_PLUGIN_MENU_ITEM_STATE_DISABLED, - LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, - LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE = LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, - LV_PLUGIN_MENU_ITEM_STATE_NUM -} lv_plugin_menu_item_stat_t; - -#define LV_PLUGIN_MENU_ITEM_STATE_ALL LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM - -typedef struct { - lv_plugin_res_id string_id; - lv_plugin_res_id img_id; - lv_plugin_menu_item_stat_t state; - void* user_data; - uint8_t item_idx; -} lv_plugin_menu_event_data_t; - - -#define LV_PLUGIN_MENU_BTN_MAX 0xFF -#define LV_PLUGIN_MENU_ITEM_MAX 0xFF -#define LV_PLUGIN_MENU_BTN_NONE LV_PLUGIN_MENU_BTN_MAX -#define LV_PLUGIN_MENU_ITEM_NONE LV_PLUGIN_MENU_BTN_NONE -#define LV_PLUGIN_MENU_OBJ_NAME "lv_cont" - -lv_obj_t* lv_plugin_menu_create(lv_obj_t *parent, lv_obj_t *cont); - -LV_PLUG_RET lv_plugin_menu_init_items(lv_obj_t* menu, uint8_t item_cnt); -LV_PLUG_RET lv_plugin_menu_uninit_items(lv_obj_t* menu); -LV_PLUG_RET lv_plugin_menu_set_item_hidden(lv_obj_t* menu, uint8_t item_idx, bool is_hidden); - - -/** - * - * Get item count, it useful to check is item already init - * - * @param menu - * @return item count - */ -uint8_t lv_plugin_menu_item_cnt(lv_obj_t *menu); - - -/** - * - * Set item string id by state, state = LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE will set all state's string id - * - * @param menu - * @param item_idx - * @param state state which string id maps to. - * @param id string id. - * @return - */ -LV_PLUG_RET lv_plugin_menu_set_item_string_id(lv_obj_t* menu, uint8_t item_idx, lv_plugin_menu_item_stat_t state, lv_plugin_res_id id); - -void lv_plugin_menu_set_item_state(lv_obj_t* menu, uint8_t item_idx, lv_plugin_menu_item_stat_t state); - -/** - * - * Set item user data - * - * @param menu - * @param item_idx - * @param user_data - * @return - */ -LV_PLUG_RET lv_plugin_menu_set_item_user_data(lv_obj_t* menu, uint8_t item_idx, void* user_data); - -/** - * - * Get item user data - * - * @param menu - * @param item_idx - * @return user data pointer - */ -void* lv_plugin_menu_item_user_data(lv_obj_t* menu, uint8_t item_idx); - - - -/** - * - * Set item image id by state, state = LV_PLUGIN_MENU_ITEM_STATE_INVISIBLE will set all state's image id - * - * @param menu - * @param item_idx - * @param state state which image id maps to. - * @param id image id, should not be LV_PLUGIN_RES_ID_NONE. - * @return - */ -LV_PLUG_RET lv_plugin_menu_set_item_img_id(lv_obj_t* menu, uint8_t item_idx, lv_plugin_menu_item_stat_t state, lv_plugin_res_id id); - -/** - * - * Set whether focus next/prev will allow wrapping from first->last or last->first item - * - * @param menu - * @param en - */ -void lv_plugin_menu_set_wrap(lv_obj_t* menu, bool en); - -/* backward compatibility */ -#define lv_plugin_menu_set_loop_item lv_plugin_menu_set_wrap - -/*********************************** - * Displayed Item API -************************************/ - -/** - * Scroll custom mode only - * - * Set first displayed item offset , it must be a negative number which means backward from selected item idx. - * This API is unnessecary unless some special use cases like you want to change the displayed item inner page. - * - * @param menu - * @param offset - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_set_first_displayed_item(lv_obj_t *menu, int16_t offset); - -/** - * Scroll custom mode only - * - * - * Set displayed item forward offset , it determines how items displayed if switching to next page and must be a negative number - * - * for e.g. , here are 4 displayed items and total 7 items. - * - * 1 - * 2 - * 3 - * selected item-> 4 - * - * when you call select next item and offset equals to 0 , it would be displayed below : - * - * selected item-> 5 - * 6 - * 7 - * - * when you call select next item and offset equals to -1 , it would be displayed below : - * - * 4 - * selected item-> 5 - * 6 - * 7 - * - * @param menu - * @param offset - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_set_displayed_item_forward_offset(lv_obj_t *menu, int16_t offset); - -/** - * Scroll custom mode only - * - * Set displayed item forward offset , it determines how items displayed if switching to previous page and must be a negative number - * - * @param menu - * @param offset - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_set_displayed_item_backward_offset(lv_obj_t *menu, int16_t offset); - - -/** - * Set current scroll mode - * - * @param menu - * @param scroll_mode - */ -void lv_plugin_menu_set_scroll_mode(lv_obj_t* menu, lv_plugin_menu_scroll_mode scroll_mode); - - -/** - * Get current scroll mode - * - * @param menu - * @return lv_plugin_menu_scroll_mode - */ -lv_plugin_menu_scroll_mode lv_plugin_menu_get_scroll_mode(lv_obj_t* menu); - -/** - * Focus the item - * - * @param menu - * @param idx the item index to be focused - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_select_item(lv_obj_t *menu, uint8_t idx); - -/** - * Get selected item index - * - * @param menu - * @return int16_t selected index, -1 is no selected item or invalid menu handle - */ -int16_t lv_plugin_menu_selected_item_index(lv_obj_t *menu); - -int16_t lv_plugin_menu_first_item_index(lv_obj_t *menu); -int16_t lv_plugin_menu_last_item_index(lv_obj_t *menu); - -bool lv_plugin_menu_is_first_item(lv_obj_t* menu, uint8_t idx); -bool lv_plugin_menu_is_last_item(lv_obj_t* menu, uint8_t idx); - -/** - * Deselect current item, it can be used for defocus event to deselect current item - * - * @param menu - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_clear_selected_item(lv_obj_t *menu); - -/** - * Get max button count can be displayed on the menu (not item count) - * - * @param menu - * @param cnt return value of menu button count - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_displayed_item_cnt(lv_obj_t *menu, uint8_t *cnt); - -/** - * Get first displayed item index - * - * @param menu - * @return item index - */ -int16_t lv_plugin_menu_first_displayed_item_index(lv_obj_t *menu); - -/** - * Get item state - * - * @param menu - * @return lv_plugin_menu_item_stat_t - */ -lv_plugin_menu_item_stat_t lv_plugin_menu_get_item_state(lv_obj_t *menu, uint8_t idx); - -/** - * Send pressed control signal to focused item, this API is useful when the menu is not direcltly controled by lv_driver siganls. - * The most common scenario is a screen object accepts keypad input(prev/next/press/release) and controls the menu object in the screen event callback. - * - * @param menu - */ -void lv_plugin_menu_set_selected_item_pressed(lv_obj_t *menu); - -/** - * Send released control signal to focused item, this API is useful when the menu is not direcltly controled by lv_driver siganls. - * The most common scenario is a screen object accepts keypad input(prev/next/press/release) and controls the menu object in the screen event callback. - * - * @param menu - */ -void lv_plugin_menu_set_selected_item_released(lv_obj_t *menu); - -/** - * Select next item - * The most common scenario is a screen object accepts keypad input(prev/next/press/release) and controls the menu object in the screen event callback. - * - * @param menu - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_select_next_item(lv_obj_t* menu); - -/** - * Select previous item - * The most common scenario is a screen object accepts keypad input(prev/next/press/release) and controls the menu object in the screen event callback. - * - * @param menu - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_select_prev_item(lv_obj_t* menu); - -/** - * Select first item - * - * @param menu - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_select_first_item(lv_obj_t* menu); - -/** - * Select lasr item - * - * @param menu - * @return LV_PLUG_RET - */ -LV_PLUG_RET lv_plugin_menu_select_last_item(lv_obj_t* menu); - -/** - * Set pressed offset, it affects label and image pressed offset (if exists) - * - * IMPORTANT: - * - * LVGL image (lv_img) has built-in tile prop and can't be disabled, if your image source foreground just fit background size, - * you'll see duplicate foreground images on the top-left, to resolve it, the image source should extend background size. - * - * @param menu - * @param pressed_offset_x - * @param pressed_offset_y - * @return LV_PLUG_RET - */ -void lv_plugin_menu_set_pressed_offset(lv_obj_t *menu, lv_coord_t pressed_offset_x, lv_coord_t pressed_offset_y); - -/** - * Scroll page mode only, get current page index. - * This API might be helpful to show the page number on the ui - * - * @param menu - * @param page index - */ -int16_t lv_plugin_menu_current_page_index(lv_obj_t *menu); - -/** - * Scroll page mode only, get page count. - * This API might be helpful to show the total page number on the ui - * - * @param menu - * @param page count - */ -int16_t lv_plugin_menu_page_cnt(lv_obj_t *menu); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /*LV_PLUGIN_MENU_H*/ diff --git a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp b/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp deleted file mode 100644 index dada3d139..000000000 --- a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp +++ /dev/null @@ -1,5002 +0,0 @@ -{ - "display": { - "color depth": 8, - "palette table": [ - { - "color": { - "alpha": 255, - "blue": 87, - "green": 31, - "red": 85 - }, - "index": 0 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 0, - "red": 0 - }, - "index": 1 - }, - { - "color": { - "alpha": 255, - "blue": 255, - "green": 255, - "red": 255 - }, - "index": 2 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 0, - "red": 255 - }, - "index": 3 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 255, - "red": 0 - }, - "index": 4 - }, - { - "color": { - "alpha": 255, - "blue": 255, - "green": 255, - "red": 0 - }, - "index": 5 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 255, - "red": 255 - }, - "index": 6 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 128, - "red": 128 - }, - "index": 7 - }, - { - "color": { - "alpha": 255, - "blue": 128, - "green": 128, - "red": 128 - }, - "index": 8 - }, - { - "color": { - "alpha": 255, - "blue": 192, - "green": 192, - "red": 192 - }, - "index": 9 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 0, - "red": 128 - }, - "index": 10 - }, - { - "color": { - "alpha": 255, - "blue": 128, - "green": 0, - "red": 128 - }, - "index": 11 - }, - { - "color": { - "alpha": 255, - "blue": 255, - "green": 0, - "red": 255 - }, - "index": 12 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 128, - "red": 0 - }, - "index": 13 - }, - { - "color": { - "alpha": 255, - "blue": 255, - "green": 0, - "red": 0 - }, - "index": 14 - }, - { - "color": { - "alpha": 255, - "blue": 128, - "green": 0, - "red": 0 - }, - "index": 15 - }, - { - "color": { - "alpha": 255, - "blue": 128, - "green": 128, - "red": 0 - }, - "index": 16 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 115, - "red": 145 - }, - "index": 17 - }, - { - "color": { - "alpha": 255, - "blue": 89, - "green": 89, - "red": 87 - }, - "index": 18 - }, - { - "color": { - "alpha": 255, - "blue": 153, - "green": 204, - "red": 51 - }, - "index": 19 - }, - { - "color": { - "alpha": 255, - "blue": 44, - "green": 150, - "red": 183 - }, - "index": 20 - }, - { - "color": { - "alpha": 255, - "blue": 60, - "green": 166, - "red": 200 - }, - "index": 21 - }, - { - "color": { - "alpha": 255, - "blue": 172, - "green": 172, - "red": 172 - }, - "index": 22 - }, - { - "color": { - "alpha": 255, - "blue": 80, - "green": 186, - "red": 222 - }, - "index": 23 - }, - { - "color": { - "alpha": 255, - "blue": 88, - "green": 195, - "red": 233 - }, - "index": 24 - }, - { - "color": { - "alpha": 255, - "blue": 97, - "green": 206, - "red": 244 - }, - "index": 25 - }, - { - "color": { - "alpha": 255, - "blue": 119, - "green": 229, - "red": 255 - }, - "index": 26 - }, - { - "color": { - "alpha": 255, - "blue": 139, - "green": 250, - "red": 255 - }, - "index": 27 - }, - { - "color": { - "alpha": 255, - "blue": 197, - "green": 78, - "red": 236 - }, - "index": 28 - }, - { - "color": { - "alpha": 255, - "blue": 226, - "green": 116, - "red": 226 - }, - "index": 29 - }, - { - "color": { - "alpha": 255, - "blue": 226, - "green": 176, - "red": 224 - }, - "index": 30 - }, - { - "color": { - "alpha": 255, - "blue": 149, - "green": 159, - "red": 237 - }, - "index": 31 - }, - { - "color": { - "alpha": 255, - "blue": 26, - "green": 26, - "red": 26 - }, - "index": 32 - }, - { - "color": { - "alpha": 0, - "blue": 108, - "green": 108, - "red": 108 - }, - "index": 33 - }, - { - "color": { - "alpha": 255, - "blue": 61, - "green": 201, - "red": 149 - }, - "index": 34 - }, - { - "color": { - "alpha": 255, - "blue": 16, - "green": 15, - "red": 15 - }, - "index": 35 - }, - { - "color": { - "alpha": 255, - "blue": 108, - "green": 108, - "red": 108 - }, - "index": 36 - }, - { - "color": { - "alpha": 255, - "blue": 163, - "green": 163, - "red": 163 - }, - "index": 37 - }, - { - "color": { - "alpha": 255, - "blue": 17, - "green": 17, - "red": 231 - }, - "index": 38 - }, - { - "color": { - "alpha": 77, - "blue": 255, - "green": 255, - "red": 255 - }, - "index": 39 - }, - { - "color": { - "alpha": 192, - "blue": 0, - "green": 0, - "red": 0 - }, - "index": 40 - }, - { - "color": { - "alpha": 255, - "blue": 123, - "green": 146, - "red": 0 - }, - "index": 41 - }, - { - "color": { - "alpha": 255, - "blue": 125, - "green": 148, - "red": 0 - }, - "index": 42 - }, - { - "color": { - "alpha": 255, - "blue": 126, - "green": 150, - "red": 0 - }, - "index": 43 - }, - { - "color": { - "alpha": 255, - "blue": 128, - "green": 152, - "red": 0 - }, - "index": 44 - }, - { - "color": { - "alpha": 255, - "blue": 129, - "green": 154, - "red": 0 - }, - "index": 45 - }, - { - "color": { - "alpha": 255, - "blue": 131, - "green": 156, - "red": 0 - }, - "index": 46 - }, - { - "color": { - "alpha": 255, - "blue": 132, - "green": 158, - "red": 0 - }, - "index": 47 - }, - { - "color": { - "alpha": 255, - "blue": 134, - "green": 160, - "red": 0 - }, - "index": 48 - }, - { - "color": { - "alpha": 255, - "blue": 135, - "green": 162, - "red": 0 - }, - "index": 49 - }, - { - "color": { - "alpha": 255, - "blue": 137, - "green": 164, - "red": 0 - }, - "index": 50 - }, - { - "color": { - "alpha": 255, - "blue": 138, - "green": 166, - "red": 0 - }, - "index": 51 - }, - { - "color": { - "alpha": 255, - "blue": 140, - "green": 168, - "red": 0 - }, - "index": 52 - }, - { - "color": { - "alpha": 255, - "blue": 141, - "green": 170, - "red": 0 - }, - "index": 53 - }, - { - "color": { - "alpha": 255, - "blue": 143, - "green": 172, - "red": 0 - }, - "index": 54 - }, - { - "color": { - "alpha": 255, - "blue": 144, - "green": 174, - "red": 0 - }, - "index": 55 - }, - { - "color": { - "alpha": 255, - "blue": 146, - "green": 176, - "red": 0 - }, - "index": 56 - }, - { - "color": { - "alpha": 255, - "blue": 147, - "green": 178, - "red": 0 - }, - "index": 57 - }, - { - "color": { - "alpha": 255, - "blue": 149, - "green": 180, - "red": 0 - }, - "index": 58 - }, - { - "color": { - "alpha": 255, - "blue": 150, - "green": 182, - "red": 0 - }, - "index": 59 - }, - { - "color": { - "alpha": 255, - "blue": 152, - "green": 184, - "red": 0 - }, - "index": 60 - }, - { - "color": { - "alpha": 255, - "blue": 153, - "green": 186, - "red": 0 - }, - "index": 61 - }, - { - "color": { - "alpha": 255, - "blue": 155, - "green": 188, - "red": 0 - }, - "index": 62 - }, - { - "color": { - "alpha": 255, - "blue": 156, - "green": 190, - "red": 0 - }, - "index": 63 - }, - { - "color": { - "alpha": 255, - "blue": 158, - "green": 192, - "red": 0 - }, - "index": 64 - }, - { - "color": { - "alpha": 255, - "blue": 159, - "green": 194, - "red": 0 - }, - "index": 65 - }, - { - "color": { - "alpha": 255, - "blue": 161, - "green": 196, - "red": 0 - }, - "index": 66 - }, - { - "color": { - "alpha": 255, - "blue": 162, - "green": 198, - "red": 0 - }, - "index": 67 - }, - { - "color": { - "alpha": 255, - "blue": 164, - "green": 200, - "red": 0 - }, - "index": 68 - }, - { - "color": { - "alpha": 255, - "blue": 165, - "green": 202, - "red": 0 - }, - "index": 69 - }, - { - "color": { - "alpha": 255, - "blue": 167, - "green": 204, - "red": 0 - }, - "index": 70 - }, - { - "color": { - "alpha": 255, - "blue": 168, - "green": 206, - "red": 0 - }, - "index": 71 - }, - { - "color": { - "alpha": 255, - "blue": 170, - "green": 208, - "red": 0 - }, - "index": 72 - }, - { - "color": { - "alpha": 255, - "blue": 171, - "green": 210, - "red": 0 - }, - "index": 73 - }, - { - "color": { - "alpha": 255, - "blue": 173, - "green": 212, - "red": 0 - }, - "index": 74 - }, - { - "color": { - "alpha": 255, - "blue": 174, - "green": 214, - "red": 0 - }, - "index": 75 - }, - { - "color": { - "alpha": 255, - "blue": 176, - "green": 216, - "red": 0 - }, - "index": 76 - }, - { - "color": { - "alpha": 255, - "blue": 177, - "green": 218, - "red": 0 - }, - "index": 77 - }, - { - "color": { - "alpha": 255, - "blue": 179, - "green": 220, - "red": 0 - }, - "index": 78 - }, - { - "color": { - "alpha": 255, - "blue": 180, - "green": 222, - "red": 0 - }, - "index": 79 - }, - { - "color": { - "alpha": 255, - "blue": 182, - "green": 224, - "red": 0 - }, - "index": 80 - }, - { - "color": { - "alpha": 255, - "blue": 183, - "green": 226, - "red": 0 - }, - "index": 81 - }, - { - "color": { - "alpha": 255, - "blue": 185, - "green": 228, - "red": 0 - }, - "index": 82 - }, - { - "color": { - "alpha": 255, - "blue": 186, - "green": 230, - "red": 0 - }, - "index": 83 - }, - { - "color": { - "alpha": 255, - "blue": 188, - "green": 232, - "red": 0 - }, - "index": 84 - }, - { - "color": { - "alpha": 255, - "blue": 189, - "green": 234, - "red": 0 - }, - "index": 85 - }, - { - "color": { - "alpha": 255, - "blue": 191, - "green": 236, - "red": 0 - }, - "index": 86 - }, - { - "color": { - "alpha": 255, - "blue": 192, - "green": 238, - "red": 0 - }, - "index": 87 - }, - { - "color": { - "alpha": 255, - "blue": 194, - "green": 240, - "red": 0 - }, - "index": 88 - }, - { - "color": { - "alpha": 255, - "blue": 195, - "green": 242, - "red": 0 - }, - "index": 89 - }, - { - "color": { - "alpha": 255, - "blue": 197, - "green": 244, - "red": 0 - }, - "index": 90 - }, - { - "color": { - "alpha": 255, - "blue": 198, - "green": 246, - "red": 0 - }, - "index": 91 - }, - { - "color": { - "alpha": 255, - "blue": 200, - "green": 248, - "red": 0 - }, - "index": 92 - }, - { - "color": { - "alpha": 255, - "blue": 201, - "green": 250, - "red": 0 - }, - "index": 93 - }, - { - "color": { - "alpha": 255, - "blue": 203, - "green": 252, - "red": 0 - }, - "index": 94 - }, - { - "color": { - "alpha": 255, - "blue": 204, - "green": 254, - "red": 0 - }, - "index": 95 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 41, - "red": 255 - }, - "index": 96 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 42, - "red": 255 - }, - "index": 97 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 44, - "red": 255 - }, - "index": 98 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 46, - "red": 255 - }, - "index": 99 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 48, - "red": 255 - }, - "index": 100 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 51, - "red": 255 - }, - "index": 101 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 52, - "red": 255 - }, - "index": 102 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 53, - "red": 255 - }, - "index": 103 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 56, - "red": 255 - }, - "index": 104 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 58, - "red": 255 - }, - "index": 105 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 60, - "red": 255 - }, - "index": 106 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 62, - "red": 255 - }, - "index": 107 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 64, - "red": 255 - }, - "index": 108 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 66, - "red": 255 - }, - "index": 109 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 69, - "red": 255 - }, - "index": 110 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 71, - "red": 255 - }, - "index": 111 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 73, - "red": 255 - }, - "index": 112 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 75, - "red": 255 - }, - "index": 113 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 76, - "red": 255 - }, - "index": 114 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 78, - "red": 255 - }, - "index": 115 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 80, - "red": 255 - }, - "index": 116 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 82, - "red": 255 - }, - "index": 117 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 85, - "red": 255 - }, - "index": 118 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 87, - "red": 255 - }, - "index": 119 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 88, - "red": 255 - }, - "index": 120 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 90, - "red": 255 - }, - "index": 121 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 92, - "red": 255 - }, - "index": 122 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 95, - "red": 255 - }, - "index": 123 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 97, - "red": 255 - }, - "index": 124 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 100, - "red": 255 - }, - "index": 125 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 103, - "red": 255 - }, - "index": 126 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 105, - "red": 255 - }, - "index": 127 - }, - { - "color": { - "alpha": 255, - "blue": 80, - "green": 80, - "red": 80 - }, - "index": 128 - }, - { - "color": { - "alpha": 255, - "blue": 82, - "green": 82, - "red": 82 - }, - "index": 129 - }, - { - "color": { - "alpha": 255, - "blue": 84, - "green": 84, - "red": 84 - }, - "index": 130 - }, - { - "color": { - "alpha": 255, - "blue": 86, - "green": 86, - "red": 86 - }, - "index": 131 - }, - { - "color": { - "alpha": 255, - "blue": 88, - "green": 88, - "red": 88 - }, - "index": 132 - }, - { - "color": { - "alpha": 255, - "blue": 90, - "green": 90, - "red": 90 - }, - "index": 133 - }, - { - "color": { - "alpha": 255, - "blue": 92, - "green": 92, - "red": 92 - }, - "index": 134 - }, - { - "color": { - "alpha": 255, - "blue": 94, - "green": 94, - "red": 94 - }, - "index": 135 - }, - { - "color": { - "alpha": 255, - "blue": 96, - "green": 96, - "red": 96 - }, - "index": 136 - }, - { - "color": { - "alpha": 255, - "blue": 98, - "green": 98, - "red": 98 - }, - "index": 137 - }, - { - "color": { - "alpha": 255, - "blue": 100, - "green": 100, - "red": 100 - }, - "index": 138 - }, - { - "color": { - "alpha": 255, - "blue": 102, - "green": 102, - "red": 102 - }, - "index": 139 - }, - { - "color": { - "alpha": 255, - "blue": 104, - "green": 104, - "red": 104 - }, - "index": 140 - }, - { - "color": { - "alpha": 255, - "blue": 106, - "green": 106, - "red": 106 - }, - "index": 141 - }, - { - "color": { - "alpha": 255, - "blue": 108, - "green": 108, - "red": 108 - }, - "index": 142 - }, - { - "color": { - "alpha": 255, - "blue": 110, - "green": 110, - "red": 110 - }, - "index": 143 - }, - { - "color": { - "alpha": 255, - "blue": 112, - "green": 112, - "red": 112 - }, - "index": 144 - }, - { - "color": { - "alpha": 255, - "blue": 114, - "green": 114, - "red": 114 - }, - "index": 145 - }, - { - "color": { - "alpha": 255, - "blue": 116, - "green": 116, - "red": 116 - }, - "index": 146 - }, - { - "color": { - "alpha": 255, - "blue": 118, - "green": 118, - "red": 118 - }, - "index": 147 - }, - { - "color": { - "alpha": 255, - "blue": 120, - "green": 120, - "red": 120 - }, - "index": 148 - }, - { - "color": { - "alpha": 255, - "blue": 122, - "green": 122, - "red": 122 - }, - "index": 149 - }, - { - "color": { - "alpha": 255, - "blue": 124, - "green": 124, - "red": 124 - }, - "index": 150 - }, - { - "color": { - "alpha": 255, - "blue": 126, - "green": 126, - "red": 126 - }, - "index": 151 - }, - { - "color": { - "alpha": 255, - "blue": 128, - "green": 128, - "red": 128 - }, - "index": 152 - }, - { - "color": { - "alpha": 255, - "blue": 130, - "green": 130, - "red": 130 - }, - "index": 153 - }, - { - "color": { - "alpha": 255, - "blue": 132, - "green": 132, - "red": 132 - }, - "index": 154 - }, - { - "color": { - "alpha": 255, - "blue": 134, - "green": 134, - "red": 134 - }, - "index": 155 - }, - { - "color": { - "alpha": 255, - "blue": 136, - "green": 136, - "red": 136 - }, - "index": 156 - }, - { - "color": { - "alpha": 255, - "blue": 138, - "green": 138, - "red": 138 - }, - "index": 157 - }, - { - "color": { - "alpha": 255, - "blue": 140, - "green": 140, - "red": 140 - }, - "index": 158 - }, - { - "color": { - "alpha": 255, - "blue": 142, - "green": 142, - "red": 142 - }, - "index": 159 - }, - { - "color": { - "alpha": 255, - "blue": 35, - "green": 36, - "red": 52 - }, - "index": 160 - }, - { - "color": { - "alpha": 255, - "blue": 35, - "green": 35, - "red": 75 - }, - "index": 161 - }, - { - "color": { - "alpha": 255, - "blue": 36, - "green": 36, - "red": 104 - }, - "index": 162 - }, - { - "color": { - "alpha": 255, - "blue": 36, - "green": 36, - "red": 134 - }, - "index": 163 - }, - { - "color": { - "alpha": 255, - "blue": 37, - "green": 37, - "red": 164 - }, - "index": 164 - }, - { - "color": { - "alpha": 255, - "blue": 37, - "green": 37, - "red": 193 - }, - "index": 165 - }, - { - "color": { - "alpha": 255, - "blue": 37, - "green": 37, - "red": 216 - }, - "index": 166 - }, - { - "color": { - "alpha": 255, - "blue": 37, - "green": 37, - "red": 233 - }, - "index": 167 - }, - { - "color": { - "alpha": 255, - "blue": 54, - "green": 54, - "red": 234 - }, - "index": 168 - }, - { - "color": { - "alpha": 255, - "blue": 79, - "green": 79, - "red": 235 - }, - "index": 169 - }, - { - "color": { - "alpha": 255, - "blue": 79, - "green": 79, - "red": 235 - }, - "index": 170 - }, - { - "color": { - "alpha": 255, - "blue": 139, - "green": 139, - "red": 237 - }, - "index": 171 - }, - { - "color": { - "alpha": 255, - "blue": 171, - "green": 170, - "red": 238 - }, - "index": 172 - }, - { - "color": { - "alpha": 255, - "blue": 199, - "green": 200, - "red": 239 - }, - "index": 173 - }, - { - "color": { - "alpha": 255, - "blue": 200, - "green": 200, - "red": 240 - }, - "index": 174 - }, - { - "color": { - "alpha": 255, - "blue": 224, - "green": 224, - "red": 240 - }, - "index": 175 - }, - { - "color": { - "alpha": 255, - "blue": 45, - "green": 52, - "red": 34 - }, - "index": 176 - }, - { - "color": { - "alpha": 255, - "blue": 60, - "green": 76, - "red": 33 - }, - "index": 177 - }, - { - "color": { - "alpha": 255, - "blue": 77, - "green": 105, - "red": 32 - }, - "index": 178 - }, - { - "color": { - "alpha": 255, - "blue": 95, - "green": 136, - "red": 31 - }, - "index": 179 - }, - { - "color": { - "alpha": 255, - "blue": 113, - "green": 166, - "red": 29 - }, - "index": 180 - }, - { - "color": { - "alpha": 255, - "blue": 131, - "green": 195, - "red": 28 - }, - "index": 181 - }, - { - "color": { - "alpha": 255, - "blue": 145, - "green": 219, - "red": 27 - }, - "index": 182 - }, - { - "color": { - "alpha": 255, - "blue": 155, - "green": 236, - "red": 26 - }, - "index": 183 - }, - { - "color": { - "alpha": 255, - "blue": 165, - "green": 238, - "red": 49 - }, - "index": 184 - }, - { - "color": { - "alpha": 255, - "blue": 179, - "green": 241, - "red": 81 - }, - "index": 185 - }, - { - "color": { - "alpha": 255, - "blue": 196, - "green": 244, - "red": 120 - }, - "index": 186 - }, - { - "color": { - "alpha": 255, - "blue": 214, - "green": 247, - "red": 161 - }, - "index": 187 - }, - { - "color": { - "alpha": 255, - "blue": 231, - "green": 250, - "red": 200 - }, - "index": 188 - }, - { - "color": { - "alpha": 255, - "blue": 231, - "green": 251, - "red": 199 - }, - "index": 189 - }, - { - "color": { - "alpha": 255, - "blue": 245, - "green": 253, - "red": 232 - }, - "index": 190 - }, - { - "color": { - "alpha": 255, - "blue": 246, - "green": 253, - "red": 232 - }, - "index": 191 - }, - { - "color": { - "alpha": 255, - "blue": 43, - "green": 80, - "red": 238 - }, - "index": 192 - }, - { - "color": { - "alpha": 255, - "blue": 55, - "green": 86, - "red": 185 - }, - "index": 193 - }, - { - "color": { - "alpha": 255, - "blue": 49, - "green": 129, - "red": 214 - }, - "index": 194 - }, - { - "color": { - "alpha": 255, - "blue": 13, - "green": 90, - "red": 162 - }, - "index": 195 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 168, - "red": 255 - }, - "index": 196 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 180, - "red": 255 - }, - "index": 197 - }, - { - "color": { - "alpha": 255, - "blue": 46, - "green": 211, - "red": 244 - }, - "index": 198 - }, - { - "color": { - "alpha": 255, - "blue": 41, - "green": 175, - "red": 66 - }, - "index": 199 - }, - { - "color": { - "alpha": 255, - "blue": 13, - "green": 253, - "red": 36 - }, - "index": 200 - }, - { - "color": { - "alpha": 255, - "blue": 139, - "green": 189, - "red": 105 - }, - "index": 201 - }, - { - "color": { - "alpha": 255, - "blue": 90, - "green": 172, - "red": 0 - }, - "index": 202 - }, - { - "color": { - "alpha": 255, - "blue": 119, - "green": 142, - "red": 3 - }, - "index": 203 - }, - { - "color": { - "alpha": 255, - "blue": 182, - "green": 98, - "red": 2 - }, - "index": 204 - }, - { - "color": { - "alpha": 255, - "blue": 154, - "green": 72, - "red": 31 - }, - "index": 205 - }, - { - "color": { - "alpha": 255, - "blue": 106, - "green": 96, - "red": 243 - }, - "index": 206 - }, - { - "color": { - "alpha": 255, - "blue": 0, - "green": 63, - "red": 255 - }, - "index": 207 - }, - { - "color": { - "alpha": 255, - "blue": 35, - "green": 35, - "red": 35 - }, - "index": 208 - }, - { - "color": { - "alpha": 255, - "blue": 42, - "green": 42, - "red": 42 - }, - "index": 209 - }, - { - "color": { - "alpha": 255, - "blue": 48, - "green": 48, - "red": 48 - }, - "index": 210 - }, - { - "color": { - "alpha": 255, - "blue": 60, - "green": 60, - "red": 60 - }, - "index": 211 - }, - { - "color": { - "alpha": 255, - "blue": 72, - "green": 72, - "red": 72 - }, - "index": 212 - }, - { - "color": { - "alpha": 255, - "blue": 87, - "green": 87, - "red": 87 - }, - "index": 213 - }, - { - "color": { - "alpha": 255, - "blue": 102, - "green": 102, - "red": 102 - }, - "index": 214 - }, - { - "color": { - "alpha": 255, - "blue": 118, - "green": 118, - "red": 118 - }, - "index": 215 - }, - { - "color": { - "alpha": 255, - "blue": 133, - "green": 133, - "red": 133 - }, - "index": 216 - }, - { - "color": { - "alpha": 255, - "blue": 145, - "green": 145, - "red": 145 - }, - "index": 217 - }, - { - "color": { - "alpha": 255, - "blue": 159, - "green": 159, - "red": 159 - }, - "index": 218 - }, - { - "color": { - "alpha": 255, - "blue": 170, - "green": 170, - "red": 170 - }, - "index": 219 - }, - { - "color": { - "alpha": 255, - "blue": 181, - "green": 181, - "red": 181 - }, - "index": 220 - }, - { - "color": { - "alpha": 255, - "blue": 187, - "green": 187, - "red": 187 - }, - "index": 221 - }, - { - "color": { - "alpha": 255, - "blue": 188, - "green": 188, - "red": 188 - }, - "index": 222 - }, - { - "color": { - "alpha": 255, - "blue": 193, - "green": 193, - "red": 193 - }, - "index": 223 - }, - { - "color": { - "alpha": 255, - "blue": 194, - "green": 194, - "red": 194 - }, - "index": 224 - }, - { - "color": { - "alpha": 255, - "blue": 198, - "green": 198, - "red": 198 - }, - "index": 225 - }, - { - "color": { - "alpha": 255, - "blue": 202, - "green": 202, - "red": 202 - }, - "index": 226 - }, - { - "color": { - "alpha": 255, - "blue": 203, - "green": 203, - "red": 203 - }, - "index": 227 - }, - { - "color": { - "alpha": 255, - "blue": 209, - "green": 209, - "red": 209 - }, - "index": 228 - }, - { - "color": { - "alpha": 255, - "blue": 211, - "green": 211, - "red": 211 - }, - "index": 229 - }, - { - "color": { - "alpha": 255, - "blue": 213, - "green": 213, - "red": 213 - }, - "index": 230 - }, - { - "color": { - "alpha": 255, - "blue": 217, - "green": 217, - "red": 217 - }, - "index": 231 - }, - { - "color": { - "alpha": 255, - "blue": 220, - "green": 220, - "red": 220 - }, - "index": 232 - }, - { - "color": { - "alpha": 255, - "blue": 221, - "green": 221, - "red": 221 - }, - "index": 233 - }, - { - "color": { - "alpha": 255, - "blue": 224, - "green": 224, - "red": 224 - }, - "index": 234 - }, - { - "color": { - "alpha": 255, - "blue": 225, - "green": 225, - "red": 225 - }, - "index": 235 - }, - { - "color": { - "alpha": 255, - "blue": 227, - "green": 227, - "red": 227 - }, - "index": 236 - }, - { - "color": { - "alpha": 255, - "blue": 229, - "green": 229, - "red": 229 - }, - "index": 237 - }, - { - "color": { - "alpha": 255, - "blue": 231, - "green": 231, - "red": 231 - }, - "index": 238 - }, - { - "color": { - "alpha": 255, - "blue": 233, - "green": 233, - "red": 233 - }, - "index": 239 - }, - { - "color": { - "alpha": 255, - "blue": 234, - "green": 234, - "red": 234 - }, - "index": 240 - }, - { - "color": { - "alpha": 255, - "blue": 237, - "green": 237, - "red": 237 - }, - "index": 241 - }, - { - "color": { - "alpha": 255, - "blue": 240, - "green": 240, - "red": 240 - }, - "index": 242 - }, - { - "color": { - "alpha": 255, - "blue": 242, - "green": 242, - "red": 242 - }, - "index": 243 - }, - { - "color": { - "alpha": 255, - "blue": 244, - "green": 244, - "red": 244 - }, - "index": 244 - }, - { - "color": { - "alpha": 255, - "blue": 246, - "green": 246, - "red": 246 - }, - "index": 245 - }, - { - "color": { - "alpha": 255, - "blue": 248, - "green": 248, - "red": 248 - }, - "index": 246 - }, - { - "color": { - "alpha": 255, - "blue": 249, - "green": 249, - "red": 249 - }, - "index": 247 - }, - { - "color": { - "alpha": 255, - "blue": 253, - "green": 253, - "red": 253 - }, - "index": 248 - }, - { - "color": { - "alpha": 255, - "blue": 94, - "green": 94, - "red": 94 - }, - "index": 249 - }, - { - "color": { - "alpha": 255, - "blue": 102, - "green": 102, - "red": 102 - }, - "index": 250 - }, - { - "color": { - "alpha": 255, - "blue": 110, - "green": 110, - "red": 110 - }, - "index": 251 - }, - { - "color": { - "alpha": 255, - "blue": 118, - "green": 118, - "red": 118 - }, - "index": 252 - }, - { - "color": { - "alpha": 255, - "blue": 126, - "green": 126, - "red": 126 - }, - "index": 253 - }, - { - "color": { - "alpha": 255, - "blue": 134, - "green": 134, - "red": 134 - }, - "index": 254 - }, - { - "color": { - "alpha": 255, - "blue": 142, - "green": 142, - "red": 142 - }, - "index": 255 - } - ], - "resolution": { - "height": 240, - "width": 320 - } - }, - "fonts": [ - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/NotoSansCJKsc-Black.otf", - "include language table": true, - "name": "NotoSansCJKsc-Black", - "size": 16, - "unicode range names": [ - "Ascii" - ] - }, - - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/ARIALUNI.TTF", - "include language table": true, - "name": "ARIALUNI", - "size": 16, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/ARIALUNI.TTF", - "include language table": true, - "name": "ARIALUNI", - "size": 18, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/ARIALUNI.TTF", - "include language table": true, - "name": "ARIALUNI", - "size": 48, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/ARIALUNI.TTF", - "include language table": true, - "name": "ARIALUNI", - "size": 60, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/ARIALUNI.TTF", - "include language table": true, - "name": "ARIALUNI", - "size": 86, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/ARIALUNI.TTF", - "include language table": true, - "name": "ARIALUNI", - "size": 74, - "unicode range names": [ - "Ascii" - ] - }, - - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/ARIALUNI.TTF", - "include language table": true, - "name": "ARIALUNI", - "size": 106, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/SF-UI-Text-Medium.otf", - "include language table": true, - "name": "SF-UI-Text-Medium", - "size": 18, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/SF-UI-Text-Medium.otf", - "include language table": true, - "name": "SF-UI-Text-Medium", - "size": 16, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/NotoSans-Black.ttf", - "include language table": true, - "name": "NotoSans-Black", - "size": 8, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/SF-UI-Text-Bold.otf", - "include language table": true, - "name": "SF-UI-Text-Bold", - "size": 16, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/SF-UI-Text-Bold.otf", - "include language table": true, - "name": "SF-UI-Text-Bold", - "size": 20, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/SF-UI-Text-Bold.otf", - "include language table": true, - "name": "SF-UI-Text-Bold", - "size": 18, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/SF-UI-Text-Medium.otf", - "include language table": true, - "name": "SF-UI-Text-Medium", - "size": 12, - "unicode range names": [ - "Ascii" - ] - }, - { - "bpp": 1, - "compressed": false, - "custom code range": "", - "file path": "fonts/ARIALUNI.TTF", - "include language table": true, - "name": "ARIALUNI", - "size": 32, - "unicode range names": [ - "Ascii" - ] - } - ], - "images": [ - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10200_MOON.BMP", - "name": "ICON_10200_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10201_MOON.BMP", - "name": "ICON_10201_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10202_MOON.BMP", - "name": "ICON_10202_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10203_MOON.BMP", - "name": "ICON_10203_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10204_MOON.BMP", - "name": "ICON_10204_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10205_MOON.BMP", - "name": "ICON_10205_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10206_MOON.BMP", - "name": "ICON_10206_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10207_MOON.BMP", - "name": "ICON_10207_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10208_MOON.BMP", - "name": "ICON_10208_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10209_MOON.BMP", - "name": "ICON_10209_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10210_MOON.BMP", - "name": "ICON_10210_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10211_MOON.BMP", - "name": "ICON_10211_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10212_MOON.BMP", - "name": "ICON_10212_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10213_MOON.BMP", - "name": "ICON_10213_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10214_MOON.BMP", - "name": "ICON_10214_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10215_MOON.BMP", - "name": "ICON_10215_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10216_MOON.BMP", - "name": "ICON_10216_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10217_MOON.BMP", - "name": "ICON_10217_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10218_MOON.BMP", - "name": "ICON_10218_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10219_MOON.BMP", - "name": "ICON_10219_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10220_MOON.BMP", - "name": "ICON_10220_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10221_MOON.BMP", - "name": "ICON_10221_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10222_MOON.BMP", - "name": "ICON_10222_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10223_MOON.BMP", - "name": "ICON_10223_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10224_MOON.BMP", - "name": "ICON_10224_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10225_MOON.BMP", - "name": "ICON_10225_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10226_MOON.BMP", - "name": "ICON_10226_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10227_MOON.BMP", - "name": "ICON_10227_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10228_MOON.BMP", - "name": "ICON_10228_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10229_MOON.BMP", - "name": "ICON_10229_MOON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10230_BATTERT.BMP", - "name": "ICON_10230_BATTERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10231_BATTERT.BMP", - "name": "ICON_10231_BATTERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10232_BATTERT.BMP", - "name": "ICON_10232_BATTERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10233_BATTERT.BMP", - "name": "ICON_10233_BATTERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_10234_GPS.bmp", - "name": "ICON_10234_GPS" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ACT_PUSH_BTN.bmp", - "name": "ICON_ACT_PUSH_BTN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ACT_RELEASE_BTN.bmp", - "name": "ICON_ACT_RELEASE_BTN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ADAS_CAL.bmp", - "name": "ICON_ADAS_CAL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ADAS_CAL_M.bmp", - "name": "ICON_ADAS_CAL_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ADAS_OFF.bmp", - "name": "ICON_ADAS_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ADAS_OFF_M.bmp", - "name": "ICON_ADAS_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ADAS_ON.bmp", - "name": "ICON_ADAS_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ADAS_ON_M.bmp", - "name": "ICON_ADAS_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_AUTOSHUTDOWN.bmp", - "name": "ICON_AUTOSHUTDOWN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_AUTOSHUTDOWN_10MIN.bmp", - "name": "ICON_AUTOSHUTDOWN_10MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_AUTOSHUTDOWN_3MIN.bmp", - "name": "ICON_AUTOSHUTDOWN_3MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_AUTOSHUTDOWN_5MIN.bmp", - "name": "ICON_AUTOSHUTDOWN_5MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_AUTOSHUTDOWN_M.bmp", - "name": "ICON_AUTOSHUTDOWN_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_AUTOSHUTDOWN_OFF.bmp", - "name": "ICON_AUTOSHUTDOWN_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BACKLIGHT.BMP", - "name": "ICON_BACKLIGHT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BACKLIGHT_HIGH.BMP", - "name": "ICON_BACKLIGHT_HIGH" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BACKLIGHT_LOW.BMP", - "name": "ICON_BACKLIGHT_LOW" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BACKLIGHT_M.bmp", - "name": "ICON_BACKLIGHT_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BACKLIGHT_MID.BMP", - "name": "ICON_BACKLIGHT_MID" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BACKLIGHT_OFF.BMP", - "name": "ICON_BACKLIGHT_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BATTERY_CHARGE.bmp", - "name": "ICON_BATTERY_CHARGE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BATTERY_EMPTY.bmp", - "name": "ICON_BATTERY_EMPTY" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BATTERY_FULL.bmp", - "name": "ICON_BATTERY_FULL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BATTERY_LOW.bmp", - "name": "ICON_BATTERY_LOW" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BATTERY_MED.bmp", - "name": "ICON_BATTERY_MED" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BATTERY_TYPE.bmp", - "name": "ICON_BATTERY_TYPE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BATTERY_ZERO.bmp", - "name": "ICON_BATTERY_ZERO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BSD_OFF.bmp", - "name": "ICON_BSD_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BSD_OFF_M.bmp", - "name": "ICON_BSD_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BSD_ON.bmp", - "name": "ICON_BSD_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BSD_ON_M.bmp", - "name": "ICON_BSD_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BTN_EMBOSS.bmp", - "name": "ICON_BTN_EMBOSS" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BUST.bmp", - "name": "ICON_BUST" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BUST_3SHOT.bmp", - "name": "ICON_BUST_3SHOT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BUST_5SHOT.bmp", - "name": "ICON_BUST_5SHOT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BUST_CONTINUE.bmp", - "name": "ICON_BUST_CONTINUE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BUST_M.bmp", - "name": "ICON_BUST_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_BUST_OFF.bmp", - "name": "ICON_BUST_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CAM_PTZ_OFF.bmp", - "name": "ICON_CAM_PTZ_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CAM_PTZ_ON.bmp", - "name": "ICON_CAM_PTZ_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CAM_PTZ_ON_M.bmp", - "name": "ICON_CAM_PTZ_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CANCEL.bmp", - "name": "ICON_CANCEL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CANCEL_M.bmp", - "name": "ICON_CANCEL_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_CONNECTED.bmp", - "name": "ICON_CLOUD_CONNECTED" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_CONNECTED_M.bmp", - "name": "ICON_CLOUD_CONNECTED_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_CONNECTING.bmp", - "name": "ICON_CLOUD_CONNECTING" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_CONNECTING_M.bmp", - "name": "ICON_CLOUD_CONNECTING_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_DOWNLOAD1.bmp", - "name": "ICON_CLOUD_DOWNLOAD1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_DOWNLOAD2.bmp", - "name": "ICON_CLOUD_DOWNLOAD2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_FAIL.bmp", - "name": "ICON_CLOUD_FAIL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_OFF.bmp", - "name": "ICON_CLOUD_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_OFF_M.bmp", - "name": "ICON_CLOUD_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_ON.bmp", - "name": "ICON_CLOUD_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_ON_M.bmp", - "name": "ICON_CLOUD_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_UPLOAD1.bmp", - "name": "ICON_CLOUD_UPLOAD1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CLOUD_UPLOAD2.bmp", - "name": "ICON_CLOUD_UPLOAD2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_COLOR.bmp", - "name": "ICON_COLOR" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_COPY_FROM_CARD.bmp", - "name": "ICON_COPY_FROM_CARD" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CYCLIC_REC.bmp", - "name": "ICON_CYCLIC_REC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CYCLIC_REC_10MIN.bmp", - "name": "ICON_CYCLIC_REC_10MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CYCLIC_REC_15MIN.bmp", - "name": "ICON_CYCLIC_REC_15MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CYCLIC_REC_1MIN.bmp", - "name": "ICON_CYCLIC_REC_1MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CYCLIC_REC_2MIN.bmp", - "name": "ICON_CYCLIC_REC_2MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CYCLIC_REC_3MIN.bmp", - "name": "ICON_CYCLIC_REC_3MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CYCLIC_REC_5MIN.bmp", - "name": "ICON_CYCLIC_REC_5MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_CYCLIC_REC_M.bmp", - "name": "ICON_CYCLIC_REC_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DATETIME_SETUP.bmp", - "name": "ICON_DATETIME_SETUP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DATETIME_SETUP_M.bmp", - "name": "ICON_DATETIME_SETUP_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DATE_PRINT.bmp", - "name": "ICON_DATE_PRINT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DATE_PRINT_M.bmp", - "name": "ICON_DATE_PRINT_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DATE_STAMPING.bmp", - "name": "ICON_DATE_STAMPING" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DATE_TIME.bmp", - "name": "ICON_DATE_TIME" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DDD_OFF.bmp", - "name": "ICON_DDD_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DDD_OFF_M.bmp", - "name": "ICON_DDD_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DDD_ON.bmp", - "name": "ICON_DDD_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DDD_ON_M.bmp", - "name": "ICON_DDD_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DEFAULT.bmp", - "name": "ICON_DEFAULT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DEFAULT_M.bmp", - "name": "ICON_DEFAULT_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DELETE.bmp", - "name": "ICON_DELETE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DELETE_ALL.bmp", - "name": "ICON_DELETE_ALL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DELETE_CURRENT.bmp", - "name": "ICON_DELETE_CURRENT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DELETE_M.bmp", - "name": "ICON_DELETE_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DIR_DOWN.bmp", - "name": "ICON_DIR_DOWN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DIR_LEFT.bmp", - "name": "ICON_DIR_LEFT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DIR_RIGHT.bmp", - "name": "ICON_DIR_RIGHT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DIR_UP.bmp", - "name": "ICON_DIR_UP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DPOF.bmp", - "name": "ICON_DPOF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DUALCAM_BEHIND.bmp", - "name": "ICON_DUALCAM_BEHIND" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DUALCAM_BOTH.bmp", - "name": "ICON_DUALCAM_BOTH" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DUALCAM_BOTH_M.bmp", - "name": "ICON_DUALCAM_BOTH_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_DUALCAM_FRONT.bmp", - "name": "ICON_DUALCAM_FRONT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV.bmp", - "name": "ICON_EV" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_M.bmp", - "name": "ICON_EV_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_M0P3.bmp", - "name": "ICON_EV_M0P3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_M0P6.bmp", - "name": "ICON_EV_M0P6" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_M1P0.bmp", - "name": "ICON_EV_M1P0" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_M1P3.bmp", - "name": "ICON_EV_M1P3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_M1P6.bmp", - "name": "ICON_EV_M1P6" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_M2P0.bmp", - "name": "ICON_EV_M2P0" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_P0P0.bmp", - "name": "ICON_EV_P0P0" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_P0P3.bmp", - "name": "ICON_EV_P0P3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_P0P6.bmp", - "name": "ICON_EV_P0P6" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_P1P0.bmp", - "name": "ICON_EV_P1P0" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_P1P3.bmp", - "name": "ICON_EV_P1P3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_P1P6.bmp", - "name": "ICON_EV_P1P6" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_EV_P2P0.bmp", - "name": "ICON_EV_P2P0" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FACE_OFF.bmp", - "name": "ICON_FACE_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FACE_ON.bmp", - "name": "ICON_FACE_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FACE_ON_M.bmp", - "name": "ICON_FACE_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FB_LEFT.bmp", - "name": "ICON_FB_LEFT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FCW_FAR_ALERT.bmp", - "name": "ICON_FCW_FAR_ALERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FCW_NEAR_ALERT.bmp", - "name": "ICON_FCW_NEAR_ALERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FCW_OFF.bmp", - "name": "ICON_FCW_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FCW_OFF_M.bmp", - "name": "ICON_FCW_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FCW_ON.bmp", - "name": "ICON_FCW_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FCW_ON_M.bmp", - "name": "ICON_FCW_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FF_RIGHT.bmp", - "name": "ICON_FF_RIGHT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FILE_VIDEO.bmp", - "name": "ICON_FILE_VIDEO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FIRMWARE_UPDATE.bmp", - "name": "ICON_FIRMWARE_UPDATE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FIRMWARE_UPDATE_M.bmp", - "name": "ICON_FIRMWARE_UPDATE_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLASH_AUTO.bmp", - "name": "ICON_FLASH_AUTO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLASH_OFF.bmp", - "name": "ICON_FLASH_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLASH_ON.bmp", - "name": "ICON_FLASH_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLASH_ON_M.bmp", - "name": "ICON_FLASH_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLASH_REC.bmp", - "name": "ICON_FLASH_REC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLASH_REC_M.bmp", - "name": "ICON_FLASH_REC_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLASH_RED_EYE.bmp", - "name": "ICON_FLASH_RED_EYE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLICK_50HZ.bmp", - "name": "ICON_FLICK_50HZ" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FLICK_60HZ.bmp", - "name": "ICON_FLICK_60HZ" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FORMAT.bmp", - "name": "ICON_FORMAT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_FORMAT_M.bmp", - "name": "ICON_FORMAT_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_GOLF_REC.bmp", - "name": "ICON_GOLF_REC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_GOLF_REC_M.bmp", - "name": "ICON_GOLF_REC_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_GPS_OFF.bmp", - "name": "ICON_GPS_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_GPS_ON.bmp", - "name": "ICON_GPS_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_GPS_ON_M.bmp", - "name": "ICON_GPS_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_G_SENSOR.bmp", - "name": "ICON_G_SENSOR" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_G_SENSOR_HIGH.bmp", - "name": "ICON_G_SENSOR_HIGH" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_G_SENSOR_LOW.bmp", - "name": "ICON_G_SENSOR_LOW" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_G_SENSOR_M.bmp", - "name": "ICON_G_SENSOR_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_G_SENSOR_MID.bmp", - "name": "ICON_G_SENSOR_MID" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_G_SENSOR_OFF.bmp", - "name": "ICON_G_SENSOR_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HDR.bmp", - "name": "ICON_HDR" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HDR_M.bmp", - "name": "ICON_HDR_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HDR_OFF.bmp", - "name": "ICON_HDR_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HELP.bmp", - "name": "ICON_HELP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HELP_M.bmp", - "name": "ICON_HELP_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HZ.bmp", - "name": "ICON_HZ" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HZ_50.bmp", - "name": "ICON_HZ_50" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HZ_60.bmp", - "name": "ICON_HZ_60" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_HZ_M.bmp", - "name": "ICON_HZ_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_INFO.bmp", - "name": "ICON_INFO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_INFO_M.bmp", - "name": "ICON_INFO_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_INTERNAL_FLASH.bmp", - "name": "ICON_INTERNAL_FLASH" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_IRCUT_AUTO.bmp", - "name": "ICON_IRCUT_AUTO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_IRCUT_OFF.bmp", - "name": "ICON_IRCUT_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_IRCUT_ON_M.bmp", - "name": "ICON_IRCUT_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ISO.bmp", - "name": "ICON_ISO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ISO_100.bmp", - "name": "ICON_ISO_100" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ISO_1600.bmp", - "name": "ICON_ISO_1600" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ISO_200.bmp", - "name": "ICON_ISO_200" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ISO_400.bmp", - "name": "ICON_ISO_400" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ISO_800.bmp", - "name": "ICON_ISO_800" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ISO_AUTO.bmp", - "name": "ICON_ISO_AUTO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ISO_M.bmp", - "name": "ICON_ISO_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LANDSCAPE.bmp", - "name": "ICON_LANDSCAPE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LANGUAGE.bmp", - "name": "ICON_LANGUAGE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LANGUAGE_M.bmp", - "name": "ICON_LANGUAGE_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LDWS_LEFT_ALERT.bmp", - "name": "ICON_LDWS_LEFT_ALERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LDWS_OFF.bmp", - "name": "ICON_LDWS_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LDWS_OFF_M.bmp", - "name": "ICON_LDWS_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LDWS_ON.bmp", - "name": "ICON_LDWS_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LDWS_ON_M.bmp", - "name": "ICON_LDWS_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LDWS_RIGHT_ALERT.bmp", - "name": "ICON_LDWS_RIGHT_ALERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK.bmp", - "name": "ICON_LOCK" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_ALL.bmp", - "name": "ICON_LOCK_ALL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_ALL_M.bmp", - "name": "ICON_LOCK_ALL_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_CURRENT.bmp", - "name": "ICON_LOCK_CURRENT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_CURRENT_M.bmp", - "name": "ICON_LOCK_CURRENT_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_M.bmp", - "name": "ICON_LOCK_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_UNLOCK.bmp", - "name": "ICON_LOCK_UNLOCK" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_UNLOCK_M.bmp", - "name": "ICON_LOCK_UNLOCK_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_UNLOKC_ALL.bmp", - "name": "ICON_LOCK_UNLOKC_ALL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LOCK_UNLOKC_ALL_M.bmp", - "name": "ICON_LOCK_UNLOKC_ALL_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LPR_OFF.bmp", - "name": "ICON_LPR_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LPR_OFF_M.bmp", - "name": "ICON_LPR_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LPR_ON.bmp", - "name": "ICON_LPR_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_LPR_ON_M.bmp", - "name": "ICON_LPR_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_MODECHANG.bmp", - "name": "ICON_MENU_MODECHANG" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_MODECHANG_M.bmp", - "name": "ICON_MENU_MODECHANG_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_PRINT_OFF.bmp", - "name": "ICON_MENU_PRINT_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_RETURN.bmp", - "name": "ICON_MENU_RETURN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_RETURN_M.bmp", - "name": "ICON_MENU_RETURN_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_SETUP_ON_M.bmp", - "name": "ICON_MENU_SETUP_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_WDR.bmp", - "name": "ICON_MENU_WDR" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_WDR_M.bmp", - "name": "ICON_MENU_WDR_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MENU_WDR_OFF.bmp", - "name": "ICON_MENU_WDR_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_METERING.bmp", - "name": "ICON_METERING" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_METERING_M.bmp", - "name": "ICON_METERING_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MODE_CAPTURE.bmp", - "name": "ICON_MODE_CAPTURE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MODE_CAPTURE_M.bmp", - "name": "ICON_MODE_CAPTURE_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MODE_PLAYBACK.bmp", - "name": "ICON_MODE_PLAYBACK" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MODE_PLAYBACK_M.bmp", - "name": "ICON_MODE_PLAYBACK_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MODE_VIDEO.bmp", - "name": "ICON_MODE_VIDEO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MODE_VIDEO_M.bmp", - "name": "ICON_MODE_VIDEO_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MOTION_DET_OFF.bmp", - "name": "ICON_MOTION_DET_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MOTION_DET_ON.bmp", - "name": "ICON_MOTION_DET_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_MOTION_DET_ON_M.bmp", - "name": "ICON_MOTION_DET_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_NO.bmp", - "name": "ICON_NO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_NO_M.bmp", - "name": "ICON_NO_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_OK.bmp", - "name": "ICON_OK" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_OK2.bmp", - "name": "ICON_OK2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_OK_M.bmp", - "name": "ICON_OK_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_OK_M_2.bmp", - "name": "ICON_OK_M_2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PD_OFF.bmp", - "name": "ICON_PD_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PD_OFF_M.bmp", - "name": "ICON_PD_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PD_ON.bmp", - "name": "ICON_PD_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PD_ON_M.bmp", - "name": "ICON_PD_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PICTBRIDGE_S.bmp", - "name": "ICON_PICTBRIDGE_S" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PIM_OFF.bmp", - "name": "ICON_PIM_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PIM_OFF_M.bmp", - "name": "ICON_PIM_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PIM_ON.bmp", - "name": "ICON_PIM_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PIM_ON_M.bmp", - "name": "ICON_PIM_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PLAY_BACKWARD.bmp", - "name": "ICON_PLAY_BACKWARD" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PLAY_FORWARD.bmp", - "name": "ICON_PLAY_FORWARD" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PLAY_PAUSE.bmp", - "name": "ICON_PLAY_PAUSE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PLAY_PLAY.bmp", - "name": "ICON_PLAY_PLAY" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PLAY_STEP.bmp", - "name": "ICON_PLAY_STEP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PLAY_STOP.bmp", - "name": "ICON_PLAY_STOP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_POWER_OFF.bmp", - "name": "ICON_POWER_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_POWER_OFF_M.bmp", - "name": "ICON_POWER_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PRINT.bmp", - "name": "ICON_PRINT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PROTECT.bmp", - "name": "ICON_PROTECT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_PROTECT_M.bmp", - "name": "ICON_PROTECT_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_QUALITY.bmp", - "name": "ICON_QUALITY" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_QUALITY_BASIC.bmp", - "name": "ICON_QUALITY_BASIC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_QUALITY_FINE.bmp", - "name": "ICON_QUALITY_FINE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_QUALITY_M.bmp", - "name": "ICON_QUALITY_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_QUALITY_NORMAL.bmp", - "name": "ICON_QUALITY_NORMAL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_QUICK_REVIEW.bmp", - "name": "ICON_QUICK_REVIEW" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_QUICK_REVIEW_M.bmp", - "name": "ICON_QUICK_REVIEW_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_REC_ELLIPSE.bmp", - "name": "ICON_REC_ELLIPSE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_REC_RECOVERY.bmp", - "name": "ICON_REC_RECOVERY" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_REC_TRANSPAENT.bmp", - "name": "ICON_REC_TRANSPAENT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_RESOLUTION.bmp", - "name": "ICON_RESOLUTION" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_RESOLUTION_M.bmp", - "name": "ICON_RESOLUTION_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_ROTATE.bmp", - "name": "ICON_ROTATE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_RSC_OFF.bmp", - "name": "ICON_RSC_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_RSC_ON.bmp", - "name": "ICON_RSC_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_RSC_ON_M.bmp", - "name": "ICON_RSC_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCENE_MODE.bmp", - "name": "ICON_SCENE_MODE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCENE_MODE_AUTO.bmp", - "name": "ICON_SCENE_MODE_AUTO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCENE_MODE_LANDSCPE.bmp", - "name": "ICON_SCENE_MODE_LANDSCPE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCENE_MODE_M.bmp", - "name": "ICON_SCENE_MODE_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCENE_MODE_PORTRIAL.bmp", - "name": "ICON_SCENE_MODE_PORTRIAL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCREENSAVER.bmp", - "name": "ICON_SCREENSAVER" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCREENSAVER_10MIN.bmp", - "name": "ICON_SCREENSAVER_10MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCREENSAVER_3MIN.bmp", - "name": "ICON_SCREENSAVER_3MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCREENSAVER_5MIN.bmp", - "name": "ICON_SCREENSAVER_5MIN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCREENSAVER_M.bmp", - "name": "ICON_SCREENSAVER_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SCREENSAVER_OFF.bmp", - "name": "ICON_SCREENSAVER_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SD_CARD.bmp", - "name": "ICON_SD_CARD" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SD_LOCK.bmp", - "name": "ICON_SD_LOCK" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SELFTIMER.bmp", - "name": "ICON_SELFTIMER" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SELFTIMER_10SEC.bmp", - "name": "ICON_SELFTIMER_10SEC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SELFTIMER_2SEC.bmp", - "name": "ICON_SELFTIMER_2SEC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SELFTIMER_5SEC.bmp", - "name": "ICON_SELFTIMER_5SEC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SELFTIMER_M.bmp", - "name": "ICON_SELFTIMER_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SELFTIMER_OFF.bmp", - "name": "ICON_SELFTIMER_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SEQUENCE_NO.bmp", - "name": "ICON_SEQUENCE_NO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SHAKE_OFF.bmp", - "name": "ICON_SHAKE_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SHAKE_ON.bmp", - "name": "ICON_SHAKE_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SHAKE_ON_M.bmp", - "name": "ICON_SHAKE_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SHARPNESS.bmp", - "name": "ICON_SHARPNESS" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SHARPNESS_HIGH.bmp", - "name": "ICON_SHARPNESS_HIGH" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SHARPNESS_LOW.bmp", - "name": "ICON_SHARPNESS_LOW" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SHARPNESS_M.bmp", - "name": "ICON_SHARPNESS_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SHARPNESS_MED.bmp", - "name": "ICON_SHARPNESS_MED" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SIGNAL_0STEP.bmp", - "name": "ICON_SIGNAL_0STEP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SIGNAL_0STEP_M.bmp", - "name": "ICON_SIGNAL_0STEP_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SIGNAL_1STEP.bmp", - "name": "ICON_SIGNAL_1STEP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SIGNAL_1STEP_M.bmp", - "name": "ICON_SIGNAL_1STEP_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SIGNAL_2STEP.bmp", - "name": "ICON_SIGNAL_2STEP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SIGNAL_2STEP_M.bmp", - "name": "ICON_SIGNAL_2STEP_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SLIDESHOW.bmp", - "name": "ICON_SLIDESHOW" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SLIDESHOW_2SEC.bmp", - "name": "ICON_SLIDESHOW_2SEC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SLIDESHOW_5SEC.bmp", - "name": "ICON_SLIDESHOW_5SEC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SLIDESHOW_8SEC.bmp", - "name": "ICON_SLIDESHOW_8SEC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SLIDESHOW_M.bmp", - "name": "ICON_SLIDESHOW_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SLIDESHOW_OFF.bmp", - "name": "ICON_SLIDESHOW_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SMILE.bmp", - "name": "ICON_SMILE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SMILE_M.bmp", - "name": "ICON_SMILE_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SNG_ALERT.bmp", - "name": "ICON_SNG_ALERT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SNG_OFF.bmp", - "name": "ICON_SNG_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SNG_OFF_M.bmp", - "name": "ICON_SNG_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SNG_ON.bmp", - "name": "ICON_SNG_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SNG_ON_M.bmp", - "name": "ICON_SNG_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SOUND_REC_OFF.bmp", - "name": "ICON_SOUND_REC_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SOUND_REC_ON.bmp", - "name": "ICON_SOUND_REC_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SOUND_REC_ON_M.bmp", - "name": "ICON_SOUND_REC_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SPEAKER.bmp", - "name": "ICON_SPEAKER" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SYS_CAL.bmp", - "name": "ICON_SYS_CAL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_SYS_CAL_M.bmp", - "name": "ICON_SYS_CAL_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TIME_LAPSE_OFF.bmp", - "name": "ICON_TIME_LAPSE_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TIME_LAPSE_ON.bmp", - "name": "ICON_TIME_LAPSE_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TIME_LAPSE_ON_M.bmp", - "name": "ICON_TIME_LAPSE_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TSR_OFF.bmp", - "name": "ICON_TSR_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TSR_OFF_M.bmp", - "name": "ICON_TSR_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TSR_ON.bmp", - "name": "ICON_TSR_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TSR_ON_M.bmp", - "name": "ICON_TSR_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TV_MODE.bmp", - "name": "ICON_TV_MODE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TV_MODE_M.bmp", - "name": "ICON_TV_MODE_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TV_NTSC.bmp", - "name": "ICON_TV_NTSC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_TV_PAL.bmp", - "name": "ICON_TV_PAL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_URGENT_PROTECT_AUTO.bmp", - "name": "ICON_URGENT_PROTECT_AUTO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_URGENT_PROTECT_AUTO_M.bmp", - "name": "ICON_URGENT_PROTECT_AUTO_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_URGENT_PROTECT_MANUAL.bmp", - "name": "ICON_URGENT_PROTECT_MANUAL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_URGENT_PROTECT_MANUAL_M.bmp", - "name": "ICON_URGENT_PROTECT_MANUAL_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_USB_MSDC.bmp", - "name": "ICON_USB_MSDC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_USB_OFF.bmp", - "name": "ICON_USB_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_USB_ON.bmp", - "name": "ICON_USB_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_USB_ON_M.bmp", - "name": "ICON_USB_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_USB_UVC.bmp", - "name": "ICON_USB_UVC" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VERSION.bmp", - "name": "ICON_VERSION" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VERSION_M.bmp", - "name": "ICON_VERSION_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VIDEO_FLIP_OFF.bmp", - "name": "ICON_VIDEO_FLIP_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VIDEO_FLIP_ON.bmp", - "name": "ICON_VIDEO_FLIP_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VIDEO_FLIP_ON_M.bmp", - "name": "ICON_VIDEO_FLIP_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VOICE.bmp", - "name": "ICON_VOICE" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VOICE_M.bmp", - "name": "ICON_VOICE_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VOL_0.bmp", - "name": "ICON_VOL_0" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VOL_1.bmp", - "name": "ICON_VOL_1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_VOL_2.bmp", - "name": "ICON_VOL_2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WB.bmp", - "name": "ICON_WB" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WB_AUTO.bmp", - "name": "ICON_WB_AUTO" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WB_CLOUDY.bmp", - "name": "ICON_WB_CLOUDY" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WB_DAYLIGHT.bmp", - "name": "ICON_WB_DAYLIGHT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WB_FLUORESCENT.bmp", - "name": "ICON_WB_FLUORESCENT" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WB_M.bmp", - "name": "ICON_WB_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WB_TUNGSTEN.bmp", - "name": "ICON_WB_TUNGSTEN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_CONNECTED.bmp", - "name": "ICON_WIFI_CONNECTED" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_CONNECTING1.bmp", - "name": "ICON_WIFI_CONNECTING1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_CONNECTING2.bmp", - "name": "ICON_WIFI_CONNECTING2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_CONNECTING3.bmp", - "name": "ICON_WIFI_CONNECTING3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_DOT_CONNECTING_OFF.bmp", - "name": "ICON_WIFI_DOT_CONNECTING_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_DOT_CONNECTING_ON.bmp", - "name": "ICON_WIFI_DOT_CONNECTING_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_FAIL.bmp", - "name": "ICON_WIFI_FAIL" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_OFF.bmp", - "name": "ICON_WIFI_OFF" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_OFF_M.bmp", - "name": "ICON_WIFI_OFF_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_ON.bmp", - "name": "ICON_WIFI_ON" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_WIFI_ON_M.bmp", - "name": "ICON_WIFI_ON_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_YES.bmp", - "name": "ICON_YES" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/ICON_YES_M.bmp", - "name": "ICON_YES_M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/flash_power.bmp", - "name": "flash_power" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Battery_L0.bmp", - "name": "sf_Battery_L0" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Battery_L1.bmp", - "name": "sf_Battery_L1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Battery_L2.bmp", - "name": "sf_Battery_L2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Battery_L3.bmp", - "name": "sf_Battery_L3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Battery_L4.bmp", - "name": "sf_Battery_L4" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Battery_L5.bmp", - "name": "sf_Battery_L5" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Date_time.bmp", - "name": "sf_Date_time" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Exit.bmp", - "name": "sf_Exit" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_Max_num_day.bmp", - "name": "sf_Max_num_day" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_PWD_DOWN.bmp", - "name": "sf_PWD_DOWN" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_PWD_UP.bmp", - "name": "sf_PWD_UP" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_PicSize_12M.bmp", - "name": "sf_PicSize_12M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_PicSize_16M.bmp", - "name": "sf_PicSize_16M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_PicSize_5M.bmp", - "name": "sf_PicSize_5M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_PicSize_8M.bmp", - "name": "sf_PicSize_8M" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_SD_loop.bmp", - "name": "sf_SD_loop" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_back.bmp", - "name": "sf_back" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_battery_type.bmp", - "name": "sf_battery_type" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_bluetooth_connected.bmp", - "name": "sf_bluetooth_connected" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_bluetooth_unconnected.bmp", - "name": "sf_bluetooth_unconnected" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_bluetooth_unsupport.bmp", - "name": "sf_bluetooth_unsupport" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_busy_1.bmp", - "name": "sf_busy_1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_busy_2.bmp", - "name": "sf_busy_2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_busy_3.bmp", - "name": "sf_busy_3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_busy_4.bmp", - "name": "sf_busy_4" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_camera.bmp", - "name": "sf_camera" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_camera_FW_upgrade.bmp", - "name": "sf_camera_FW_upgrade" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_camera_FW_upgrade_dis.bmp", - "name": "sf_camera_FW_upgrade_dis" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_camera_info.bmp", - "name": "sf_camera_info" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_camera_mode.bmp", - "name": "sf_camera_mode" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_camera_name.bmp", - "name": "sf_camera_name" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_camera_network selection.bmp", - "name": "sf_camera_network selection" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_charge_black.bmp", - "name": "sf_charge_black" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_charge_dc.bmp", - "name": "sf_charge_dc" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_charge_write.bmp", - "name": "sf_charge_write" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_delay.bmp", - "name": "sf_delay" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_delete.bmp", - "name": "sf_delete" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_flash_power.bmp", - "name": "sf_flash_power" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_format_sd.bmp", - "name": "sf_format_sd" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_gps.bmp", - "name": "sf_gps" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_green_square.bmp", - "name": "sf_green_square" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_image_size.bmp", - "name": "sf_image_size" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_left.bmp", - "name": "sf_left" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_list_Selected.bmp", - "name": "sf_list_Selected" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_list_Selected_next1.bmp", - "name": "sf_list_Selected_next1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_list_Selected_next2.bmp", - "name": "sf_list_Selected_next2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_menu_bg.bmp", - "name": "sf_menu_bg" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_menu_option_select.bmp", - "name": "sf_menu_option_select" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_menu_release.bmp", - "name": "sf_menu_release" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_menu_select.bmp", - "name": "sf_menu_select" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_mode_still_video.bmp", - "name": "sf_mode_still_video" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_module_fw_upgrade.bmp", - "name": "sf_module_fw_upgrade" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_module_fw_upgrade_dis.bmp", - "name": "sf_module_fw_upgrade_dis" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_net2g.bmp", - "name": "sf_net2g" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_net3g.bmp", - "name": "sf_net3g" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_net4g.bmp", - "name": "sf_net4g" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_next.bmp", - "name": "sf_next" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_next1.bmp", - "name": "sf_next1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_next2.bmp", - "name": "sf_next2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_next3.bmp", - "name": "sf_next3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_next4.bmp", - "name": "sf_next4" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_next_dis.bmp", - "name": "sf_next_dis" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_off.bmp", - "name": "sf_off" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_on.bmp", - "name": "sf_on" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_operating_time.bmp", - "name": "sf_operating_time" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_password.bmp", - "name": "sf_password" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_picture_upon_daily_report.bmp", - "name": "sf_picture_upon_daily_report" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_play.bmp", - "name": "sf_play" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_pwd_down-up.bmp", - "name": "sf_pwd_down-up" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_qr.bmp", - "name": "sf_qr" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_reset.bmp", - "name": "sf_reset" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_right.bmp", - "name": "sf_right" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_send_type.bmp", - "name": "sf_send_type" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_send_type_dis.bmp", - "name": "sf_send_type_dis" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_sensitvity.bmp", - "name": "sf_sensitvity" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_shoot_1.bmp", - "name": "sf_shoot_1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_signal0.bmp", - "name": "sf_signal0" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_signal1.bmp", - "name": "sf_signal1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_signal2.bmp", - "name": "sf_signal2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_signal3.bmp", - "name": "sf_signal3" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_signal4.bmp", - "name": "sf_signal4" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_sms_ctrl.bmp", - "name": "sf_sms_ctrl" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_stop.bmp", - "name": "sf_stop" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_tab_release.bmp", - "name": "sf_tab_release" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_tab_select.bmp", - "name": "sf_tab_select" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_video_length.bmp", - "name": "sf_video_length" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_video_size.bmp", - "name": "sf_video_size" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_warning_bg.bmp", - "name": "sf_warning_bg" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_warning_not_select.bmp", - "name": "sf_warning_not_select" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_warning_selected.bmp", - "name": "sf_warning_selected" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_wifi_connected.bmp", - "name": "sf_wifi_connected" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_wifi_unconnected.bmp", - "name": "sf_wifi_unconnected" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_wifi_unsupport.bmp", - "name": "sf_wifi_unsupport" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_bg_102X28.bmp", - "name": "sy_bg_102X28" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_bg_32X28.bmp", - "name": "sy_bg_32X28" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_bg_40X28.bmp", - "name": "sy_bg_40X28" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_bg_msg.bmp", - "name": "sy_bg_msg" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_bg_msg2.bmp", - "name": "sy_bg_msg2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_lanya2.bmp", - "name": "sy_lanya2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_luzhi.bmp", - "name": "sy_luzhi" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_redline.bmp", - "name": "sy_redline" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_redline2.bmp", - "name": "sy_redline2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sy_wifi2.bmp", - "name": "sy_wifi2" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/work_mode.bmp", - "name": "work_mode" - } - ], - "language table": "UIFlowLVGL.lvgllang", - "project": { - "name": "UIFlowLVGL", - "version": "1.10.4" - }, - "screens": [ - "UIFlowLVGL.UIFlowMovie.lvglscr", - "UIFlowLVGL.UIFlowPhoto.lvglscr", - "UIFlowLVGL.UIFlowWrnMsg.lvglscr", - "UIFlowLVGL.UIFlowPlay.lvglscr", - "UIFlowLVGL.UIFlowMenuCommonItem.lvglscr", - "UIFlowLVGL.UIFlowMenuCommonOption.lvglscr", - "UIFlowLVGL.UIFlowMenuCommonConfirm.lvglscr", - "UIFlowLVGL.UIFlowWaitMoment.lvglscr", - "UIFlowLVGL.UIFlowSetupDateTime.lvglscr", - "UIFlowLVGL.UIFlowPlayThumb.lvglscr", - "UIFlowLVGL.UIFlowUSB.lvglscr", - "UIFlowLVGL.UIFlowUSBMenu.lvglscr", - "UIFlowLVGL.UIFlowWifiLink.lvglscr", - "UIFlowLVGL.UIFlowWifiLinkOK.lvglscr", - "UIFlowLVGL.UIFlowWifiWait.lvglscr", - "UIFlowLVGL.UIFlowPassword.lvglscr", - "UIFlowLVGL.UIFlowClose.lvglscr" - ] -} diff --git a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c b/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c deleted file mode 100644 index 996cf49dc..000000000 --- a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c +++ /dev/null @@ -1,1363 +0,0 @@ -// #include "MenuQR.h" -#include -#include "PrjInc.h" -#include "UIWnd/UIFlow.h" -#include "UIFlowLVGL/UIFlowLVGL.h" -#include "lvgl/src/lv_lib_qrcode/lv_qrcode.h" -#include "sf_param_struct.h" -#include "sf_message_queue.h" -#include "sf_fileMng.h" -#include "sf_common.h" -#include -#include -#include "sf_commu_mcu_reg.h" -TMDEF_BEGIN_OPTIONS(NETWORK_SELECTION) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_1, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_2, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_3, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_4, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_5, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_6, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_7, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_8, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_9, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_10, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_11, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_12, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_13, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_14, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_15, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_16, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_17, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_18, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_19, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(NETWORK_SELECTION_20, TM_OPTION_ENABLE) -TMDEF_END_OPTIONS() -TMDEF_BEGIN_OPTIONS(QR_PICTURE) -TMDEF_OPTION_TEXT_S(END, TM_OPTION_ENABLE) -TMDEF_END_OPTIONS() -TMDEF_BEGIN_OPTIONS(PASSWORD) -TMDEF_OPTION_TEXT_S(PASSWORD_OFF, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(PASSWORD_ON, TM_OPTION_ENABLE) -TMDEF_END_OPTIONS() -TMDEF_BEGIN_OPTIONS(CAMERA_INFO) -TMDEF_OPTION_TEXT_S(END, TM_OPTION_ENABLE) -TMDEF_END_OPTIONS() -TMDEF_BEGIN_OPTIONS(CAMERA_NAME) -TMDEF_OPTION_TEXT_S(CAMERA_NAME_OFF, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(CAMERA_NAME_ON, TM_OPTION_ENABLE) -TMDEF_END_OPTIONS() - -TMDEF_BEGIN_ITEMS(QR) -TMDEF_ITEM_TEXTID(NETWORK_SELECTION) -TMDEF_ITEM_TEXTID(QR_PICTURE) -TMDEF_ITEM_TEXTID(PASSWORD) -TMDEF_ITEM_TEXTID(CAMERA_INFO) -TMDEF_ITEM_TEXTID(CAMERA_NAME) -TMDEF_END_ITEMS() - -// -------------------------------------------------------------------------- -// PAGES -// -------------------------------------------------------------------------- -// QR Menu Pages -TMDEF_BEGIN_PAGES(QR) -TMDEF_PAGE_TEXT_ICON(QR) -TMDEF_PAGE_TEXT_ICON(QR) -TMDEF_PAGE_TEXT_ICON(QR) -TMDEF_PAGE_TEXT_ICON(QR) -TMDEF_END_PAGES() -TMDEF_EMNU(gQrMenu, QR, Qr_MenuCallback) - -// -------------------------------------------------------------------------- -// Menu Callback -// -------------------------------------------------------------------------- -int Qr_MenuCallback(UINT32 uiMessage, UINT32 uiParam) -{ - UINT16 uwItemId; - UINT16 uwOption; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - if (uiMessage == TMM_CONFIRM_OPTION) - { - uwItemId = LO_WORD(uiParam); - uwOption = HI_WORD(uiParam); - printf("[%s] uwOption:%d uwItemId:%d\n", __FUNCTION__, uwOption, uwItemId); - switch (uwItemId) - { - case IDM_NETWORK_SELECTION: - { - break; - } - case IDM_QR_PICTURE: - { - break; - } - case IDM_PASSWORD: - { - if(puiPara->PwdSwitch != uwOption) - { - puiPara->PwdSwitch = uwOption; - memset(puiPara->PwdStr, '0' ,sizeof(puiPara->PwdStr)); - } - printf("password switch %d\n", puiPara->PwdSwitch); - break; - } - case IDM_CAMERA_NAME: - { - SF_CAMID_E tmpSelected = (uwOption == 0) ? SF_CAMID_OFF : SF_CAMID_ON; - if(tmpSelected != puiPara->CamNameSwitch) - { - puiPara->CamNameSwitch = tmpSelected; - memset(puiPara ->CamNameStr,'\0', sizeof(puiPara ->CamNameStr)); - sprintf(puiPara ->CamNameStr, "%s", "REVE"); - } - break; - } - default: - { - - break; - } - } - } - return TMF_PROCESSED; -} - -// -------------------------------------------------------------------------- -// Common Function -// -------------------------------------------------------------------------- -static lv_style_t gMatrixStylebg; -static lv_style_t gMatrixStylebtn; -static lv_style_t gStyleLabel0; -static void init_Matrix_style(void) -{ - static int isinitialized = 0; - if(isinitialized) - return; - - lv_color_t color = {0}; - lv_style_init(&gMatrixStylebg); - lv_style_set_pad_top(&gMatrixStylebg,LV_STATE_DEFAULT,0); - lv_style_set_pad_bottom(&gMatrixStylebg,LV_STATE_DEFAULT,0); - lv_style_set_pad_left(&gMatrixStylebg,LV_STATE_DEFAULT,0); - lv_style_set_pad_right(&gMatrixStylebg,LV_STATE_DEFAULT,0); - lv_style_set_pad_inner(&gMatrixStylebg,LV_STATE_DEFAULT,0); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DISABLED, color); - - lv_style_init(&gMatrixStylebtn); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - lv_style_set_value_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_1bpp); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - lv_style_set_text_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_1bpp); - lv_style_set_text_font(&gMatrixStylebtn,LV_STATE_FOCUSED,&sf_ui_text_bold_20_1bpp); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x22, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); - - - lv_style_init(&gStyleLabel0); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gStyleLabel0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gStyleLabel0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gStyleLabel0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gStyleLabel0, LV_STATE_DEFAULT, color); - lv_style_set_text_font(&gStyleLabel0,LV_STATE_DEFAULT,&sf_ui_text_medium_18_1bpp); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gStyleLabel0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gStyleLabel0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gStyleLabel0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gStyleLabel0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gStyleLabel0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gStyleLabel0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gStyleLabel0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gStyleLabel0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gStyleLabel0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gStyleLabel0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gStyleLabel0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gStyleLabel0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gStyleLabel0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gStyleLabel0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gStyleLabel0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gStyleLabel0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gStyleLabel0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gStyleLabel0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gStyleLabel0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gStyleLabel0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gStyleLabel0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gStyleLabel0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gStyleLabel0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gStyleLabel0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gStyleLabel0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gStyleLabel0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gStyleLabel0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gStyleLabel0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gStyleLabel0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gStyleLabel0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gStyleLabel0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gStyleLabel0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gStyleLabel0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_bg_grad_color(&gStyleLabel0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gStyleLabel0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gStyleLabel0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gStyleLabel0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x23, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gStyleLabel0, LV_STATE_DISABLED, color); - - isinitialized = 1; -} -// printf("[%s]%d\n",__FUNCTION__,__LINE__); - -// -------------------------------------------------------------------------- -// Network Selection -// -------------------------------------------------------------------------- -#define NETMSGPATH "/tmp/wifiData.txt" -#define OPERATOR_INFO_SIZE 18 -#define PROFILE_INFO_SIZE 17 -#define PROFILE_NAME_SIZE 16 -#define PROFILE_MAX 20 -#define ITEMS_PER_PAGE 5 -#define TOTAL_PAGES 4 -static lv_task_t* network_scan_task = NULL; -static lv_task_t* network_select_task = NULL; -static lv_obj_t* pMenu = NULL; -static lv_obj_t *plabel = NULL; -static int ProfileTotal = 0; -static int ProfileSelected = 0; -static int ProfileFocused = 0; -static unsigned char ProfileNameList[PROFILE_MAX][PROFILE_NAME_SIZE] = {0}; - -static int Countdown = 0; - -static void update_Network_Selection_msg(lv_obj_t* obj) -{ - if(pMenu == NULL || plabel == NULL) - { - printf("[error]Network Selection abnormal operation\n"); - return; - } - - if(ProfileFocused > PROFILE_MAX) - { - printf("[error]ProfileFocused exceed the limit\n"); - ProfileFocused = 0; - } - - int selectedPage = ProfileFocused / ITEMS_PER_PAGE; - int ishidden = 0; - - for(int i = 0; i < ITEMS_PER_PAGE; i++) - { - // printf("i:%d data:%d\n", i, (IDS_NETWORK_SELECTION_1 + (ITEMS_PER_PAGE * selectedPage) + i)); - lv_plugin_menu_set_item_string_id(pMenu, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, - (IDS_NETWORK_SELECTION_1 + (ITEMS_PER_PAGE * selectedPage) + i)); - lv_plugin_menu_set_item_img_id(pMenu, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED, LV_PLUGIN_IMG_ID_ICON_OK); - - ishidden = true; - if((ITEMS_PER_PAGE * selectedPage) + i < ProfileTotal) - { - lv_plugin_menu_set_item_hidden(pMenu, i, false);//整项 - if((ITEMS_PER_PAGE * selectedPage) + i == ProfileFocused) - { - lv_plugin_menu_select_item(pMenu, i);//白条 - } - if((ITEMS_PER_PAGE * selectedPage) + i == ProfileSelected) - { - ishidden = false; - } - } - else - { - lv_plugin_menu_set_item_hidden(pMenu, i, true);//整项 - } - - if(i==0){ - lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, ishidden);//打钩 - }else if(i == 1){ - lv_obj_set_hidden(image_option2_scr_uiflowmenucommonoption, ishidden); - }else if(i == 2){ - lv_obj_set_hidden(image_option3_scr_uiflowmenucommonoption, ishidden); - }else if(i == 3){ - lv_obj_set_hidden(image_option4_scr_uiflowmenucommonoption, ishidden); - }else if(i == 4){ - lv_obj_set_hidden(image_option5_scr_uiflowmenucommonoption, ishidden); - } - } -} - -static void network_scan_task_end(void) -{ - if(network_scan_task) - { - lv_task_del(network_scan_task); - network_scan_task = NULL; - } -} - -static void network_scan_task_cb(lv_task_t* task) -{ - struct stat statBuf; - int fd = -1; - int BuffLen; - unsigned char Buff[1024] = { 0 }; - - lv_obj_t* obj = (lv_obj_t*)task->user_data; - printf("[%s][*x] Check simcard...\n", __FUNCTION__); - if(Countdown) - { - printf("[%s]Countdown:%d\n", __FUNCTION__, Countdown); - Countdown--; - if(Countdown <= 0) - { - network_scan_task_end(); - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - hidde_Network_Selection_page(); - return; - } - else - { - return; - } - } - if(sf_cardv_4G_status_get() == SF_4G_SEARCHING) - { - printf("[%s]Searching...\n", __FUNCTION__); - lv_label_set_text(plabel, "\n\nSearching..."); - return; - } - - if (sf_cardv_get_usb_init() == 0) - { - lv_label_set_text(plabel, "\nSIM read failed, please restart the camera."); - Countdown = 3; - } - else if(sf_cardv_get_is_esim() == 0) - { - lv_label_set_text(plabel, "\nNetwork selection is only available with SIM cards that have multiple networks."); - Countdown = 3; - return; - } - else if(sf_cardv_get_sim_insert() == 0) - { - lv_label_set_text(plabel, "\n\nCheck SIM"); - Countdown = 3; - return; - } - else - { - if(!sf_file_IsExsit(NETMSGPATH)) - { - SF_MESSAGE_BUF_S stMessageBuf = {0}; - stMessageBuf.arg1 = SF_DEV_CMD_ESIM_OPERATION_SCAN; - stMessageBuf.arg2 = SF_CONTROL_TYPE_LOCAL; - stMessageBuf.arg3 = 1; - stMessageBuf.cmdId = CMD_DEV; - sf_com_message_send_to_app(&stMessageBuf); - } - - if(sf_file_IsExsit(NETMSGPATH)) - { - fd = open(NETMSGPATH, O_RDWR, 0777); - if(fd >= 0) - { - fstat(fd, &statBuf); - BuffLen = statBuf.st_size; - printf("fSize=%d\n", BuffLen); - read(fd, Buff, BuffLen); - close(fd); - remove(NETMSGPATH); - - for(int i = 0; i < BuffLen; i++) - { - printf("%x ", Buff[i]); - } - - if(Buff[5] == 0x3b/*WIFI_CONTROL_CAMERA_Network_Scan*/ && Buff[8] == 0x00/*CMD_SUCCESS*/) - { - int OperatorTotal = Buff[9]; - int ProfileOffset = 11 + OPERATOR_INFO_SIZE*OperatorTotal; - ProfileTotal = Buff[ProfileOffset]; - ProfileSelected = Buff[ProfileOffset + 1]; - ProfileFocused = ProfileSelected; - - printf("\nOperatorTotal:%d ProfileOffset:%d ProfileTotal:%d ProfileSelected:%d\n", OperatorTotal, ProfileOffset, ProfileTotal, ProfileSelected); - - for(int i = 0; i < ProfileTotal; i++) - { - printf("Profile %d ",Buff[ProfileOffset + 2 + (i * PROFILE_INFO_SIZE)]); - memcpy(ProfileNameList[i], Buff + (ProfileOffset + 3 + (i * PROFILE_INFO_SIZE)), PROFILE_NAME_SIZE); - printf("%s\n", ProfileNameList[i]); - } - - network_scan_task_end(); - lv_label_set_text(plabel, ""); - - lv_plugin_string_t* tmpPluginStr = NULL; - char* tmpstr = NULL; - for(int i = 0; i < ProfileTotal; i++) - { - tmpPluginStr = (lv_plugin_string_t*)lv_plugin_get_string(IDS_NETWORK_SELECTION_1 + i); - tmpstr = (char*)tmpPluginStr->ptr; - snprintf(tmpstr, PROFILE_NAME_SIZE, "%s", ProfileNameList[i]); - // printf("i:%d tmpstr:%s len:%d p:%p\n", i, tmpstr, tmpPluginStr->size, tmpstr); - } - - update_Network_Selection_msg(obj); - lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, false); - } - return; - } - } - } -} - -static void network_select_task_end(void) -{ - if(network_select_task) - { - lv_task_del(network_select_task); - network_select_task = NULL; - } -} - -static void network_select_task_cb(lv_task_t* task) -{ - lv_obj_t* obj = (lv_obj_t*)task->user_data; - - if(Countdown) - { - printf("[%s]Countdown:%d\n", __FUNCTION__, Countdown); - Countdown--; - if(Countdown <= 0) - { - network_select_task_end(); - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - hidde_Network_Selection_page(); - return; - } - else - { - return; - } - } - - int resp = sf_cardv_get_operationSelectResp(); - printf("network_select_task_cb:%d\n",resp); - switch (resp) - { - case 0x00:/*CMD_SUCCESS*/ - lv_label_set_text(plabel, "\n\nCompleted"); - Countdown = 3; - break; - case 0x34:/*NETWORK_NOT_NEED_SET*/ - lv_label_set_text(plabel, "\n\nProfile is enabled"); - Countdown = 3; - break; - case 0xff: - break; - default: - lv_label_set_text(plabel, "\n\nCurrently network is busy, Please try it later"); - Countdown = 3; - break; - } -} - -void show_Network_Selection_page(lv_obj_t* obj, lv_obj_t* menu_obj) -{ - pMenu = menu_obj; - - init_Matrix_style(); - - plabel = lv_label_create(obj, NULL); - lv_label_set_long_mode(plabel, LV_LABEL_LONG_BREAK); - //lv_label_set_align(plabel, LV_LABEL_ALIGN_CENTER); - lv_label_set_text(plabel, ""); - lv_obj_set_pos(plabel, 32, 67); - lv_obj_set_width(plabel, 256); - lv_obj_add_style(plabel, 0, &gMatrixStylebtn); - lv_task_t tas = {}; - network_scan_task_cb(&tas); - if(network_scan_task == NULL){ - Countdown = 0; - network_scan_task = lv_task_create(network_scan_task_cb, 1000, LV_TASK_PRIO_HIGHEST, (void*)obj); - } -} - -void hidde_Network_Selection_page(void) -{ - network_scan_task_end(); - network_select_task_end(); - - pMenu = NULL; - - if(plabel) - { - lv_obj_del(plabel); - plabel = NULL; - } -} - -void Option_Network_Selection_Key(lv_obj_t* obj, uint32_t key) -{ - printf("key:%d\n",key); - - switch(key) - { - case LV_USER_KEY_NEXT: - if(network_scan_task == NULL && network_select_task == NULL) - { - if(ProfileFocused >= 0 && ProfileFocused < (ProfileTotal - 1)) - { - ProfileFocused++; - } - else - { - ProfileFocused = 0; - } - update_Network_Selection_msg(obj); - } - break; - case LV_USER_KEY_PREV: - if(network_scan_task == NULL && network_select_task == NULL) - { - if(ProfileFocused > 0 && ProfileFocused < ProfileTotal) - { - ProfileFocused--; - } - else - { - ProfileFocused = 0; - } - update_Network_Selection_msg(obj); - } - break; - case LV_USER_KEY_LEFT: - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - hidde_Network_Selection_page(); - break; - case LV_USER_KEY_RIGHT: - break; - case LV_KEY_ENTER: - if(network_scan_task == NULL && network_select_task == NULL) - { - lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); - lv_label_set_text(plabel, "\n\nNetwork Switching..."); - sf_cardv_set_operationSelectResp(0xff); - SF_MESSAGE_BUF_S stMessageBuf = {0}; - stMessageBuf.arg1 = SF_DEV_CMD_ESIM_OPERATION_SELECT; - stMessageBuf.arg2 = SF_CONTROL_TYPE_LOCAL; - stMessageBuf.arg3 = ProfileFocused; - stMessageBuf.cmdId = CMD_DEV; - sf_com_message_send_to_app(&stMessageBuf); - if(network_select_task == NULL){ - Countdown = 0; - network_select_task = lv_task_create(network_select_task_cb, 1000, LV_TASK_PRIO_MID, (void*)obj); - } - } - break; - default: - break; - } -} - -// -------------------------------------------------------------------------- -// QR CODE -// -------------------------------------------------------------------------- -char *qr_code_str = "{\"imei\":\"%s\",\"verizonICCID\":\"%s\",\"attICCID\":\"%s\",\"isEsim\":%s}"; -static lv_obj_t *qr = NULL; -static lv_obj_t *label = NULL; -void show_qr_picture_page(lv_obj_t* obj) -{ - // lv_color_t colorDrak = {0}; - // lv_color_t colorLight = {0}; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - // const char *data = "https://github.com/topics/littlevgl"; -#define QR_DATA_LENGTH 1024 - char qr_date[QR_DATA_LENGTH] = {0}; - if (sf_cardv_get_is_esim() == 1) - { - snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidV, puiPara->SimIccidA, "true"); - } - // else if (sf_cardv_get_is_esim() == 0) - // { - // snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidA, puiPara->SimIccidA, "false"); - // } - else - { - snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidA, puiPara->SimIccidA, "false"); - } - - if(obj){ - - /*Create a 100x100 QR code*/ - qr = lv_qrcode_create(obj, 120, (lv_color_t) { .full = 0x02}, (lv_color_t) { .full = 0x23}); - - if(qr){ - /*Set data*/ - lv_qrcode_update(qr, qr_date, strlen(qr_date)); - lv_obj_set_pos(qr, 32, 70); - } - } - lv_color_t color = {0}; - static lv_style_t labelStyle; - lv_style_init(&labelStyle); - STYLE_COLOR_PROP(0xff, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&labelStyle, LV_STATE_DEFAULT, color); - lv_style_set_text_font(&labelStyle,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp); - label = lv_label_create(obj, NULL); - lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK); - lv_label_set_text(label, "Add Camera to Tactacam App"); - lv_obj_set_pos(label, 180, 78); - lv_obj_set_size(label, 110, 63); - lv_obj_add_style(label, 0, &labelStyle); -} -void hidde_qr_picture_page(void) -{ - if(NULL != qr) - { - lv_qrcode_delete(qr); - } - if(label) - { - lv_obj_del(label); - } -} - -// -------------------------------------------------------------------------- -// Password -// -------------------------------------------------------------------------- -static int PasswordIndex = 0; -static lv_obj_t* PasswordMatrixObj = NULL; -static lv_obj_t* PasswordImage = NULL; -static char PasswordBuf1[2] = {'0', 0}; -static char PasswordBuf2[2] = {'0', 0}; -static char PasswordBuf3[2] = {'0', 0}; -static char PasswordBuf4[2] = {'0', 0}; -static char PasswordBuf5[2] = {'0', 0}; -static char PasswordBuf6[2] = {'0', 0}; -static const char* PasswordMap[7] = -{ - PasswordBuf1, - PasswordBuf2, - PasswordBuf3, - PasswordBuf4, - PasswordBuf5, - PasswordBuf6, - "" -}; - -static void update_Password_msg(lv_obj_t* obj) -{ - if(PasswordMatrixObj == NULL || PasswordImage == NULL) - { - DBG_ERR("Password component is not initialized"); - return; - } - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - snprintf(PasswordBuf1, 2, "%c", puiPara->PwdStr[0]); - snprintf(PasswordBuf2, 2, "%c", puiPara->PwdStr[1]); - snprintf(PasswordBuf3, 2, "%c", puiPara->PwdStr[2]); - snprintf(PasswordBuf4, 2, "%c", puiPara->PwdStr[3]); - snprintf(PasswordBuf5, 2, "%c", puiPara->PwdStr[4]); - snprintf(PasswordBuf6, 2, "%c", puiPara->PwdStr[5]); - lv_btnmatrix_set_map(PasswordMatrixObj, PasswordMap); - - lv_btnmatrix_set_focused_btn(PasswordMatrixObj, PasswordIndex); - - lv_obj_set_x(PasswordImage, (64 + 32 * PasswordIndex)); -} - -void show_Password_page(lv_obj_t* obj) -{ - if(PasswordMatrixObj != NULL || PasswordImage != NULL) - { - DBG_ERR("Password component is initialized"); - return; - } - - PasswordIndex = 0; - - init_Matrix_style(); - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - - snprintf(PasswordBuf1, 2, "%c", puiPara->PwdStr[0]); - snprintf(PasswordBuf2, 2, "%c", puiPara->PwdStr[1]); - snprintf(PasswordBuf3, 2, "%c", puiPara->PwdStr[2]); - snprintf(PasswordBuf4, 2, "%c", puiPara->PwdStr[3]); - snprintf(PasswordBuf5, 2, "%c", puiPara->PwdStr[4]); - snprintf(PasswordBuf6, 2, "%c", puiPara->PwdStr[5]); - - PasswordMatrixObj = lv_btnmatrix_create(obj, NULL); - lv_obj_set_hidden(PasswordMatrixObj, false); - lv_obj_set_click(PasswordMatrixObj, true); - lv_obj_set_drag(PasswordMatrixObj, false); - lv_obj_set_pos(PasswordMatrixObj, 64, 108); - lv_obj_set_size(PasswordMatrixObj, 192, 24); - lv_btnmatrix_set_map(PasswordMatrixObj, PasswordMap); - lv_btnmatrix_set_one_check(PasswordMatrixObj, true); - lv_btnmatrix_set_align(PasswordMatrixObj, LV_LABEL_ALIGN_CENTER); - lv_btnmatrix_set_focused_btn(PasswordMatrixObj,0); - lv_btnmatrix_set_one_check(PasswordMatrixObj, false); - lv_obj_add_style(PasswordMatrixObj, 0, &gMatrixStylebg); - lv_obj_add_style(PasswordMatrixObj, 1, &gMatrixStylebtn); - - PasswordImage = lv_img_create(obj, NULL); - lv_obj_set_hidden(PasswordImage, false); - lv_obj_set_click(PasswordImage, false); - lv_obj_set_drag(PasswordImage, false); - lv_obj_set_pos(PasswordImage, 64, 78); - lv_obj_set_size(PasswordImage, 32, 88); - lv_img_set_src(PasswordImage, &sf_pwd_down_up); -} - -void hidde_Password_page(void) -{ - printf("[%s]\n", __FUNCTION__); - PasswordIndex = 0; - if(PasswordMatrixObj) - { - lv_obj_del(PasswordMatrixObj); - PasswordMatrixObj = NULL; - } - if(PasswordImage) - { - lv_obj_del(PasswordImage); - PasswordImage = NULL; - } -} - -void Option_Password_Key_Long_Press(lv_obj_t* obj, uint32_t key) -{ - printf("[%s]key:%d\n", __FUNCTION__, key); - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - - switch(key) - { - case LV_USER_KEY_NEXT: - if(PasswordIndex >= 0 && PasswordIndex <= 5) - { - puiPara->PwdStr[PasswordIndex] = (puiPara->PwdStr[PasswordIndex] - '0' + 10 - 1) % 10 + '0'; - } - update_Password_msg(obj); - break; - case LV_USER_KEY_PREV: - if(PasswordIndex >= 0 && PasswordIndex <= 5) - { - puiPara->PwdStr[PasswordIndex] = (puiPara->PwdStr[PasswordIndex] - '0' + 1) % 10 + '0'; - } - update_Password_msg(obj); - break; - default: - break; - } -} - -void Option_Password_Key(lv_obj_t* obj, uint32_t key) -{ - printf("[%s]key:%d\n", __FUNCTION__, key); - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - - switch(key) - { - case LV_USER_KEY_NEXT: - if(PasswordIndex >= 0 && PasswordIndex <= 5) - { - puiPara->PwdStr[PasswordIndex] = (puiPara->PwdStr[PasswordIndex] - '0' + 10 - 1) % 10 + '0'; - } - update_Password_msg(obj); - break; - case LV_USER_KEY_PREV: - if(PasswordIndex >= 0 && PasswordIndex <= 5) - { - puiPara->PwdStr[PasswordIndex] = (puiPara->PwdStr[PasswordIndex] - '0' + 1) % 10 + '0'; - } - update_Password_msg(obj); - break; - case LV_USER_KEY_LEFT: - PasswordIndex = (PasswordIndex + 6 - 1) % 6; - update_Password_msg(obj); - break; - case LV_USER_KEY_RIGHT: - PasswordIndex = (PasswordIndex + 1) % 6; - update_Password_msg(obj); - break; - case LV_KEY_ENTER: - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - hidde_Password_page(); - break; - default: - break; - } -} - -// -------------------------------------------------------------------------- -// Camera Info -// -------------------------------------------------------------------------- -static int CameraInfoIndex = 0; -static lv_obj_t *CameraInfolabel = NULL; -static lv_obj_t *CameraInfoImage = NULL; -static int CameraInfoisHidden = 1; -static int CameraInfoQlogisHidden = 1; -static int CameraInfoDebugisHidden = 1; -static lv_obj_t * btnm = NULL; -static const char * map[] = {"1", "2", "3", ""}; -static void update_Camera_Info_msg(lv_obj_t* obj) -{ - if(CameraInfolabel == NULL || btnm == NULL) - { - DBG_ERR("Camera Info component is not initialized"); - return; - } - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - char CamInfoStr[256] = {0}; - char tmpStr[64] = {0}; - UINT8 mcuversion[64] = {0}; - if(CameraInfoIndex == 0) - { - for(int i=0;i<7;i++) - { - memset(tmpStr, 0, sizeof(tmpStr)); - switch(i) - { - case 0: - strcat(CamInfoStr, "Ver:R5.0\n"); - break; - case 1: - if(!CameraInfoQlogisHidden) - { - sprintf(tmpStr, "Qlog %s\n", puiPara->QLogSwitch ? "ON" : "OFF"); - strcat(CamInfoStr, tmpStr); - } - else if(!CameraInfoisHidden) - { - sprintf(tmpStr, "%s\n",SF_BASE_VERSION); - strcat(CamInfoStr, tmpStr); - } - else - strcat(CamInfoStr, "\n"); - break; - case 2: - sf_mcu_version_get(mcuversion); - sprintf(tmpStr, "MCU:%s\n",mcuversion); - strcat(CamInfoStr, tmpStr); - break; - case 3: - strcat(CamInfoStr, "\n"); - break; - case 4: - sprintf(tmpStr, "IMEI:%s\n", puiPara->ModuleImei); - strcat(CamInfoStr, tmpStr); - break; - case 5: - if(!CameraInfoDebugisHidden) - { - sprintf(tmpStr, "Debug %s\n", puiPara->DebugMode ? "ON" : "OFF"); - strcat(CamInfoStr, tmpStr); - } - else if(!CameraInfoisHidden) - { - sprintf(tmpStr, "%s\n", puiPara->ModuleSubver); - strcat(CamInfoStr, tmpStr); - } - else - strcat(CamInfoStr, "\n"); - break; - case 6: - sprintf(tmpStr, "MOD:%s\n", puiPara->ModuleVer); - strcat(CamInfoStr, tmpStr); - break; - default: - break; - } - } - } - else if(CameraInfoIndex == 1) - { - for(int i=0;i<7;i++) - { - memset(tmpStr, 0, sizeof(tmpStr)); - switch(i) - { - case 0: - sprintf(tmpStr, "ICCID:%s\n", puiPara->SimIccid); - strcat(CamInfoStr, tmpStr); - break; - case 1: - strcat(CamInfoStr, "\n"); - break; - case 2: - sprintf(tmpStr, "ICCID-A:%s\n", puiPara->SimIccidA); - strcat(CamInfoStr, tmpStr); - break; - case 3: - strcat(CamInfoStr, "\n"); - break; - case 4: - sprintf(tmpStr, "ICCID-V:%s\n", puiPara->SimIccidV); - strcat(CamInfoStr, tmpStr); - break; - case 5: - strcat(CamInfoStr, "\n"); - break; - case 6: - sprintf(tmpStr, "SSID:%s\n", puiPara->strSSID); - strcat(CamInfoStr, tmpStr); - break; - default: - break; - } - } - } - else if(CameraInfoIndex == 2) - { - sprintf(tmpStr, "BLE:%s\n", puiPara->BluSsid); - strcat(CamInfoStr, tmpStr); - } - - lv_btnmatrix_set_focused_btn(btnm, CameraInfoIndex); - lv_btnmatrix_set_map(btnm, map); - - lv_label_set_text(CameraInfolabel, CamInfoStr); -} - -void show_Camera_Info_page(lv_obj_t* obj) -{ - if(CameraInfolabel != NULL || btnm != NULL || CameraInfoImage != NULL) - { - DBG_ERR("Camera Info component is initialized"); - return; - } - - CameraInfoIndex = 0; - CameraInfoisHidden = 1; - CameraInfoQlogisHidden = 1; - CameraInfoDebugisHidden = 1; - - init_Matrix_style(); - - btnm = lv_btnmatrix_create(obj, NULL); - lv_btnmatrix_set_map(btnm, map); - lv_obj_add_style(btnm, 0, &gMatrixStylebg); - lv_obj_add_style(btnm, 1, &gMatrixStylebtn); - lv_obj_set_pos(btnm, 130, 207); - lv_obj_set_size(btnm, 60, 25); - lv_btnmatrix_set_btn_ctrl_all(btnm, LV_BTNMATRIX_CTRL_CHECKABLE); - lv_btnmatrix_set_focused_btn(btnm, 0); - - CameraInfoImage = lv_img_create(obj, NULL); - lv_obj_set_hidden(CameraInfoImage, false); - lv_obj_set_click(CameraInfoImage, false); - lv_obj_set_drag(CameraInfoImage, false); - lv_obj_set_pos(CameraInfoImage, 93, 200); - lv_obj_set_size(CameraInfoImage, 134, 40); - lv_img_set_src(CameraInfoImage, &sf_next3); - - static lv_style_t LabelStyle = {0}; - lv_style_init(&LabelStyle); - lv_style_copy(&LabelStyle, &gStyleLabel0); - lv_style_set_text_line_space(&LabelStyle, LV_STATE_DEFAULT, -2); - CameraInfolabel = lv_label_create(obj, NULL); - lv_label_set_text(CameraInfolabel, ""); - lv_obj_set_pos(CameraInfolabel, 10, 45); - lv_obj_set_width(CameraInfolabel, 300); - lv_obj_add_style(CameraInfolabel, 0, &LabelStyle); - - update_Camera_Info_msg(obj); -} - -void hidde_Camera_Info_page(void) -{ - printf("[%s]\n", __FUNCTION__); - CameraInfoIndex = 0; - CameraInfoisHidden = 1; - CameraInfoQlogisHidden = 1; - CameraInfoDebugisHidden = 1; - if(CameraInfolabel) - { - lv_obj_del(CameraInfolabel); - CameraInfolabel = NULL; - } - if(CameraInfoImage) - { - lv_obj_del(CameraInfoImage); - CameraInfoImage = NULL; - } - if(btnm) - { - lv_obj_del(btnm); - btnm = NULL; - } -} - -void Option_CAMERA_INFO_Key_Long_Press(lv_obj_t* obj, uint32_t key) -{ - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - printf("[%s]key:%d\n", __FUNCTION__, key); - switch(key) - { - case LV_USER_KEY_NEXT: - puiPara->QLogSwitch = puiPara->QLogSwitch ? 0 : 1; - CameraInfoQlogisHidden = 0; - update_Camera_Info_msg(obj); - break; - case LV_USER_KEY_PREV: - puiPara->DebugMode = puiPara->DebugMode ? 0 : 1; - if(!puiPara->DebugMode) - { - puiPara->QLogSwitch = 0; - } - CameraInfoDebugisHidden = 0; - update_Camera_Info_msg(obj); - break; - case LV_USER_KEY_LEFT: - break; - case LV_USER_KEY_RIGHT: - CameraInfoisHidden = 0; - update_Camera_Info_msg(obj); - break; - case LV_KEY_ENTER: - break; - default: - break; - } -} - -void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key) -{ - printf("[%s]key:%d\n", __FUNCTION__, key); - switch(key) - { - case LV_USER_KEY_NEXT: - CameraInfoQlogisHidden = 1; - update_Camera_Info_msg(obj); - break; - case LV_USER_KEY_PREV: - CameraInfoDebugisHidden = 1; - update_Camera_Info_msg(obj); - break; - case LV_USER_KEY_LEFT: - CameraInfoIndex--; - if(CameraInfoIndex < 0) - CameraInfoIndex = 0; - update_Camera_Info_msg(obj); - break; - case LV_USER_KEY_RIGHT: - if(!CameraInfoisHidden) - { - CameraInfoisHidden = 1; - } - else - { - CameraInfoIndex++; - if(CameraInfoIndex > 2) - CameraInfoIndex = 2; - } - update_Camera_Info_msg(obj); - break; - case LV_KEY_ENTER: - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - hidde_Camera_Info_page(); - break; - default: - break; - } -} - -// -------------------------------------------------------------------------- -// Camera Name -// -------------------------------------------------------------------------- -static char charMap[37] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', - 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', - 'U', 'V', 'W', 'X', 'Y', 'Z', ' '}; -static int CameraNameIndex = 0; -static lv_obj_t* CameraNameMatrixObj = NULL; -static lv_obj_t* CameraNameImage = NULL; -static char CameraNameBuf1[2] = {'0', 0}; -static char CameraNameBuf2[2] = {'0', 0}; -static char CameraNameBuf3[2] = {'0', 0}; -static char CameraNameBuf4[2] = {'0', 0}; -static const char* CameraNameMap[7] = -{ - CameraNameBuf1, - CameraNameBuf2, - CameraNameBuf3, - CameraNameBuf4, - "" -}; - -static void update_Camera_Name_msg(lv_obj_t* obj) -{ - if(CameraNameMatrixObj == NULL || CameraNameImage == NULL) - { - DBG_ERR("Camera Name component is not initialized"); - return; - } - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - snprintf(CameraNameBuf1, 2, "%c", puiPara->CamNameStr[0]); - snprintf(CameraNameBuf2, 2, "%c", puiPara->CamNameStr[1]); - snprintf(CameraNameBuf3, 2, "%c", puiPara->CamNameStr[2]); - snprintf(CameraNameBuf4, 2, "%c", puiPara->CamNameStr[3]); - lv_btnmatrix_set_map(CameraNameMatrixObj, CameraNameMap); - - lv_btnmatrix_set_focused_btn(CameraNameMatrixObj, CameraNameIndex); - - lv_obj_set_x(CameraNameImage, (96 + 32 * CameraNameIndex)); -} - -void show_Camera_Name_page(lv_obj_t* obj) -{ - if(CameraNameMatrixObj != NULL || CameraNameImage != NULL) - { - DBG_ERR("Camera Name component is initialized"); - return; - } - - CameraNameIndex = 0; - - init_Matrix_style(); - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - for(int i = 0; i < 4; i++) { - if (!(puiPara->CamNameStr[i] >= '0' && puiPara->CamNameStr[i] <= '9') && - !(puiPara->CamNameStr[i] >= 'A' && puiPara->CamNameStr[i] <= 'Z') && - puiPara->CamNameStr[i] != ' ') - { - DBG_ERR("Camera Name content error"); - memset(puiPara->CamNameStr, ' ', 4); - break; - } - } - - snprintf(CameraNameBuf1, 2, "%c", puiPara->CamNameStr[0]); - snprintf(CameraNameBuf2, 2, "%c", puiPara->CamNameStr[1]); - snprintf(CameraNameBuf3, 2, "%c", puiPara->CamNameStr[2]); - snprintf(CameraNameBuf4, 2, "%c", puiPara->CamNameStr[3]); - - CameraNameMatrixObj = lv_btnmatrix_create(obj, NULL); - lv_obj_set_hidden(CameraNameMatrixObj, false); - lv_obj_set_click(CameraNameMatrixObj, true); - lv_obj_set_drag(CameraNameMatrixObj, false); - lv_obj_set_pos(CameraNameMatrixObj, 96, 108); - lv_obj_set_size(CameraNameMatrixObj, 128, 24); - lv_btnmatrix_set_map(CameraNameMatrixObj, CameraNameMap); - lv_btnmatrix_set_one_check(CameraNameMatrixObj, true); - lv_btnmatrix_set_align(CameraNameMatrixObj, LV_LABEL_ALIGN_CENTER); - lv_btnmatrix_set_focused_btn(CameraNameMatrixObj,0); - lv_btnmatrix_set_one_check(CameraNameMatrixObj, false); - lv_obj_add_style(CameraNameMatrixObj, 0, &gMatrixStylebg); - lv_obj_add_style(CameraNameMatrixObj, 1, &gMatrixStylebtn); - - CameraNameImage = lv_img_create(obj, NULL); - lv_obj_set_hidden(CameraNameImage, false); - lv_obj_set_click(CameraNameImage, false); - lv_obj_set_drag(CameraNameImage, false); - lv_obj_set_pos(CameraNameImage, 96, 78); - lv_obj_set_size(CameraNameImage, 32, 88); - lv_img_set_src(CameraNameImage, &sf_pwd_down_up); -} - -void hidde_Camera_Name_page(void) -{ - printf("[%s]\n", __FUNCTION__); - CameraNameIndex = 0; - if(CameraNameMatrixObj) - { - lv_obj_del(CameraNameMatrixObj); - CameraNameMatrixObj = NULL; - } - if(CameraNameImage) - { - lv_obj_del(CameraNameImage); - CameraNameImage = NULL; - } -} - -void Option_Camera_Name_Key_Long_Press(lv_obj_t* obj, uint32_t key) -{ - printf("[%s]key:%d\n", __FUNCTION__, key); - - char tmpchar; - char* p; - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - - switch(key) - { - case LV_USER_KEY_NEXT: - tmpchar = puiPara->CamNameStr[CameraNameIndex]; - p = strchr(charMap, tmpchar); - if (p != NULL) - { - puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 36) % 37]; - } - else - { - DBG_ERR("Camera Name content [%d] error", CameraNameIndex); - puiPara->CamNameStr[CameraNameIndex] = ' '; - } - update_Camera_Name_msg(obj); - break; - case LV_USER_KEY_PREV: - tmpchar = puiPara->CamNameStr[CameraNameIndex]; - p = strchr(charMap, tmpchar); - if (p != NULL) - { - puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 1) % 37]; - } - else - { - DBG_ERR("Camera Name content [%d] error", CameraNameIndex); - puiPara->CamNameStr[CameraNameIndex] = ' '; - } - update_Camera_Name_msg(obj); - break; - default: - break; - } -} - -void Option_Camera_Name_Key(lv_obj_t* obj, uint32_t key) -{ - printf("[%s]key:%d\n", __FUNCTION__, key); - - char tmpchar; - char* p; - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - - switch(key) - { - case LV_USER_KEY_NEXT: - tmpchar = puiPara->CamNameStr[CameraNameIndex]; - p = strchr(charMap, tmpchar); - if (p != NULL) - { - puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 36) % 37]; - } - else - { - DBG_ERR("Camera Name content [%d] error", CameraNameIndex); - puiPara->CamNameStr[CameraNameIndex] = ' '; - } - update_Camera_Name_msg(obj); - break; - case LV_USER_KEY_PREV: - tmpchar = puiPara->CamNameStr[CameraNameIndex]; - p = strchr(charMap, tmpchar); - if (p != NULL) - { - puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 1) % 37]; - } - else - { - DBG_ERR("Camera Name content [%d] error", CameraNameIndex); - puiPara->CamNameStr[CameraNameIndex] = ' '; - } - update_Camera_Name_msg(obj); - break; - case LV_USER_KEY_LEFT: - CameraNameIndex = (CameraNameIndex > 0 && CameraNameIndex <= 3) ? (CameraNameIndex - 1) : 3; - update_Camera_Name_msg(obj); - break; - case LV_USER_KEY_RIGHT: - CameraNameIndex = (CameraNameIndex >= 0 && CameraNameIndex < 3) ? (CameraNameIndex + 1) : 0; - update_Camera_Name_msg(obj); - break; - case LV_KEY_ENTER: - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - hidde_Camera_Name_page(); - break; - default: - break; - } -} - - - - diff --git a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c deleted file mode 100644 index 15d2ce3c1..000000000 --- a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c +++ /dev/null @@ -1,1145 +0,0 @@ - -#include "PrjInc.h" -#include "UIFlowLVGL/UIFlowLVGL.h" -#include "UIApp/Network/UIAppNetwork.h" -#include "UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h" -#include -#include -#include -#if HUNTING_CAMERA_MCU == ENABLE -#include -#endif -#include -#include - -#define PAGE 32 -#define PER_PAGE_NUM 5 -#define TAB_PAGE 4 - -//static TM_MENU *g_pItemMenu = 0; -static lv_group_t* gp = NULL; -static lv_obj_t* menu_tab = NULL; -static lv_obj_t* menu_item = NULL; -//static lv_obj_t* menu_option = NULL; -//static lv_obj_t* label_menu_item = NULL; -//#NT#2023/11/03#Eric - begin -//#NT#Support IVOT_N12144_CO-148 -5 -BOOL PrevSel_Img = false; -//#NT#2023/11/03#Eric - end -#define MENU_LUCK -1 -#define MENU_UNLUCK 0 -#define MENU_CLOSED 1 -static int gMenuLuck = MENU_CLOSED; -int is_menu_screen_luck(void) -{ - return gMenuLuck; -} -lv_obj_t *menu_opened_get(void) -{ - return menu_item; -} -static BOOL sf_is_4g_module_usb_update_file_exist(UINT8 *updateFname) -{ - DIR *dirp = NULL; - struct dirent *ptr = NULL; - - UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); - if ((dirp=opendir((char *)SF_SD_ROOT)) != NULL) - { - while ((ptr=readdir(dirp)) != NULL) - { - if(strcmp(ptr->d_name,".")==0 || strcmp(ptr->d_name,"..")==0) ///current dir OR parrent dir - continue; - else if(ptr->d_type == 4) ///dir - { - if(strncmp(ptr->d_name, puiPara->ModuleVer, 6) == 0) - { - sprintf((char*)updateFname, "%s%s", "/mnt/sd/", ptr->d_name); - closedir(dirp); - printf("[%s:%d] updateFname:%s\n", __FUNCTION__, __LINE__, updateFname); - return TRUE; - } - } - else - { - continue; - } - } - } - closedir(dirp); - - printf("no update file\n"); - return FALSE; -} -static unsigned char gBattery = 0; -#define UPGRADABLE 0 -#define NOT_UPGRADABLE -1 -static int is_camera_fw_upgrade(void) -{ - FST_FILE hFile = NULL; - // return UPGRADABLE; - hFile = FileSys_OpenFile(FW_UPDATE_NAME, FST_OPEN_READ); - if (gBattery < 40 || hFile == NULL) - { - if (hFile != NULL) - { - FileSys_CloseFile(hFile); - } - return NOT_UPGRADABLE; - } - if (hFile != NULL) - { - FileSys_CloseFile(hFile); - } - return UPGRADABLE; -} -static int is_module_fw_upgrade(void) -{ - // return UPGRADABLE; - UINT8 updateFileName[60] = {0}; - if (gBattery < 40 || sf_is_4g_module_usb_update_file_exist(updateFileName) == FALSE) - { - return NOT_UPGRADABLE; - } - return UPGRADABLE; -} -#define SEND_TYPE_DISABLE 0 -#define SEND_TYPE_ENABLE 1 -static int is_send_type_disabel(void) -{ - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - #define DAILY_SETTING 0 - if (DAILY_SETTING == puiPara->GprsMode) - { - return SEND_TYPE_ENABLE; - } - return SEND_TYPE_DISABLE; -} -#if 0 -static lv_obj_t* container_option1 = NULL; -static lv_obj_t* container_option2 = NULL; -static lv_obj_t* container_option3 = NULL; -//static lv_obj_t* container_option4 = NULL; -//static lv_obj_t* container_option5 = NULL; -#endif - -UINT16 I_en_Index[PAGE] = {}; -UINT16 ItemEN_Num = 0; - -static void load_info_from_sf(void) -{ -#define OPTION_0 0 -#define OPTION_1 1 - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - SysSetFlag(IDF_PASSWORD, puiPara->PwdSwitch); - SysSetFlag(IDF_CAMERA_NAME, puiPara->CamNameSwitch == SF_CAMID_OFF ? OPTION_0 : OPTION_1); - SysSetFlag(IDF_CAMERA_MODE, puiPara->CamMode == 3 ? OPTION_1 : OPTION_0); - if (PHOTO_SIZE_40M == puiPara->ImgSize) - { - SysSetFlag(IDF_IMAGE_SIZE, 0); - } - if (PHOTO_SIZE_32M == puiPara->ImgSize) - { - SysSetFlag(IDF_IMAGE_SIZE, 1); - } - if (PHOTO_SIZE_24M == puiPara->ImgSize) - { - SysSetFlag(IDF_IMAGE_SIZE, 2); - } - if (PHOTO_SIZE_16M == puiPara->ImgSize) - { - SysSetFlag(IDF_IMAGE_SIZE, 3); - } - if (PHOTO_SIZE_8M == puiPara->ImgSize) - { - SysSetFlag(IDF_IMAGE_SIZE, 4); - } - if (MOVIE_SIZE_FRONT_1920x1080P30 == puiPara->VideoSize) - { - SysSetFlag(IDF_VIDEO_SIZE, 0); - } - if (MOVIE_SIZE_FRONT_1280x720P30 == puiPara->VideoSize) - { - SysSetFlag(IDF_VIDEO_SIZE, 1); - } - if (MOVIE_SIZE_FRONT_848x480P30 == puiPara->VideoSize) - { - SysSetFlag(IDF_VIDEO_SIZE, 2); - } - SysSetFlag(IDF_VIDEA_LENGTH, puiPara->VideoLenth == 10 ? OPTION_0 : OPTION_1); - SysSetFlag(IDF_FLASH_POWER, puiPara->FlashLed); - SysSetFlag(IDF_SENSITIVITY, puiPara->DigitPirSensitivity); - SysSetFlag(IDF_DELAY, puiPara->PirDelaySwitch == SF_OFF ? OPTION_0 : OPTION_1); - SysSetFlag(IDF_OPERATING_TIME, puiPara->WorkTime1Switch == SF_OFF ? OPTION_0 : OPTION_1); - SysSetFlag(IDF_DATE_AND_TIME, puiPara->DateAuto == SF_DATE_AUTO ? OPTION_0 : OPTION_1); - SysSetFlag(IDF_MAX_NUM_DAY, puiPara->SendMaxNum == 0 ? OPTION_0 : OPTION_1); - SysSetFlag(IDF_SETTINGS_CHECK, puiPara->GprsMode); - SysSetFlag(IDF_SEND_TYPE, (puiPara->SendType == 4 ? 3 : puiPara->SendType)); - SysSetFlag(IDF_CHECK_IN_PHOTO, puiPara->PicUpDailyReport); - SysSetFlag(IDF_GPS, puiPara->GpsSwitch); - SysSetFlag(IDF_BATTERY_TYPE, puiPara->BatteryType); - SysSetFlag(IDF_SD_LOOP, puiPara->SdLoopSwitch); -} - -static void set_indev_keypad_group(lv_obj_t* obj) -{ - if(gp == NULL){ - gp = lv_group_create(); - lv_group_add_obj(gp, obj); - } - - lv_indev_t* indev = lv_plugin_find_indev_by_type(LV_INDEV_TYPE_KEYPAD); - lv_indev_set_group(indev, gp); -} - -#if 0 -static void LV_MenuCommonItem_SetCurrentMenu(TM_MENU *pMenu) -{ - g_pItemMenu = pMenu; -} -static TM_MENU *LV_MenuCommonItem_GetCurrentMenu(void) -{ - return g_pItemMenu; -} -#endif - -static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu); -static void LV_MenuItem_OnSelected(lv_obj_t* obj); - -//#NT#2023/11/21#Eric - begin -//#NT#Support IVOT_N12144_CO-148_1120_5 -static void LV_MenuItem_OnPrev(lv_obj_t* obj) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE *pPage; - TM_ITEM *pItem; - BOOL uSel_Jump = false; - - pPage = &pMenu->pPages[pMenu->SelPage]; - // pItem = &pPage->pItems[pPage->SelItem]; - if (pMenu->Status == TMS_ON_TAB){ - if(pPage->SelItem == 0){ -// DBG_WRN("already foucs on tab !"); - DBG_DUMP("^Galready foucs on tab !"); - pPage->SelItem = (pPage->Count - 1); - pMenu->Status = TMS_ON_ITEM; - LV_MenuCommonItem_UpdateContent(pMenu); - lv_plugin_menu_select_item(menu_item, pPage->SelItem); - } - }else{ - OneMore: - // pItem = &pPage->pItems[pPage->SelItem - 1]; - // if(((pItem->ItemId == IDM_BATTERY_TYPE) && 0)){ - // pPage->SelItem = 0; - // } - //if item = 0; up key foucs to tab - if(pPage->SelItem == 0){ - pMenu->Status = TMS_ON_TAB; - LV_MenuCommonItem_UpdateContent(pMenu); - lv_plugin_menu_clear_selected_item(menu_item); - return; - } - pPage->SelItem--; - pItem = &pPage->pItems[pPage->SelItem]; - if((pItem->ItemId == IDM_CAMERA_FW_UPGRADE && is_camera_fw_upgrade() == NOT_UPGRADABLE) || - (pItem->ItemId == IDM_MODULE_FW_UPGRADE && is_module_fw_upgrade() == NOT_UPGRADABLE) || - (pItem->ItemId == IDM_SEND_TYPE && is_send_type_disabel() == SEND_TYPE_DISABLE)) { - lv_plugin_menu_select_prev_item(menu_item); - uSel_Jump = true; - goto OneMore; - } - LV_MenuCommonItem_UpdateContent(pMenu); - lv_plugin_menu_select_prev_item(menu_item); - if(uSel_Jump){ - lv_plugin_menu_set_item_state(menu_item, (pPage->SelItem + 1), LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - uSel_Jump = false; - } -} - -static void LV_MenuItem_OnNext(lv_obj_t* obj) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE *pPage; - TM_ITEM *pItem; - BOOL uSel_Jump = false; - // static BOOL FisrtSel_Jump = false; - - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - - if (pMenu->Status == TMS_ON_TAB){ - pMenu->Status = TMS_ON_ITEM; - pPage->SelItem = 0; - // pMenu->Status = TMS_ON_ITEM; - // if(((pItem->ItemId == IDM_BATTERY_TYPE) && 0)){ - // pPage->SelItem = 1; - // FisrtSel_Jump = true; - // }else{ - // pPage->SelItem = 0; - // } - LV_MenuCommonItem_UpdateContent(pMenu); - lv_plugin_menu_select_item(menu_item, 0); - // lv_plugin_menu_select_item(menu_item, pPage->SelItem); - }else{ - Onetime: - pPage->SelItem++; - pItem = &pPage->pItems[pPage->SelItem]; - if((pItem->ItemId == IDM_CAMERA_FW_UPGRADE && is_camera_fw_upgrade() == NOT_UPGRADABLE) || - (pItem->ItemId == IDM_MODULE_FW_UPGRADE && is_module_fw_upgrade() == NOT_UPGRADABLE) || - (pItem->ItemId == IDM_SEND_TYPE && is_send_type_disabel() == SEND_TYPE_DISABLE)){ - lv_plugin_menu_select_next_item(menu_item); - uSel_Jump = true; - goto Onetime; - } - - if(pPage->SelItem >= pPage->Count){ - pPage->SelItem = 0; - // if(FisrtSel_Jump /**&& uItem_Locked**/){ - // pPage->SelItem = 1; - // }else{ - // pPage->SelItem = 0; - // } - LV_MenuCommonItem_UpdateContent(pMenu); - lv_plugin_menu_select_item(menu_item, pPage->SelItem); - return; - } - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -5 - PrevSel_Img = false; - //#NT#2023/11/03#Eric - end - - LV_MenuCommonItem_UpdateContent(pMenu); - lv_plugin_menu_select_next_item(menu_item); - if(uSel_Jump){ - lv_plugin_menu_set_item_state(menu_item, (pPage->SelItem - 1), LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - uSel_Jump = false; - } - -} - -static void LV_MenuItem_OnUp(lv_obj_t* obj) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE *pPage; - - pPage = &pMenu->pPages[pMenu->SelPage]; - if (pMenu->Status == TMS_ON_TAB) - { - printf("handle on tab.\n"); - TM_ShiftTab(pMenu, -1); - //#NT#2023/11/03#Eric - begin - //#NT#Support //#NT#Support IVOT_N12144_CO-148 -1 - lv_plugin_menu_select_first_item(menu_item); - //#NT#2023/11/03#Eric - end - LV_MenuCommonItem_UpdateContent(pMenu); - lv_plugin_menu_select_prev_item(menu_tab); - }else{ - pMenu->Status = TMS_ON_TAB; - LV_MenuCommonItem_UpdateContent(pMenu); - lv_plugin_menu_clear_selected_item(menu_item); - pPage->SelItem = 0; - //lv_plugin_scr_close(obj, NULL); - } -} - -static void LV_MenuItem_OnDown(lv_obj_t* obj) -{ - - TM_MENU* pMenu = TM_GetMenu(); - - if (pMenu->Status == TMS_ON_TAB) - { - printf("handle on tab.\n"); - TM_ShiftTab(pMenu, +1); - lv_plugin_menu_select_first_item(menu_item); - lv_plugin_menu_select_next_item(menu_tab); - LV_MenuCommonItem_UpdateContent(pMenu); - }else{ - printf("handle on item.\n"); - LV_MenuItem_OnSelected(obj); - } -} -//#NT#2023/11/21#Eric - end - -#define ITEM_IS_SWITCH 1 -#define ITEM_IS_NOT_SWITCH 0 -static int IsItemSwitch(const TM_ITEM *item) -{ - if (NULL == item || NULL == item->pOptions) - { - printf(" faield:null pointer.\n"); - return -1; - } - // if (LV_PLUGIN_STRING_ID_STRID_OFF == (&item->pOptions[0])->TextId - // ||LV_PLUGIN_STRING_ID_STRID_ON == (&item->pOptions[0])->TextId) - // { - // printf("item is switch.\n"); - // return ITEM_IS_SWITCH; - // } else { - // printf("item is not switch.\n"); - // return ITEM_IS_NOT_SWITCH; - // } - return -1; -} - -static void SetSwitchItem(TM_ITEM *item) -{ - if (NULL == item) - { - printf(" faield:null pointer.\n"); - return; - } - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - switch (item->ItemId) - { - case IDM_PASSWORD: - { - printf("set IDM_PASSWORD.\n"); - char settingValue = puiPara->PwdSwitch == SF_CAMID_OFF ? SF_CAMID_ON:SF_CAMID_OFF; - if (SF_CAMID_ON == settingValue) - { - - } - else - { - } - puiPara->PwdSwitch = settingValue; - break; - } - case IDM_CAMERA_NAME: - { - printf("set IDM_CAMERA_NAME.\n"); - // CamPara->cameraID = puiPara->CamNameSwitch == SF_CAMID_OFF ? 0:1; - char settingValue = puiPara->CamNameSwitch == SF_CAMID_OFF ? SF_CAMID_ON:SF_CAMID_OFF; - if (SF_CAMID_ON == settingValue) - { - - } - else - { - } - puiPara->CamNameSwitch = settingValue; - break; - } - default: - break; - } -} - -static void LV_MenuItem_OnSelected(lv_obj_t* obj) -{ - TM_MENU *pMenu = TM_GetMenu(); - TM_PAGE *pPage; - TM_ITEM *pItem; -// TM_MENU *pNextMenu; - UINT16 SelOption = 0; - TM_MENU *pCurMenu = NULL; - -// DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); - pPage = &pMenu->pPages[pMenu->SelPage]; - if (pMenu->Status == TMS_ON_ITEM) - { - pItem = &pPage->pItems[pPage->SelItem]; - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -5 - PrevSel_Img = true; - //#NT#2023/11/03#Eric - end - //#NT#2016/09/20#Bob Huang -begin - //#NT#Support HDMI Display with 3DNR Out - //Only support FHD p30 size, cannot change size when 3DNR Out enabled - #if (_3DNROUT_FUNC == ENABLE) - if(pItem->SysFlag == FL_MOVIE_SIZE_MENU && gb3DNROut) - { - return; - } - #endif - if (IDM_NETWORK_SELECTION == pItem->ItemId || IDM_CAMERA_FW_UPGRADE == pItem->ItemId || IDM_MODULE_FW_UPGRADE == pItem->ItemId) - { - gMenuLuck = MENU_LUCK; - } - if((pItem->ItemId == IDM_CHECK_IN_PHOTO) || (pItem->ItemId == IDM_SD_LOOP) \ - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -6 - || (pItem->ItemId == IDM_GPS)){ - //#NT#2023/11/03#Eric - end - //pItem = &pPage->pItems[pPage->SelItem]; - #define SWITCH_OFF 0 - #define SWITCH_ON 1 - SelOption = SysGetFlag(pItem->SysFlag) == SWITCH_OFF ? SWITCH_ON : SWITCH_OFF; - //static int flag = 0; - SysSetFlag(pItem->SysFlag, SelOption); - pCurMenu = TM_GetTabMenu(pMenu->SelPage); - TM_MENU_CALLBACK(pCurMenu, TMM_CONFIRM_OPTION, MAKE_LONG(pItem->ItemId, SelOption)); - // TM_MENU_CALLBACK(MenuList[pMenu->SelPage], TMM_CONFIRM_OPTION, MAKE_LONG(pItem->ItemId, SelOption)); - //flag = !flag; - //SysSetFlag(pItem->SysFlag, flag); - LV_MenuCommonItem_UpdateContent(pMenu); - CHKPNT; - return; - } - //#NT#2016/09/20#Bob Huang -end - if (pItem->Count != 0 && pItem->SysFlag != 0) // standard process - { - if (TM_MENU_CALLBACK(pMenu, TMM_ENTER_OPTION, MAKE_LONG(pItem->ItemId, 0)) == TMF_PASS_MESSAGE) - { - return; - } - } - if (ITEM_IS_SWITCH == IsItemSwitch(pItem)) - { - SetSwitchItem(pItem); - LV_MenuCommonItem_UpdateContent(pMenu); - } - else - { - if (pItem->Count != 0 && pItem->SysFlag != 0) // standard process - { - pMenu->Status = TMS_ON_OPTION; - lv_plugin_scr_open(UIFlowMenuCommonOption, NULL); - } - else if (pItem->pOptions != 0) // custom process - { - pMenu->Status = TMS_ON_CUSTOM; - TM_ITEM_CALLBACK(pItem, 0, 0); // execute custom menu flow - } - } - }else if(pMenu->Status == TMS_ON_TAB){ - CHKPNT; //lv_plugin_menu_clear_selected_item(menu_item); - lv_plugin_scr_close(obj, NULL); - } - - -} - -void LV_MenuItem_OnClose(lv_obj_t* obj) -{ -#if (MOVIE_MODE==ENABLE) - //#NT#2016/08/19#Lincy Lin#[0106935] -begin - //#NT# Support change WDR, SHDR, RSC setting will change mode after exit menu - BOOL bReOpenMovie = FlowMovie_CheckReOpenItem(); - BOOL bReOpenPhoto = 0; -#if (PHOTO_MODE==ENABLE) - bReOpenPhoto = FlowPhoto_CheckReOpenItem(); -#endif - if(bReOpenMovie) - DBG_DUMP("RESTART_MODE_YES\r\n"); - else - DBG_DUMP("RESTART_MODE_NO\r\n"); - - if (bReOpenMovie || bReOpenPhoto) - //#NT#2016/08/19#Lincy Lin -end - { - Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, System_GetState(SYS_STATE_CURRMODE)); - } -#endif - -} - -void LV_MenuItem_OnOpen(lv_obj_t* obj) -{ - DBG_DUMP("MenuItem_OnOpen\r\n"); - TM_MENU *pMenu = NULL; - TM_MENU* pCurMenu; - -#if (PHOTO_MODE == ENABLE) - // Enter 2nd level menu and pop up current mode's menu lists - if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PHOTO) { - pCurMenu = &gQrMenu; -#if (PLAY_MODE == ENABLE) - } else if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) { - pCurMenu = &gQrMenu; -#endif - } else { - pCurMenu = &gQrMenu; - } -#else - //pNextMenu = &gCommonMenu;//use for codebase sportcam/LVGL UI or touch - pCurMenu = &gQrMenu; -#endif - -// TM_SetMenu(pCurMenu); -// DBG_DUMP("%s pMenu->Count =%d\r\n", __func__,pCurMenu->Count); -//#NT#2023/10/25#Eric - begin -//#NT#Support IVOT_N12144_CO-144 - pCurMenu->pPages[0]= gQrMenu.pPages[0]; //= gQrMenu - TM_SetTabMenu(&gQrMenu, 0); - pCurMenu->pPages[1]= gGeneralMenu.pPages[0]; //= gGeneralMenu - TM_SetTabMenu(&gGeneralMenu, 1); - pCurMenu->pPages[2]= gSendMenu.pPages[0]; //= gSendMenu - TM_SetTabMenu(&gSendMenu, 2); - pCurMenu->pPages[3]= gMoreMenu.pPages[0]; //= gMoreMenu - TM_SetTabMenu(&gMoreMenu, 3); -//#NT#2023/10/25#Eric - end - - TM_SetMenu(pCurMenu); - - pMenu = TM_GetMenu(); - pMenu->Status = TMS_ON_TAB; // current menu status is TAB - pMenu->SelPage = 0; // reset page to 0 - /* check menu tab is init */ - if(!lv_plugin_menu_item_cnt(menu_tab)){ - /* allocate menu item */ - lv_plugin_menu_init_items(menu_tab, TAB_PAGE); - } - lv_plugin_menu_select_item(menu_tab, 0); - /* check menu item is init */ - if(!lv_plugin_menu_item_cnt(menu_item)){ - /* allocate menu item */ - lv_plugin_menu_init_items(menu_item, PAGE); - } -// lv_plugin_menu_select_item(menu_item, 0); - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -6 - PrevSel_Img = 0; - //#NT#2023/11/03#Eric - end - - LV_MenuCommonItem_UpdateContent(pMenu); - -} - -static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu) -{ - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - TM_PAGE *pPage; - TM_ITEM *pItem; - TM_OPTION *pOption; - UINT32 i = 0; - UINT16 Sel_item = 0; -// UINT16 Sel_page = 0; - UINT16 itemIndex = 0; - BOOL u_hiddenitem = false; - BOOL u_ItemSel = false; - lv_plugin_res_id img_id = LV_PLUGIN_IMG_ID_ICON_REC_TRANSPAENT; - printf("update content select page = %d\n", pMenu->SelPage); - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; -#if 0 - if (pMenu->Status == TMS_ON_TAB) - { - for (i = 0; i < TAB_PAGE; i++) { - if ((UINT32)pMenu->SelPage == i){ - uiIcon[i] = (&pMenu->pPages[i])->IconId; - u_ItemSel = false; - }else{ - uiIcon[i] = (&pMenu->pPages[i])->IconIdX; - u_ItemSel = true; - } - uiText[i] = (&pMenu->pPages[i])->TextId; - if(u_ItemSel){ - lv_plugin_menu_set_item_string_id(menu_tab, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, uiText[i]); - lv_plugin_menu_set_item_img_id(menu_tab, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, uiIcon[i]); - }else{ - lv_plugin_menu_set_item_string_id(menu_tab, i, LV_PLUGIN_MENU_ITEM_STATE_FOCUSED, uiText[i]); - lv_plugin_menu_set_item_img_id(menu_tab, i, LV_PLUGIN_MENU_ITEM_STATE_FOCUSED, uiIcon[i]); - } - lv_plugin_menu_set_item_hidden(menu_tab, i, false); - } - } -#endif - if(pPage->SelItem == 0){ - Sel_item = 0; - }else{ - if(pPage->SelItem / PER_PAGE_NUM == 0){ - Sel_item = 0; - }else{ - Sel_item = (pPage->SelItem / PER_PAGE_NUM) ; - } - } - - itemIndex = (Sel_item * PER_PAGE_NUM); - //draw item form startIndex - - printf("\033[33m[LV_MenuCommonItem_UpdateContent]Sel_item:%d itemIndex:%d pPage->Count:%d\033[0m\n",Sel_item,itemIndex,pPage->Count); - for (i = 0; i < PER_PAGE_NUM; i++) { - //check item if disable - TM_CheckItemStatus(pMenu, &itemIndex, TRUE); - pItem = &pPage->pItems[itemIndex]; - - if ((itemIndex >= pPage->Count) && (i < PER_PAGE_NUM)) { - lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_STRING_ID_STRID_NULL_); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_ICON_REC_TRANSPAENT); - lv_plugin_menu_set_item_hidden(menu_item, i, true); - u_ItemSel = true; - } else { -#if 0////demo for only one container - DBG_DUMP("\r\n %s check i= %d\r\n", __func__, i); - pItem = &pPage->pItems[i]; - DBG_DUMP("\r\n %s pItem TextId= %d\r\n", __func__, pItem->TextId); - DBG_DUMP("\r\n %s pItem IconId= %d\r\n", __func__, pItem->IconId); - lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); - lv_plugin_menu_set_item_hidden(menu_item, i, false); - u_ItemSel = false; -#else - pOption = &pItem->pOptions[SysGetFlag(pItem->SysFlag)]; -// DBG_DUMP("\r\n %s pOption TextId= %d\r\n", __func__, pOption->TextId); - - if((pItem->ItemId == IDM_CHECK_IN_PHOTO) || (pItem->ItemId == IDM_SD_LOOP) \ - || (pItem->ItemId == IDM_GPS)){ - static lv_plugin_res_id res[] = { - LV_PLUGIN_IMG_ID_SF_OFF, - LV_PLUGIN_IMG_ID_SF_ON, - }; - switch(pItem->ItemId){ - case IDM_CHECK_IN_PHOTO: - img_id = res[SysGetFlag(FL_CHECK_IN_PHOTO)]; - break; - case IDM_SD_LOOP: - img_id = res[SysGetFlag(FL_SD_LOOP)]; - break; - case IDM_GPS: - img_id = res[SysGetFlag(FL_GPS)]; - break; - - default: - img_id = LV_PLUGIN_IMG_ID_SF_OFF; - DBG_ERR("NO_match_ItemID, add please!"); - break; - } - // if(img_id == LV_PLUGIN_IMG_ID_ICON_REC_TRANSPAENT){ - if(1){ - lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); - lv_plugin_menu_set_item_hidden(menu_item, i, false); - } - u_hiddenitem = true; - }else{ - lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); - lv_plugin_menu_set_item_hidden(menu_item, i, false); - //#NT#2023/11/21#Eric - begin - //#NT#Support IVOT_N12144_CO-148_1120_5 - // BOOL uItem_Locked = true; // TODO: - // if(((pItem->ItemId == IDM_CAMERA_FW_UPGRADE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE))&& uItem_Locked){ - if((pItem->ItemId == IDM_CAMERA_FW_UPGRADE) && is_camera_fw_upgrade() == NOT_UPGRADABLE){ - lv_plugin_menu_set_item_state(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_CAMERA_FW_UPGRADE_DIS); - } else if (pItem->ItemId == IDM_MODULE_FW_UPGRADE && is_module_fw_upgrade() == NOT_UPGRADABLE) - { - lv_plugin_menu_set_item_state(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_MODULE_FW_UPGRADE_DIS); - } else if (pItem->ItemId == IDM_SEND_TYPE && is_send_type_disabel() == SEND_TYPE_DISABLE) - { - lv_plugin_menu_set_item_state(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS); - } - else if (pItem->ItemId == IDM_BATTERY_TYPE && 0) - { - lv_plugin_menu_set_item_state(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS); - } - else { - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); - } - //#NT#2023/11/21#Eric - end - u_hiddenitem = false; - } - - if(!u_hiddenitem){ - if(i == 0){ - lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, true); - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -5 - if(((pPage->SelItem%PER_PAGE_NUM) == 0)&&(pMenu->Status == TMS_ON_ITEM)){ - lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT2); - }else{ - if(pItem->ItemId == IDM_BATTERY_TYPE && 0){ - lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT_DIS); - } else { - lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); - } - } - //#NT#2023/11/03#Eric - end - if(pItem->ItemId == IDM_NETWORK_SELECTION) - lv_plugin_label_set_text(label_option_1_scr_uiflowmenucommonitem, IDS_END); - else if(pItem->ItemId == IDM_SENSITIVITY) - { - int tmp = get_dig_pir_level(); - if(tmp >= 0 && tmp <= 9) - { - lv_plugin_label_set_text(label_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_STRING_ID_STRID_0 + tmp); - } - else - { - lv_plugin_label_set_text(label_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_STRING_ID_STRID_0); - } - } - else if(pItem->ItemId == IDM_MAX_NUM_DAY) - { - #define SEND_MAX_NUM_UNLIMITED 0 - if (SEND_MAX_NUM_UNLIMITED == puiPara->SendMaxNum) - { - lv_plugin_label_set_text(label_option_1_scr_uiflowmenucommonitem, pOption->TextId); - } - else - { - lv_label_set_text_fmt(label_option_1_scr_uiflowmenucommonitem, "%d", puiPara->SendMaxNum); - } - } - else - lv_plugin_label_set_text(label_option_1_scr_uiflowmenucommonitem, pOption->TextId); - lv_plugin_label_update_font(label_option_1_scr_uiflowmenucommonitem, LV_OBJ_PART_MAIN); - lv_obj_set_hidden(container_option_1_scr_uiflowmenucommonitem, false); - }else if(i == 1){ - lv_obj_set_hidden(image_option_02_scr_uiflowmenucommonitem, true); - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -5 - if(((pPage->SelItem%PER_PAGE_NUM) == 1)&&(pMenu->Status == TMS_ON_ITEM)){ - lv_plugin_img_set_src(image_option_2_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT2); - }else{ - lv_plugin_img_set_src(image_option_2_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); - } - //#NT#2023/11/03#Eric - end - lv_plugin_label_set_text(label_option_2_scr_uiflowmenucommonitem, pOption->TextId); - lv_plugin_label_update_font(label_option_2_scr_uiflowmenucommonitem, LV_OBJ_PART_MAIN); - lv_obj_set_hidden(container_option_2_scr_uiflowmenucommonitem, false); - }else if(i == 2){ - lv_obj_set_hidden(image_option_03_scr_uiflowmenucommonitem, true); - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -5 - if(((pPage->SelItem%PER_PAGE_NUM) == 2)&&(pMenu->Status == TMS_ON_ITEM)){ - lv_plugin_img_set_src(image_option_3_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT2); - }else{ - if((pItem->ItemId == IDM_CAMERA_FW_UPGRADE && is_camera_fw_upgrade() == NOT_UPGRADABLE) || - (pItem->ItemId == IDM_SEND_TYPE && is_send_type_disabel() == SEND_TYPE_DISABLE)){ - lv_plugin_img_set_src(image_option_3_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT_DIS); - } else { - lv_plugin_img_set_src(image_option_3_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); - } - } - //#NT#2023/11/03#Eric - end - lv_plugin_label_set_text(label_option_3_scr_uiflowmenucommonitem, pOption->TextId); - lv_plugin_label_update_font(label_option_3_scr_uiflowmenucommonitem, LV_OBJ_PART_MAIN); - lv_obj_set_hidden(container_option_3_scr_uiflowmenucommonitem, false); - }else if(i == 3){ - lv_obj_set_hidden(image_option_04_scr_uiflowmenucommonitem, true); - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -5 - if(((pPage->SelItem%PER_PAGE_NUM) == 3)&&(pMenu->Status == TMS_ON_ITEM)){ - lv_plugin_img_set_src(image_option_4_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT2); - }else{ - if(pItem->ItemId == IDM_MODULE_FW_UPGRADE && is_module_fw_upgrade() == NOT_UPGRADABLE){ - lv_plugin_img_set_src(image_option_4_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT_DIS); - } else { - lv_plugin_img_set_src(image_option_4_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); - } - } - //#NT#2023/11/03#Eric - end - lv_plugin_label_set_text(label_option_4_scr_uiflowmenucommonitem, pOption->TextId); - lv_plugin_label_update_font(label_option_4_scr_uiflowmenucommonitem, LV_OBJ_PART_MAIN); - lv_obj_set_hidden(container_option_4_scr_uiflowmenucommonitem, false); - }else if(i == 4){ - lv_obj_set_hidden(image_option_05_scr_uiflowmenucommonitem, true); - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -5 - if(((pPage->SelItem%PER_PAGE_NUM) == 4)&&(pMenu->Status == TMS_ON_ITEM)){ - lv_plugin_img_set_src(image_option_5_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT2); - }else{ - lv_plugin_img_set_src(image_option_5_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); - } - //#NT#2023/11/03#Eric - end - lv_plugin_label_set_text(label_option_5_scr_uiflowmenucommonitem, pOption->TextId); - lv_plugin_label_update_font(label_option_5_scr_uiflowmenucommonitem, LV_OBJ_PART_MAIN); - lv_obj_set_hidden(container_option_5_scr_uiflowmenucommonitem, false); - } - }else{ - //#NT#2023/11/03#Eric - begin - //#NT#Support IVOT_N12144_CO-148 -5 - if((pPage->SelItem == i)&&(pMenu->Status == TMS_ON_ITEM)&&(PrevSel_Img)){ - lv_plugin_menu_select_item(menu_item, pPage->SelItem); - PrevSel_Img = false; - } - //#NT#2023/11/03#Eric - end - if(i == 0){ - lv_obj_set_hidden(container_option_1_scr_uiflowmenucommonitem, true); - lv_plugin_img_set_src(image_option_01_scr_uiflowmenucommonitem, img_id); - lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, false); - }else if(i == 1){ - lv_obj_set_hidden(container_option_2_scr_uiflowmenucommonitem, true); - lv_plugin_img_set_src(image_option_02_scr_uiflowmenucommonitem, img_id); - lv_obj_set_hidden(image_option_02_scr_uiflowmenucommonitem, false); - }else if(i == 2){ - lv_obj_set_hidden(container_option_3_scr_uiflowmenucommonitem, true); - lv_plugin_img_set_src(image_option_03_scr_uiflowmenucommonitem, img_id); - lv_obj_set_hidden(image_option_03_scr_uiflowmenucommonitem, false); - }else if(i == 3){ - lv_obj_set_hidden(container_option_4_scr_uiflowmenucommonitem, true); - lv_plugin_img_set_src(image_option_04_scr_uiflowmenucommonitem, img_id); - lv_obj_set_hidden(image_option_04_scr_uiflowmenucommonitem, false); - }else if(i == 4){ - lv_obj_set_hidden(container_option_5_scr_uiflowmenucommonitem, true); - lv_plugin_img_set_src(image_option_05_scr_uiflowmenucommonitem, img_id); - lv_obj_set_hidden(image_option_05_scr_uiflowmenucommonitem, false); - } - } - - - itemIndex++; -#endif - } - if(u_ItemSel){ - if(i == 0){ - lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_1_scr_uiflowmenucommonitem, true); - }else if(i == 1){ - lv_obj_set_hidden(image_option_02_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_2_scr_uiflowmenucommonitem, true); - }else if(i == 2){ - lv_obj_set_hidden(image_option_03_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_3_scr_uiflowmenucommonitem, true); - }else if(i == 3){ - lv_obj_set_hidden(image_option_04_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_4_scr_uiflowmenucommonitem, true); - }else if(i == 4){ - lv_obj_set_hidden(image_option_05_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_5_scr_uiflowmenucommonitem, true); - } - } - - - } - -} - - -static void UIFlowMenuCommonItem_ScrOpen(lv_obj_t* obj) -{ - DBG_DUMP("UIFlowMenuCommonItem_ScrOpen\r\n"); - sf_set_keep_alive_time(MENU_SCREEN_GO_TO_WORK_MODE_TIME_S); - gBattery = sf_cardv_battery_value_get(); - - /*********************************************************************************** - * Add Menu Screen into group and set group to keypad indev - ***********************************************************************************/ - set_indev_keypad_group(obj); - - - /*********************************************************************************** - * create a plugin menu, the menu should contains below widgets : - * - * container (parent) - * - * btn or imgbtn (item1) - * label + img (item1's label and img) - * - * btn or imgbtn (item2) - * label + img (item2's label and img) - * - * .... - * - * those widgets styles and number of buttons are configured in the builder, - * btn's label or img is not mandatory - * - **********************************************************************************/ - if(menu_item == NULL){ - menu_item = lv_plugin_menu_create(obj, container_main_menu_scr_uiflowmenucommonitem); - lv_plugin_menu_set_wrap(menu_item, true); - } - - if(menu_tab == NULL){ - menu_tab = lv_plugin_menu_create(obj, container_tab_scr_uiflowmenucommonitem); - lv_plugin_menu_set_wrap(menu_tab, true); - } - - LV_MenuItem_OnOpen(obj); - - gMenuLuck = MENU_UNLUCK; - #if HUNTING_CAMERA_MCU == ENABLE - sf_set_menu_open(TRUE); - #endif - -} - -static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key) -{ - TM_MENU* pMenu = TM_GetMenu(); - - #if HUNTING_CAMERA_MCU == ENABLE - sf_set_auto_off_time(0); - #endif - - printf("[UIFlowMenuCommonItem_Key]key: %d\n",key); - - - switch(key) - { - case LV_USER_KEY_UP: - - case LV_USER_KEY_DOWN: - { - printf("[UIFlowMenuCommonItem_Key]error input\n",key); - } - - case LV_USER_KEY_NEXT: - { - printf("[UIFlowMenuCommonItem_Key]>>>DOWN\n"); - LV_MenuItem_OnNext(obj); - break; - } - - case LV_USER_KEY_PREV: - { - printf("[UIFlowMenuCommonItem_Key]>>>UP\n"); - LV_MenuItem_OnPrev(obj); - break; - } - - case LV_KEY_LEFT: - { - printf("[UIFlowMenuCommonItem_Key]>>>LEFT\n"); - load_info_from_sf(); - LV_MenuItem_OnUp(obj); - break; - } - - case LV_KEY_RIGHT: - { - printf("[UIFlowMenuCommonItem_Key]>>>RIGHT\n"); - load_info_from_sf(); - LV_MenuItem_OnDown(obj); - break; - } - - // case LV_USER_KEY_SELECT: - // { - // CHKPNT; - // printf("========================== select.\n"); - // LV_MenuItem_OnSelected(obj); - // break; - // } - - case LV_KEY_ENTER: - { - if (pMenu->Status == TMS_ON_TAB) - { - lv_plugin_scr_close(obj, NULL); - } - else - { - LV_MenuItem_OnSelected(obj); - } - break; - } -#if HUNTING_CAMERA_MCU == ENABLE - case LV_USER_KEY_DATAREADY: - { - printf("[dataready] %s(%d)\n", __FUNCTION__, __LINE__); - sf_mcu_dataready_get(); - break; - } -#endif - } - -} - -static void UIFlowMenuCommonItem_ScrClose(lv_obj_t* obj) -{ - DBG_DUMP("%s\r\n", __func__); - sf_set_keep_alive_time(DEFAULT_GO_TO_WORK_MODE_TIME_S); - Save_MenuInfo(); - LV_MenuItem_OnClose(obj); - gMenuLuck = MENU_CLOSED; -} - - -static void UIFlowMenuCommonItem_ChildScrClose(lv_obj_t* obj,const LV_USER_EVENT_NVTMSG_DATA* msg) -{ - DBG_DUMP("%s\r\n", __func__); - - set_indev_keypad_group(obj); - if(msg){ - if(msg->event == NVTRET_ENTER_MENU){ - load_info_from_sf(); - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE *pPage; -// TM_ITEM *pItem; - - pPage = &pMenu->pPages[pMenu->SelPage]; -// pItem = &pPage->pItems[pPage->SelItem]; - pMenu->Status = TMS_ON_ITEM; - LV_MenuCommonItem_UpdateContent(pMenu); - //DBG_DUMP("%s SelItem:%d \r\n", __func__, pPage->SelItem); - lv_plugin_menu_select_item(menu_item, pPage->SelItem); - } - } - - gMenuLuck = MENU_UNLUCK; - #if HUNTING_CAMERA_MCU == ENABLE - sf_set_menu_open(FALSE); - #endif -} - - -void container_main_menu_callback(lv_obj_t* obj, lv_event_t event) -{ - DBG_DUMP("%s\r\n", __func__); -} - -void UIFlowMenuCommonItemEventCallback(lv_obj_t* obj, lv_event_t event) -{ - printf("[UIFlowMenuCommonItemEventCallback]event:%d\n",event); - switch(event) - { - case LV_PLUGIN_EVENT_SCR_OPEN: - { - load_info_from_sf(); - UIFlowMenuCommonItem_ScrOpen(obj); - break; - } - - case LV_PLUGIN_EVENT_SCR_CLOSE: - { - UIFlowMenuCommonItem_ScrClose(obj); - break; - } - - case LV_PLUGIN_EVENT_CHILD_SCR_CLOSE: - { - UIFlowMenuCommonItem_ChildScrClose(obj,(const LV_USER_EVENT_NVTMSG_DATA*)lv_event_get_data()); - - break; - } - -#if 0 - case LV_EVENT_PRESSED: - lv_plugin_menu_set_selected_item_pressed(menu_item); - break; - - case LV_EVENT_RELEASED: - lv_plugin_menu_set_selected_item_released(menu_item); - break; -#endif - - //case LV_EVENT_CLICKED: - case LV_KEY_ENTER: - CHKPNT; - LV_MenuItem_OnSelected(obj); - break; - - // case LV_EVENT_KEY: - case LV_USER_EVENT_KEY_RELEASE: - { - uint32_t* key = (uint32_t*)lv_event_get_data(); - - /* handle key event */ - UIFlowMenuCommonItem_Key(obj, *key); - - /*********************************************************************************** - * IMPORTANT!! - * - * calling lv_indev_wait_release to avoid duplicate event in long pressed key state - * the event will not be sent again until released - * - ***********************************************************************************/ - if(*key != LV_KEY_ENTER) - lv_indev_wait_release(lv_indev_get_act()); - break; - } - - default: - break; - - } - -} diff --git a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c deleted file mode 100644 index a1244c2b4..000000000 --- a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ /dev/null @@ -1,1564 +0,0 @@ - -#include "PrjInc.h" -#include "UIFlowLVGL/UIFlowLVGL.h" -#include "UIApp/Network/UIAppNetwork.h" -#include -#include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h" -#include "UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h" -#if HUNTING_CAMERA_MCU == ENABLE -#include -#endif -// #include "sf_4g_lpa.h" - -#define OPTION_PAGE_NUM 5 -#define LONG_PRESS_INTERVAL 500 - -static unsigned long KeyPressingTimeMs = 0; - -static lv_group_t* gp = NULL; -static lv_obj_t* menu_option = NULL; -static lv_obj_t* label_menu_item = NULL; -//static lv_obj_t* label_menu_option = NULL; - -static int isSetting = 0; - -//static lv_obj_t* option_title = NULL; -//static TM_MENU *g_pOptionMenu = 0; - -UINT16 PrevOption = 0; -UINT16 s_SelOption = 100; -UINT16 OptionEN_Num = 0; -UINT16 enableIndex[30] = {}; - -static void set_indev_keypad_group(lv_obj_t* obj) -{ - if(gp == NULL){ - gp = lv_group_create(); - lv_group_add_obj(gp, obj); - } - - lv_indev_t* indev = lv_plugin_find_indev_by_type(LV_INDEV_TYPE_KEYPAD); - lv_indev_set_group(indev, gp); -} - -#if 0 -static void MenuCommonOption_SetCurrentMenu(TM_MENU *pMenu) -{ - g_pOptionMenu = pMenu; -} - -static TM_MENU *MenuCommonOption_GetCurrentMenu(void) -{ - return g_pOptionMenu; -} -#endif - -#if 0 -static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj) -{ - TM_MENU *pMenu; - TM_PAGE *pPage; - TM_ITEM *pItem; - //TM_OPTION *pOption; - UINT16 SelOption = 0; - - pMenu = MenuCommonOption_GetCurrentMenu(); - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - - SelOption = SysGetFlag(pItem->SysFlag); - if(SelOption != PrevOption){ -// SelOption = PrevOption; -// DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption); - pMenu->Status = TMS_ON_OPTION; - TM_CheckOptionStatus(pMenu, &SelOption, TRUE); - - SysSetFlag(pItem->SysFlag, SelOption); - // notify upper layer the Option had been confirmed - TM_MENU_CALLBACK(pMenu, TMM_CONFIRM_OPTION, MAKE_LONG(pItem->ItemId, SelOption)); - - //pOption = &pItem->pOptions[SysGetFlag(pItem->SysFlag)]; - - //lv_plugin_label_set_text(label_menu_option, pOption->TextId); - //lv_plugin_label_update_font(label_menu_option, LV_OBJ_PART_MAIN); - } - memset(enableIndex, 0, 30); - lv_plugin_scr_close(UIFlowMenuCommonItem, NULL); -} -#endif - -// -------------------------------------------------------------------------- -// Secondary -// -------------------------------------------------------------------------- -#define MESSAGE_ITEM_TRUE 1 -#define MESSAGE_ITEM_FALSE 0 -static int is_message_item(lv_obj_t* obj) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE* pPage; - TM_ITEM* pItem; - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - UINT16 itemID = pItem->ItemId; - switch (itemID) { - case IDM_NETWORK_SELECTION: - { - printf("[is_message_item]IDM_NETWORK_SELECTION\n"); - show_Network_Selection_page(obj, menu_option); - return MESSAGE_ITEM_TRUE; - } - case IDM_QR_PICTURE: - { - printf("[is_message_item]IDM_QR_PICTURE\n"); - show_qr_picture_page(obj); - return MESSAGE_ITEM_TRUE; - } - case IDM_PASSWORD: - { - printf("[is_message_item]IDM_PASSWORD\n"); - return MESSAGE_ITEM_FALSE; - } - case IDM_CAMERA_INFO: - { - printf("[is_message_item]IDM_CAMERA_INFO\n"); - show_Camera_Info_page(obj); - return MESSAGE_ITEM_TRUE; - } - case IDM_CAMERA_NAME: - { - printf("[is_message_item]IDM_CAMERA_NAME\n"); - return MESSAGE_ITEM_FALSE; - } - - case IDM_CAMERA_MODE: - case IDM_IMAGE_SIZE: - case IDM_VIDEO_SIZE: - case IDM_VIDEA_LENGTH: - case IDM_FLASH_POWER: - break; - case IDM_SENSITIVITY: - { - printf("[is_message_item]IDM_SENSITIVITY\n"); - show_Sensitivity_page(obj); - return MESSAGE_ITEM_TRUE; - } - case IDM_DELAY: - { - printf("[is_message_item]IDM_DELAY\n"); - return MESSAGE_ITEM_FALSE; - } - case IDM_OPERATING_TIME: - break; - case IDM_FORMAT_SD: - { - printf("[is_message_item]IDM_FORMAT_SD\n"); - UIFlowMenuCommonConfirmAPI_Open(itemID); - return MESSAGE_ITEM_TRUE; - } - case IDM_DATE_AND_TIME: - break; - - case IDM_MAX_NUM_DAY: - case IDM_SETTINGS_CHECK: - case IDM_SEND_TYPE: - case IDM_CHECK_IN_PHOTO: - case IDM_GPS: - break; - - case IDM_BATTERY_TYPE: - case IDM_SD_LOOP: - break; - case IDM_CAMERA_FW_UPGRADE: - case IDM_MODULE_FW_UPGRADE: - case IDM_RESET: - UIFlowMenuCommonConfirmAPI_Open(itemID); - return MESSAGE_ITEM_TRUE; - default: - break; - } - return MESSAGE_ITEM_FALSE; -} -static void message_item_close(void) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE* pPage; - TM_ITEM* pItem; - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - UINT16 itemID = pItem->ItemId; - switch (itemID) { - case IDM_NETWORK_SELECTION: - { - printf("[message_item_close]IDM_NETWORK_SELECTION\n"); - return; - } - case IDM_QR_PICTURE: - { - printf("[message_item_close]IDM_QR_PICTURE\n"); - hidde_qr_picture_page(); - return; - } - // case IDM_NETWORK_SELECTION: - // { - // printf("[message_item_close]IDM_NETWORK_SELECTION\n"); - // return; - // } - - default: - break; - } -} -static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) -{ - TM_PAGE *pPage; - TM_ITEM *pItem; - TM_OPTION *pOption; - UINT32 i; - // UINT16 startIndex = 0; - UINT16 itemIndex = 0; - UINT16 itemIconId = 0; -#if 1 - UINT16 SelOption = 0; - UINT32 Selindex = 0; - BOOL ui_hidden = true; -#endif - - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; -#if 0 - DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); - DBG_DUMP("\r\n %s pMenu SelPage= %d\r\n", __func__, pMenu->SelPage); - DBG_DUMP("\r\n %s pMenu FirstPage= %d\r\n", __func__, pMenu->FirstPage); - DBG_DUMP("\r\n %s pMenu Count= %d\r\n", __func__, pMenu->Count); - - DBG_DUMP("\r\n %s pPage TextId= %d\r\n", __func__, pPage->TextId); - DBG_DUMP("\r\n %s pPage IconId= %d\r\n", __func__, pPage->IconId); - DBG_DUMP("\r\n %s pPage IconIdX= %d\r\n", __func__, pPage->IconIdX); - DBG_DUMP("\r\n %s pPage SelItem= %d\r\n", __func__, pPage->SelItem); - DBG_DUMP("\r\n %s pPage FirstItem= %d\r\n", __func__, pPage->FirstItem); - DBG_DUMP("\r\n %s pPage Count= %d\r\n", __func__, pPage->Count); - - - DBG_DUMP("\r\n %s pItem Count= %d\r\n", __func__, pItem->Count); - DBG_DUMP("\r\n %s pItem TextId= %d\r\n", __func__, pItem->TextId); - DBG_DUMP("\r\n %s pItem IconId= %d\r\n", __func__, pItem->IconId); - DBG_DUMP("\r\n %s pItem SysFlag= %d\r\n", __func__, pItem->SysFlag); -#endif -#if 0 -// lv_plugin_menu_select_item(menu_item, i); - TM_FindStartIndex(pMenu, pItem->Count, &startIndex); - //DBG_DUMP("%s startIndex=%d\r\n", __func__,startIndex); - - //draw item form startIndex - itemIndex = startIndex; - TM_CheckOptionStatus(pMenu, &itemIndex, TRUE); - - for (i = 0; i < OPTION_PAGE_NUM; i++) - { - pOption = &pItem->pOptions[itemIndex]; -// pOption = &pItem->pOptions - //tab option status to menu status - if((pOption->Status & TM_OPTION_STATUS_MASK) == TM_OPTION_ENABLE) - { - CHKPNT; - lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); -// if(PrevOption == pPage) - //lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); - lv_plugin_menu_set_item_hidden(menu_option, i, false); - } - else - { - CHKPNT; - lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); - //lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); - lv_plugin_menu_set_item_hidden(menu_option, i, true); - } - itemIndex++; - } - - -//return; -#else - SelOption = SysGetFlag(pItem->SysFlag); - -#if 1 - if (pItem->Count) { -// DBG_DUMP("%s IconId =%d\r\n", __func__,pItem->IconId); -// DBG_DUMP("%s TextId =%d\r\n", __func__,pItem->TextId); - -// lv_plugin_img_set_src(image_option_title_scr_uiflowmenucommonoption, LV_PLUGIN_IMG_ID_SF_IMAGE_SIZE); - lv_plugin_img_set_src(image_option_title_scr_uiflowmenucommonoption, pItem->IconId); - lv_plugin_label_set_text(label_menu_item_scr_uiflowmenucommonoption, pItem->TextId); - lv_plugin_label_update_font(label_menu_item_scr_uiflowmenucommonoption, LV_OBJ_PART_MAIN); - } - if(MESSAGE_ITEM_FALSE == is_message_item(lv_plugin_scr_act())) - { - printf("[LV_MenuCommonOption_UpdateContent]MESSAGE_ITEM_FALSE\n"); - lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, false); - // LV_MenuCommonOption_UpdateContent(pMenu); - } - else - { - printf("[LV_MenuCommonOption_UpdateContent]MESSAGE_ITEM_TRUE\n"); - lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); - return; - } -#endif - - - - // //find startIndex - // TM_FindStartIndex(pMenu, pItem->Count, &startIndex); - // DBG_DUMP("%s startIndex=%d\r\n", __func__,startIndex); - - // //draw item form startIndex - // itemIndex = startIndex; - - itemIndex = 0; -#if 1 - for (i = 0; i < pItem->Count; i++) { - DBG_DUMP("%s enableIndex=%d :%d\r\n", __func__,i,enableIndex[i]); - //check option if disable - TM_CheckOptionStatus(pMenu, &itemIndex, TRUE); - if(itemIndex > pItem->Count){ - break; - } - enableIndex[i] = itemIndex; - OptionEN_Num = i; - if(enableIndex[i] == SelOption){ - Selindex = i; - } - itemIndex++; - } - printf("Selindex:%d OptionEN_Num:%d pItem->Count:%d\n",Selindex,OptionEN_Num,pItem->Count); - if(Selindex){ - if((Selindex / OPTION_PAGE_NUM) == 0){ - Selindex = 0; - }else{ - Selindex = (Selindex / OPTION_PAGE_NUM); - - } - } - for(i = 0; i < OPTION_PAGE_NUM; i++){ - pOption = &pItem->pOptions[enableIndex[i + (Selindex * OPTION_PAGE_NUM)]]; - if (((enableIndex[i + (Selindex * OPTION_PAGE_NUM)]) > (pItem->Count -1)) && (i < OPTION_PAGE_NUM)) { - printf("\033[33m[LV_MenuCommonOption_UpdateContent] 1 \033[0m\n"); - lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); - lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED, pOption->IconId); - lv_plugin_menu_set_item_hidden(menu_option, i, true); - ui_hidden = true; - - }else if((i + (Selindex * OPTION_PAGE_NUM)) > OptionEN_Num){ - printf("\033[33m[LV_MenuCommonOption_UpdateContent] 2 \033[0m\n"); - lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); - lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED, pOption->IconId); - lv_plugin_menu_set_item_hidden(menu_option, i, true); - ui_hidden = true; - }else{ - itemIconId = pOption->IconId; - ui_hidden = true; - printf("\033[33m[LV_MenuCommonOption_UpdateContent] 3 \033[0m\n"); - lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); - - printf("s_SelOption: %d\n", s_SelOption); - //first init page add select icon - if (s_SelOption == 100){ - if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) - { - s_SelOption = i + (Selindex * OPTION_PAGE_NUM); - switch (pItem->ItemId) { - case IDM_DELAY:{} - case IDM_OPERATING_TIME:{} - case IDM_DATE_AND_TIME:{} - case IDM_MAX_NUM_DAY:{} - case IDM_PASSWORD:{} - case IDM_CAMERA_NAME: - { - if (i == 1) - { - printf("first init black > √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - } - else{ - printf("first init √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); - } - break; - } - case IDM_SEND_TYPE:{ - if(i == 1) - { - printf("first init IDM_SEND_TYPE black > √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - } - else if (i == 2) - { - printf("first init IDM_SEND_TYPE black > √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 259, 0); - } - else if (i == 3) - { - printf("first init IDM_SEND_TYPE black > √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 259, 0); - } - break; - } - default: - { - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - if(i == 1) - { - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); - } - else if (i == 2) - { - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 272, 0); - } - else if (i == 3) - { - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 272, 0); - } - - - } - } - ui_hidden = false; - } - else if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption && i == 1) - { - printf("first init white >\n"); - switch (pItem->ItemId) { - case IDM_DELAY:{} - case IDM_OPERATING_TIME:{} - case IDM_DATE_AND_TIME:{} - case IDM_MAX_NUM_DAY:{} - case IDM_PASSWORD:{} - case IDM_SEND_TYPE:{} - case IDM_CAMERA_NAME: - { - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - ui_hidden = false; - break; - } - } - - } - else if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption && i > 1) - { - if(pItem->ItemId == IDM_SEND_TYPE) - { - printf("first init IDM_SEND_TYPE white >\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > - if (i == 2) - { - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 288, 0); - } - else if (i == 3) - { - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 288, 0); - } - ui_hidden = false; - } - } - } - else{ - if (pItem->ItemId == IDM_SEND_TYPE){ - if (i == s_SelOption) - { - switch(i) - { - case 1: - { - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - break; - } - case 2: - { - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 259, 0); - break; - } - case 3: - { - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 259, 0); - break; - } - default: - { - break; - } - } - - if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) - { - printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add black √ > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - } - else if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption) - { - printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add white √ > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT1;//white > √ - } - ui_hidden = false; - } - else{ - switch(i) - { - case 1: - { - printf("[LV_MenuCommonOption_UpdateContent]set 1 option \n"); - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - break; - } - case 2: - { - printf("[LV_MenuCommonOption_UpdateContent]set 2 option \n"); - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 288, 0); - break; - } - case 3: - { - printf("[LV_MenuCommonOption_UpdateContent]set 3 option \n"); - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 288, 0); - break; - } - default: - { - break; - } - } - if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) - { - printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add black > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT2;//black > - ui_hidden = false; - } - else if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption) - { - printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add white > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > - ui_hidden = false; - } - } - } - else if (i == 1) - { - //printf("[LV_MenuCommonOption_UpdateContent] add > icon\n"); - switch (pItem->ItemId) { - case IDM_DELAY:{} - case IDM_OPERATING_TIME:{} - case IDM_DATE_AND_TIME:{} - case IDM_MAX_NUM_DAY:{} - case IDM_PASSWORD:{} - case IDM_CAMERA_NAME: - { - if (s_SelOption == 0 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ - printf("[LV_MenuCommonOption_UpdateContent] add black > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT2;//black > - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - } - else if (s_SelOption == 0 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption){ - printf("[LV_MenuCommonOption_UpdateContent] add white > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - } - else if (s_SelOption == 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ - printf("[LV_MenuCommonOption_UpdateContent] add black √ > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - } - else{ - printf("[LV_MenuCommonOption_UpdateContent] add white √ > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT1;//white > √ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - } - ui_hidden = false; - break; - } - default: - { - printf("[LV_MenuCommonOption_UpdateContent] add √ \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); - if (s_SelOption == 1) - { - ui_hidden = false; - } - break; - } - } - - } - else if (i == s_SelOption){ - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - if (i == 2) - { - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 272, 0); - } - else if (i == 3) - { - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 272, 0); - } - ui_hidden = false; - } - } - - - lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, itemIconId); - lv_plugin_menu_set_item_hidden(menu_option, i, false); - - if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ - lv_plugin_menu_select_item(menu_option, i); - } - - } - - DBG_DUMP("%s ui_hidden %d=%d\r\n", __func__,i,ui_hidden); - if (i==0) - { - lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, ui_hidden); - } - else if (i == 1) - { - lv_obj_set_hidden(image_option2_scr_uiflowmenucommonoption, ui_hidden); - } - else if (i == 2) - { - lv_obj_set_hidden(image_option3_scr_uiflowmenucommonoption, ui_hidden); - } - else if (i == 3) - { - lv_obj_set_hidden(image_option4_scr_uiflowmenucommonoption, ui_hidden); - } - else if (i == 4) - { - lv_obj_set_hidden(image_option5_scr_uiflowmenucommonoption, ui_hidden); - } - } -#else - itemIndex = PAGE * (1 + (SelOption / PAGE)); - DBG_DUMP("%s itemIndex=%d\r\n", __func__,itemIndex); - for (i = 0; i < PAGE; i++) { -// for (i = 0; i < totleindex; i++) { - //check item if disable - TM_CheckOptionStatus(pMenu, &itemIndex, TRUE); - pOption = &pItem->pOptions[itemIndex]; - enableIndex[i] = itemIndex; -// if(itemIndex == SelOption){ -// lv_plugin_menu_select_item(menu_item, 11); -// } - if ((itemIndex > (pItem->Count -1)) && (i < PAGE)) { -// if ((itemIndex == (pItem->Count)) && (i < PAGE)) { - CHKPNT; - lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); -// lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); - lv_plugin_menu_set_item_hidden(menu_option, i, true); - - } else { - CHKPNT; - lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); -// lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); - lv_plugin_menu_set_item_hidden(menu_option, i, false); - - itemIndex++; - } - } - for(i = 0; i < totleindex; i++){ - CHKPNT; - if(enableIndex[i] == SelOption){ - CHKPNT; - lv_plugin_menu_select_item(menu_item, i); - break; - } - } -#endif -#endif -} - -static void LV_MenuOption_OnOpen(lv_obj_t* obj, TM_MENU *data) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE* pPage; - TM_ITEM* pItem; - //TM_OPTION *pOption; - UINT16 SelOption = 0; - - pPage = &pMenu->pPages[pMenu->SelPage]; - // pPage->SelItem = 0; - DBG_DUMP("%s pPage->SelItem=%d\r\n", __func__,pPage->SelItem); - //check item if disable - TM_CheckItemStatus(pMenu, &pPage->SelItem, TRUE); - pItem = &pPage->pItems[pPage->SelItem]; - if (pItem->Count > 0) { - SelOption = SysGetFlag(pItem->SysFlag); - //check option if disable - TM_CheckOptionStatus(pMenu, &SelOption, TRUE); - SysSetFlag(pItem->SysFlag, SelOption); //SelOption might change - PrevOption = SelOption; - //pOption = &pItem->pOptions[SelOption]; - - //lv_plugin_label_set_text(label_menu_option, pOption->TextId); - //lv_plugin_label_update_font(label_menu_option, LV_OBJ_PART_MAIN); - } - - /* check menu item is init */ - if(!lv_plugin_menu_item_cnt(menu_option)){ - /* allocate menu item */ - lv_plugin_menu_init_items(menu_option, OPTION_PAGE_NUM); - } - // if(MESSAGE_ITEM_FALSE == is_message_item(obj)) - // { - // lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, false); - // LV_MenuCommonOption_UpdateContent(pMenu); - // } - // else - // { - // lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); - // } - LV_MenuCommonOption_UpdateContent(pMenu); - - lv_plugin_menu_select_item(menu_option, SelOption); - -} - -static void LV_MenuOption_OnNext(lv_obj_t* obj) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE *pPage; - TM_ITEM *pItem; - UINT16 SelOption = 0; - - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - SelOption = SysGetFlag(pItem->SysFlag); -// DBG_DUMP("%s SysFlag=%d\r\n", __func__,pItem->SysFlag); -// DBG_DUMP("%s SelItem=%d\r\n", __func__,pPage->SelItem); -// DBG_DUMP("%s Count=%d\r\n", __func__,pItem->Count); -// DBG_DUMP("%s SelOption=%d\r\n", __func__,SelOption); - - SelOption++; - if (SelOption >= pItem->Count){ - // Close current UI Window now - //SysSetFlag(pItem->SysFlag, PrevOption); - //lv_plugin_scr_close(obj, NULL); - SelOption = 0; - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); -// lv_plugin_menu_select_item(menu_option, SelOption); - }else{ - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); -// lv_plugin_menu_select_next_item(menu_option); - } -// DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); -} - -static void LV_MenuOption_OnPrev(lv_obj_t* obj) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE *pPage; - TM_ITEM *pItem; - UINT16 SelOption = 0; - - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - SelOption = SysGetFlag(pItem->SysFlag); - - if (SelOption == 0) { - // Close current UI Window now - //SysSetFlag(pItem->SysFlag, PrevOption); - //lv_plugin_scr_close(obj, NULL); - SelOption = (pItem->Count - 1); - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); -// lv_plugin_menu_select_item(menu_option, SelOption); - } else { - SelOption--; - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); -// lv_plugin_menu_select_prev_item(menu_option); - } - -// DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); -} - -static void LV_MenuOption_OnLeft(lv_obj_t* obj) -{ - DBG_DUMP("%s\r\n", __func__); - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE *pPage; - TM_ITEM *pItem; - - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - - SysSetFlag(pItem->SysFlag, PrevOption); - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); -} -extern TM_MENU gMoreMenu; - -static void LV_MenuOption_OnSelected(lv_obj_t* obj) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE *pPage; - TM_ITEM *pItem; - TM_OPTION *pOption; - UINT16 SelOption = 0; -// TM_MENU* pCurMenu; - //#NT#2023/10/25#Eric - begin - //#NT#Support IVOT_N12144_CO-144 - TM_MENU *pCurMenu = NULL; - //#NT#2023/10/25#Eric - end - - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - if (pItem->Count != 0 && pItem->SysFlag != 0) { - //#NT#2016/09/20#Bob Huang -begin - //#NT#Support HDMI Display with 3DNR Out - //Only support FHD p30 size, cannot change size when 3DNR Out enabled -#if (_3DNROUT_FUNC == ENABLE) - if (pItem->SysFlag == FL_MOVIE_SIZE_MENU && gb3DNROut) { - Ux_SendEvent(pCtrl, NVTEVT_PRESS, 0); -// return NVTEVT_CONSUME; - } -#endif - DBG_DUMP("%s SysFlag =%d\r\n", __func__,pItem->SysFlag); - //#NT#2016/09/20#Bob Huang -end - SelOption = SysGetFlag(pItem->SysFlag); - DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption); - pMenu->Status = TMS_ON_OPTION; - PrevOption = SelOption; - - TM_CheckOptionStatus(pMenu, &SelOption, TRUE); - - SysSetFlag(pItem->SysFlag, SelOption); - - //#NT#2023/10/25#Eric - begin - //#NT#Support IVOT_N12144_CO-144 - pCurMenu = TM_GetTabMenu(pMenu->SelPage); - // notify upper layer the Option had been confirmed - TM_MENU_CALLBACK(pCurMenu, TMM_CONFIRM_OPTION, MAKE_LONG(pItem->ItemId, SelOption)); - //#NT#2023/10/25#Eric - end - - pOption = &pItem->pOptions[SysGetFlag(pItem->SysFlag)]; - - //lv_plugin_label_set_text(label_menu_option, pOption->TextId); - //lv_plugin_label_update_font(label_menu_option, LV_OBJ_PART_MAIN); - - if (pOption->TextId){ - - } - - if (pItem->ItemId == IDM_LANGUAGE) { - - } - // -------------------------------------------------------------------------- - // 3th - // -------------------------------------------------------------------------- - if((pItem->ItemId == IDM_PASSWORD || - pItem->ItemId == IDM_CAMERA_NAME || - pItem->ItemId == IDM_DELAY || - pItem->ItemId == IDM_OPERATING_TIME || - pItem->ItemId == IDM_DATE_AND_TIME || - pItem->ItemId == IDM_MAX_NUM_DAY || - pItem->ItemId == IDM_SEND_TYPE) - && (pOption->TextId == IDS_CAMERA_NAME_ON || - pOption->TextId == IDS_DATE_AND_TIME_MANUAL || - pOption->TextId == IDS_SEND_TYPE_ONCE_DAY || - pOption->TextId == IDS_SEND_TYPE_TWICE_DAY || - pOption->TextId == IDS_SEND_TYPE_4_TIMES_DAY || - pOption->TextId == IDS_MAX_NUM_DAY_NUMBER)) - { - lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); - isSetting = 1; - switch (pItem->ItemId) - { - case IDM_PASSWORD: - show_Password_page(obj); - break; - case IDM_CAMERA_NAME: - show_Camera_Name_page(obj); - break; - case IDM_DELAY: - show_Delay_page(obj); - break; - case IDM_OPERATING_TIME: - show_Operating_Time_page(obj); - break; - case IDM_DATE_AND_TIME: - show_DateTime_page(obj, DEFAULT_TIME_SET_TRUE); - break; - case IDM_MAX_NUM_DAY: - show_MaxNum_page(obj); - break; - case IDM_SEND_TYPE: - show_send_time_page(obj, SelOption); - break; - default: - break; - } - } - else - { - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - } - } else if (pItem->pOptions != 0) { // custom process - pMenu->Status = TMS_ON_CUSTOM; - TM_ITEM_CALLBACK(pItem, TMM_CONFIRM_OPTION, pItem->ItemId); // execute custom pPage flow - } - -} - -static void UIFlowMenuCommonOption_ScrClose(lv_obj_t* obj) -{ - DBG_DUMP("%s\r\n", __func__); - message_item_close(); - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - printf("camera mode = %d\n", puiPara->CamMode); -} - -static void UIFlowMenuCommonOption_ChildScrClose(lv_obj_t* obj) -{ - DBG_DUMP("%s\r\n", __func__); - - set_indev_keypad_group(obj); - - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE* pPage; - TM_ITEM* pItem; - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - UINT16 itemID = pItem->ItemId; - - if(itemID == IDM_FORMAT_SD || - itemID == IDM_CAMERA_FW_UPGRADE || - itemID == IDM_MODULE_FW_UPGRADE || - itemID == IDM_RESET) - { - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - } -} - -static void UIFlowMenuCommonOption_ScrOpen(lv_obj_t* obj, const void *data) -{ - - DBG_DUMP("%s\r\n", __func__); - - /*********************************************************************************** - * Add Menu Screen into group and set group to keypad indev - ***********************************************************************************/ -// if(gp == NULL){ -// gp = lv_group_create(); -// lv_group_add_obj(gp, obj); -// } -// -// lv_indev_t* indev = lv_plugin_find_indev_by_type(LV_INDEV_TYPE_KEYPAD); -// lv_indev_set_group(indev, gp); -// lv_group_focus_obj(obj); - - set_indev_keypad_group(obj); - - - /*********************************************************************************** - * create a plugin menu, the menu should contains below widgets : - * - * container (parent) - * - * btn or imgbtn (item1) - * label + img (item1's label and img) - * - * btn or imgbtn (item2) - * label + img (item2's label and img) - * - * .... - * - * those widgets styles and number of buttons are configured in the builder, - * btn's label or img is not mandatory - * - **********************************************************************************/ - if(menu_option == NULL){ - menu_option = lv_plugin_menu_create(obj, container_main_menu_scr_uiflowmenucommonoption); - lv_plugin_menu_set_wrap(menu_option, true); - } - - if(label_menu_item == NULL) - label_menu_item = label_menu_item_scr_uiflowmenucommonoption; - -// if(option_title == NULL){ -// option_title = lv_plugin_menu_create(obj, container_option_title_scr_uiflowmenucommonoption); -// lv_plugin_menu_set_wrap(option_title, true); -// } - - LV_MenuOption_OnOpen(obj, (TM_MENU *)data); - -} - -static void UIFlowMenuCommonOption_Key(lv_obj_t* obj, uint32_t key) -{ - #if HUNTING_CAMERA_MCU == ENABLE - sf_set_auto_off_time(0); - #endif - - printf("[UIFlowMenuCommonOption_Key]key:%d\n"); - switch(key) - { - - case LV_USER_KEY_NEXT: - case LV_USER_KEY_DOWN: - { - LV_MenuOption_OnNext(obj); - break; - } - - case LV_USER_KEY_PREV: - case LV_USER_KEY_UP: - { - LV_MenuOption_OnPrev(obj); - break; - } - - case LV_KEY_LEFT: - { - //back to menu item, and no choose anyone - LV_MenuOption_OnLeft(obj); - break; - } - - case LV_KEY_RIGHT: - { - LV_MenuOption_OnSelected(obj); - break; - } - - case LV_KEY_ENTER: - { - LV_MenuOption_OnSelected(obj); - break; - } -#if HUNTING_CAMERA_MCU == ENABLE - case LV_USER_KEY_DATAREADY: - { - printf("[dataready] %s(%d)\n", __FUNCTION__, __LINE__); - sf_mcu_dataready_get(); - break; - } -#endif - - } - -} -static void CommondOptionCloseSencondPage(lv_obj_t* obj, uint32_t* key) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE* pPage; - TM_ITEM* pItem; - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - UINT16 itemID = pItem->ItemId; - printf("\033[33m[CommondOptionCloseSencondPage]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); - /* handle key event */ - switch(itemID) - { - case IDM_NETWORK_SELECTION: - // Option_Network_Selection_Key(obj, *key); - break; - case IDM_QR_PICTURE: - // UIFlowMenuCommonOption_Key(obj, *key); - break; - case IDM_PASSWORD: - if(isSetting) - { - Option_Password_Key(obj, *key); - } - else - { - // UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_CAMERA_INFO: - // Option_CAMERA_INFO_Key(obj, *key); - break; - case IDM_CAMERA_NAME: - if(isSetting) - { - Option_Camera_Name_Key(obj, *key); - } - else - { - // UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_CAMERA_MODE: - case IDM_IMAGE_SIZE: - case IDM_VIDEO_SIZE: - case IDM_VIDEA_LENGTH: - case IDM_FLASH_POWER: - // UIFlowMenuCommonOption_Key(obj, *key); - break; - case IDM_SENSITIVITY: - // Option_Sensitivity_Key(obj, *key); - break; - case IDM_DELAY: - if(isSetting) - { - Option_Delay_Key(obj, *key); - } - else - { - // UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_OPERATING_TIME: - if(isSetting) - { - Option_Operating_Time_Key(obj, *key); - } - else - { - // UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_FORMAT_SD: - case IDM_DATE_AND_TIME: - if(isSetting) - { - Option_DateTime_Key(obj, *key); - } - else - { - // UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_MAX_NUM_DAY: - if(isSetting) - { - Option_MaxNum_Key(obj, *key); - } - else - { - // UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_SETTINGS_CHECK: - // UIFlowMenuCommonOption_Key(obj, *key); - break; - case IDM_SEND_TYPE: - if(isSetting) - { - Option_send_time_Key(obj, *key); - } - else - { - // UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_CHECK_IN_PHOTO: - case IDM_GPS: - // UIFlowMenuCommonOption_Key(obj, *key); - break; - case IDM_BATTERY_TYPE: - case IDM_SD_LOOP: - case IDM_CAMERA_FW_UPGRADE: - case IDM_MODULE_FW_UPGRADE: - case IDM_RESET: - // UIFlowMenuCommonOption_Key(obj, *key); - break; - default: - break; - } - isSetting = 0; -} -static void CommondOptionKeyCallback(lv_obj_t* obj, uint32_t* key) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE* pPage; - TM_ITEM* pItem; - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - UINT16 itemID = pItem->ItemId; - printf("\033[33m[CommondOptionKeyCallback]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); - /* handle key event */ - switch(*key) - { - case LV_USER_KEY_NEXT: - case LV_USER_KEY_DOWN: - { - printf("[CommondOptionKeyCallback]>>>DOWN\n"); - break; - } - - case LV_USER_KEY_PREV: - case LV_USER_KEY_UP: - { - printf("[CommondOptionKeyCallback]>>>UP\n"); - break; - } - - case LV_KEY_LEFT: - { - printf("[CommondOptionKeyCallback]>>>LEFT\n"); - break; - } - - case LV_KEY_RIGHT: - { - printf("[CommondOptionKeyCallback]>>>RIGHT\n"); - break; - } - case LV_KEY_ENTER: - { - printf("[CommondOptionKeyCallback]>>>ENTER\n"); - break; - } - } - - switch(itemID) - { - case IDM_NETWORK_SELECTION: - Option_Network_Selection_Key(obj, *key); - break; - case IDM_QR_PICTURE: - UIFlowMenuCommonOption_Key(obj, *key); - break; - case IDM_PASSWORD: - if(isSetting) - { - Option_Password_Key(obj, *key); - } - else - { - UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_CAMERA_INFO: - Option_CAMERA_INFO_Key(obj, *key); - break; - case IDM_CAMERA_NAME: - if(isSetting) - { - Option_Camera_Name_Key(obj, *key); - } - else - { - UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_CAMERA_MODE: - case IDM_IMAGE_SIZE: - case IDM_VIDEO_SIZE: - case IDM_VIDEA_LENGTH: - case IDM_FLASH_POWER: - UIFlowMenuCommonOption_Key(obj, *key); - break; - case IDM_SENSITIVITY: - Option_Sensitivity_Key(obj, *key); - break; - case IDM_DELAY: - if(isSetting) - { - Option_Delay_Key(obj, *key); - } - else - { - UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_OPERATING_TIME: - if(isSetting) - { - Option_Operating_Time_Key(obj, *key); - } - else - { - UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_FORMAT_SD: - case IDM_DATE_AND_TIME: - if(isSetting) - { - Option_DateTime_Key(obj, *key); - } - else - { - UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_MAX_NUM_DAY: - if(isSetting) - { - Option_MaxNum_Key(obj, *key); - } - else - { - UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_SETTINGS_CHECK: - UIFlowMenuCommonOption_Key(obj, *key); - break; - case IDM_SEND_TYPE: - if(isSetting) - { - Option_send_time_Key(obj, *key); - } - else - { - UIFlowMenuCommonOption_Key(obj, *key); - } - break; - case IDM_CHECK_IN_PHOTO: - case IDM_GPS: - UIFlowMenuCommonOption_Key(obj, *key); - break; - case IDM_BATTERY_TYPE: - case IDM_SD_LOOP: - case IDM_CAMERA_FW_UPGRADE: - case IDM_MODULE_FW_UPGRADE: - case IDM_RESET: - UIFlowMenuCommonOption_Key(obj, *key); - break; - default: - break; - } -} -void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event) -{ - TM_MENU* pMenu = TM_GetMenu(); - TM_PAGE* pPage; - TM_ITEM* pItem; - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - UINT16 itemID = pItem->ItemId; - - switch(event) - { - case LV_PLUGIN_EVENT_SCR_OPEN: - { - printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_PLUGIN_EVENT_SCR_OPEN\033[0m\n"); - isSetting = 0; - UIFlowMenuCommonOption_ScrOpen(obj, lv_event_get_data()); - break; - } - - case LV_PLUGIN_EVENT_SCR_CLOSE: - { - printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_PLUGIN_EVENT_SCR_CLOSE\033[0m\n"); - uint32_t key = LV_KEY_ENTER; - CommondOptionCloseSencondPage(obj, &key); - isSetting = 0; - s_SelOption = 100; - UIFlowMenuCommonOption_ScrClose(obj); - break; - } - - case LV_PLUGIN_EVENT_CHILD_SCR_CLOSE: - { - printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_PLUGIN_EVENT_CHILD_SCR_CLOSE\033[0m\n"); - UIFlowMenuCommonOption_ChildScrClose(obj); - break; - } - - case LV_EVENT_PRESSED: - printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_EVENT_PRESSED\033[0m\n"); - lv_plugin_menu_set_selected_item_pressed(menu_option); - break; - - case LV_EVENT_RELEASED: - printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_EVENT_RELEASED\033[0m\n"); - lv_plugin_menu_set_selected_item_released(menu_option); - break; - - // case LV_EVENT_CLICKED: - // printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_EVENT_CLICKED\033[0m\n"); - // LV_MenuOption_OnSelected(obj); - // break; - - case LV_USER_EVENT_KEY_LONG_PRESS: - { - uint32_t* key = (uint32_t*)lv_event_get_data(); - // printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_USER_EVENT_KEY_LONG_PRESS key:%d\033[0m\n", *key); - - switch(itemID) - { - case IDM_PASSWORD: - KeyPressingTimeMs += LONG_PRESS_INTERVAL; - if(KeyPressingTimeMs > 1 * 1000) - Option_Password_Key_Long_Press(obj, *key); - break; - case IDM_CAMERA_INFO: - KeyPressingTimeMs += LONG_PRESS_INTERVAL; - if(KeyPressingTimeMs == 10 * 1000) - Option_CAMERA_INFO_Key_Long_Press(obj, *key); - break; - case IDM_CAMERA_NAME: - KeyPressingTimeMs += LONG_PRESS_INTERVAL; - if(KeyPressingTimeMs > 1 * 1000) - Option_Camera_Name_Key_Long_Press(obj, *key); - break; - case IDM_DELAY: - KeyPressingTimeMs += LONG_PRESS_INTERVAL; - if(KeyPressingTimeMs > 1 * 1000) - Option_Delay_Key_Long_Press(obj, *key); - break; - case IDM_OPERATING_TIME: - KeyPressingTimeMs += LONG_PRESS_INTERVAL; - if(KeyPressingTimeMs > 1 * 1000) - Option_Operating_Time_Key_Long_Press(obj, *key); - break; - case IDM_DATE_AND_TIME: - KeyPressingTimeMs += LONG_PRESS_INTERVAL; - if(KeyPressingTimeMs > 1 * 1000) - Option_DateTime_Key_Long_Press(obj, *key); - break; - default: - break; - } - break; - } - - // case LV_EVENT_KEY: - case LV_USER_EVENT_KEY_RELEASE: - { - uint32_t* key = (uint32_t*)lv_event_get_data(); - CommondOptionKeyCallback(obj, key); - // printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); - // /* handle key event */ - // switch(itemID) - // { - // case IDM_NETWORK_SELECTION: - // Option_Network_Selection_Key(obj, *key); - // break; - // case IDM_QR_PICTURE: - // UIFlowMenuCommonOption_Key(obj, *key); - // break; - // case IDM_PASSWORD: - // if(isSetting) - // { - // Option_Password_Key(obj, *key); - // } - // else - // { - // UIFlowMenuCommonOption_Key(obj, *key); - // } - // break; - // case IDM_CAMERA_INFO: - // Option_CAMERA_INFO_Key(obj, *key); - // break; - // case IDM_CAMERA_NAME: - // if(isSetting) - // { - // Option_Camera_Name_Key(obj, *key); - // } - // else - // { - // UIFlowMenuCommonOption_Key(obj, *key); - // } - // break; - - // case IDM_CAMERA_MODE: - // case IDM_IMAGE_SIZE: - // case IDM_VIDEO_SIZE: - // case IDM_VIDEA_LENGTH: - // case IDM_FLASH_POWER: - // UIFlowMenuCommonOption_Key(obj, *key); - // break; - // case IDM_SENSITIVITY: - // Option_Sensitivity_Key(obj, *key); - // break; - // case IDM_DELAY: - // if(isSetting) - // { - // Option_Delay_Key(obj, *key); - // } - // else - // { - // UIFlowMenuCommonOption_Key(obj, *key); - // } - // break; - // case IDM_OPERATING_TIME: - // if(isSetting) - // { - // Option_Operating_Time_Key(obj, *key); - // } - // else - // { - // UIFlowMenuCommonOption_Key(obj, *key); - // } - // break; - // case IDM_FORMAT_SD: - // case IDM_DATE_AND_TIME: - // if(isSetting) - // { - // Option_DateTime_Key(obj, *key); - // } - // else - // { - // UIFlowMenuCommonOption_Key(obj, *key); - // } - // break; - - // case IDM_MAX_NUM_DAY: - // if(isSetting) - // { - // Option_MaxNum_Key(obj, *key); - // } - // else - // { - // UIFlowMenuCommonOption_Key(obj, *key); - // } - // break; - // case IDM_SETTINGS_CHECK: - // UIFlowMenuCommonOption_Key(obj, *key); - // break; - // case IDM_SEND_TYPE: - // if(isSetting) - // { - // Option_send_time_Key(obj, *key); - // } - // else - // { - // UIFlowMenuCommonOption_Key(obj, *key); - // } - // break; - // case IDM_CHECK_IN_PHOTO: - // case IDM_GPS: - // UIFlowMenuCommonOption_Key(obj, *key); - // break; - - // case IDM_BATTERY_TYPE: - // case IDM_SD_LOOP: - // case IDM_CAMERA_FW_UPGRADE: - // case IDM_MODULE_FW_UPGRADE: - // case IDM_RESET: - // UIFlowMenuCommonOption_Key(obj, *key); - // break; - // default: - // break; - // } - - KeyPressingTimeMs = 0; - - /*********************************************************************************** - * IMPORTANT!! - * - * calling lv_indev_wait_release to avoid duplicate event in long pressed key state - * the event will not be sent again until released - * - ***********************************************************************************/ - if(*key != LV_KEY_ENTER) - lv_indev_wait_release(lv_indev_get_act()); - break; - } - - default: - break; - - } - -} diff --git a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/mkall.sh b/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/mkall.sh deleted file mode 100644 index b028d2d08..000000000 --- a/code/application/source/cardv/SrcCode/UIWnd/s530-ntk/mkall.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -#用于gitlab-ci.yml编译使用 - -make app_clean - -echo "Start compile." -export ROOT_PATH=$PWD - -cd rtos -source build/envsetup.sh -lunch rtos cfg_565_HUNTING_EVB_LINUX_4G_S550 gcc-6.5-newlib-2.4-2019.11-arm-ca9-eabihf -make all > /dev/null - -cd $ROOT_PATH -source build/envsetup.sh -lunch Linux cfg_565_HUNTING_EVB_LINUX_4G_S550 arm-ca9-linux-uclibcgnueabihf-8.4.01 -make all > /dev/null - -cd $ROOT_PATH diff --git a/loader/Project/Model/Loader565_Data/Release/LD98565A.bin b/loader/Project/Model/Loader565_Data/Release/LD98565A.bin index 996880349..30d3e9869 100755 Binary files a/loader/Project/Model/Loader565_Data/Release/LD98565A.bin and b/loader/Project/Model/Loader565_Data/Release/LD98565A.bin differ diff --git a/loader/Project/Model/Loader565_Data/Release/Loader565.axf b/loader/Project/Model/Loader565_Data/Release/Loader565.axf index 5ce3f205d..d21d95bd5 100755 Binary files a/loader/Project/Model/Loader565_Data/Release/Loader565.axf and b/loader/Project/Model/Loader565_Data/Release/Loader565.axf differ diff --git a/loader/Project/Model/Loader565_Data/Release/Loader565.sym b/loader/Project/Model/Loader565_Data/Release/Loader565.sym index 2111672ba..30aec962a 100644 --- a/loader/Project/Model/Loader565_Data/Release/Loader565.sym +++ b/loader/Project/Model/Loader565_Data/Release/Loader565.sym @@ -6,237 +6,240 @@ 01000000 T _loader_exec_compres_start 01000000 t prj_isFastbootKeyPressed 01000010 t prj_checkCardExist -01000024 t prj_isSpecialKeyPressed -010000ec T debug_disable_msg -010000f8 T prj_main -010001f8 T gpio_getPin -01000220 T Dec2HexStr -01000258 T Dec2HexStr2Bytes -010002b8 T utl_memset -01000312 T utl_memcpy -01000388 T strlen -0100039c T strnlen -010003b6 T strncpy -010003d2 T strncmp -010003f6 T strchr -01000412 T memcmp -01000432 T strcmp -0100044c T memchr -010004e0 t bl_decompress_rtos -01000508 t bl_get_partition_fdt_offset.part.1 -01000564 t bl_load_rtos_from_non_nvtpack.isra.4.constprop.14 -01000650 t bl_get_fdt_nvt_memory_cfg_property.constprop.16 -010006bc t bl_get_fdt_cfg -01000818 t bl_update_loader_flag -010008d8 t bl_entry_boot -0100096c t bl_boot_teeos -010009b4 t bl_get_fdt_partition_property -01000a04 t bl_get_partition -01000b00 t bl_load_uboot_from_flash -01000cb4 T bl_flash_open -01000d3c T bl_chk_valid_all_in_one -01000d60 T bl_chk_fdt -01000e34 T bl_chk_uboot -01000e5c t bl_load_uboot_from_all_in_one -01000f80 T bl_copy_fdt_to_fdt_addr -01000fc8 t bl_load_fdt_from_flash.constprop.10 -01001068 T bl_boot_uboot -0100115c T bl_process_all_in_one -0100140c T bl_read_rtos_addr -0100142c T bl_mainFlow -01001f4c T loader_setUpdateFwName -01001f60 T loader_setUpdateLdrName -01001f74 T loader_setRunFwName -01001f88 T loader_setVersion -01001f98 T loader_installSpecialKeyCB -01001fa8 T loader_installCardDetectCB -01001fb8 T loader_installFastbootKeyCB -01001fc8 T loader_setStorageIntType -01001fdc t nvtpack_get_uitron_offset -01002050 T nvtpack_calc_nvt_sum -01002074 T nvtpack_getver -010020fc T nvtpack_verify -010021ec T nvtpack_get_partition -010022cc t cpu_l2_cache_wait_sync_done -010022e0 T cpu_invalidateDCacheBlock -01002334 T cpu_cleanDCacheBlock -01002378 T cpu_cleanInvalidateDCache -01002398 T CPUflushReadCache -010023d6 T CPUflushWriteCache -01002400 T fdt_check_header -01002450 T fdt_offset_ptr -01002480 T fdt_next_tag -0100252c T _fdt_check_node_offset -01002554 T _fdt_check_prop_offset -0100257c T fdt_next_node -010025f0 T fdt_first_subnode -0100261e T fdt_next_subnode -01002654 t _fdt_offset_ptr -01002670 t _fdt_mem_rsv -0100268c t _nextprop -010026c4 T fdt_string -010026d2 T fdt_num_mem_rsv -010026f8 T fdt_subnode_offset_namelen -01002780 T fdt_subnode_offset -0100279e T fdt_get_name -010027e0 T fdt_first_property_offset -010027f8 T fdt_next_property_offset -01002810 T fdt_get_property_by_offset -01002840 T fdt_get_property_namelen -010028b4 T fdt_get_property -010028e0 T fdt_getprop_namelen -010028f8 T fdt_getprop_by_offset -01002920 T fdt_getprop -0100294c T fdt_get_alias_namelen -0100297c T fdt_path_offset -01002a0c T fdt_check_full -01002ad8 t SMHostSendCommand -01002af4 t flash_close -01002b2c t flash_getBlockSize -01002b36 t flash_setReservedAreaMaxBlockNumber -01002b3c t flash_getTotalSize -01002b4c t flash_installAccessCB -01002b5c t flash_installIdentifyCB -01002b6c t flash_setConfig -01002b88 t flash_setFrequency -01002c08 t SMHostGetStatus.constprop.3 -01002c24 t spiflash_getStatus -01002c68 t spiflash_waitReady -01002cac t spi_nor_send_cmd -01002cd8 t spiflash_enableWriteLatch -01002ce4 t sm_card_host_setup_address_cycle.constprop.5 -01002cfc t spiFlash_eraseSector -01002d60 t spiflash_setStatus -01002da4 t flash_setReservedBadBlockNumber -01002dac t flash_open -01003104 t flash_readSectors -010033d4 t spiFlash_write -0100360c t flash_writePartition -01003634 t flash_writeSectors -01003648 T nor_get_storage_object -0100365c t SDHostGetStatus -01003684 t SDHostDataCommand -0100372c t SDHostSimpleCommand -010037ac t CardReadSector -0100386c T card_open -01003ad0 T card_close -01003af0 T card_get_type -01003af8 T dma_get_dram_capacity -01003b20 T quary_secure_boot -01003b5c t fat_getclusterstatus -01003c80 t fat_getnextcluster -01003db8 t fat_getmaxclusternumber -01003de4 t fat_getnextdir_entry -01003e1c t fat_getfirstdir_entry -01003e44 t fat_getdir_sectornumber -01003e74 T fat_regfilesystem -01003e98 T fat_internal_mount_partition -01004200 T fat_internal_initFAT -0100429c T fat_internal_open_rootfile -01004540 T fat_internal_read_rootfile -010045dc T fat_internal_close_rootfile -010045fc T fat_initFAT -01004614 T fat_open_rootfile -0100462c T fat_read_rootfile -01004644 T fat_close_rootfile -01004658 T atoi -01004684 T __aeabi_uidiv -01004684 T __udivsi3 -01004684 t .udivsi3_skip_div0_test -01004870 T __aeabi_uidivmod -01004890 T __aeabi_idiv -01004890 T __divsi3 -01004898 t .divsi3_skip_div0_test -01004ab0 T __aeabi_idivmod -01004ad0 W __aeabi_idiv0 -01004ad0 W __aeabi_ldiv0 -01004ad4 T __aeabi_uldivmod -01004b10 T __popcountsi2 -01004b58 T __udivmoddi4 -01004c80 t __debug_err_var_veneer -01004c88 t __rom_efuse_read_from_thumb -01004c90 t __fLib_PutSerialChar_veneer -01004c98 t __utl_get_bootsrc_veneer -01004ca0 t __CPUInvalidateICacheAll_veneer -01004ca8 t __debug_err_veneer -01004cb0 t __debug_msg_var_from_arm -01004cb8 t __rom_LZ_Uncompress_from_thumb -01004cc0 t __UTL_getDrvTmpBufferAddress_from_thumb -01004cc8 t __set_usb_suspend_veneer -01004cd0 t __fLib_PutSerialStr_veneer -01004cd8 t __UTL_setDrvTmpBufferAddress_from_thumb -01004ce0 t __utl_is_sram_fw_from_thumb -01004ce8 t __cpu_cleanInvalidateDCacheAll_veneer -01004cf0 t __timer_delay_veneer -01004cf8 t __debug_msg_veneer -01004d00 T _loader_exec_compres_end -01005834 r GUID_FW2 -01005844 r GUID_FW -01005854 r GUID_RES -01005ae0 T load_dram_scan -01005ae0 T _loader_dram_text_start_base -01005b40 t __debug_msg_veneer -01005b48 D _image_general_var_base -01005b48 D _loader_data_start_base -01005b48 D _load_general_var_base -01005b48 d ota_sts.4474 -01005b4c d nodeoffset.5194 -01005b50 d nodeoffset_nvt_memory_cfg.5117 -01005b54 d RWErrorMsg -01005b64 d g_uiStartBlkUpdateFW -01005b68 d UPDATE_LOADER_NAME -01005b75 d UPDATE_FW_NAME -01005b82 d RUN_FW_NAME -01005b8f d LoaderErrorMsg -01005ba5 d FWErrorMsg -01005bb7 d RECOVERY_FW_NAME -01005bc4 d guiSpiClkDiv -01005bc8 D spi_nor -01005c00 d uiBufAddr -01005c04 D _image_general_var_limit -01005c40 B gStr -01005c40 B _image_general_zi_zi_base -01005c50 b gStorageIntType -01005c54 b g_dram_partition -01005cd4 b g_uiVersion -01005cd8 B int_strg_obj -01005ce0 b g_emb_uboot -01005d00 B rom_lzma_inflate -01005d04 b g_is_flash_open -01005d08 b g_emb_teeos -01005d28 b g_rtos_load_addr -01005d2c b g_rtos_target_addr -01005d30 b g_rtos_size -01005d38 b g_emb_rtos -01005d58 b g_emb_sys -01005d78 b gRecoveryTriggerCallBack -01005d7c b gSpecialKeyCallBack -01005d80 b gCardDetectCallBack -01005d84 b gFastbootKeyCallBack -01005d88 B BaseOfStack -01005d8c B TopOfStack -01005d90 B lzma_temp_buffer -01015d90 b uiSpiFlashSize -01015d94 b gSpiProgramCallBack -01015d98 b gSpiIdentifyCallBack -01015d9c b bQuadConfigured -01015da0 b uiQuadReadType -01015da4 b bSupportEWSR -01015da5 b bDualRead -01015da8 b b_support_RDCR -01015dac b bQuadEnabled -01015db0 b SDContext -01015dc0 b FileSys -01015f80 b vBitMapBuf -01016780 b ui32FATPages -01016784 b RootFileHandle -010167c0 b TempBuf -010169c0 b uiBufSize -010169c4 b dbg_count -010169c8 b gFatAccessCallBack -01016a00 b vFatBuf -01036a00 B emuCommonBuf -01036a14 B currentPtr +01000024 t prj_issfSpecialKeyPressed +01000050 t prj_isSpecialKeyPressed +01000118 T debug_disable_msg +01000124 T prj_main +01000230 T gpio_getPin +01000258 T Dec2HexStr +01000290 T Dec2HexStr2Bytes +010002f0 T utl_memset +0100034a T utl_memcpy +010003c0 T strlen +010003d4 T strnlen +010003ee T strncpy +0100040a T strncmp +0100042e T strchr +0100044a T memcmp +0100046a T strcmp +01000484 T memchr +01000518 t bl_decompress_rtos +01000540 t bl_get_partition_fdt_offset.part.1 +0100059c t bl_load_rtos_from_non_nvtpack.isra.4.constprop.14 +01000688 t bl_get_fdt_nvt_memory_cfg_property.constprop.16 +010006f4 t bl_get_fdt_cfg +01000850 t bl_update_loader_flag +01000910 t bl_entry_boot +010009a4 t bl_boot_teeos +010009ec t bl_get_fdt_partition_property +01000a3c t bl_get_partition +01000b38 t bl_load_uboot_from_flash +01000cec T bl_flash_open +01000d74 T bl_chk_valid_all_in_one +01000d98 T bl_chk_fdt +01000e6c T bl_chk_uboot +01000e94 t bl_load_uboot_from_all_in_one +01000fb8 T bl_copy_fdt_to_fdt_addr +01001000 t bl_load_fdt_from_flash.constprop.10 +010010a0 T bl_boot_uboot +01001194 T bl_process_all_in_one +01001444 T bl_read_rtos_addr +01001464 T bl_mainFlow +01001f9c T loader_setUpdateFwName +01001fb0 T loader_setUpdateLdrName +01001fc4 T loader_setRunFwName +01001fd8 T loader_setVersion +01001fe8 T loader_installSpecialKeyCB +01001ff8 T loader_installsfSpecialKeyCB +01002008 T loader_installCardDetectCB +01002018 T loader_installFastbootKeyCB +01002028 T loader_setStorageIntType +0100203c t nvtpack_get_uitron_offset +010020b0 T nvtpack_calc_nvt_sum +010020d4 T nvtpack_getver +0100215c T nvtpack_verify +0100224c T nvtpack_get_partition +0100232c t cpu_l2_cache_wait_sync_done +01002340 T cpu_invalidateDCacheBlock +01002394 T cpu_cleanDCacheBlock +010023d8 T cpu_cleanInvalidateDCache +010023f8 T CPUflushReadCache +01002436 T CPUflushWriteCache +01002460 T fdt_check_header +010024b0 T fdt_offset_ptr +010024e0 T fdt_next_tag +0100258c T _fdt_check_node_offset +010025b4 T _fdt_check_prop_offset +010025dc T fdt_next_node +01002650 T fdt_first_subnode +0100267e T fdt_next_subnode +010026b4 t _fdt_offset_ptr +010026d0 t _fdt_mem_rsv +010026ec t _nextprop +01002724 T fdt_string +01002732 T fdt_num_mem_rsv +01002758 T fdt_subnode_offset_namelen +010027e0 T fdt_subnode_offset +010027fe T fdt_get_name +01002840 T fdt_first_property_offset +01002858 T fdt_next_property_offset +01002870 T fdt_get_property_by_offset +010028a0 T fdt_get_property_namelen +01002914 T fdt_get_property +01002940 T fdt_getprop_namelen +01002958 T fdt_getprop_by_offset +01002980 T fdt_getprop +010029ac T fdt_get_alias_namelen +010029dc T fdt_path_offset +01002a6c T fdt_check_full +01002b38 t SMHostSendCommand +01002b54 t flash_close +01002b8c t flash_getBlockSize +01002b96 t flash_setReservedAreaMaxBlockNumber +01002b9c t flash_getTotalSize +01002bac t flash_installAccessCB +01002bbc t flash_installIdentifyCB +01002bcc t flash_setConfig +01002be8 t flash_setFrequency +01002c68 t SMHostGetStatus.constprop.3 +01002c84 t spiflash_getStatus +01002cc8 t spiflash_waitReady +01002d0c t spi_nor_send_cmd +01002d38 t spiflash_enableWriteLatch +01002d44 t sm_card_host_setup_address_cycle.constprop.5 +01002d5c t spiFlash_eraseSector +01002dc0 t spiflash_setStatus +01002e04 t flash_setReservedBadBlockNumber +01002e0c t flash_open +01003164 t flash_readSectors +01003434 t spiFlash_write +0100366c t flash_writePartition +01003694 t flash_writeSectors +010036a8 T nor_get_storage_object +010036bc t SDHostGetStatus +010036e4 t SDHostDataCommand +0100378c t SDHostSimpleCommand +0100380c t CardReadSector +010038cc T card_open +01003b30 T card_close +01003b50 T card_get_type +01003b58 T dma_get_dram_capacity +01003b80 T quary_secure_boot +01003bbc t fat_getclusterstatus +01003ce0 t fat_getnextcluster +01003e18 t fat_getmaxclusternumber +01003e44 t fat_getnextdir_entry +01003e7c t fat_getfirstdir_entry +01003ea4 t fat_getdir_sectornumber +01003ed4 T fat_regfilesystem +01003ef8 T fat_internal_mount_partition +01004260 T fat_internal_initFAT +010042fc T fat_internal_open_rootfile +010045a0 T fat_internal_read_rootfile +0100463c T fat_internal_close_rootfile +0100465c T fat_initFAT +01004674 T fat_open_rootfile +0100468c T fat_read_rootfile +010046a4 T fat_close_rootfile +010046b8 T atoi +010046e4 T __aeabi_uidiv +010046e4 T __udivsi3 +010046e4 t .udivsi3_skip_div0_test +010048d0 T __aeabi_uidivmod +010048f0 T __aeabi_idiv +010048f0 T __divsi3 +010048f8 t .divsi3_skip_div0_test +01004b10 T __aeabi_idivmod +01004b30 W __aeabi_idiv0 +01004b30 W __aeabi_ldiv0 +01004b34 T __aeabi_uldivmod +01004b70 T __popcountsi2 +01004bb8 T __udivmoddi4 +01004ce0 t __debug_err_var_veneer +01004ce8 t __rom_efuse_read_from_thumb +01004cf0 t __cpu_cleanInvalidateDCacheAll_veneer +01004cf8 t __debug_msg_var_from_arm +01004d00 t __CPUInvalidateICacheAll_veneer +01004d08 t __debug_msg_veneer +01004d10 t __rom_LZ_Uncompress_from_thumb +01004d18 t __utl_is_sram_fw_from_thumb +01004d20 t __set_usb_suspend_veneer +01004d28 t __utl_get_bootsrc_veneer +01004d30 t __debug_err_veneer +01004d38 t __UTL_getDrvTmpBufferAddress_from_thumb +01004d40 t __timer_delay_veneer +01004d48 t __fLib_PutSerialStr_veneer +01004d50 t __UTL_setDrvTmpBufferAddress_from_thumb +01004d58 t __fLib_PutSerialChar_veneer +01004d60 T _loader_exec_compres_end +01005894 r GUID_FW2 +010058a4 r GUID_FW +010058b4 r GUID_RES +01005b40 T load_dram_scan +01005b40 T _loader_dram_text_start_base +01005ba0 t __debug_msg_veneer +01005ba8 D _image_general_var_base +01005ba8 D _loader_data_start_base +01005ba8 D _load_general_var_base +01005ba8 d ota_sts.4476 +01005bac d nodeoffset.5197 +01005bb0 d nodeoffset_nvt_memory_cfg.5120 +01005bb4 d RWErrorMsg +01005bc4 d g_uiStartBlkUpdateFW +01005bc8 d UPDATE_LOADER_NAME +01005bd5 d UPDATE_FW_NAME +01005be2 d RUN_FW_NAME +01005bef d LoaderErrorMsg +01005c05 d FWErrorMsg +01005c17 d RECOVERY_FW_NAME +01005c24 d guiSpiClkDiv +01005c28 D spi_nor +01005c60 d uiBufAddr +01005c64 D _image_general_var_limit +01005c80 B gStr +01005c80 B _image_general_zi_zi_base +01005c90 b gStorageIntType +01005c94 b g_dram_partition +01005d14 b g_uiVersion +01005d18 B int_strg_obj +01005d20 b g_emb_uboot +01005d40 B rom_lzma_inflate +01005d44 b g_is_flash_open +01005d48 b g_emb_teeos +01005d68 b g_rtos_load_addr +01005d6c b g_rtos_target_addr +01005d70 b g_rtos_size +01005d78 b g_emb_rtos +01005d98 b gsfSpecialKeyCallBack +01005da0 b g_emb_sys +01005dc0 b gRecoveryTriggerCallBack +01005dc4 b gSpecialKeyCallBack +01005dc8 b gCardDetectCallBack +01005dcc b gFastbootKeyCallBack +01005dd0 B BaseOfStack +01005dd4 B TopOfStack +01005dd8 B lzma_temp_buffer +01015dd8 b uiSpiFlashSize +01015ddc b gSpiProgramCallBack +01015de0 b gSpiIdentifyCallBack +01015de4 b bQuadConfigured +01015de8 b uiQuadReadType +01015dec b bSupportEWSR +01015ded b bDualRead +01015df0 b b_support_RDCR +01015df4 b bQuadEnabled +01015df8 b SDContext +01015e00 b FileSys +01015fc0 b vBitMapBuf +010167c0 b ui32FATPages +010167c4 b RootFileHandle +01016800 b TempBuf +01016a00 b uiBufSize +01016a04 b dbg_count +01016a08 b gFatAccessCallBack +01016a40 b vFatBuf +01036a40 B emuCommonBuf +01036a54 B currentPtr 01038000 B _ttb 0103c000 B _ttb_lv2 0103c400 A __common_base @@ -371,10 +374,10 @@ f07c2450 T fLib_PutSerialChar f07c246c T fLib_PutSerialStr f07c2480 T debug_msg f07c248a T debug_msg_var -f07c24b8 t __CPUflushReadCache_veneer -f07c24c0 t __bl_mainFlow_veneer +f07c24b8 t __bl_mainFlow_veneer +f07c24c0 t __CPUflushReadCache_veneer f07c24c8 t __bl_read_rtos_addr_veneer f07c24d0 t __Dec2HexStr_veneer f07c24d8 A _loader_exec_compress_load_cpu_addr f07c24d8 T _loader_exec_end_base -f07c7fb8 A _loader_dram_text_cpu_addr +f07c8018 A _loader_dram_text_cpu_addr diff --git a/loader/Project/Model/Loader565_Data/Release/Loader565.txt b/loader/Project/Model/Loader565_Data/Release/Loader565.txt index 1f105ca5e..a9a825527 100644 --- a/loader/Project/Model/Loader565_Data/Release/Loader565.txt +++ b/loader/Project/Model/Loader565_Data/Release/Loader565.txt @@ -6,14 +6,14 @@ EXEC_P, HAS_SYMS, D_PAGED start address 0xf07c0028 Program Header: -0x70000001 off 0x00024d00 vaddr 0x01004d00 paddr 0x000071d8 align 2**2 +0x70000001 off 0x00024d60 vaddr 0x01004d60 paddr 0x00007238 align 2**2 filesz 0x00000008 memsz 0x00000008 flags r-- LOAD off 0x00010000 vaddr 0xf07c0000 paddr 0x00000000 align 2**16 filesz 0x000024d8 memsz 0x000024d8 flags rwx LOAD off 0x00020000 vaddr 0x01000000 paddr 0x000024d8 align 2**16 - filesz 0x00005c08 memsz 0x00005c08 flags rwx - LOAD off 0x00025c40 vaddr 0x01005c40 paddr 0x00008140 align 2**16 - filesz 0x00000000 memsz 0x001767c0 flags rw- + filesz 0x00005c68 memsz 0x00005c68 flags rwx + LOAD off 0x00025c80 vaddr 0x01005c80 paddr 0x00008180 align 2**16 + filesz 0x00000000 memsz 0x00176780 flags rw- private flags = 5000200: [Version5 EABI] [soft-float ABI] Sections: @@ -30,39 +30,39 @@ Idx Name Size VMA LMA File off Algn CONTENTS, ALLOC, LOAD, READONLY, CODE 5 .LOADER_EXEC 00000388 f07c2150 00002150 00012150 2**3 CONTENTS, ALLOC, LOAD, READONLY, CODE - 6 .text 00004d00 01000000 000024d8 00020000 2**3 + 6 .text 00004d60 01000000 000024d8 00020000 2**3 CONTENTS, ALLOC, LOAD, READONLY, CODE - 7 .ARM.exidx 00000008 01004d00 000071d8 00024d00 2**2 + 7 .ARM.exidx 00000008 01004d60 00007238 00024d60 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 8 .rodata 00000dd8 01004d08 000071e0 00024d08 2**2 + 8 .rodata 00000dd8 01004d68 00007240 00024d68 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 9 .dram_text 00000068 01005ae0 00007fb8 00025ae0 2**3 + 9 .dram_text 00000068 01005b40 00008018 00025b40 2**3 CONTENTS, ALLOC, LOAD, READONLY, CODE - 10 .data 000000bc 01005b48 00008020 00025b48 2**2 + 10 .data 000000bc 01005ba8 00008080 00025ba8 2**2 CONTENTS, ALLOC, LOAD, DATA - 11 .dummy 00000004 01005c04 000080dc 00025c04 2**0 + 11 .dummy 00000004 01005c64 0000813c 00025c64 2**0 CONTENTS, ALLOC, LOAD, DATA - 12 .bss 000367c0 01005c40 00008140 00025c40 2**6 + 12 .bss 00036780 01005c80 00008180 00025c80 2**6 ALLOC - 13 .loader_heap 00140000 0103c400 0003e900 00025c40 2**0 + 13 .loader_heap 00140000 0103c400 0003e900 00025c80 2**0 ALLOC - 14 .comment 00000074 00000000 00000000 00025c08 2**0 + 14 .comment 00000074 00000000 00000000 00025c68 2**0 CONTENTS, READONLY - 15 .ARM.attributes 00000037 00000000 00000000 00025c7c 2**0 + 15 .ARM.attributes 00000037 00000000 00000000 00025cdc 2**0 CONTENTS, READONLY - 16 .debug_frame 000000c0 00000000 00000000 00025cb4 2**2 + 16 .debug_frame 000000c0 00000000 00000000 00025d14 2**2 CONTENTS, READONLY, DEBUGGING - 17 .debug_line 00000d87 00000000 00000000 00025d74 2**0 + 17 .debug_line 00000d87 00000000 00000000 00025dd4 2**0 CONTENTS, READONLY, DEBUGGING - 18 .debug_info 000029b1 00000000 00000000 00026afb 2**0 + 18 .debug_info 000029b1 00000000 00000000 00026b5b 2**0 CONTENTS, READONLY, DEBUGGING - 19 .debug_abbrev 00000475 00000000 00000000 000294ac 2**0 + 19 .debug_abbrev 00000475 00000000 00000000 0002950c 2**0 CONTENTS, READONLY, DEBUGGING - 20 .debug_aranges 000000c0 00000000 00000000 00029928 2**3 + 20 .debug_aranges 000000c0 00000000 00000000 00029988 2**3 CONTENTS, READONLY, DEBUGGING - 21 .debug_loc 000001df 00000000 00000000 000299e8 2**0 + 21 .debug_loc 000001df 00000000 00000000 00029a48 2**0 CONTENTS, READONLY, DEBUGGING - 22 .debug_str 0000120b 00000000 00000000 00029bc7 2**0 + 22 .debug_str 0000120b 00000000 00000000 00029c27 2**0 CONTENTS, READONLY, DEBUGGING SYMBOL TABLE: f07c0000 l d .BOOT_EXEC 00000000 .BOOT_EXEC @@ -72,12 +72,12 @@ f07c0500 l d .LOADER_CORE2_ENTRY_PROGRAM 00000000 .LOADER_CORE2_ENTRY_PROGRA f07c0600 l d .LOADER_REMAP 00000000 .LOADER_REMAP f07c2150 l d .LOADER_EXEC 00000000 .LOADER_EXEC 01000000 l d .text 00000000 .text -01004d00 l d .ARM.exidx 00000000 .ARM.exidx -01004d08 l d .rodata 00000000 .rodata -01005ae0 l d .dram_text 00000000 .dram_text -01005b48 l d .data 00000000 .data -01005c04 l d .dummy 00000000 .dummy -01005c40 l d .bss 00000000 .bss +01004d60 l d .ARM.exidx 00000000 .ARM.exidx +01004d68 l d .rodata 00000000 .rodata +01005b40 l d .dram_text 00000000 .dram_text +01005ba8 l d .data 00000000 .data +01005c64 l d .dummy 00000000 .dummy +01005c80 l d .bss 00000000 .bss 0103c400 l d .loader_heap 00000000 .loader_heap 00000000 l d .comment 00000000 .comment 00000000 l d .ARM.attributes 00000000 .ARM.attributes @@ -147,129 +147,131 @@ f07c1e3c l O .LOADER_REMAP 00000004 m_console 00000000 l df *ABS* 00000000 rtc.c 00000000 l df *ABS* 00000000 Timer.c 00000000 l df *ABS* 00000000 Cache.c -010022cc l F .text 00000014 cpu_l2_cache_wait_sync_done +0100232c l F .text 00000014 cpu_l2_cache_wait_sync_done 00000000 l df *ABS* 00000000 prj_main.c 01000000 l F .text 00000010 prj_isFastbootKeyPressed 01000010 l F .text 00000012 prj_checkCardExist -01000024 l F .text 000000c8 prj_isSpecialKeyPressed -01005b48 l O .data 00000004 ota_sts.4474 +01000024 l F .text 0000002c prj_issfSpecialKeyPressed +01000050 l F .text 000000c8 prj_isSpecialKeyPressed +01005ba8 l O .data 00000004 ota_sts.4476 00000000 l df *ABS* 00000000 gpio.c 00000000 l df *ABS* 00000000 utility.c 00000000 l df *ABS* 00000000 string.c 00000000 l df *ABS* 00000000 bl_func.c -010004e0 l F .text 00000026 bl_decompress_rtos -01000508 l F .text 0000005c bl_get_partition_fdt_offset.part.1 -01000564 l F .text 000000ec bl_load_rtos_from_non_nvtpack.isra.4.constprop.14 -01000650 l F .text 0000006c bl_get_fdt_nvt_memory_cfg_property.constprop.16 -010006bc l F .text 0000015c bl_get_fdt_cfg -01000818 l F .text 000000c0 bl_update_loader_flag -010008d8 l F .text 00000094 bl_entry_boot -0100096c l F .text 00000048 bl_boot_teeos -010009b4 l F .text 00000050 bl_get_fdt_partition_property -01000a04 l F .text 000000fc bl_get_partition -01000b00 l F .text 000001b4 bl_load_uboot_from_flash -01000e5c l F .text 00000124 bl_load_uboot_from_all_in_one -01000fc8 l F .text 000000a0 bl_load_fdt_from_flash.constprop.10 -01005b4c l O .data 00000004 nodeoffset.5194 -01005b50 l O .data 00000004 nodeoffset_nvt_memory_cfg.5117 -01005b54 l O .data 0000000e RWErrorMsg -01005b64 l O .data 00000004 g_uiStartBlkUpdateFW -01005b68 l O .data 0000000d UPDATE_LOADER_NAME -01005b75 l O .data 0000000d UPDATE_FW_NAME -01005b82 l O .data 0000000d RUN_FW_NAME -01005b8f l O .data 00000016 LoaderErrorMsg -01005ba5 l O .data 00000012 FWErrorMsg -01005bb7 l O .data 0000000d RECOVERY_FW_NAME -01005c50 l O .bss 00000001 gStorageIntType -01005c54 l O .bss 00000080 g_dram_partition -01005cd4 l O .bss 00000004 g_uiVersion -01005ce0 l O .bss 00000020 g_emb_uboot -01005d04 l O .bss 00000001 g_is_flash_open -01005d08 l O .bss 00000020 g_emb_teeos -01005d28 l O .bss 00000004 g_rtos_load_addr -01005d2c l O .bss 00000004 g_rtos_target_addr -01005d30 l O .bss 00000004 g_rtos_size -01005d38 l O .bss 00000020 g_emb_rtos -01005d58 l O .bss 00000020 g_emb_sys -01005d78 l O .bss 00000004 gRecoveryTriggerCallBack -01005d7c l O .bss 00000004 gSpecialKeyCallBack -01005d80 l O .bss 00000004 gCardDetectCallBack -01005d84 l O .bss 00000004 gFastbootKeyCallBack +01000518 l F .text 00000026 bl_decompress_rtos +01000540 l F .text 0000005c bl_get_partition_fdt_offset.part.1 +0100059c l F .text 000000ec bl_load_rtos_from_non_nvtpack.isra.4.constprop.14 +01000688 l F .text 0000006c bl_get_fdt_nvt_memory_cfg_property.constprop.16 +010006f4 l F .text 0000015c bl_get_fdt_cfg +01000850 l F .text 000000c0 bl_update_loader_flag +01000910 l F .text 00000094 bl_entry_boot +010009a4 l F .text 00000048 bl_boot_teeos +010009ec l F .text 00000050 bl_get_fdt_partition_property +01000a3c l F .text 000000fc bl_get_partition +01000b38 l F .text 000001b4 bl_load_uboot_from_flash +01000e94 l F .text 00000124 bl_load_uboot_from_all_in_one +01001000 l F .text 000000a0 bl_load_fdt_from_flash.constprop.10 +01005bac l O .data 00000004 nodeoffset.5197 +01005bb0 l O .data 00000004 nodeoffset_nvt_memory_cfg.5120 +01005bb4 l O .data 0000000e RWErrorMsg +01005bc4 l O .data 00000004 g_uiStartBlkUpdateFW +01005bc8 l O .data 0000000d UPDATE_LOADER_NAME +01005bd5 l O .data 0000000d UPDATE_FW_NAME +01005be2 l O .data 0000000d RUN_FW_NAME +01005bef l O .data 00000016 LoaderErrorMsg +01005c05 l O .data 00000012 FWErrorMsg +01005c17 l O .data 0000000d RECOVERY_FW_NAME +01005c90 l O .bss 00000001 gStorageIntType +01005c94 l O .bss 00000080 g_dram_partition +01005d14 l O .bss 00000004 g_uiVersion +01005d20 l O .bss 00000020 g_emb_uboot +01005d44 l O .bss 00000001 g_is_flash_open +01005d48 l O .bss 00000020 g_emb_teeos +01005d68 l O .bss 00000004 g_rtos_load_addr +01005d6c l O .bss 00000004 g_rtos_target_addr +01005d70 l O .bss 00000004 g_rtos_size +01005d78 l O .bss 00000020 g_emb_rtos +01005d98 l O .bss 00000004 gsfSpecialKeyCallBack +01005da0 l O .bss 00000020 g_emb_sys +01005dc0 l O .bss 00000004 gRecoveryTriggerCallBack +01005dc4 l O .bss 00000004 gSpecialKeyCallBack +01005dc8 l O .bss 00000004 gCardDetectCallBack +01005dcc l O .bss 00000004 gFastbootKeyCallBack 00000000 l df *ABS* 00000000 nvtpack.c -01001fdc l F .text 00000074 nvtpack_get_uitron_offset -01005834 l O .rodata 00000010 GUID_FW2 -01005844 l O .rodata 00000010 GUID_FW -01005854 l O .rodata 00000010 GUID_RES +0100203c l F .text 00000074 nvtpack_get_uitron_offset +01005894 l O .rodata 00000010 GUID_FW2 +010058a4 l O .rodata 00000010 GUID_FW +010058b4 l O .rodata 00000010 GUID_RES 00000000 l df *ABS* 00000000 fdt.c 00000000 l df *ABS* 00000000 fdt_ro.c -01002654 l F .text 0000001c _fdt_offset_ptr -01002670 l F .text 0000001c _fdt_mem_rsv -0100268c l F .text 00000038 _nextprop +010026b4 l F .text 0000001c _fdt_offset_ptr +010026d0 l F .text 0000001c _fdt_mem_rsv +010026ec l F .text 00000038 _nextprop 00000000 l df *ABS* 00000000 spi.c -01002ad8 l F .text 0000001c SMHostSendCommand -01002af4 l F .text 00000038 flash_close -01002b2c l F .text 0000000a flash_getBlockSize -01002b36 l F .text 00000006 flash_setReservedAreaMaxBlockNumber -01002b3c l F .text 00000010 flash_getTotalSize -01002b4c l F .text 00000010 flash_installAccessCB -01002b5c l F .text 00000010 flash_installIdentifyCB -01002b6c l F .text 0000001c flash_setConfig -01002b88 l F .text 00000080 flash_setFrequency -01002c08 l F .text 0000001c SMHostGetStatus.constprop.3 -01002c24 l F .text 00000044 spiflash_getStatus -01002c68 l F .text 00000044 spiflash_waitReady -01002cac l F .text 0000002c spi_nor_send_cmd -01002cd8 l F .text 0000000c spiflash_enableWriteLatch -01002ce4 l F .text 00000018 sm_card_host_setup_address_cycle.constprop.5 -01002cfc l F .text 00000064 spiFlash_eraseSector -01002d60 l F .text 00000044 spiflash_setStatus -01002da4 l F .text 00000006 flash_setReservedBadBlockNumber -01002dac l F .text 00000358 flash_open -01003104 l F .text 000002d0 flash_readSectors -010033d4 l F .text 00000238 spiFlash_write -0100360c l F .text 00000028 flash_writePartition -01003634 l F .text 00000012 flash_writeSectors -01005bc4 l O .data 00000004 guiSpiClkDiv -01015d90 l O .bss 00000004 uiSpiFlashSize -01015d94 l O .bss 00000004 gSpiProgramCallBack -01015d98 l O .bss 00000004 gSpiIdentifyCallBack -01015d9c l O .bss 00000001 bQuadConfigured -01015da0 l O .bss 00000004 uiQuadReadType -01015da4 l O .bss 00000001 bSupportEWSR -01015da5 l O .bss 00000001 bDualRead -01015da8 l O .bss 00000004 b_support_RDCR -01015dac l O .bss 00000001 bQuadEnabled +01002b38 l F .text 0000001c SMHostSendCommand +01002b54 l F .text 00000038 flash_close +01002b8c l F .text 0000000a flash_getBlockSize +01002b96 l F .text 00000006 flash_setReservedAreaMaxBlockNumber +01002b9c l F .text 00000010 flash_getTotalSize +01002bac l F .text 00000010 flash_installAccessCB +01002bbc l F .text 00000010 flash_installIdentifyCB +01002bcc l F .text 0000001c flash_setConfig +01002be8 l F .text 00000080 flash_setFrequency +01002c68 l F .text 0000001c SMHostGetStatus.constprop.3 +01002c84 l F .text 00000044 spiflash_getStatus +01002cc8 l F .text 00000044 spiflash_waitReady +01002d0c l F .text 0000002c spi_nor_send_cmd +01002d38 l F .text 0000000c spiflash_enableWriteLatch +01002d44 l F .text 00000018 sm_card_host_setup_address_cycle.constprop.5 +01002d5c l F .text 00000064 spiFlash_eraseSector +01002dc0 l F .text 00000044 spiflash_setStatus +01002e04 l F .text 00000006 flash_setReservedBadBlockNumber +01002e0c l F .text 00000358 flash_open +01003164 l F .text 000002d0 flash_readSectors +01003434 l F .text 00000238 spiFlash_write +0100366c l F .text 00000028 flash_writePartition +01003694 l F .text 00000012 flash_writeSectors +01005c24 l O .data 00000004 guiSpiClkDiv +01015dd8 l O .bss 00000004 uiSpiFlashSize +01015ddc l O .bss 00000004 gSpiProgramCallBack +01015de0 l O .bss 00000004 gSpiIdentifyCallBack +01015de4 l O .bss 00000001 bQuadConfigured +01015de8 l O .bss 00000004 uiQuadReadType +01015dec l O .bss 00000001 bSupportEWSR +01015ded l O .bss 00000001 bDualRead +01015df0 l O .bss 00000004 b_support_RDCR +01015df4 l O .bss 00000001 bQuadEnabled 00000000 l df *ABS* 00000000 SDIO1.c -0100365c l F .text 00000028 SDHostGetStatus -01003684 l F .text 000000a8 SDHostDataCommand -0100372c l F .text 00000080 SDHostSimpleCommand -010037ac l F .text 000000c0 CardReadSector -01015db0 l O .bss 00000008 SDContext +010036bc l F .text 00000028 SDHostGetStatus +010036e4 l F .text 000000a8 SDHostDataCommand +0100378c l F .text 00000080 SDHostSimpleCommand +0100380c l F .text 000000c0 CardReadSector +01015df8 l O .bss 00000008 SDContext 00000000 l df *ABS* 00000000 cc.c 00000000 l df *ABS* 00000000 efuse.c 00000000 l df *ABS* 00000000 fat.c -01003b5c l F .text 00000124 fat_getclusterstatus -01003c80 l F .text 00000138 fat_getnextcluster -01003db8 l F .text 0000002c fat_getmaxclusternumber -01003de4 l F .text 00000038 fat_getnextdir_entry -01003e1c l F .text 00000028 fat_getfirstdir_entry -01003e44 l F .text 00000030 fat_getdir_sectornumber -01016a00 l O .bss 00020000 vFatBuf -01005c00 l O .data 00000004 uiBufAddr -01015dc0 l O .bss 00000198 FileSys -01015f80 l O .bss 00000800 vBitMapBuf -01016780 l O .bss 00000004 ui32FATPages -01016784 l O .bss 00000014 RootFileHandle -010167c0 l O .bss 00000200 TempBuf -010169c0 l O .bss 00000004 uiBufSize -010169c4 l O .bss 00000004 dbg_count -010169c8 l O .bss 00000004 gFatAccessCallBack +01003bbc l F .text 00000124 fat_getclusterstatus +01003ce0 l F .text 00000138 fat_getnextcluster +01003e18 l F .text 0000002c fat_getmaxclusternumber +01003e44 l F .text 00000038 fat_getnextdir_entry +01003e7c l F .text 00000028 fat_getfirstdir_entry +01003ea4 l F .text 00000030 fat_getdir_sectornumber +01016a40 l O .bss 00020000 vFatBuf +01005c60 l O .data 00000004 uiBufAddr +01015e00 l O .bss 00000198 FileSys +01015fc0 l O .bss 00000800 vBitMapBuf +010167c0 l O .bss 00000004 ui32FATPages +010167c4 l O .bss 00000014 RootFileHandle +01016800 l O .bss 00000200 TempBuf +01016a00 l O .bss 00000004 uiBufSize +01016a04 l O .bss 00000004 dbg_count +01016a08 l O .bss 00000004 gFatAccessCallBack 00000000 l df *ABS* 00000000 stdlib.c 00000000 l df *ABS* 00000000 _udivsi3.o -01004684 l .text 00000000 .udivsi3_skip_div0_test +010046e4 l .text 00000000 .udivsi3_skip_div0_test 00000000 l *ABS* 00000000 shift 00000000 l df *ABS* 00000000 _divsi3.o -01004898 l .text 00000000 .divsi3_skip_div0_test +010048f8 l .text 00000000 .divsi3_skip_div0_test 00000000 l *ABS* 00000000 shift 00000000 l df *ABS* 00000000 _dvmd_tls.o 00000000 l df *ABS* 00000000 _aeabi_uldivmod.o @@ -277,238 +279,239 @@ f07c1e3c l O .LOADER_REMAP 00000004 m_console 00000000 l df *ABS* 00000000 libgcc2.c 00000000 l df *ABS* 00000000 boot_load.c 00000000 l df *ABS* 00000000 -f07c8020 l *ABS* 00000000 _loader_data_cpu_addr +f07c8080 l *ABS* 00000000 _loader_data_cpu_addr f07c2150 l *ABS* 00000000 _loader_exec_cpu_addr f07c2150 l .LOADER_EXEC 00000000 _loader_exec_start_base -01004c80 l F .text 00000008 __debug_err_var_veneer -01004c88 l F .text 00000008 __rom_efuse_read_from_thumb -01004c90 l F .text 00000008 __fLib_PutSerialChar_veneer -01004c98 l F .text 00000008 __utl_get_bootsrc_veneer -01004ca0 l F .text 00000008 __CPUInvalidateICacheAll_veneer -01004ca8 l F .text 00000008 __debug_err_veneer -01004cb0 l F .text 00000008 __debug_msg_var_from_arm -01004cb8 l F .text 00000008 __rom_LZ_Uncompress_from_thumb -01004cc0 l F .text 00000008 __UTL_getDrvTmpBufferAddress_from_thumb -01004cc8 l F .text 00000008 __set_usb_suspend_veneer -01004cd0 l F .text 00000008 __fLib_PutSerialStr_veneer -01004cd8 l F .text 00000008 __UTL_setDrvTmpBufferAddress_from_thumb -01004ce0 l F .text 00000008 __utl_is_sram_fw_from_thumb -01004ce8 l F .text 00000008 __cpu_cleanInvalidateDCacheAll_veneer -01004cf0 l F .text 00000008 __timer_delay_veneer -01004cf8 l F .text 00000008 __debug_msg_veneer -01005b40 l F .dram_text 00000008 __debug_msg_veneer -f07c24b8 l F .LOADER_EXEC 00000008 __CPUflushReadCache_veneer -f07c24c0 l F .LOADER_EXEC 00000008 __bl_mainFlow_veneer +01004ce0 l F .text 00000008 __debug_err_var_veneer +01004ce8 l F .text 00000008 __rom_efuse_read_from_thumb +01004cf0 l F .text 00000008 __cpu_cleanInvalidateDCacheAll_veneer +01004cf8 l F .text 00000008 __debug_msg_var_from_arm +01004d00 l F .text 00000008 __CPUInvalidateICacheAll_veneer +01004d08 l F .text 00000008 __debug_msg_veneer +01004d10 l F .text 00000008 __rom_LZ_Uncompress_from_thumb +01004d18 l F .text 00000008 __utl_is_sram_fw_from_thumb +01004d20 l F .text 00000008 __set_usb_suspend_veneer +01004d28 l F .text 00000008 __utl_get_bootsrc_veneer +01004d30 l F .text 00000008 __debug_err_veneer +01004d38 l F .text 00000008 __UTL_getDrvTmpBufferAddress_from_thumb +01004d40 l F .text 00000008 __timer_delay_veneer +01004d48 l F .text 00000008 __fLib_PutSerialStr_veneer +01004d50 l F .text 00000008 __UTL_setDrvTmpBufferAddress_from_thumb +01004d58 l F .text 00000008 __fLib_PutSerialChar_veneer +01005ba0 l F .dram_text 00000008 __debug_msg_veneer +f07c24b8 l F .LOADER_EXEC 00000008 __bl_mainFlow_veneer +f07c24c0 l F .LOADER_EXEC 00000008 __CPUflushReadCache_veneer f07c24c8 l F .LOADER_EXEC 00000008 __bl_read_rtos_addr_veneer f07c24d0 l F .LOADER_EXEC 00000008 __Dec2HexStr_veneer f07c2100 l F .LOADER_REMAP 00000008 ____popcountsi2_veneer f07c2108 l F .LOADER_REMAP 00000008 __Dec2HexStr_veneer f07c20ec g F .LOADER_REMAP 00000010 utl_get_chipversion -0100462c g F .text 00000018 fat_read_rootfile +0100468c g F .text 00000018 fat_read_rootfile f07c2068 g F .LOADER_REMAP 00000034 utl_dram_protect_enable f07c2450 g F .LOADER_EXEC 0000001c fLib_PutSerialChar -01002450 g F .text 0000002e fdt_offset_ptr -01000e34 g F .text 00000028 bl_chk_uboot +010024b0 g F .text 0000002e fdt_offset_ptr +01000e6c g F .text 00000028 bl_chk_uboot 000000bc g *ABS* 00000000 _loader_data_size f07c0d2c g F .LOADER_REMAP 00000044 disable_rom_wdt f07c2308 g F .LOADER_EXEC 00000018 timer_delay -01003648 g F .text 00000014 nor_get_storage_object +010036a8 g F .text 00000014 nor_get_storage_object f07c1b20 g F .LOADER_REMAP 00000024 set_usb_suspend -01001fa8 g F .text 00000010 loader_installCardDetectCB +01002008 g F .text 00000010 loader_installCardDetectCB 01000000 g .text 00000000 _loader_exec_compres_start -010028e0 g F .text 00000018 fdt_getprop_namelen -010027e0 g F .text 00000018 fdt_first_property_offset +01002940 g F .text 00000018 fdt_getprop_namelen +01002840 g F .text 00000018 fdt_first_property_offset f07c1fc8 g F .LOADER_REMAP 000000a0 utl_test_checksum f07c0b50 g .LOADER_REMAP 00000000 _load_vector_exp_table_end_base -010022e0 g F .text 00000054 cpu_invalidateDCacheBlock +01002340 g F .text 00000054 cpu_invalidateDCacheBlock 0103c400 g *ABS* 00000000 __common_base -010028b4 g F .text 0000002c fdt_get_property -0100297c g F .text 0000008e fdt_path_offset -01005d90 g O .bss 00010000 lzma_temp_buffer -01001f88 g F .text 00000010 loader_setVersion +01002914 g F .text 0000002c fdt_get_property +010029dc g F .text 0000008e fdt_path_offset +01005dd8 g O .bss 00010000 lzma_temp_buffer +01001fd8 g F .text 00000010 loader_setVersion f07c0944 g F .LOADER_REMAP 00000000 rom_debug_msg_err f07c0030 g .LOADER_CONFIGRAM 00000000 _load_LOADER_CONFIGRAM_start_base f07c0300 g O .LOADER_CONFIGRAM2 00000068 g_dma_config_setting -01001f60 g F .text 00000014 loader_setUpdateLdrName +01001fb0 g F .text 00000014 loader_setUpdateLdrName f07c1d48 g F .LOADER_REMAP 00000030 uart_getChar_polling 00000068 g *ABS* 00000000 _loader_dram_text_size -01003af0 g F .text 00000008 card_get_type +01003b50 g F .text 00000008 card_get_type f07c0500 g .LOADER_CORE2_ENTRY_PROGRAM 00000000 _load_core2_entry_program_start_base 0103c400 g *ABS* 00000000 __common_limit -01036a14 g O .bss 00000004 currentPtr +01036a54 g O .bss 00000004 currentPtr f07c2320 g F .LOADER_EXEC 00000018 CPUInvalidateICacheAll -010045dc g F .text 00000020 fat_internal_close_rootfile +0100463c g F .text 00000020 fat_internal_close_rootfile f07c2254 g F .LOADER_EXEC 0000005c rtc_chkS3boot_init f07c1bf8 g O .LOADER_REMAP 0000000c uart1_obj -01003b20 g F .text 0000003c quary_secure_boot +01003b80 g F .text 0000003c quary_secure_boot f07c22b0 g F .LOADER_EXEC 00000020 rtc_chkS3boot_wait_init f07c0070 g .LOADER_CONFIGRAM 00000000 _load_LOADER_CONFIGRAM_end_base -01004ad4 g F .text 00000000 .hidden __aeabi_uldivmod -01004684 g F .text 000001ec .hidden __udivsi3 +01004b34 g F .text 00000000 .hidden __aeabi_uldivmod +010046e4 g F .text 000001ec .hidden __udivsi3 f07c2480 g F .LOADER_EXEC 0000000a debug_msg f07c1e7c g F .LOADER_REMAP 00000018 debug_err f07c248a g F .LOADER_EXEC 0000002a debug_msg_var -01000258 g F .text 00000060 Dec2HexStr2Bytes -01002334 g F .text 00000044 cpu_cleanDCacheBlock -010026f8 g F .text 00000088 fdt_subnode_offset_namelen -01004b58 g F .text 00000128 .hidden __udivmoddi4 -010001f8 g F .text 00000026 gpio_getPin -01001068 g F .text 000000f4 bl_boot_uboot -010026d2 g F .text 00000026 fdt_num_mem_rsv +01000290 g F .text 00000060 Dec2HexStr2Bytes +01002394 g F .text 00000044 cpu_cleanDCacheBlock +01002758 g F .text 00000088 fdt_subnode_offset_namelen +01004bb8 g F .text 00000128 .hidden __udivmoddi4 +01000230 g F .text 00000026 gpio_getPin +010010a0 g F .text 000000f4 bl_boot_uboot +01002732 g F .text 00000026 fdt_num_mem_rsv f07c0958 g F .LOADER_REMAP 00000000 rom_LZ_Uncompress -01002810 g F .text 00000030 fdt_get_property_by_offset +01002870 g F .text 00000030 fdt_get_property_by_offset f07c1c3c g F .LOADER_REMAP 0000001c serial2_putc -01000d60 g F .text 000000d4 bl_chk_fdt -01001fb8 g F .text 00000010 loader_installFastbootKeyCB -01000f80 g F .text 00000048 bl_copy_fdt_to_fdt_addr +01000d98 g F .text 000000d4 bl_chk_fdt +01002018 g F .text 00000010 loader_installFastbootKeyCB +01000fb8 g F .text 00000048 bl_copy_fdt_to_fdt_addr f07c0070 g O .LOADER_CONFIGRAM 00000020 LoaderInternalInfo f07c1f4c g F .LOADER_REMAP 00000018 UTL_setDrvTmpBufferAddress f07c0600 g .LOADER_REMAP 00000000 _load_LOADER_REMAP_start_base -01005b48 g .data 00000000 _load_general_var_base +01005ba8 g .data 00000000 _load_general_var_base f07c1e68 g F .LOADER_REMAP 00000014 debug_set_console f07c1e94 g F .LOADER_REMAP 00000038 debug_err_var -0100039c g F .text 0000001a strnlen -010000ec g F .text 0000000c debug_disable_msg -01002920 g F .text 0000002c fdt_getprop +010003d4 g F .text 0000001a strnlen +01000118 g F .text 0000000c debug_disable_msg +01002980 g F .text 0000002c fdt_getprop f07c0b48 g .LOADER_REMAP 00000000 EXP_Handler -01036a00 g O .bss 00000014 emuCommonBuf +01036a40 g O .bss 00000014 emuCommonBuf f07c1c74 g F .LOADER_REMAP 0000005c uart_openSystemUART -01001fc8 g F .text 00000014 loader_setStorageIntType -0100386c g F .text 00000264 card_open +01002028 g F .text 00000014 loader_setStorageIntType +010038cc g F .text 00000264 card_open 0103c400 g .loader_heap 00000000 _image_load_reset_zi_base -01005d8c g O .bss 00000004 TopOfStack -01004b10 g F .text 00000048 .hidden __popcountsi2 -010002b8 g F .text 0000005a utl_memset -01005ae0 g .dram_text 00000000 _loader_dram_text_start_base -01004890 g F .text 00000000 .hidden __aeabi_idiv -01002554 g F .text 00000028 _fdt_check_prop_offset -0100115c g F .text 000002b0 bl_process_all_in_one +01005dd4 g O .bss 00000004 TopOfStack +01004b70 g F .text 00000048 .hidden __popcountsi2 +010002f0 g F .text 0000005a utl_memset +01005b40 g .dram_text 00000000 _loader_dram_text_start_base +010048f0 g F .text 00000000 .hidden __aeabi_idiv +010025b4 g F .text 00000028 _fdt_check_prop_offset +01001194 g F .text 000002b0 bl_process_all_in_one f07c0028 g .BOOT_EXEC 00000000 __start -0100429c g F .text 000002a4 fat_internal_open_rootfile -01002780 g F .text 0000001e fdt_subnode_offset -01001f74 g F .text 00000014 loader_setRunFwName -0100044c g F .text 00000094 memchr -01002a0c g F .text 000000cc fdt_check_full +010042fc g F .text 000002a4 fat_internal_open_rootfile +010027e0 g F .text 0000001e fdt_subnode_offset +01001fc4 g F .text 00000014 loader_setRunFwName +01000484 g F .text 00000094 memchr +01002a6c g F .text 000000cc fdt_check_full f07c05e8 g .LOADER_CORE2_ENTRY_PROGRAM 00000000 _load_core2_entry_program_end_base f07c0b48 g .LOADER_REMAP 00000000 _load_LOADER_REMAP_end_base -0100142c g F .text 00000b20 bl_mainFlow -0100261e g F .text 00000036 fdt_next_subnode +01001464 g F .text 00000b38 bl_mainFlow +0100267e g F .text 00000036 fdt_next_subnode f07c002c g .BOOT_EXEC 00000000 _load_BOOT_EXEC_end_base f07c1c04 g F .LOADER_REMAP 0000001c serial_putc f07c0368 g O .LOADER_CONFIGRAM2 00000068 g_dma_config_setting_2 -01003e98 g F .text 00000368 fat_internal_mount_partition -010003d2 g F .text 00000024 strncmp -01001f4c g F .text 00000014 loader_setUpdateFwName -01005ae0 g F .dram_text 0000005c load_dram_scan -010003b6 g F .text 0000001c strncpy +01003ef8 g F .text 00000368 fat_internal_mount_partition +0100040a g F .text 00000024 strncmp +01001f9c g F .text 00000014 loader_setUpdateFwName +01005b40 g F .dram_text 0000005c load_dram_scan +010003ee g F .text 0000001c strncpy f07c0090 g .LOADER_CONFIGRAM 00000000 _load_LOADER_CONFIGRAM_FREQ_PARAM_end_base f07c091c g F .LOADER_REMAP 00000000 rom_debug_msg -01004200 g F .text 0000009c fat_internal_initFAT +01004260 g F .text 0000009c fat_internal_initFAT 0103c400 g .loader_heap 00000000 _loader_heap_base f07c20d8 g F .LOADER_REMAP 00000014 utl_get_bootsrc f07c0d70 g F .LOADER_REMAP 0000001c rom_memcpy -01000412 g F .text 00000020 memcmp -010027f8 g F .text 00000018 fdt_next_property_offset +0100044a g F .text 00000020 memcmp +01002858 g F .text 00000018 fdt_next_property_offset f07c24d8 g .LOADER_EXEC 00000000 _loader_exec_end_base -01004ad0 w F .text 00000004 .hidden __aeabi_ldiv0 -01003e74 g F .text 00000024 fat_regfilesystem -01002840 g F .text 00000074 fdt_get_property_namelen -01003ad0 g F .text 00000020 card_close +01004b30 w F .text 00000004 .hidden __aeabi_ldiv0 +01003ed4 g F .text 00000024 fat_regfilesystem +010028a0 g F .text 00000074 fdt_get_property_namelen +01003b30 g F .text 00000020 card_close 0103c400 g .loader_heap 00000000 _image_load_reset_length f07c22d0 g F .LOADER_EXEC 00000038 rtc_chkS3boot f07c2380 g F .LOADER_EXEC 00000048 _cache_invalidate_data_cache_all f07c0000 g .BOOT_EXEC 00000000 _load_BOOT_EXEC_start_base -01001f98 g F .text 00000010 loader_installSpecialKeyCB -f07c7fb8 g *ABS* 00000000 _loader_dram_text_cpu_addr +01001fe8 g F .text 00000010 loader_installSpecialKeyCB +f07c8018 g *ABS* 00000000 _loader_dram_text_cpu_addr f07c0368 g .LOADER_CONFIGRAM2 00000000 config_dram1_tbl_2_start_base f07c2150 g F .LOADER_EXEC 00000104 main f07c096c g F .LOADER_REMAP 00000000 rom_Dec2HexStr -01002074 g F .text 00000088 nvtpack_getver -0100252c g F .text 00000028 _fdt_check_node_offset -01002050 g F .text 00000022 nvtpack_calc_nvt_sum +010020d4 g F .text 00000088 nvtpack_getver +0100258c g F .text 00000028 _fdt_check_node_offset +010020b0 g F .text 00000022 nvtpack_calc_nvt_sum f07c1c20 g F .LOADER_REMAP 0000001c serial2_getc -01004684 g F .text 00000000 .hidden __aeabi_uidiv +010046e4 g F .text 00000000 .hidden __aeabi_uidiv f07c1df4 g F .LOADER_REMAP 00000018 uart_getBinary -010045fc g F .text 00000018 fat_initFAT -01004644 g F .text 00000014 fat_close_rootfile +0100465c g F .text 00000018 fat_initFAT +010046a4 g F .text 00000014 fat_close_rootfile f07c1f38 g O .LOADER_REMAP 00000004 g_uiDrvTmpBuffer -01002398 g F .text 0000003e CPUflushReadCache +010023f8 g F .text 0000003e CPUflushReadCache f07c1d3c g F .LOADER_REMAP 0000000a serial2_init -01005b48 g .data 00000000 _loader_data_start_base +01005ba8 g .data 00000000 _loader_data_start_base f07c23e2 g F .LOADER_EXEC 0000004e _cache_clean_invalidate_d_cache_All -01004890 g F .text 00000220 .hidden __divsi3 +010048f0 g F .text 00000220 .hidden __divsi3 f07c0030 g O .LOADER_CONFIGRAM 00000040 ConfigRamTab f07c0070 g .LOADER_CONFIGRAM 00000000 _load_LOADER_CONFIGRAM_FREQ_PARAM_start_base -01005c40 g .bss 00000000 _image_general_zi_zi_base -01000432 g F .text 0000001a strcmp +01005c80 g .bss 00000000 _image_general_zi_zi_base +0100046a g F .text 0000001a strcmp f07c0d8c g F .LOADER_REMAP 00000d94 config_dma f07c1cd0 g F .LOADER_REMAP 0000000a serial_init -0100140c g F .text 00000020 bl_read_rtos_addr +01001444 g F .text 00000020 bl_read_rtos_addr f07c1ecc g F .LOADER_REMAP 0000006c debug_dump_addr 0117c400 g .loader_heap 00000000 _stack_start -01002378 g F .text 00000020 cpu_cleanInvalidateDCache +010023d8 g F .text 00000020 cpu_cleanInvalidateDCache f07c2338 g F .LOADER_EXEC 00000048 _cache_clean_d_cache_all f07c24d8 g *ABS* 00000000 _loader_exec_compress_load_cpu_addr f07c1bec g O .LOADER_REMAP 0000000c uart0_obj -01002400 g F .text 00000050 fdt_check_header +01002460 g F .text 00000050 fdt_check_header f07c1d98 g F .LOADER_REMAP 0000005c uart_getStr_polling f07c246c g F .LOADER_EXEC 00000014 fLib_PutSerialStr -010021ec g F .text 000000e0 nvtpack_get_partition -0100279e g F .text 00000042 fdt_get_name -010023d6 g F .text 0000002a CPUflushWriteCache +0100224c g F .text 000000e0 nvtpack_get_partition +010027fe g F .text 00000042 fdt_get_name +01002436 g F .text 0000002a CPUflushWriteCache 01038000 g .bss 00000000 _ttb f07c1e0c g F .LOADER_REMAP 00000030 get_uart_object -010025f0 g F .text 0000002e fdt_first_subnode -01005c04 g .data 00000000 _image_general_var_limit +01002650 g F .text 0000002e fdt_first_subnode +01005c64 g .data 00000000 _image_general_var_limit f07c0908 g F .LOADER_REMAP 00000000 rom_efuse_read f07c1cdc g F .LOADER_REMAP 00000060 uart_openSystemUART2 -01000312 g F .text 00000076 utl_memcpy +0100034a g F .text 00000076 utl_memcpy 0103c400 g .loader_heap 00000000 _image_load_reset_base f07c1fa8 g F .LOADER_REMAP 00000020 utl_is_sram_fw -0100257c g F .text 00000074 fdt_next_node -01004870 g F .text 00000020 .hidden __aeabi_uidivmod +010025dc g F .text 00000074 fdt_next_node +010048d0 g F .text 00000020 .hidden __aeabi_uidivmod f07c23c8 g F .LOADER_EXEC 0000001a cpu_invalidateDCacheAll 000024d8 g *ABS* 00000000 _loader_exec_compress_load_base 01000000 g .text 00000000 _internal_strg_param_start -01005bc8 g O .data 00000038 spi_nor -01000cb4 g F .text 00000088 bl_flash_open -01003af8 g F .text 00000028 dma_get_dram_capacity +01005c28 g O .data 00000038 spi_nor +01000cec g F .text 00000088 bl_flash_open +01003b58 g F .text 00000028 dma_get_dram_capacity f07c209c g F .LOADER_REMAP 00000018 utl_dram_protect_disable -01004614 g F .text 00000018 fat_open_rootfile -01005c40 g O .bss 00000009 gStr -010000f8 g F .text 00000100 prj_main +01004674 g F .text 00000018 fat_open_rootfile +01005c80 g O .bss 00000009 gStr +01000124 g F .text 0000010c prj_main f07c1c58 g F .LOADER_REMAP 0000001c serial_getc -010026c4 g F .text 0000000e fdt_string +01002724 g F .text 0000000e fdt_string f07c1f3c g F .LOADER_REMAP 00000010 bitCount f07c2430 g F .LOADER_EXEC 0000001e cpu_cleanInvalidateDCacheAll 0103c400 g .loader_heap 00000000 _load_load_reset_base f07c0638 g .LOADER_REMAP 00000000 start -01002480 g F .text 000000ac fdt_next_tag -01004658 g F .text 0000002c atoi -01004ad0 w F .text 00000004 .hidden __aeabi_idiv0 -0100294c g F .text 00000030 fdt_get_alias_namelen +010024e0 g F .text 000000ac fdt_next_tag +010046b8 g F .text 0000002c atoi +01004b30 w F .text 00000004 .hidden __aeabi_idiv0 +010029ac g F .text 00000030 fdt_get_alias_namelen 0103c000 g .bss 00000000 _ttb_lv2 f07c1d78 g F .LOADER_REMAP 00000020 uart_chkChar f07c1f7c g F .LOADER_REMAP 0000002c UTL_canUpdateSecKey 00000388 g *ABS* 00000000 _loader_exec_size f07c1f64 g F .LOADER_REMAP 00000018 UTL_getDrvTmpBufferAddress -01000388 g F .text 00000014 strlen -01005cd8 g O .bss 00000004 int_strg_obj -01000220 g F .text 00000038 Dec2HexStr +010003c0 g F .text 00000014 strlen +01005d18 g O .bss 00000004 int_strg_obj +01000258 g F .text 00000038 Dec2HexStr f07c0930 g F .LOADER_REMAP 00000000 rom_debug_msg_var -010003f6 g F .text 0000001c strchr -01005d00 g O .bss 00000004 rom_lzma_inflate -01004540 g F .text 0000009c fat_internal_read_rootfile -01004d00 g .text 00000000 _loader_exec_compres_end +0100042e g F .text 0000001c strchr +01005d40 g O .bss 00000004 rom_lzma_inflate +010045a0 g F .text 0000009c fat_internal_read_rootfile +01004d60 g .text 00000000 _loader_exec_compres_end f07c20b4 g F .LOADER_REMAP 00000024 utl_dram_protect_check -01004ab0 g F .text 00000020 .hidden __aeabi_idivmod -010028f8 g F .text 00000028 fdt_getprop_by_offset +01004b10 g F .text 00000020 .hidden __aeabi_idivmod +01002958 g F .text 00000028 fdt_getprop_by_offset 0103c400 g .loader_heap 00000000 _image_load_reset_zi_limit -01000d3c g F .text 00000024 bl_chk_valid_all_in_one -01005b48 g .data 00000000 _image_general_var_base +01000d74 g F .text 00000024 bl_chk_valid_all_in_one +01005ba8 g .data 00000000 _image_general_var_base 0103c400 g *ABS* 00000000 _image_general_zi_zi_limit -01005d88 g O .bss 00000004 BaseOfStack +01005dd0 g O .bss 00000004 BaseOfStack f07c0b48 g .LOADER_REMAP 00000000 _load_vector_exp_table_start_base -010020fc g F .text 000000f0 nvtpack_verify +01001ff8 g F .text 00000010 loader_installsfSpecialKeyCB +0100215c g F .text 000000f0 nvtpack_verify