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 bc02098b3..09ddba1be 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