From 2654abf8540d9f3995bfa491c4db29ff11fac608 Mon Sep 17 00:00:00 2001 From: SnickerSun Date: Sat, 14 Sep 2024 13:53:41 +0800 Subject: [PATCH] =?utf8?q?=E6=9B=B4=E6=96=B0sdk602=20patch=200812=20to=200?= =?utf8?q?911?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../wearable/fd230app/CMakeLists.txt | 2 +- .../nativelauncher/src/NativeLauncher.cpp | 5 +- .../bluetooth/src/BluetoothHeadsetEvent.cpp | 16 +- .../nativeui/bluetooth/src/BluetoothModel.cpp | 14 +- .../main/include/ModelListenerSample.h | 4 +- .../nativeui/main/include/PresenterTask.h | 22 -- .../nativeui/main/src/MainPresenterSample.cpp | 9 +- .../nativeui/main/src/ModelListenerSample.cpp | 22 +- .../nativeui/main/src/PresenterTask.cpp | 29 -- .../phoneservice/src/PhoneService.cpp | 7 +- .../nativeui/player/src/PlayersPresenter.cpp | 14 +- .../framework/src/test_case_list_adapter.cpp | 12 +- .../uitest/framework/src/ui_test_group.cpp | 2 + .../wearable/nativeabilityfwk/src/Ability.cpp | 56 +-- .../wearable/nativeapp/CMakeLists.txt | 2 +- .../nativelauncher/src/NativeLauncher.cpp | 1 - .../bluetooth/src/BluetoothEarPhoneView.cpp | 2 - .../bluetooth/src/BluetoothHeadsetEvent.cpp | 16 +- .../nativeui/bluetooth/src/BluetoothModel.cpp | 12 +- .../main/include/ModelListenerSample.h | 4 +- .../nativeui/main/include/PresenterTask.h | 22 -- .../nativeui/main/src/MainPresenterSample.cpp | 9 +- .../nativeui/main/src/ModelListenerSample.cpp | 7 +- .../nativeui/main/src/PresenterTask.cpp | 30 -- .../phoneservice/src/PhoneService.cpp | 7 +- .../nativeui/player/src/PlayersPresenter.cpp | 14 +- .../framework/src/test_case_list_adapter.cpp | 12 +- .../uitest/framework/src/ui_test_group.cpp | 2 + .../service/ble_service/bleservice/bleEvent.c | 4 +- .../service/msg_center/CMakeLists.txt | 14 +- .../brandy-auto-ota-cli/libmsg_center.a | Bin 93502 -> 85790 bytes .../brandy-auto-ota-ser/libmsg_center.a | Bin 93502 -> 85790 bytes .../brandy-native-js/libmsg_center.a | Bin 93502 -> 85790 bytes .../msg_center/brandy-xts/libmsg_center.a | Bin 93502 -> 85790 bytes .../include/common/msg_center_common.h | 26 ++ .../msg_center/include/msg_center_customer.h | 39 ++ .../msg_center/include/msg_center_protocol.h | 10 + .../src/common/msg_center_common.cpp | 51 +++ .../service/msg_center/src/msg_center_cmd.cpp | 18 +- .../msg_center/src/msg_center_customer.cpp | 99 ++++- .../at_service/ohosfwk/ohosfwk_at_process.cpp | 8 + .../config/target_config/brandy/config.py | 9 +- .../brandy/param_sector/param_sector_16M.json | 58 +++ .../param_sector/param_sector_fd230.json | 58 +++ code/sdk/build/script/cmake_builder.py | 10 +- .../memory_config/include/flash_16M.h | 184 +++++++++ .../memory_config/include/flash_16M_FD230.h | 173 +++++++++ .../memory_config/include/flash_8M.h | 184 +++++++++ .../include/memory_config_common.h | 188 +-------- .../product/product_evb4_standard.h | 24 ++ .../brandy/porting/systick/systick_porting.c | 7 +- .../drivers/drivers/driver/button/button.c | 359 ++++++++++++++++++ .../driver/mmc/host/sdhci/brandy/mmc_sdhci.c | 63 ++- .../drivers/driver/mmc/include/soc_mmc.h | 4 +- .../drivers/peripheral/ppg/hx3695/hx3695.c | 4 +- .../middleware/services/bts/common/bts_def.h | 25 ++ .../xml/base/closed_comp/app_style.cpp.xml | 18 +- .../base/closed_comp/app_style_item.cpp.xml | 16 +- .../closed_comp/app_style_manager.cpp.xml | 8 +- .../xml/base/closed_comp/btsrv_task.c.xml | 16 +- .../closed_comp/image_cache_manager.cpp.xml | 4 +- .../base/closed_comp/js_page_state.cpp.xml | 20 +- .../closed_comp/js_page_state_machine.cpp.xml | 42 +- .../xml/base/closed_comp/js_router.cpp.xml | 16 +- .../closed_comp/lite_m_gfx_engine.cpp.xml | 64 ++-- .../base/closed_comp/map_svg_parser.cpp.xml | 142 +++---- .../base/closed_comp/platform_adapter.cpp.xml | 6 +- .../xml/base/closed_comp/spp_service.c.xml | 100 ++--- .../closed_comp/ui_coverflow_view2.cpp.xml | 3 +- .../closed_comp/ui_icosahedron_view.cpp.xml | 2 +- .../xml/base/closed_comp/ui_map_view.cpp.xml | 4 +- .../base/closed_comp/ui_roller_view.cpp.xml | 22 +- .../base/closed_comp/ui_slipflow_view.cpp.xml | 3 + .../closed_comp/ui_transform_group.cpp.xml | 4 +- .../xml/base/dsp_core/core_sea.c.xml | 174 ++++----- .../build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml | 25 +- .../xml/base/bt_core/hci_core_ram.c.xml | 25 +- .../br/libbt_host_audio_manager_wrapper.a | Bin 45036 -> 45036 bytes .../freertos/br/libbt_host_brandy_service.a | Bin 774432 -> 777614 bytes .../evb_standard/freertos/br/libbt_host_sdk.a | Bin 717396 -> 717396 bytes .../br/libbt_host_audio_manager_wrapper.a | Bin 219544 -> 219544 bytes .../liteos/br/libbt_host_brandy_service.a | Bin 4652904 -> 4664522 bytes .../evb_standard/liteos/br/libbt_host_sdk.a | Bin 3293392 -> 3293392 bytes .../br/libbt_host_audio_manager_wrapper.a | Bin 0 -> 45036 bytes .../mini/br/libbt_host_brandy_service.a | Bin 774432 -> 777614 bytes .../liteos/mini/br/libbt_host_sdk.a | Bin 717508 -> 717508 bytes .../chips/brandy/dfx/include/log_def_app.h | 1 + .../chips/brandy/dfx/include/log_def_gui.h | 1 + .../chips/brandy/dfx/include/log_def_ohos.h | 2 + .../chips/brandy/nv/include/nv_config.h | 10 +- .../api/rm/brandy-auto-ota-cli/libgfx_rm.a | Bin 66136 -> 66136 bytes .../api/rm/brandy-auto-ota-ser/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-native-js-r/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-native-js/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-target1-r/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-target1/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-target3-r/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-target3/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-target4-r/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-target4/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-target5-r/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-target5/libgfx_rm.a | Bin 66136 -> 66136 bytes .../gpu/api/rm/brandy-xts/libgfx_rm.a | Bin 66136 -> 66136 bytes .../api/rm/testsuite-brandy-sdk/libgfx_rm.a | Bin 66136 -> 66136 bytes .../brandy-auto-ota-cli/libdisplay_gfx.a | Bin 54528 -> 54528 bytes .../brandy-auto-ota-ser/libdisplay_gfx.a | Bin 54528 -> 54528 bytes .../display/brandy-native-js/libdisplay_gfx.a | Bin 54528 -> 54528 bytes .../display/brandy-target1/libdisplay_gfx.a | Bin 54528 -> 54528 bytes .../display/brandy-target3/libdisplay_gfx.a | Bin 54528 -> 54528 bytes .../display/brandy-target5/libdisplay_gfx.a | Bin 54528 -> 54528 bytes .../hal/display/brandy-xts/libdisplay_gfx.a | Bin 54528 -> 54528 bytes .../gui/hal/display/src/display_gralloc.c | 7 +- .../brandy-target1/liblvgl_proprietary_mini.a | Bin 271676 -> 271676 bytes .../lvgl/brandy-target5/liblvgl_proprietary.a | Bin 277236 -> 277236 bytes .../src/misc/lv_turn_page_effect.c | 2 +- .../services/gui/uikit/CMakeLists.txt | 1 + .../uikit/brandy-auto-ota-cli/libuikit_ext.a | Bin 816684 -> 866220 bytes .../uikit/brandy-auto-ota-ser/libuikit_ext.a | Bin 816684 -> 866220 bytes .../gui/uikit/brandy-native-js/libuikit_ext.a | Bin 816684 -> 866220 bytes .../gui/uikit/brandy-target3/libuikit_ext.a | Bin 816684 -> 866220 bytes .../gui/uikit/brandy-xts/libuikit_ext.a | Bin 816684 -> 866220 bytes .../include/components/ui_cross_view.h | 2 + .../include/components/ui_hexagons_list.h | 2 +- .../include/components/ui_slipflow_view.h | 256 +++++++++++++ .../include/components/ui_transform_group.h | 8 + .../proprietary/include/dfx/dfx_frame_trace.h | 1 + .../proprietary/include/gfx_utils/mem_check.h | 58 +-- .../src/ui/frameworks/common/lite_surface.cpp | 2 +- .../components/ui_custom_hexagons_list.cpp | 2 +- .../components/ui_lite_surface_view.cpp | 12 +- .../engines/gfx/lite_m_gfx_engine.h | 12 +- .../src/utils/frameworks/hals/display_dev.cpp | 34 +- .../hals/lite_input_distributer.cpp | 15 + .../src/utils/frameworks/mem_check.cpp | 345 +++++------------ .../src/utils/frameworks/mem_custom.cpp | 3 - .../src/utils/innerkits/hals/display_dev.h | 2 + .../innerkits/hals/lite_input_distributer.h | 1 + .../gui/uikit/res/image_background_circle.bin | 3 + .../gui/uikit/res/kaleidoscope_circle.bin | 3 + .../services/gui/uikit/res/planet_circle.bin | 3 + .../services/gui/uikit/res/rainbow_circle.bin | 3 + .../ui_test_icosahedron.cpp | 4 +- .../ui_test_slipflow/ui_test_slipflow.cpp | 295 ++++++++++++++ .../ui_test_slipflow/ui_test_slipflow.h | 68 ++++ .../framework/src/test_case_list_adapter.cpp | 14 +- .../common/input_device_manager.cpp | 39 ++ .../gui/uikit/ui/frameworks/common/screen.cpp | 3 - .../components/ui_abstract_scroll.cpp | 2 +- .../ui/frameworks/components/ui_canvas.cpp | 157 ++++++-- .../ui/frameworks/components/ui_label.cpp | 1 - .../ui/frameworks/components/ui_list.cpp | 9 +- .../ui/frameworks/components/ui_qrcode.cpp | 4 - .../frameworks/components/ui_swipe_view.cpp | 4 + .../ui/frameworks/components/ui_view.cpp | 4 - .../ui/frameworks/dock/focus_manager.cpp | 2 + .../innerkits/common/input_device_manager.h | 21 + .../innerkits/dock/rotate_input_device.h | 5 + .../kits/components/ui_abstract_scroll.h | 10 + .../ui/interfaces/kits/components/ui_canvas.h | 137 ++++++- .../ui/interfaces/kits/components/ui_label.h | 8 +- .../ui/interfaces/kits/components/ui_view.h | 5 +- .../uikit/utils/frameworks/trans_affine.cpp | 130 +++++++ .../interfaces/kits/gfx_utils/graphic_math.h | 4 +- .../interfaces/kits/gfx_utils/image_info.h | 2 +- .../interfaces/kits/gfx_utils/trans_affine.h | 272 +++++++++++++ .../js/builtin/src/audio_player.cpp | 4 + .../sample/wrapper/video_play_wrapper.cpp | 16 +- ...deloader_execute_command_memory_commands.c | 62 ++- .../brandy-auto-ota-cli/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../brandy-auto-ota-ser/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../vfs/brandy-native-js-r/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../vfs/brandy-native-js/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../vfs/brandy-target1-r/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../fs/vfs/brandy-target1/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../vfs/brandy-target3-r/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../fs/vfs/brandy-target3/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../vfs/brandy-target4-r/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../fs/vfs/brandy-target4/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../vfs/brandy-target5-r/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../fs/vfs/brandy-target5/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../fs/vfs/brandy-xts-r/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../fs/vfs/brandy-xts/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../testsuite-brandy-sdk/libx_vfs_private.a | Bin 41532 -> 41532 bytes .../yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../yaffs2/brandy-native-js-r/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../fs/yaffs2/brandy-native-js/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../fs/yaffs2/brandy-target1-r/libfs_yaffs2.a | Bin 234872 -> 234872 bytes .../fs/yaffs2/brandy-target1/libfs_yaffs2.a | Bin 234872 -> 234872 bytes .../fs/yaffs2/brandy-target3-r/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../fs/yaffs2/brandy-target3/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../fs/yaffs2/brandy-target4-r/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../fs/yaffs2/brandy-target4/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../fs/yaffs2/brandy-target5-r/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../fs/yaffs2/brandy-target5/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../fs/yaffs2/brandy-xts-r/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a | Bin 235260 -> 235260 bytes .../testsuite-brandy-sdk/libfs_yaffs2.a | Bin 235264 -> 235264 bytes .../utils/nv/nv_storage_lib/nv_async_store.c | 26 +- .../utils/nv/nv_storage_lib/nv_async_store.h | 3 +- .../aafwk_lite/brandy-auto-ota-cli/libams.a | Bin 131244 -> 131244 bytes .../aafwk_lite/brandy-auto-ota-ser/libams.a | Bin 131244 -> 131244 bytes .../aafwk_lite/brandy-native-js/libams.a | Bin 131244 -> 131244 bytes .../aafwk/aafwk_lite/brandy-xts/libams.a | Bin 131244 -> 131244 bytes .../ace/ace_engine_lite/CMakeLists.txt | 2 + .../ace/ace_engine_lite/base/js_fwk_common.h | 4 +- .../brandy-auto-ota-cli/libace.a | Bin 503590 -> 504870 bytes .../brandy-auto-ota-ser/libace.a | Bin 503590 -> 504870 bytes .../ace_engine_lite/brandy-native-js/libace.a | Bin 503590 -> 504870 bytes .../ace/ace_engine_lite/brandy-xts/libace.a | Bin 503590 -> 504870 bytes .../components/canvas_component.cpp | 231 ++++++++++- .../components/canvas_component.h | 35 ++ .../ace_engine_lite/components/component.cpp | 5 + .../components/image_component.cpp | 5 + .../components/image_component.h | 3 +- .../modules/baidumapcomponent/baidumap.cpp | 322 +++++++++++----- .../modules/baidumapcomponent/baidumap.h | 5 + .../modules/network_module.cpp | 121 ++++++ .../ace_engine_lite/modules/network_module.h | 66 ++++ .../modules/ohos_module_config.h | 2 + .../modules/presets/image_module.cpp | 344 +++++++++++++++++ .../modules/presets/image_module.h | 146 +++++++ .../modules/presets/intl_module.cpp | 2 + .../brandy-auto-ota-cli/libbms.a | Bin 252436 -> 252436 bytes .../brandy-auto-ota-ser/libbms.a | Bin 252436 -> 252436 bytes .../appexecfwk_lite/brandy-native-js/libbms.a | Bin 252436 -> 252436 bytes .../appexecfwk_lite/brandy-xts/libbms.a | Bin 252436 -> 252436 bytes .../brandy-auto-ota-cli/libjerryscript.a | Bin 1309376 -> 1309376 bytes .../brandy-auto-ota-ser/libjerryscript.a | Bin 1309376 -> 1309376 bytes .../brandy-native-js/libjerryscript.a | Bin 1309376 -> 1309376 bytes .../jerryscript/brandy-xts/libjerryscript.a | Bin 1309376 -> 1309376 bytes .../br_profile/sample_hfp_hf_service.c | 24 +- .../bt_sample/br_profile/sample_spp_service.c | 20 +- .../bt/bts/bt_sample/bt_core/sample_bts_gap.c | 31 +- code/sdk/tools/pkg/bin/brandy/bt.bin | 4 +- .../tools/pkg/bin/brandy/dsp/max/dsp_main.bin | 2 +- .../pkg/bin/brandy/dsp/mini/dsp_main.bin | 2 +- .../pkg/bin/brandy/dsp/normal/dsp_main.bin | 2 +- .../tools/pkg/chip_packet/brandy/packet.py | 149 +++++++- code/sdk/tools/pkg/packet.py | 3 +- patch_602_0812_to_0911.txt | 49 +++ 241 files changed, 5001 insertions(+), 1367 deletions(-) delete mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/include/PresenterTask.h delete mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/src/PresenterTask.cpp delete mode 100755 code/sdk/application/wearable/nativeapp/nativeui/main/include/PresenterTask.h delete mode 100755 code/sdk/application/wearable/nativeapp/nativeui/main/src/PresenterTask.cpp create mode 100644 code/sdk/application/wearable/service/msg_center/include/common/msg_center_common.h create mode 100644 code/sdk/application/wearable/service/msg_center/include/msg_center_customer.h create mode 100644 code/sdk/application/wearable/service/msg_center/src/common/msg_center_common.cpp create mode 100644 code/sdk/build/config/target_config/brandy/param_sector/param_sector_16M.json create mode 100644 code/sdk/build/config/target_config/brandy/param_sector/param_sector_fd230.json create mode 100644 code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_16M.h create mode 100644 code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_16M_FD230.h create mode 100644 code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_8M.h create mode 100644 code/sdk/drivers/drivers/driver/button/button.c create mode 100644 code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_slipflow_view.cpp.xml create mode 100644 code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_audio_manager_wrapper.a create mode 100644 code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_slipflow_view.h create mode 100644 code/sdk/middleware/services/gui/uikit/res/image_background_circle.bin create mode 100644 code/sdk/middleware/services/gui/uikit/res/kaleidoscope_circle.bin create mode 100644 code/sdk/middleware/services/gui/uikit/res/planet_circle.bin create mode 100644 code/sdk/middleware/services/gui/uikit/res/rainbow_circle.bin create mode 100644 code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.cpp create mode 100644 code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.h create mode 100644 code/sdk/middleware/services/gui/uikit/utils/frameworks/trans_affine.cpp create mode 100644 code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/trans_affine.h create mode 100644 code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.cpp create mode 100644 code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.h create mode 100644 code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/image_module.cpp create mode 100644 code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/image_module.h create mode 100644 patch_602_0812_to_0911.txt diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index de8c7f7a5..f96632f5c 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -148,7 +148,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dropdown/DropDownCardPage1.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dropdown/DropDownCardPage2.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/ModelListenerSample.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PresenterTask.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/HealthModel.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PullUpDownView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/ConnectedStatusView.cpp @@ -555,6 +554,7 @@ set(SOURCES ${UI_SAMPLE_ROOT}/components/ui_test_keyboard/ui_test_keyboard.cpp ${UI_SAMPLE_ROOT}/components/ui_test_hexagons_list/ui_test_hexagons_list.cpp ${UI_SAMPLE_ROOT}/components/ui_test_coverflow/ui_test_coverflow.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_slipflow/ui_test_slipflow.cpp ${UI_SAMPLE_ROOT}/components/ui_test_kaleidoscope/ui_test_kaleidoscope.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialRotateImgView.cpp diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp index 0d0d0699c..15a3e0978 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp @@ -41,7 +41,6 @@ #include "BluetoothPresenter.h" #include "PlayersModel.h" #include "HealthModel.h" -#include "PresenterTask.h" #include "MainCompassPresenter.h" #include "MainCompassView.h" #include "CallerLogModel.h" @@ -479,7 +478,7 @@ namespace OHOS /*加载安全模式Slice*/ InitSafeModeSlice(); NativeAbility::GetInstance().SetDefaultSliceId(VIEW_SAFE_MODE); - PresenterTask::GetInstance()->Init(); + // PresenterTask::GetInstance()->Init(); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "safe_mode is enter!"); } else if (mode == LaunchMode::NORMAL_MODE) @@ -505,7 +504,7 @@ namespace OHOS InitBtHeadsetEvent(); // 蓝牙ct和tg适配初始化 InitAllNativeSlices(); CallerLogModel::GetInstance()->InitPhoneService(); - PresenterTask::GetInstance()->Init(); + // PresenterTask::GetInstance()->Init(); PlayersModel::GetInstance()->AudioInit(); ActivityModel::GetInstance()->Init(); ScreenModels::GetInstance()->InitKvStorage(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp index 00057bc20..cc25e6087 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp @@ -226,7 +226,7 @@ static bd_addr_t *BtAvrcpSrvGetActiveAddr(void) void ConnectTgStateChangedCallback(const bd_addr_t *bdAddr, profile_connect_state_t state) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "avrcp tg update conn stat:%u", state); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "avrcp tg update conn stat:%u", state); if (bdAddr == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bdaddr nullptr"); return; @@ -325,15 +325,19 @@ static void BtAvrcpCtSupportEventCallback(const bd_addr_t *bd_addr, avrcp_ct_sup WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "null pointer\n"); return; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "get event list:"); + for (uint8_t i = 0; i < event->event_num; i++) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " 0x%x ", event->event_id[i]); + if (event->event_id[i] == AVRCP_NOTIFY_EVENT_VOLUME_CHANGED) { + int ret = avrcp_ct_register_notification(bd_addr, event->event_id[i], 0); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x, ret = 0x%x", event->event_id[i], ret); + } } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "\n"); for (uint8_t i = 0; i < event->event_num; i++) { - avrcp_ct_register_notification(bd_addr, event->event_id[i], 0); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x\n", event->event_id[i]); + if (event->event_id[i] != AVRCP_NOTIFY_EVENT_VOLUME_CHANGED) { + int ret = avrcp_ct_register_notification(bd_addr, event->event_id[i], 0); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x, ret = 0x%x", event->event_id[i], ret); + } } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp index 68612e5ed..79067de38 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp @@ -655,6 +655,11 @@ void BluetoothModel::SetAdvStartState(bool state) int BluetoothModel::ConnectRemoteDevice(const bd_addr_t *addr) { + /* 恢厂后耳机连接要开启BT广播否则会导致AVRCP无法音量控制 */ + bool ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 60); + if (!ret) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectRemoteDevice gap_br_set_bt_scan_mode ret = 0x%x", ret); + } errcode_t retVal = gap_connect_remote_device(addr); (void)memcpy_s(&remoteConnectAddr, sizeof(bd_addr_t), addr, sizeof(bd_addr_t)); return retVal; @@ -785,7 +790,7 @@ void BtGapPairStatusChangedCallback(const bd_addr_t *bdAddr, int status) // } // uapi_a2dp_snk_connect(); // a2dp_snk_connect(bdAddr); - if(cm_custom_ble_service_on_flag() && !get_ble_pair()&& (status == GAP_PAIR_PAIRED)) + if(uapi_dev_runtime_get_bt_powerstat() && !get_ble_pair()&& (status == GAP_PAIR_PAIRED)) { send_pair_succ((bd_addr_t*)bdAddr); // if(cm_get_A2DP_switch() || cm_get_HFP_switch()) @@ -1075,13 +1080,15 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state, // ALC_connect_A2DP_flag=0; // } - if ((gap_get_device_class(bdAddr) & 0x200) != 0) { + static bd_addr_t gapAclConnectAddr{0}; /* 连接后保存手机地址,手表清除手机配对后查询不到class比较手机地址 */ + if ((gap_get_device_class(bdAddr) & 0x200) != 0 || memcmp(gapAclConnectAddr.addr, bdAddr->addr, BD_ADDR_LEN) == 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device"); if (state == GAP_ACL_STATE_DISCONNECTED) { /* 通知msg_center,ble状态仍用bt状态,此处不区分 */ SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0); SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0); } else if (state == GAP_ACL_STATE_CONNECTED) { + (void)memcpy_s(gapAclConnectAddr.addr, BD_ADDR_LEN, bdAddr->addr, BD_ADDR_LEN); SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0); SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0); } @@ -1134,7 +1141,8 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState) return; } if (connState == PROFILE_STATE_CONNECTED) { - avrcp_ct_connect(bdAddr); + uint32_t ret = avrcp_ct_connect(bdAddr); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "avrcp_ct_connect ret = 0x%x", ret); PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_CONNECTED); GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionSuss, *bdAddr)); SendMsgToUIService(EARPHONE_CONNECTED_TO_UI, 0, nullptr, 0); diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/ModelListenerSample.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/ModelListenerSample.h index b6d37a37d..9e14a5179 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/ModelListenerSample.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/ModelListenerSample.h @@ -19,13 +19,13 @@ #include "common/task.h" namespace OHOS { -class ModelListenerSample : public HeapBase { +class ModelListenerSample : public Task { public: ModelListenerSample(); virtual ~ModelListenerSample(); virtual void Notify(void) = 0; virtual void OnTickEvent(void) {}; - void Callback(); + void Callback() override; }; } #endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/PresenterTask.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/PresenterTask.h deleted file mode 100644 index e655268f6..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/PresenterTask.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. - * Description: Presenter task - * Create: 2021-12-22 - */ - -#ifndef PRESENTER_TASK_H -#define PRESENTER_TASK_H -#include "common/task.h" - -namespace OHOS { -class ModelListenerSample; -class PresenterTask : public Task { -public: - void SetModelListener(ModelListenerSample* listener); - void Callback() override; - static PresenterTask* GetInstance(); - void Init() override; - ModelListenerSample* taskListener{nullptr}; -}; -} -#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp index ba20d7952..679276216 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp @@ -21,7 +21,6 @@ #include #include #include "ModelDialDataFactory.h" -#include "PresenterTask.h" #include "DialModelTime.h" #include "DialModelPower.h" #include "heartrate/include/HeartModel.h" @@ -268,7 +267,7 @@ namespace OHOS { if (cardId == COMPASS) { - PresenterTask::GetInstance()->SetPeriod(DEFAULT_TASK_PERIOD); + SetPeriod(DEFAULT_TASK_PERIOD); } else if (cardId == WATCH_FACE) { @@ -282,15 +281,15 @@ namespace OHOS { time = DEFAULT_TASK_PERIOD; } - PresenterTask::GetInstance()->SetPeriod(time); + SetPeriod(time); } else if (cardId == MUSIC_PLAYER) { - PresenterTask::GetInstance()->SetPeriod(PLAYER_PERIOD); + SetPeriod(PLAYER_PERIOD); } else { - PresenterTask::GetInstance()->SetPeriod(MAX_PERIOD); + SetPeriod(MAX_PERIOD); } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/ModelListenerSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/ModelListenerSample.cpp index 060ada9b3..d0d35752d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/ModelListenerSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/ModelListenerSample.cpp @@ -15,21 +15,19 @@ */ #include "ModelListenerSample.h" -#include "PresenterTask.h" #include "wearable_log.h" -namespace OHOS +namespace OHOS { +ModelListenerSample::ModelListenerSample() { - ModelListenerSample::ModelListenerSample() - { - PresenterTask::GetInstance()->SetModelListener(this); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ModelListenerSample::ModelListenerSample"); - } - ModelListenerSample::~ModelListenerSample() - { - PresenterTask::GetInstance()->SetModelListener(nullptr); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ModelListenerSample::~ModelListenerSample"); - } + Init(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ModelListenerSample::ModelListenerSample"); +} +ModelListenerSample::~ModelListenerSample() +{ + Deinit(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ModelListenerSample::~ModelListenerSample"); +} void ModelListenerSample::Callback() { diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/PresenterTask.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/PresenterTask.cpp deleted file mode 100644 index 8707b3b26..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/PresenterTask.cpp +++ /dev/null @@ -1,29 +0,0 @@ - -#include "ModelListenerSample.h" -#include "PresenterTask.h" - -namespace OHOS { - -PresenterTask* PresenterTask::GetInstance() { - static PresenterTask PresenterTask; - return &PresenterTask; -} - -void PresenterTask::SetModelListener(ModelListenerSample* listener) -{ - taskListener = listener; -} - -void PresenterTask::Callback() -{ - if (taskListener != nullptr) { - taskListener->Callback(); - } -} - -void PresenterTask::Init() -{ - Task::Init(); -} - -} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp index c0bdf7d77..8dd9556f0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp @@ -401,10 +401,7 @@ static void AudioDn(void) // 建立音频下行通路 AudioDnStart(); - if (g_audioState == AUDIO_STREAM_START_DN) { - // 同步音量 - SyncVolume(); - } + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[AudioDn] audioState:%d", g_audioState); } @@ -712,6 +709,8 @@ static void ScoStateChanged(const bd_addr_t *bdAddr, hfp_sco_connect_state_t sta } break; case HFP_SCO_STATE_CONNECTED: + // 同步音量 + SyncVolume(); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO connected!"); break; diff --git a/code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersPresenter.cpp index 3d5c1cb4d..de3a7f0cc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersPresenter.cpp @@ -769,13 +769,15 @@ void PlayerCallbackImpl::OnPlaybackComplete() { // 此处实现代码用于处理文件播放完成的事件 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnPlaybackCompleten"); - PlayersView *playersView = PlayersView::GetInstance(); - if (playersView != nullptr) { - if (playersView->GetPlaybackProgress() != nullptr) { - playersView->GetPlaybackProgress()->SetValue(100); // 100:进度100% - playersView->GetPlaybackProgress()->Invalidate(); + GraphicService::GetInstance()->PostGraphicEvent([] { + PlayersView *playersView = PlayersView::GetInstance(); + if (playersView != nullptr) { + if (playersView->GetPlaybackProgress() != nullptr) { + playersView->GetPlaybackProgress()->SetValue(100); // 100:进度100% + playersView->GetPlaybackProgress()->Invalidate(); + } } - } + }); usleep(20000); GraphicService::GetInstance()->PostGraphicEvent(std::bind(&PlayersModel::PlaySwitching, PlayersModel::GetInstance())); } diff --git a/code/sdk/application/wearable/fd230app/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp b/code/sdk/application/wearable/fd230app/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp index d4562b6d5..d352da9c2 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp @@ -79,13 +79,13 @@ public: tempView->SetViewId(view.GetViewId()); tempView->SetPosition(tempView->GetX(), tempView->GetY()); rootView->Add(tempView); - if (backBtn_ == nullptr) { - backBtn_ = new TransparentBackButton(); - backBtn_->SetPosition(0, 202, 50, 50); // 0: x position, 202: y position, 50: width and height - } - backBtn_->SetViewId(view.GetViewId()); - rootView->Add(backBtn_); } + if (backBtn_ == nullptr) { + backBtn_ = new TransparentBackButton(); + backBtn_->SetPosition(0, 202, 50, 50); // 0: x position, 202: y position, 50: width and height + } + backBtn_->SetViewId(view.GetViewId()); + rootView->Add(backBtn_); rootView->Invalidate(); return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/uisample/uitest/framework/src/ui_test_group.cpp b/code/sdk/application/wearable/fd230app/nativeui/uisample/uitest/framework/src/ui_test_group.cpp index 3e4da3ccf..326a0fb6b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/uisample/uitest/framework/src/ui_test_group.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/uisample/uitest/framework/src/ui_test_group.cpp @@ -31,6 +31,7 @@ #include "ui_test_hexagons_list/ui_test_hexagons_list.h" #include "ui_test_video_play/ui_test_video_play.h" #include "ui_test_coverflow/ui_test_coverflow.h" +#include "ui_test_slipflow/ui_test_slipflow.h" #include "ui_test_kaleidoscope/ui_test_kaleidoscope.h" namespace OHOS { @@ -57,6 +58,7 @@ void UITestGroup::SetUpTestCase() testCaseList_->PushBack(TestCaseInfo{"消息", new UITestMessage()}); testCaseList_->PushBack(TestCaseInfo{"呼吸效果", new UITestBreath()}); testCaseList_->PushBack(TestCaseInfo{"覆盖流", new UITestCoverflow()}); + testCaseList_->PushBack(TestCaseInfo{"滑动流", new UITestSlipflow()}); testCaseList_->PushBack(TestCaseInfo{"万花筒", new UITestKaleidoscope()}); #if ENABLE_VGU_ENGINE && CAPABILITY_HWDRAW_PATH diff --git a/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp b/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp index f62809ed4..d2fed7123 100755 --- a/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp +++ b/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp @@ -67,7 +67,7 @@ namespace OHOS { return; } - InputDeviceManager::GetInstance()->ClearPressableViews(); + InputDeviceManager::GetInstance()->ClearInputDeviceState(); Slice *nextSlice = node->value_.proxy->CreateSlice(); if (nextSlice == nullptr) { @@ -143,18 +143,38 @@ namespace OHOS return; } */ - if (osal_atomic_read(&transitionCount_) <= 0) - { - osal_atomic_inc(&transitionCount_); - // onStop释放当前页面需要和当前页面的事件监听异步执行,否则会出现自己杀掉自己的情况 - // 使用图形服务的PostGraphicEvent方法异步执行PostChangeSlice,以避免在页面事件监听时出现当前页面自我销毁的情况。 - GraphicService::GetInstance()->PostGraphicEvent(std::bind(&Ability::PostChangeSlice, this, targetSliceId, - type, priority)); - } + + if (type == TransitionType::TRANSITION_INVALID) { + GraphicService::GetInstance()->PostGraphicEvent(std::bind(&Ability::PostChangeSlice, this, targetSliceId, + type, priority)); + } else { + if (osal_atomic_read(&transitionCount_) <= 0) { + osal_atomic_inc(&transitionCount_); + // onStop释放当前页面需要和当前页面的事件监听异步执行,否则会出现自己杀掉自己的情况 + // 使用图形服务的PostGraphicEvent方法异步执行PostChangeSlice,以避免在页面事件监听时出现当前页面自我销毁的情况。 + GraphicService::GetInstance()->PostGraphicEvent(std::bind(&Ability::PostChangeSlice, this, targetSliceId, + type, priority)); + } else { + GRAPHIC_LOGE("ChangeSlice failed! targetSliceId = %u, transitionCount_ = %d", + targetSliceId, osal_atomic_read(&transitionCount_)); + } + } } void Ability::PostChangeSlice(const uint16_t targetSliceId, TransitionType type, const uint16_t priority) { + +#ifdef JS_ENABLE + ElementName *elementName = OHOS::AbilityMsClient::GetInstance().GetTopAbility(); + if (elementName != nullptr && strcmp(elementName->bundleName, "com.huawei.launcher") != 0) { + OHOS::AbilityMsClient::GetInstance().ForceStop(elementName->bundleName); + targetSliceIdFromJS_ = targetSliceId; + if (type != TransitionType::TRANSITION_INVALID) { + osal_atomic_dec(&transitionCount_); + } + return; + } +#endif /* 1.首先检查当前Slice是否存在,并验证transitionId的有效性。 如果当前存在一个有效的Slice,并且transitionId合法,则调用sliceTransition_的SaveCurrentSnapshot方法保存当前Slice的快照, @@ -183,6 +203,7 @@ namespace OHOS if (!sliceTransition_.SaveCurrentSnapshot(curSlice_.slice->GetSliceContainer())) { useTransition = false; + osal_atomic_dec(&transitionCount_); } StopSlice(); } @@ -196,16 +217,7 @@ namespace OHOS printf("*******************next slice id is %d*****************\r\n", targetSliceId); #endif // slice页面跳转,先onstop,再onstart.在一个线程同步执行绘制,不会出现闪屏现象 -#ifdef JS_ENABLE - ElementName *elementName = OHOS::AbilityMsClient::GetInstance().GetTopAbility(); - if (elementName != nullptr && strcmp(elementName->bundleName, "com.huawei.launcher") != 0) - { - OHOS::AbilityMsClient::GetInstance().ForceStop(elementName->bundleName); - targetSliceIdFromJS_ = targetSliceId; - osal_atomic_dec(&transitionCount_); - return; - } -#endif + /* 调用StartSlice函数以启动新的指定的Slice。 StartSlice函数内部会先检查是否存在目标Slice的Proxy,并通过Proxy创建新的实例, @@ -223,11 +235,7 @@ namespace OHOS { sliceTransition_.Transition(prevSlice_.slice->GetSliceContainer(), curSlice_.slice->GetSliceContainer()); } - } - else - { - osal_atomic_dec(&transitionCount_); - } + } } void Ability::OnTransitionEnd() diff --git a/code/sdk/application/wearable/nativeapp/CMakeLists.txt b/code/sdk/application/wearable/nativeapp/CMakeLists.txt index 85ce56bac..3dfc09e48 100755 --- a/code/sdk/application/wearable/nativeapp/CMakeLists.txt +++ b/code/sdk/application/wearable/nativeapp/CMakeLists.txt @@ -99,7 +99,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/MainModel.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/MainPresenterSample.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/ModelListenerSample.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PresenterTask.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/HealthModel.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PullUpDownView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/AppItemView.cpp @@ -274,6 +273,7 @@ set(SOURCES ${UI_SAMPLE_ROOT}/components/ui_test_keyboard/ui_test_keyboard.cpp ${UI_SAMPLE_ROOT}/components/ui_test_hexagons_list/ui_test_hexagons_list.cpp ${UI_SAMPLE_ROOT}/components/ui_test_coverflow/ui_test_coverflow.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_slipflow/ui_test_slipflow.cpp ${UI_SAMPLE_ROOT}/components/ui_test_kaleidoscope/ui_test_kaleidoscope.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialRotateImgView.cpp diff --git a/code/sdk/application/wearable/nativeapp/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/nativeapp/nativelauncher/src/NativeLauncher.cpp index 034db97eb..476286256 100755 --- a/code/sdk/application/wearable/nativeapp/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/nativeapp/nativelauncher/src/NativeLauncher.cpp @@ -40,7 +40,6 @@ #include "BluetoothPresenter.h" #include "PlayersModel.h" #include "HealthModel.h" -#include "PresenterTask.h" #include "MainCompassPresenter.h" #include "MainCompassView.h" #include "CallerLogModel.h" diff --git a/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp b/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp index c3e8a5204..c5773ba61 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp @@ -228,8 +228,6 @@ void BluetoothEarPhoneView::BtEnable() WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothEarPhoneView::BtEnable Bt is Discovering"); return; } else { - results = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_br_set_bt_scan_mode results %d", results); results = gap_br_set_inquiry_paramters(DEVICE_MAJOR_CLASS_AUDIO_VIDEO, 0); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_br_set_inquiry_paramters results %d", results); results = gap_br_start_discovery(); diff --git a/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp b/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp index 00057bc20..cc25e6087 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp @@ -226,7 +226,7 @@ static bd_addr_t *BtAvrcpSrvGetActiveAddr(void) void ConnectTgStateChangedCallback(const bd_addr_t *bdAddr, profile_connect_state_t state) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "avrcp tg update conn stat:%u", state); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "avrcp tg update conn stat:%u", state); if (bdAddr == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bdaddr nullptr"); return; @@ -325,15 +325,19 @@ static void BtAvrcpCtSupportEventCallback(const bd_addr_t *bd_addr, avrcp_ct_sup WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "null pointer\n"); return; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "get event list:"); + for (uint8_t i = 0; i < event->event_num; i++) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " 0x%x ", event->event_id[i]); + if (event->event_id[i] == AVRCP_NOTIFY_EVENT_VOLUME_CHANGED) { + int ret = avrcp_ct_register_notification(bd_addr, event->event_id[i], 0); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x, ret = 0x%x", event->event_id[i], ret); + } } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "\n"); for (uint8_t i = 0; i < event->event_num; i++) { - avrcp_ct_register_notification(bd_addr, event->event_id[i], 0); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x\n", event->event_id[i]); + if (event->event_id[i] != AVRCP_NOTIFY_EVENT_VOLUME_CHANGED) { + int ret = avrcp_ct_register_notification(bd_addr, event->event_id[i], 0); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "register event_id: 0x%x, ret = 0x%x", event->event_id[i], ret); + } } } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp b/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp index 55620f999..57bdeff22 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp @@ -503,6 +503,11 @@ void BluetoothModel::SetAdvStartState(bool state) int BluetoothModel::ConnectRemoteDevice(const bd_addr_t *addr) { + /* 恢厂后耳机连接要开启BT广播否则会导致AVRCP无法音量控制 */ + bool ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 60); + if (!ret) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectRemoteDevice gap_br_set_bt_scan_mode ret = 0x%x", ret); + } errcode_t retVal = gap_connect_remote_device(addr); (void)memcpy_s(&remoteConnectAddr, sizeof(bd_addr_t), addr, sizeof(bd_addr_t)); return retVal; @@ -845,13 +850,15 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state, WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "addr: %02x%02x%02x%02x%02x%02x", bdAddr->addr[5], bdAddr->addr[4], bdAddr->addr[3], /* mac下标 0 1 2 3 4 5 */ bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */ - if ((gap_get_device_class(bdAddr) & 0x200) != 0) { + static bd_addr_t gapAclConnectAddr{0}; /* 连接后保存手机地址,手表清除手机配对后查询不到class比较手机地址 */ + if ((gap_get_device_class(bdAddr) & 0x200) != 0 || memcmp(gapAclConnectAddr.addr, bdAddr->addr, BD_ADDR_LEN) == 0) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device"); if (state == GAP_ACL_STATE_DISCONNECTED) { /* 通知msg_center,ble状态仍用bt状态,此处不区分 */ SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0); SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0); } else if (state == GAP_ACL_STATE_CONNECTED) { + (void)memcpy_s(gapAclConnectAddr.addr, BD_ADDR_LEN, bdAddr->addr, BD_ADDR_LEN); SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0); SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0); } @@ -904,7 +911,8 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState) return; } if (connState == PROFILE_STATE_CONNECTED) { - avrcp_ct_connect(bdAddr); + uint32_t ret = avrcp_ct_connect(bdAddr); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "avrcp_ct_connect ret = 0x%x", ret); PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_CONNECTED); GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionSuss, *bdAddr)); } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/include/ModelListenerSample.h b/code/sdk/application/wearable/nativeapp/nativeui/main/include/ModelListenerSample.h index 6444c4fe6..3484cb6e8 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/include/ModelListenerSample.h +++ b/code/sdk/application/wearable/nativeapp/nativeui/main/include/ModelListenerSample.h @@ -19,13 +19,13 @@ #include "common/task.h" namespace OHOS { -class ModelListenerSample : public HeapBase { +class ModelListenerSample : public Task { public: ModelListenerSample(); virtual ~ModelListenerSample(); virtual void Notify(void) = 0; virtual void OnTickEvent(void) {}; - void Callback(); + void Callback() override; }; } #endif diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/include/PresenterTask.h b/code/sdk/application/wearable/nativeapp/nativeui/main/include/PresenterTask.h deleted file mode 100755 index e655268f6..000000000 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/include/PresenterTask.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. - * Description: Presenter task - * Create: 2021-12-22 - */ - -#ifndef PRESENTER_TASK_H -#define PRESENTER_TASK_H -#include "common/task.h" - -namespace OHOS { -class ModelListenerSample; -class PresenterTask : public Task { -public: - void SetModelListener(ModelListenerSample* listener); - void Callback() override; - static PresenterTask* GetInstance(); - void Init() override; - ModelListenerSample* taskListener{nullptr}; -}; -} -#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp index adc642470..23ca42c2e 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp @@ -21,7 +21,6 @@ #include #include #include "ModelDialDataFactory.h" -#include "PresenterTask.h" #include "DialModelTime.h" #include "DialViewGroup.h" #include "ui_service.h" @@ -154,7 +153,7 @@ void MainPresenterSample::SetPage(int8_t id) void MainPresenterSample::SetTaskPeroid(CardId cardId) { if (cardId == COMPASS) { - PresenterTask::GetInstance()->SetPeriod(DEFAULT_TASK_PERIOD); + SetPeriod(DEFAULT_TASK_PERIOD); } else if (cardId == WATCH_FACE) { uint32_t time; DialSetting &setting = GetDialSetting(); @@ -163,11 +162,11 @@ void MainPresenterSample::SetTaskPeroid(CardId cardId) } else { time = DEFAULT_TASK_PERIOD; } - PresenterTask::GetInstance()->SetPeriod(time); + SetPeriod(time); } else if (cardId == MUSIC_PLAYER) { - PresenterTask::GetInstance()->SetPeriod(PLAYER_PERIOD); + SetPeriod(PLAYER_PERIOD); } else { - PresenterTask::GetInstance()->SetPeriod(MAX_PERIOD); + SetPeriod(MAX_PERIOD); } } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/ModelListenerSample.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/ModelListenerSample.cpp index ab4844c3d..26c67fb1f 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/src/ModelListenerSample.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/main/src/ModelListenerSample.cpp @@ -14,20 +14,17 @@ */ #include "ModelListenerSample.h" -#include "PresenterTask.h" #include "wearable_log.h" namespace OHOS { ModelListenerSample::ModelListenerSample() { - PresenterTask::GetInstance()->SetModelListener(this); - PresenterTask::GetInstance()->Init(); + Init(); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ModelListenerSample::ModelListenerSample"); } ModelListenerSample::~ModelListenerSample() { - PresenterTask::GetInstance()->Deinit(); - PresenterTask::GetInstance()->SetModelListener(nullptr); + Deinit(); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ModelListenerSample::~ModelListenerSample"); } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/PresenterTask.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/PresenterTask.cpp deleted file mode 100755 index 1b1c61930..000000000 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/src/PresenterTask.cpp +++ /dev/null @@ -1,30 +0,0 @@ - -#include "ModelListenerSample.h" -#include "PresenterTask.h" - -namespace OHOS { - -PresenterTask* PresenterTask::GetInstance() -{ - static PresenterTask PresenterTask; - return &PresenterTask; -} - -void PresenterTask::SetModelListener(ModelListenerSample* listener) -{ - taskListener = listener; -} - -void PresenterTask::Callback() -{ - if (taskListener != nullptr) { - taskListener->Callback(); - } -} - -void PresenterTask::Init() -{ - Task::Init(); -} - -} \ No newline at end of file diff --git a/code/sdk/application/wearable/nativeapp/nativeui/phoneservice/src/PhoneService.cpp b/code/sdk/application/wearable/nativeapp/nativeui/phoneservice/src/PhoneService.cpp index 9e1920f84..091647ea8 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/phoneservice/src/PhoneService.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/phoneservice/src/PhoneService.cpp @@ -390,10 +390,7 @@ static void AudioDn(void) // 建立音频下行通路 AudioDnStart(); - if (g_audioState == AUDIO_STREAM_START_DN) { - // 同步音量 - SyncVolume(); - } + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[AudioDn] audioState:%d", g_audioState); } @@ -674,6 +671,8 @@ static void ScoStateChanged(const bd_addr_t *bdAddr, hfp_sco_connect_state_t sta } break; case HFP_SCO_STATE_CONNECTED: + // 同步音量 + SyncVolume(); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO connected!"); break; diff --git a/code/sdk/application/wearable/nativeapp/nativeui/player/src/PlayersPresenter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/player/src/PlayersPresenter.cpp index 98510eb9e..6ee51a489 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/player/src/PlayersPresenter.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/player/src/PlayersPresenter.cpp @@ -660,13 +660,15 @@ void PlayerCallbackImpl::OnPlaybackComplete() { // 此处实现代码用于处理文件播放完成的事件 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnPlaybackCompleten"); - PlayersView *playersView = PlayersView::GetInstance(); - if (playersView != nullptr) { - if (playersView->GetPlaybackProgress() != nullptr) { - playersView->GetPlaybackProgress()->SetValue(100); // 100:进度100% - playersView->GetPlaybackProgress()->Invalidate(); + GraphicService::GetInstance()->PostGraphicEvent([] { + PlayersView *playersView = PlayersView::GetInstance(); + if (playersView != nullptr) { + if (playersView->GetPlaybackProgress() != nullptr) { + playersView->GetPlaybackProgress()->SetValue(100); // 100:进度100% + playersView->GetPlaybackProgress()->Invalidate(); + } } - } + }); usleep(20000); GraphicService::GetInstance()->PostGraphicEvent(std::bind(&PlayersModel::PlaySwitching, PlayersModel::GetInstance())); } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp index d4562b6d5..d352da9c2 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp @@ -79,13 +79,13 @@ public: tempView->SetViewId(view.GetViewId()); tempView->SetPosition(tempView->GetX(), tempView->GetY()); rootView->Add(tempView); - if (backBtn_ == nullptr) { - backBtn_ = new TransparentBackButton(); - backBtn_->SetPosition(0, 202, 50, 50); // 0: x position, 202: y position, 50: width and height - } - backBtn_->SetViewId(view.GetViewId()); - rootView->Add(backBtn_); } + if (backBtn_ == nullptr) { + backBtn_ = new TransparentBackButton(); + backBtn_->SetPosition(0, 202, 50, 50); // 0: x position, 202: y position, 50: width and height + } + backBtn_->SetViewId(view.GetViewId()); + rootView->Add(backBtn_); rootView->Invalidate(); return true; } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/uisample/uitest/framework/src/ui_test_group.cpp b/code/sdk/application/wearable/nativeapp/nativeui/uisample/uitest/framework/src/ui_test_group.cpp index 3e4da3ccf..326a0fb6b 100755 --- a/code/sdk/application/wearable/nativeapp/nativeui/uisample/uitest/framework/src/ui_test_group.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/uisample/uitest/framework/src/ui_test_group.cpp @@ -31,6 +31,7 @@ #include "ui_test_hexagons_list/ui_test_hexagons_list.h" #include "ui_test_video_play/ui_test_video_play.h" #include "ui_test_coverflow/ui_test_coverflow.h" +#include "ui_test_slipflow/ui_test_slipflow.h" #include "ui_test_kaleidoscope/ui_test_kaleidoscope.h" namespace OHOS { @@ -57,6 +58,7 @@ void UITestGroup::SetUpTestCase() testCaseList_->PushBack(TestCaseInfo{"消息", new UITestMessage()}); testCaseList_->PushBack(TestCaseInfo{"呼吸效果", new UITestBreath()}); testCaseList_->PushBack(TestCaseInfo{"覆盖流", new UITestCoverflow()}); + testCaseList_->PushBack(TestCaseInfo{"滑动流", new UITestSlipflow()}); testCaseList_->PushBack(TestCaseInfo{"万花筒", new UITestKaleidoscope()}); #if ENABLE_VGU_ENGINE && CAPABILITY_HWDRAW_PATH diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c index 4c527aded..126a7c8d0 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -2208,12 +2208,12 @@ uint8_t parse_jsonCheck_weather(uint8_t *buf,uint8_t *check)//json 格式解析 } - if( cm_custom_ble_service_on_flag() && cm_get_HFP_switch()) + if( uapi_dev_runtime_get_bt_powerstat() && cm_get_HFP_switch()) uapi_pbap_cmd_start_client(); bd_addr_t bdaddr={0}; uapi_get_br_address(&bdaddr); - if( cm_custom_ble_service_on_flag() && (cm_get_HFP_switch()||cm_get_A2DP_switch())) + if( uapi_dev_runtime_get_bt_powerstat() && (cm_get_HFP_switch()||cm_get_A2DP_switch())) { if (false==bt_is_acl_connected(&bdaddr)) { diff --git a/code/sdk/application/wearable/service/msg_center/CMakeLists.txt b/code/sdk/application/wearable/service/msg_center/CMakeLists.txt index 7d580d33b..a388cb1f5 100644 --- a/code/sdk/application/wearable/service/msg_center/CMakeLists.txt +++ b/code/sdk/application/wearable/service/msg_center/CMakeLists.txt @@ -59,17 +59,16 @@ set(PRIVATE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/../../nativeapp/nativelauncher/include ) endif() -if("JS_ENABLE" IN_LIST DEFINES) set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/msg_center.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/notify/notification_manager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/jsi_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/msg_center_protocol.cpp ) -else() + +if("JS_ENABLE" IN_LIST DEFINES) set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/src/msg_center.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/notify/notification_manager.cpp + ${SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/jsi_utils.cpp ) endif() @@ -118,6 +117,8 @@ set(PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/vendor_app ${CMAKE_CURRENT_SOURCE_DIR}/include/ota + ${CMAKE_CURRENT_SOURCE_DIR}/include/hc_demo + ${CMAKE_CURRENT_SOURCE_DIR}/include/common ) if("FD230" IN_LIST DEFINES) @@ -147,7 +148,6 @@ set(PRIVATE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/../../fd230app/nativeui/bluetooth/include ${CMAKE_CURRENT_SOURCE_DIR}/../../fd230app/nativelauncher/include ${CMAKE_CURRENT_SOURCE_DIR}/../../fd230app/nativeui/goal/include - # ${CMAKE_CURRENT_SOURCE_DIR}/../../fd230app/nativelauncher/include ${CMAKE_CURRENT_SOURCE_DIR}/../../ohos_deps ${CMAKE_CURRENT_SOURCE_DIR}/../../CustomUIComponentTool/uicomponents/ ${ROOT_DIR}/middleware/services/gui/uikit/proprietary/include @@ -182,6 +182,7 @@ set(PRIVATE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/../../nativeapp/nativeui/main/include ${CMAKE_CURRENT_SOURCE_DIR}/../../nativeapp/nativeui/player/include ${CMAKE_CURRENT_SOURCE_DIR}/../../nativeapp/nativeui/bluetooth/include + ${CMAKE_CURRENT_SOURCE_DIR}/../../nativeapp/nativeui/key/include ${CMAKE_CURRENT_SOURCE_DIR}/../../nativeapp/nativelauncher/include ${CMAKE_CURRENT_SOURCE_DIR}/../../ohos_deps ${CMAKE_CURRENT_SOURCE_DIR}/../../CustomUIComponentTool/uicomponents/ @@ -223,6 +224,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/notify/message_notification.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/notify/sleep_notification.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/notify/motion_recognition_notification.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/common/msg_center_common.cpp ) else() set(SOURCES diff --git a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a index 25f166fc02137c78aa09d4458b228be2cb52e708..1587d8f7d2a3595be159a49d98e5300c028d8aa3 100644 GIT binary patch delta 10518 zcmbtadvH|OeLi=!TEt6;73`wBi?n)xd91{05i5zOKmz1g2nB46fU?2{g9FACG;#cx zSxg+;L$FJIXfAPp5P}mswSh#gaUItsjni@6w4tu;acyTz8a$J6JY(!+I&Oxf{l0t7 zPh8gZ^bdZ+x##=7-+A0~?zv~r{fU>}ETFB3zW15-p;UNOh5pIJ9`BcHoXPX<*t0c%>z18^TXyI7Y#GeovSUmB);o9Z%xasJ{}vbpN%clrSZx7lUSv$i&xf}rIAaenlsI_ zuUs=ZE{gU{OD3gH_g`0eX0lQxSRE}$N=;J@s($E=c$L#K^NA-aMlUN3eSHK{RcXof zOVu~yD7lrzhfz>XeN!K+Ix@6Bx!W0fxY~2{<<$FncVATRuj}%DwbJ=3UHGV056;Ne zRQR1K)q^~w!m8Ht4&;t<^$$O)@h^JsK7+E*!tJ{{)y@XTOy3yQSqYkaW%p* z5^va1RYm?PRSrLWoEb+Is#F{T)~MnLSYaXfPT&=mBOA67<*McI{}@Um63h32{{}c} z`JaQ+%nc+BvDXrnRQJID2k_ZQP5}*k6+$DDO9A|8V0OXWJ{1HXt=W_b!T_%e9L^6B8e2hV{Q*g+P;3?wcZ^4o#uBF(oP*|3$U8np+$ zFAOVTbuTz)&{#x$6?{;rim0!HZwzn^e!%bovWWT?gvSE~z6-u=n3t))2JZ{-A@B_W z{$p^i4`ZX$PrHHy@GCb|sls@JPX+vAz+VXPiQq@br}|>0nhfF9K!K^?O~ZVme&g<%mXvCOD#nM^ zQN&jl@vSBL(;3Ol5w)+#aj1wNE8=-94;r6Z6btEek^i5H`1>XL$(hN*D0R8WQNq{M z8t-^i5w9%blZtp_5noiqR|ok-bg(@rfZrP)n$+|&M=#2BIIa5r%q;J&o1L-VJB~9} zAH2UzxAoSJ=xN$BxVx!Y-`3nQa*k^1S+XRX&*|5j8<*wsS)aG%TWsFkY=J4*mTwnF z#)38xX8WK$pVhy}9?|K#q<(F7T)&sQS^u(iq0_CCZOaR_W^Pi*xF66OkP=oW7M;r> zdOa>MV$t~;yY_V?7JV*o!s^7LF9D9;fD3aHad7ib&+-P=JGn@V&TgG)k5}0(G!-c6 z-(r;>fY)wE+)bq&zNv}H`e1w9N$7J&{VPf)A;Y+&q~tBYiKM=SlD)cY?s8{^?wcFG zX(h{<9YIQR!0C)H`&&=C+29+IHD(Rw8{cRv@MZ37F?u;Nw?=1<#@s}Wk+@e&(;TXs z(gzpCLWz_fcsy2!_L@@Ffl>>BqhB;SvDEISzRKvtqVvY0tBp=9ItS7<$LPH8EVngUFdh>%~OD3yj^i~+jQ%x znk`iH4d97--PaMX;?sr=Ac=P~aH2u)?T8obTx|<@xwX#c&nJvnYVn~|+J{RlI-hI0 z4Hp;}QraF$)&Mth>B4p)HO}*)dK6jbe1jul;hB3 z_fMt2iqi!vLz1q`fh%wF25OzSw|%`cvzO02%8p^d=g)hL-t5c%52-ZZuM7Lz6I>U| zP}H5KFFhW2rs=&WV-Ec=)|IPrlPio;H({i?(#{) zh^72-;DptQML!AbPR9jSAQ8utzzORh7X1{kyb8pkzX&Xkmss>yf#vZMiyi~+;@rUa z2-1s`|Ff(3$kQFTz&OCh#XeN~k)^pa!5&4b==7m_9$DiegI`A0*=6tqWbVu>SUR2r zDPeVD(UV+dZrW5x1{^8igw=_q0`FR8f>?Ae3b#?8TN*F$Gze=!5^o!@^g=B9d|>H? zSagn9dLb6QkNSFCV8o(x6H70ps+9i54dZu?F*uCODL0sF-Kj8`Zikg%9JRB-hbl#E z&-o3+8;w4Vm~#u`{W~LkXpV(3rE8z*()~Sm>#@BfhZe3#IePWV?|PxzoeR2rRm0fL zIO|_T1#VSgy=Ya!*{j#Dx^8SY?trIL>Jj}Hs}iMkU>o)6RrO=T=uPUB>GxJ8LVNLz zvuf(t-@tLeRvM*etxiOeA%(9I-M6}~Fo*@lC&3muMvkBPyGW>m^QAE!aYtFq4AeJ% z00hgmz`^ArCgq|i#I`%E<0SfRz`Nvk%r775_@<%;dp@T@emMjid<6}5qn%nLekna19Fb3rvhRMdQZ~ zF;^fhAMpluII-vfs~Z&`^bzmi?a+@v$6$5^^fNmgEOE4dsZ^;tIJ$LBeOlo2){HFT)Ix77KX{`JPAp{3)7_T_KA+Xf_BuY@8@Si%G(nlrQK zwIpDsP;1&NE=)aKo6Tt@mfV>vZ zk_(@_8aRitZ<6N-Sv9Pob#@CD!>1o%?$mkj6guTU!>d>AOO z2K;h>=fPjVD2zqbR`72G_?_VU0{pJ4>PJ-p{9gn9hrl_j{GEVB)jpz&y|d)6IJ&Y6?mwKKT^bX5kFeQPZseX6!9}b-hfd(7ZkwH z*gIV3-{A!HcV6onXIg1~T~9Wv$Hw9*qSmc>6R^I6;q0qJ+4}U}I3wPp&+c90{KzRt z&?1-5`4Na*-h?D_Hdc|#w_3f~#4K|8W)tRUwVqa6vo&v`9Ibg1%V@PNwdQTjE8&mf zs7I#S#y?CaZMKOv+eDl9i?zyxzy!hre>UQA-!xC!_Xj zmRR%$0y?qi+y|vRvFIm&=i5z|SafcKm3_Ft){%&VH=VZM8$3UCHQ~Y>sd1JM{ZIVP zjKN=~-fZv>kagNaR~UF+8Ar!q!Gfb31MXJ(vVWMC&MP1#tWGRC4(Q6|1;$MDNx%uK z6N{b%j&iPHGf2eI06gE`5V7bH;CW>_voz+q_Ute!;O2gjh#|-mui`lq#uXx!Ss@W; zj3>Lmw#{cQ?i8@x46*3`42^!QJr-Ip8Zm`fXdX!1vH0^A1|NrOdm)zAIPD3m6N}DS zkiZ_X=mXSk7=>8$oz&Oh0xOV+;~rp%Q4ov%Ah63hh7pUtA2?xkV$mN3b~!&VV$mN1 zPFS57dOb1|evtV)VjRByJzU)?ucF?G;}0#qaREwur|7or5sUsKVCjcg^yh%38)DI4 zrhYRnFk;bv4(#$Y2`i9@<2-P}I*3Jo9awINSoF78-rgv&=of(HhKNP~5LjMmV(9*_ zzkkw@clvUm0^9DgwQmGYx8MTXh9uF#eZUnts!E+iYUHU8b`GhrjmZ2RO7QQ&JKKF3 zKlE72{!WHK>+utD2jN-9J16V&Al2UatP{&7s!icKWHORzz%oK&(KEn^sWS3W0|?_C zi+3(?w4W;ekc1?953q!|h(+gOmIw#2=$ixOiACQ5EHTg}B;wcwEJ09W(H{nmZomab zEc!uUw@#n`cD%q*!ww;d_ZYAYgIM$@fhA^2Ec(;H3G+rMV$r#VrJdk4&HJ){%9Zkb)NX^(iADbuIAL{S(L*?DR1QFZ5koiYa}3WQ>y3k0 zDkQ0IGCHy7E!6G25{u3QtSlR1(RnbHnIIN@0ADA=Q!x;5+`|fXCWxg1gF!MA#G)Uj zzRBDuvFIlPIGJCoMl79A0!~<+So9>YI~5lgvFIt_gw=^frzEpcAQ49suxnpIV$rj}39A!}-UciS ziCFY5VD~y)V8o(#11GFb4Bh+V3}<9P8sVds!nXlOZ^Z>hEIM}-w}z^T--td4E`M1f z7X2&0?lfFr#G>B^oG^Mpk%;2~VA&9eML$g4?x)0}KS_NZE-+%zxyi_DOf332>b5-b zYzerXr=tfK7_n6NPhfe?h(-SdST+!1(J!;S-9Ly$FT(TKDpph#MRtGGB`6lY7g6aY8T;`qI>bzG`{Qr@>kGDGU=x6^YlCOJ5w>c}_ z-FI%@G`NX>t8Q+>U!nJqA-iSIp66~yAa3M9rBXjf_epQumz?Dz(|Ca|`7}?OL{#gX zPfwG+3(6&v^#12dPJO6cc@5j~-+>;8nfO@}t}#eqn}38HcaJZAW87WJEoK(7n7>f0 z(_#6uf%aHl+T*SjY>!(brqG+R-5K9rNfKz}A{sf59(Yp~fkxVj8hO>bbGs97pIub_ z*(#;>qCHlR2CDZLRX^qZJ*wYwV^Q^%YRpuLsm?u7hH#gyo`ps$!`%Ff%mX;wetOWB zLleHeQRY=JK+IrX85GgqH2QdL%V%u)H@*B0ER7>pwyLTaY2wNJ(Lxiu0=geh-hg0r v2X2Yc((C3kVTI5}xvYNJMlJNPu7nDG3Ue?!<~L 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

(GPo2zXTk1Ii3WTYXz|c@IK$- z(o^y9!GqZ5n%Jh1cxvFNxe}k0c?e_ff0+I2OJ7JpDD)jGetZ! zmU)y4BT23zU^#wb(YZ#-)FT$1YoSa%V$pe2GIEGTZvr;IT8rB^JmQ!OM~JH#j9BzV zz)}#g=BOS% zr@kB;7_sPwfMv}i7TsP#Rys?_3h1yCNa8*XEd5R_`Y)-QC4^XX4k=j@h(+hcO;!Z= zg)R$2O6EY5`H z%B(p!CZ+0;BGZYSo3BWngAZaCxx~R-a3eDu>_z#dmpZrrI8yK6GLH`q6R-e|#+lBy zotJ)=t&hBt(D(do;fS8L*4|cCwsi~l`~`KiEc(Q&nV!MB{LU>+P!Ie0oWVT{^sHfAQ!ZQ?!)0_KWA)zgJ>~`#N zJ?w07+Up?9QSXRqd!AB#5Ez|W<#0V`qc4yi&NM-yek*;gOZm=!0bRcoQv8 zv+rc=doAFP7_|a9Y475F{@H+kx{=ErRXv?$zr^Gj#DCJ>%d%f$u7HMOyG4i0mzec~ fm3l41d5P6zzr+mVk+3zLFER5DhB2dEWeNNr<2*kc diff --git a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a index 1ed3a3d21e5ff1d44c914f9292c061ee3c84c869..23c0b7c55b8b70eba1538aee04c708a0e1c35dd1 100644 GIT binary patch delta 10518 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 diff --git a/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a index e31900481eb60c6b20786b053e0f8b6f76c8a205..84ab43bdcc0704ae17b33fea573ecfd13e8ebddf 100755 GIT binary patch delta 10518 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 delta 16108 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 delta 16087 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 +#include "service.h" +#include "iunknown.h" +#include "broadcast_feature.h" +#include "graphic_service.h" +#include "jsi/jsi_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef JS_ENABLE +void StartJsApp(char *bundleName); +void StopJsApp(char *bundleName); +void MsgCenterReportBtStatusToJS(uint16_t msgId); +#endif + +#ifdef __cplusplus +} +#endif +#endif // MSG_CENTER_CUSTOMER_H diff --git a/code/sdk/application/wearable/service/msg_center/include/msg_center_protocol.h b/code/sdk/application/wearable/service/msg_center/include/msg_center_protocol.h index de090546b..1b2812c97 100755 --- a/code/sdk/application/wearable/service/msg_center/include/msg_center_protocol.h +++ b/code/sdk/application/wearable/service/msg_center/include/msg_center_protocol.h @@ -13,6 +13,7 @@ #include "soc_osal.h" #include "baidu_app.h" #include "cmsis_os2.h" +#include "bts_le_gap.h" #ifdef __cplusplus #if __cplusplus @@ -217,12 +218,19 @@ typedef enum msg_center_ota_type_id { } msg_center_ota_type_id_t; +typedef enum msg_center_ping_type_id { + MSGCENTER_TYPE_ID_PING_REC = 0x1, + MSGCENTER_TYPE_ID_PING_RSP = 0x2, +} msg_center_ping_type_id_t; + typedef enum msg_center_cmd_id { MSGCENTER_CMD_XIAODU = 0x1, MSGCENTER_CMD_NAVIGATION = 0x2, MSGCENTER_CMD_VECTOR_NAVI = 0x3, MSGCENTER_CMD_ALIPAY = 0x4, MSGCENTER_CMD_OTA = 0x5, + MSGCENTER_CMD_HC = 0x6, + MSGCENTER_CMD_PING = 0x7, MSGCENTER_CMD_MAX } msg_center_cmd_id_t; @@ -331,6 +339,8 @@ void msg_center_split_file(char *origin_file, int size, char *flist); void msg_center_combine_file(char *flist, char *target_file_name); diag_frame_fid_t msg_center_get_trans_channel(void); void msg_center_set_trans_channel(diag_frame_fid_t select); +void msg_center_set_ble_conn_state(gap_ble_conn_state_t state); +gap_ble_conn_state_t msg_center_get_ble_conn_state(void); #ifdef __cplusplus #if __cplusplus diff --git a/code/sdk/application/wearable/service/msg_center/src/common/msg_center_common.cpp b/code/sdk/application/wearable/service/msg_center/src/common/msg_center_common.cpp new file mode 100644 index 000000000..0aa7dc3cc --- /dev/null +++ b/code/sdk/application/wearable/service/msg_center/src/common/msg_center_common.cpp @@ -0,0 +1,51 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved. + * Description: ota upgrade handle. + * This file should be changed only infrequently and with great care. + */ +#include +#include "securec.h" +#include "bts_br_gap.h" +#include "bts_spp.h" +#include "msg_center.h" +#include "msg_center_protocol.h" +#include "msg_center_cmd.h" +#include "wearable_log.h" + + +#ifdef __cplusplus +extern "C" { +#endif + +errcode_t msg_center_ping_rec(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len) +{ + uint8_t tl_len = msg_center_get_tlv_tl_len(usr_data); + uint16_t payload_len = usr_len - tl_len; + uint8_t *tlv_payload = (uint8_t *)msg_center_get_tlv_payload(usr_data); + errcode_t ret = ERRCODE_SUCC; + uint8_t ping_result = 0; + + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "rec_ping_from_phone\r\n"); + + if (msg_center_get_trans_channel() == DIAG_FRAME_FID_PHONE) { + ping_result = is_spp_connected(0) == true ? 1 : 0; + } else if (msg_center_get_trans_channel() == DIAG_FRAME_FID_BT) { + ping_result = msg_center_get_ble_conn_state(); + } else { + ping_result = 2; /* 2用来表示异常值 */ + WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "ble or spp not connected!\r\n"); + } + + /* ping req ack */ + ret = msg_center_send_data(cmd_id, type + 1, &ping_result, sizeof(ping_result)); + if (ret != ERRCODE_SUCC) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "send_ping_ack fail, ret = %d\r\n", ret); + return ERRCODE_FAIL; + } + + return ERRCODE_SUCC; +} + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/service/msg_center/src/msg_center_cmd.cpp b/code/sdk/application/wearable/service/msg_center/src/msg_center_cmd.cpp index f5d952a6b..fb0958828 100755 --- a/code/sdk/application/wearable/service/msg_center/src/msg_center_cmd.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/msg_center_cmd.cpp @@ -12,6 +12,10 @@ #include "baidu_app.h" #include "alipay_app.h" #include "msg_center_ota.h" +#ifdef SUPPORT_HC_DEMO +#include "msg_center_hc_demo.h" +#endif +#include "msg_center_common.h" #ifdef __cplusplus extern "C" { @@ -111,6 +115,10 @@ msg_center_cmd_map_t g_msg_center_type_tbl[] = { { MSGCENTER_CMD_OTA, MSGCENTER_TYPE_ID_OTA_UPG_CHECK, msg_center_ota_rec_upg_check}, { MSGCENTER_CMD_OTA, MSGCENTER_TYPE_ID_OTA_UPG_CHECK_RESULT, msg_center_ota_rec_upg_check_result}, #endif +#ifdef JS_ENABLE + { MSGCENTER_CMD_PING, MSGCENTER_TYPE_ID_PING_REC, msg_center_ping_rec}, + { MSGCENTER_CMD_PING, MSGCENTER_TYPE_ID_PING_RSP, NULL}, +#endif }; msg_center_cmd_map_t *msg_center_get_cmd_tbl_ops(uint8_t idx) @@ -127,17 +135,15 @@ char *msg_center_get_bundle_name(uint8_t cmd_id) { switch (cmd_id) { case MSGCENTER_CMD_XIAODU: - return "com.vendor.voiceassistant"; + return (char *)"com.vendor.voiceassistant"; case MSGCENTER_CMD_NAVIGATION: - return "cn.navigate"; + return (char *)"cn.navigate"; case MSGCENTER_CMD_VECTOR_NAVI: - return "com.baidu.BaiduMap"; + return (char *)"com.baidu.BaiduMap"; default: WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER,"msg_center_get_bundle_name: wrong cmd_id[%d]", cmd_id); - break; + return (char*)"wrong"; } - - return NULL; } static errcode_t msg_center_pkt_dispatch(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len) diff --git a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp index aa954beb8..d44b43ac1 100644 --- a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp @@ -24,6 +24,9 @@ #include "element_name.h" #include "want.h" #include "msg_center.h" +#include "msg_center_msg.h" +#include "msg_center_protocol.h" +#include "baidumap.h" #include "common_def.h" #include "PhoneService.h" #include "power_display_service.h" @@ -121,7 +124,7 @@ const PriorityMapper PRI_MAPPER[] = { #endif {TOPIC_EVENT_FIND_WATCH,PRIORITY_TWO},// 找手表 [2] {TOPIC_EVENT_CANCEL_FIND_WATCH,PRIORITY_TWO},// 取消找手表 [2] - {TOPIC_EVENT_DRINKREMINDER,PRIORITY_TWO},//喝水提醒 [2] + {TOPIC_EVENT_DRINKREMINDER,PRIORITY_THREE},//喝水提醒 [3] {TOPIC_EVENT_MESSAGENOTE,PRIORITY_THREE},//消息提醒 [3] {TOPIC_EVENT_MESSAGE_UPDATA,PRIORITY_TWO},//消息更新提醒 [3] {TOPIC_EVENT_SLEEPNOTE,PRIORITY_THREE},//睡眠弹窗 [3] @@ -502,7 +505,6 @@ static SLEEP_T sleep_data = {0}; static NAP_T nap_data = {0}; static int state_num = 0; static uint32_t day_timestamp = 0; -static uint32_t current_day = 0; static uint8_t fall_asleep_state_num = 0; #endif @@ -1127,7 +1129,7 @@ void MsgCenterNotifyDrinkReminderProc(const Topic topic, Request *req) // unused(topic); unused(req); WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyDrinkReminderProc !"); - // DrinkReminderViewEventListener::GetInstance().set_screen_on_and_vibration(); + DrinkReminderViewEventListener::GetInstance().set_screen_on_and_vibration(); if (CheckPriority(topic)) { NotificationManager::GetInstance()->SetNotifyPriority(PRIORITY_TWO); @@ -1248,7 +1250,6 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req) timeinfo = localtime(&rawtime); uapi_get_timestampe_ss(×tamp); day_timestamp = timestamp - (timeinfo->tm_hour * 60 * 60 + timeinfo->tm_min * 60 + timeinfo->tm_sec); - current_day = timeinfo->tm_mday; } #endif OHOS::SLEEP_STATE_T state_data = {0}; @@ -1308,10 +1309,6 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req) if(state_num < SLEEP_STATUS_LENGTH) { sleep_data.sleep_status[state_num].timestamp = day_timestamp + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; - if(current_day != cywee_Inactivity_Info->day) - { - sleep_data.sleep_status[state_num].timestamp -= 24 * 60 * 60; - } sleep_data.sleep_status[state_num].stat = cywee_Inactivity_Info->status; if(sleep_data.sleep_status[state_num].stat == 7 || sleep_data.sleep_status[state_num].stat == 13) { @@ -1321,7 +1318,7 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req) if(sleep_data.sleep_status[state_num].stat == 0) //0进入睡眠 1潜睡 2深睡 3清醒 4结束睡眠 6入睡 7出睡最后一笔输出 8未出睡最后一笔输出 12快速动眼 13取消入睡 { sleep_data.fall_asleep_timestamp = sleep_data.sleep_status[state_num].timestamp; - //fall_asleep_state_num = state_num; + fall_asleep_state_num = state_num; } else if(sleep_data.sleep_status[state_num].stat == 4) { @@ -1364,7 +1361,7 @@ void MsgCenterNotifyInactivityAccumulateTimeProc(const Topic topic, Request* req { memset(&sleep_data,0,sizeof(SLEEP_T)); state_num = 0; - //fall_asleep_state_num = 0; + fall_asleep_state_num = 0; uapi_dev_runtime_set_absolute_static_status(0); return; } @@ -1393,11 +1390,11 @@ void MsgCenterNotifyInactivityAccumulateTimeProc(const Topic topic, Request* req } else if(cywee_Inactivity_Accumulate_Time_Info->output_number == INACTIVITY_MODE_SLEEPING_ACCUMULATE_TIME_OUTPUT) { - // if(sleep_data.fall_asleep_timestamp > sleep_data.wake_up_timestamp && sleep_data.wake_up_timestamp != 0) - // { - // sleep_data.fall_asleep_timestamp -= 24 * 60 * 60; - // sleep_data.sleep_status[fall_asleep_state_num].timestamp = sleep_data.fall_asleep_timestamp; - // } + if(sleep_data.fall_asleep_timestamp > sleep_data.wake_up_timestamp) + { + sleep_data.fall_asleep_timestamp -= 24 * 60 * 60; + sleep_data.sleep_status[fall_asleep_state_num].timestamp = sleep_data.fall_asleep_timestamp; + } sleep_data.total_time = cywee_Inactivity_Accumulate_Time_Info->total_time; sleep_data.total_deep_sleep_time = cywee_Inactivity_Accumulate_Time_Info->total_deep_sleep_time; @@ -1409,7 +1406,7 @@ void MsgCenterNotifyInactivityAccumulateTimeProc(const Topic topic, Request* req set_sleep_data(&sleep_data); memset(&sleep_data,0,sizeof(SLEEP_T)); state_num = 0; - //fall_asleep_state_num = 0; + fall_asleep_state_num = 0; } #endif free(cywee_Inactivity_Accumulate_Time_Info); @@ -1557,6 +1554,76 @@ bool MsgCenterNotifyProc(const Topic topic, Request* req) return false; } +#ifdef JS_ENABLE +void StartJsApp(char *bundleName) +{ + ElementName* topAbility = OHOS::AbilityMsClient::GetInstance().GetTopAbility(); + if (topAbility == nullptr) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "topAbility is null"); + return; + } + + if (strcmp(topAbility->bundleName, bundleName) == 0) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s is active", bundleName); + return; + } + // If the alarm notification is being processed, we need to disable the alarm notification first. + if (OHOS::NotificationManager::GetInstance()->GetNotifyPriority() == PRIORITY_TWO && + OHOS::NotificationManager::GetInstance()->HasNotifyShowing()) { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Alarm notification needs to be disabled first."); + AlarmClockModel::GetInstance()->AlarmGetClockNum(); + OHOS::AlarmPopUpPresenter::GetInstance()->DelayAlarmRing(); + OHOS::NotificationManager::GetInstance()->StopNotify(); + } + Want *want = new Want(); + memset_s(want, sizeof(Want), 0, sizeof(Want)); + + ElementName startElement = {}; + startElement.abilityName = (char *)"default"; + startElement.bundleName = bundleName; + startElement.deviceId = nullptr; + SetWantElement(want, startElement); + + StartAbility(want); + + delete want; +} + +void StopJsApp(char *bundleName) +{ + ElementName* topAbility = OHOS::AbilityMsClient::GetInstance().GetTopAbility(); + if (topAbility == nullptr) { + WEARABLE_LOGE(HILOG_MODULE_AAFWK, "topAbility is null"); + return; + } + + if (strcmp(topAbility->bundleName, bundleName) != 0) { + WEARABLE_LOGE(HILOG_MODULE_AAFWK, "%s is not top active", bundleName); + return; + } + + int token = 0; + OHOS::AbilityMsClient::GetInstance().TerminateAbility(token); +} + +void MsgCenterReportBtStatusToJS(uint16_t msgId) +{ + ElementName *elementName = OHOS::AbilityMsClient::GetInstance().GetTopAbility(); + if (!(elementName != nullptr && strcmp(elementName->bundleName, "com.huawei.launcher") != 0)) { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "JS is not on top, ignore report"); + return; + } + + if (msgId == BT_DISCONNECTED_TO_MSGCENTER) { + BaidumapSendMsgToJS("0", MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_DISCONNECTED); + } else if (msgId == BT_CONNECTED_TO_MSGCENTER) { + BaidumapSendMsgToJS("1", MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED); + } else { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "unexpected msgId %d", msgId); + } +} +#endif + #ifdef __cplusplus } #endif diff --git a/code/sdk/application/wstp/at_service/ohosfwk/ohosfwk_at_process.cpp b/code/sdk/application/wstp/at_service/ohosfwk/ohosfwk_at_process.cpp index bbba86e0f..1da4f92e6 100755 --- a/code/sdk/application/wstp/at_service/ohosfwk/ohosfwk_at_process.cpp +++ b/code/sdk/application/wstp/at_service/ohosfwk/ohosfwk_at_process.cpp @@ -17,6 +17,7 @@ #include "sign_mode.h" #include "NativeAbility.h" #include "ability_manager.h" +#include "js_fwk_common.h" #define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0])) #define OHOSFWK_MAX_ARGC 8 @@ -223,6 +224,12 @@ static uint32_t OhosfwkATCmdAmStartJsApp(uint8_t *para, uint32_t paraLen, char * return ERRCODE_SUCC; } +static uint32_t OhosfwkATCmdDfxJsMemoryInfo(uint8_t *para, uint32_t paraLen, char *strCommonCmd) +{ + OHOS::ACELite::DumpPrintMemoryInfo(); + return ERRCODE_SUCC; +} + static const at_cmd_table_t g_ohosfwk_cmd[] = { { (char *)"AT^OHOSFWK_AM_EXIT_JSAPP", OhosfwkATCmdAmExitJsApp, (char *)"00 00 00 00" }, { (char *)"AT^OHOSFWK_BM_INSTALL", OhosfwkATCmdBmInstall, (char *)"00 00 00 01" }, @@ -230,6 +237,7 @@ static const at_cmd_table_t g_ohosfwk_cmd[] = { { (char *)"AT^OHOSFWK_BM_UNINSTALL", OhosfwkATCmdBmUninstall, (char *)"00 00 00 03" }, { (char *)"AT^OHOSFWK_AM_CHANGENATIVESLICE", OhosfwkATCmdAmChangeNativeSlice, (char *)"00 00 00 04" }, { (char *)"AT^OHOSFWK_AM_START_JS_APP", OhosfwkATCmdAmStartJsApp, (char *)"00 00 00 05" }, + { (char *)"AT^OHOSFWK_DFX_JS_MEMORY_INFO", OhosfwkATCmdDfxJsMemoryInfo, (char *)"00 00 00 06" }, }; at_cmd_table_t *get_ohosfwk_cmd_table(uint32_t *cmd_count) diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index eb756b677..ba857cd0f 100755 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -26,7 +26,7 @@ target = { 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', 'audio_at_service', 'media_at_service', 'bt_manager_at_service', "audio_proc", "audio_dump", "audio_probe", "gpu_proc", 'bts_header'], - 'ram_component_set': ['bgh', 'media_mini', 'gpu', 'graphic_lvgl_mini', 'dfx_set'], + 'ram_component_set': ['bgh', 'media_mini', 'gpu', 'graphic_lvgl_mini', 'bgh_audio', 'dfx_set'], 'image_analysis': True, 'dsp_version': 'mini', 'packet': True, @@ -143,11 +143,11 @@ target = { #"MEM_CHECK", #'ENABLE_WEBSOCKET', 'CYWEE_SPORT', - 'CYWEE_MAC_ACTIVE', + #'CYWEE_MAC_ACTIVE', 'SUPPORT_TCPIP', 'SUPPORT_HID_SERVICE', - #'LEANTEST', - 'SUPPORT_BAIDU_MAP' + 'SUPPORT_BAIDU_MAP', + 'CFG_FLASH_SIZE=16' ], 'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite", "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation', @@ -184,7 +184,6 @@ target = { "bleservice", "blemoder", "factorytest_service", - #"leantest", "hid_service" ], 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'alipay_set'], diff --git a/code/sdk/build/config/target_config/brandy/param_sector/param_sector_16M.json b/code/sdk/build/config/target_config/brandy/param_sector/param_sector_16M.json new file mode 100644 index 000000000..bd4ec2fc0 --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/param_sector/param_sector_16M.json @@ -0,0 +1,58 @@ +{ + "Partition_Tbl":{ + "image_id" : "0x4B87A52D", + "stru_ver" : "0x00010000", + "version" : "0x00000000", + "param_info_description" : [ + "Address Constraints: flash type must fill with relative address, RAM regions must fill with absolute address.", + "Item ID Constraints: ssb type: 0x00 ~ 0x0F, Relative address, Size", + " root public key and signature: 0x10 ~ 0x1F, Relative address, Size", + " firmware on flash: 0x20 ~ 0x2F, Relative address, Size", + " data on flash: 0x30 ~ 0x3F, Relative address, Size", + + "Fixed item id: 0x00: ssb", + " 0x01: ssb_backup", + " 0x10: configure RootPubKey", + " 0x11: signature certificate", + " 0x12: ssb image signature", + " 0x13: signature certificate backup", + " 0x14: ssb image backup signature", + " 0x15: algorithm signature", + " 0x16: recovery signature", + " 0x17: bt_image signature", + " 0x18: dsp_main_image signature", + " 0x19: dsp_overlay_image signature", + " 0x1A: acpu_image signature", + " 0x20: recovery", + " 0x21: bt_image", + " 0x22: dsp_main_image", + " 0x23: dsp_overlay_image", + " 0x24: acpu_image", + " 0x30: nv_data", + " 0x31: fota_data" + ], + "param_info" : [ + ["0x00", "0x00000000", "0x00020000"], + ["0x01", "0x00020000", "0x00020000"], + ["0x10", "0x00040000", "0x00001000"], + ["0x11", "0x00041000", "0x00001000"], + ["0x12", "0x00042000", "0x00001000"], + ["0x13", "0x00043000", "0x00001000"], + ["0x14", "0x00044000", "0x00001000"], + ["0x15", "0x00045000", "0x00001000"], + ["0x16", "0x00046000", "0x00001000"], + ["0x17", "0x00047000", "0x00001000"], + ["0x18", "0x00048000", "0x00001000"], + ["0x19", "0x00049000", "0x00001000"], + ["0x1a", "0x0004A000", "0x00001000"], + ["0x20", "0x00B80000", "0x00100000"], + ["0x21", "0x00090000", "0x00070000"], + ["0x22", "0x00100000", "0x000C0000"], + ["0x23", "0x001C0000", "0x001C0000"], + ["0x24", "0x00380000", "0x00800000"], + ["0x30", "0x00C80000", "0x00004000"], + ["0x31", "0x00C84000", "0x00003000"] + ] + }, + "Output_file_prefix":"AIoT" +} diff --git a/code/sdk/build/config/target_config/brandy/param_sector/param_sector_fd230.json b/code/sdk/build/config/target_config/brandy/param_sector/param_sector_fd230.json new file mode 100644 index 000000000..3e604696e --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/param_sector/param_sector_fd230.json @@ -0,0 +1,58 @@ +{ + "Partition_Tbl":{ + "image_id" : "0x4B87A52D", + "stru_ver" : "0x00010000", + "version" : "0x00000000", + "param_info_description" : [ + "Address Constraints: flash type must fill with relative address, RAM regions must fill with absolute address.", + "Item ID Constraints: ssb type: 0x00 ~ 0x0F, Relative address, Size", + " root public key and signature: 0x10 ~ 0x1F, Relative address, Size", + " firmware on flash: 0x20 ~ 0x2F, Relative address, Size", + " data on flash: 0x30 ~ 0x3F, Relative address, Size", + + "Fixed item id: 0x00: ssb", + " 0x01: ssb_backup", + " 0x10: configure RootPubKey", + " 0x11: signature certificate", + " 0x12: ssb image signature", + " 0x13: signature certificate backup", + " 0x14: ssb image backup signature", + " 0x15: algorithm signature", + " 0x16: recovery signature", + " 0x17: bt_image signature", + " 0x18: dsp_main_image signature", + " 0x19: dsp_overlay_image signature", + " 0x1A: acpu_image signature", + " 0x20: recovery", + " 0x21: bt_image", + " 0x22: dsp_main_image", + " 0x23: dsp_overlay_image", + " 0x24: acpu_image", + " 0x30: nv_data", + " 0x31: fota_data" + ], + "param_info" : [ + ["0x00", "0x00000000", "0x00020000"], + ["0x01", "0x00020000", "0x00020000"], + ["0x10", "0x00040000", "0x00001000"], + ["0x11", "0x00041000", "0x00001000"], + ["0x12", "0x00042000", "0x00001000"], + ["0x13", "0x00043000", "0x00001000"], + ["0x14", "0x00044000", "0x00001000"], + ["0x15", "0x00045000", "0x00001000"], + ["0x16", "0x00046000", "0x00001000"], + ["0x17", "0x00047000", "0x00001000"], + ["0x18", "0x00048000", "0x00001000"], + ["0x19", "0x00049000", "0x00001000"], + ["0x1a", "0x0004A000", "0x00001000"], + ["0x20", "0x00050000", "0x00040000"], + ["0x21", "0x00090000", "0x00070000"], + ["0x22", "0x00100000", "0x00070000"], + ["0x23", "0x00170000", "0x00140000"], + ["0x24", "0x002B0000", "0x00D49000"], + ["0x30", "0x00FF9000", "0x00004000"], + ["0x31", "0x00FFD000", "0x00003000"] + ] + }, + "Output_file_prefix":"AIoT" +} diff --git a/code/sdk/build/script/cmake_builder.py b/code/sdk/build/script/cmake_builder.py index 9d0e78ae1..a0e5da8ff 100755 --- a/code/sdk/build/script/cmake_builder.py +++ b/code/sdk/build/script/cmake_builder.py @@ -173,7 +173,11 @@ class CMakeBuilder(BuildEnvironment): print("copy file.bin to application dir over!\n") if env.get('packet'): - self.pack_fwpkg(env.get('chip'), target) + defines = env.get("defines") + if "CFG_FLASH_SIZE=16" in defines: + self.pack_fwpkg(env.get('chip'), target, "0x1000000") + else: + self.pack_fwpkg(env.get('chip'), target, "0x800000") if not run_custom_cmd(env, target, 'build_post'): self.print_build_result(target, 1) @@ -381,11 +385,11 @@ class CMakeBuilder(BuildEnvironment): print(f"ERROR! :{bin1} is not same with {bin2}") sys.exit(1) - def pack_fwpkg(self, chip, target_name): + def pack_fwpkg(self, chip, target_name, flash_size): # bin packet all in one packet_script_path = os.path.join(pkg_tools_path, 'packet.py') print("packet ing...") - errcode = exec_shell([self.python_path, packet_script_path, chip, target_name], None, True) + errcode = exec_shell([self.python_path, packet_script_path, chip, target_name, flash_size], None, True) if errcode != 0: print("packet error!") self.print_build_result(target_name, errcode) diff --git a/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_16M.h b/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_16M.h new file mode 100644 index 000000000..a4506f757 --- /dev/null +++ b/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_16M.h @@ -0,0 +1,184 @@ +/* + * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. + * Description: Default memory configurations + * Author: @CompanyNameTag + * Create: 2022-03-09 + */ + +#ifndef FLASH_16M_H +#define FLASH_16M_H + +/* + * ********************* FLASH ALLOCATION ********************* + * Flash is shared between the cores, and also handles a limited number of + * non-volatile storage areas. + * + * Flash is split into 2 main areas + * IMAGE Area + * Managed by the BT core + * This contains, in order from the bottom of Flash: + * SSB - SSB image starting at the bottom of flash. Variable size depending on the SSB on the chip that + * the package is loaded on. The values in this file only apply to the SSB built with this file. + * RECOVERY_Image - starts in the page after the SSB. + * BT_Image - starts in the page after the RECOVERY_Image + * DSP_Image - starts in the page after the BT_Image + * APP_Image - starts in the page after the DSP_Image + * System On-demand region - dynamically allocated flash for FOTA etc + * NV Area + * Ends at the last page of flash, is configurable in size above a minimum allocation. + * NV Area, of 12 pages, is allocated, from the lowest address: + * 8 pages of general use (pages are not fixed and self-identifying), consisting of + * 1 Page for Asset Store defragmentation + * 3 pages for Asset Store + * 2 Pages for App and DSP Core KV defragmentation + * 1 page for DSP Core KV + * 1 page for App Core KV + * 2 pages for BT core use (last 2 pages in Flash) + * 1 page for BT Core KV + * 1 page for BT Core KV defragmentation + */ + +#define FLASH_START 0x70000000 +#define FLASH_LENGTH 0x1000000 +#define FLASH_MAX_END (FLASH_START + FLASH_LENGTH) + +#define FLASH_PAGE_SIZE 4096 +/* APP ITCM config */ +#define MCU_ITCM_END (APP_ITCM_ORIGIN + APP_ITCM_LENGTH) + +#define SSB_BOOT_RAM_ORIGIN APP_ITCM_ORIGIN +#define SSB_BOOT_RAM_LENGTH APP_ITCM_LENGTH + +/* ----------------------------------------------------------------------------------------------------------------- */ +/* IMAGE Area Defines */ +/* MCU SSB Region */ +#define SSB_FLASH_REGION_PAGES (SSB_IMAGE_PAGES + 5) +#define KV_PAGES 0 +#define SSB_FLASH_REGION_START (FLASH_START) +#define SSB_FLASH_REGION_LENGTH (SSB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define SSB_VECTORS_LOAD_ORIGIN (SSB_FLASH_REGION_START) +#define SSB_VERSION_LOAD_ORIGIN (SSB_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) +#define SSB_CHANGEID_LOAD_ORIGIN (SSB_VERSION_LOAD_ORIGIN + VERSION_LENGTH) + +#define SSB_PROGRAM_ORIGIN (SSB_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define SSB_PROGRAM_LENGTH ((SSB_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) + +/* MCU SSB BACK-UP Region */ +#define SSB_BACKUP_FLASH_REGION_PAGES 32 +#define SSB_BACKUP_FLASH_REGION_START (SSB_FLASH_REGION_START + SSB_FLASH_REGION_LENGTH + KV_PAGES * FLASH_PAGE_SIZE) +#define SSB_BACKUP_FLASH_REGION_LENGTH (SSB_BACKUP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* SEC_BOOT Region for Signature Certificate */ +#define SEC_BOOT_FLASH_REGION_PAGES 15 +#define SEC_BOOT_FLASH_REGION_START (SSB_BACKUP_FLASH_REGION_START + SSB_BACKUP_FLASH_REGION_LENGTH) +#define SEC_BOOT_FLASH_REGION_LENGTH (SEC_BOOT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define PARTITION_TABLE_REGSION_PAGE 1 +#define PARTITION_TABLE_REGION_START (SEC_BOOT_FLASH_REGION_START + SEC_BOOT_FLASH_REGION_LENGTH) +#define PARTITION_TABLE_REGION_LENGTH (PARTITION_TABLE_REGSION_PAGE * FLASH_PAGE_SIZE) + +/* DTB Region */ +#define DTB_FLASH_REGION_PAGES (DTB_IMAGE_PAGES) +#define DTB_FLASH_REGION_START (PARTITION_TABLE_REGION_START + PARTITION_TABLE_REGION_LENGTH) +#define DTB_FLASH_REGION_LENGTH (DTB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* RESERVE Region */ +#define RESERVE_FLASH_REGION_PAGES (RESERVE_IMAGE_PAGES) +#define RESERVE_FLASH_REGION_START (DTB_FLASH_REGION_START + DTB_FLASH_REGION_LENGTH) +#define RESERVE_FLASH_REGION_LENGTH (RESERVE_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* BT Region */ +#define BT_FLASH_REGION_PAGES (BT_IMAGE_PAGES) +#define BT_FLASH_REGION_START (RESERVE_FLASH_REGION_START + RESERVE_FLASH_REGION_LENGTH) +#define BT_FLASH_REGION_LENGTH (BT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define BT_BUILD_INFO_ORIGIN (BT_FLASH_REGION_START) +#define BT_VECTORS_LOAD_ORIGIN (BT_BUILD_INFO_ORIGIN + BUILD_INFO_LENGRH) +#define BT_VERSION_LOAD_ORIGIN (BT_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) +#define BT_CHANGEID_LOAD_ORIGIN (BT_VERSION_LOAD_ORIGIN + VERSION_LENGTH) +#define DSP_CHANGEID_LOAD_ORIGIN (BT_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) + +/* Fill 4 byte to align flash 8 byte */ +#define BT_PROGRAM_ORIGIN (DSP_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define BT_PROGRAM_LENGTH ((BT_FLASH_REGION_LENGTH) - (BT_VECTORS_LENGTH + \ + VERSION_LENGTH + CHANGE_ID_LENGTH + CHANGE_ID_LENGTH)) + +/* DSP Region */ +#define DSP_FLASH_REGION_PAGES (HIFI0_IMAGE_PAGES) +#define DSP_FLASH_REGION_START (BT_FLASH_REGION_START + BT_FLASH_REGION_LENGTH) +#define DSP_FLASH_REGION_LENGTH (DSP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* DSP1 Region */ +#define DSP_CODEC_FLASH_REGION_PAGES (HIFI0_CODEC_PAGES) +#define DSP_CODEC_FLASH_REGION_START (DSP_FLASH_REGION_START + DSP_FLASH_REGION_LENGTH) +#define DSP_CODEC_FLASH_REGION_LENGTH (DSP_CODEC_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* APP Region */ +#define APP_FLASH_REGION_PAGES (APP_IMAGE_PAGES) +#define APP_FLASH_REGION_START (DSP_CODEC_FLASH_REGION_START + DSP_CODEC_FLASH_REGION_LENGTH) +#define APP_FLASH_REGION_LENGTH (APP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* RECOVERY Region */ +#define RECOVERY_FLASH_REGION_PAGES (RECOVERY_IMAGE_PAGES) +#define RECOVERY_FLASH_REGION_START (APP_FLASH_REGION_START + APP_FLASH_REGION_LENGTH) +#define RECOVERY_FLASH_REGION_LENGTH (RECOVERY_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define RECOVERY_VECTORS_LOAD_ORIGIN (RECOVERY_FLASH_REGION_START) +#define RECOVERY_VERSION_LOAD_ORIGIN (RECOVERY_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) +#define RECOVERY_CHANGEID_LOAD_ORIGIN (RECOVERY_VERSION_LOAD_ORIGIN + VERSION_LENGTH) + +#define RECOVERY_PROGRAM_ORIGIN (RECOVERY_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define RECOVERY_PROGRAM_LENGTH ((RECOVERY_FLASH_REGION_LENGTH) - \ + (BT_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) + +/* NV data Region */ +#define NV_FLASH_REGION_PAGES (NV_IMAGE_PAGES) +#define NV_FLASH_REGION_START (RECOVERY_FLASH_REGION_START + RECOVERY_FLASH_REGION_LENGTH) +#define NV_FLASH_REGION_LENGTH (NV_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* Fota data Region */ +#define FOTA_FLASH_REGION_PAGES (FOTA_IMAGE_PAGES) +#define FOTA_FLASH_REGION_START (NV_FLASH_REGION_START + NV_FLASH_REGION_LENGTH) +#define FOTA_FLASH_REGION_LENGTH (FOTA_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define APP_VECTORS_LOAD_ORIGIN (APP_FLASH_REGION_START) +#define APP_VERSION_LOAD_ORIGIN (APP_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) + +#define APP_PROGRAM_ORIGIN (APP_VERSION_LOAD_ORIGIN + VERSION_LENGTH) +#define APP_PROGRAM_LENGTH ((APP_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH)) + +/* cores image flash region start */ +#define FLASH_CORE_IMAGES_START (FLASH_START + SSB_FLASH_REGION_LENGTH + SSB_BACKUP_FLASH_REGION_LENGTH + \ + SEC_BOOT_FLASH_REGION_LENGTH + \ + KV_PAGES * FLASH_PAGE_SIZE + PARTITION_TABLE_REGION_LENGTH) +/* ----------------------------------------------------------------------------------------------------------------- */ +/* KV Region Defines */ +/* Minimum System Configuration pages in FLASH reserved */ +#define SYSTEM_RESERVED_FLASH_PAGES 0 +/* Minimum reserved Non Volatile storage + Config Data. */ +#define FLASH_RESERVED_LENGTH (SYSTEM_RESERVED_FLASH_PAGES * FLASH_PAGE_SIZE) + +/* + * ********************* SEC BOOT REGION ********************* + */ +#define MCU_ROOT_PUBKEY_START SEC_BOOT_FLASH_REGION_START +#define MCU_SUB_PUBKEY_START (MCU_ROOT_PUBKEY_START + FLASH_PAGE_SIZE) +#define MCU_SSB_IMAGE_SIGN_START (MCU_SUB_PUBKEY_START + FLASH_PAGE_SIZE) +#define MCU_SUB_PUBKEY_BACKUP_START (MCU_SSB_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_SSB_IMAGE_SIGN_BACKUP_START (MCU_SUB_PUBKEY_BACKUP_START + FLASH_PAGE_SIZE) + +#define MCU_SEC_BOOT_SIGN_BACKUP_START MCU_SUB_PUBKEY_BACKUP_START +#define MCU_SEC_BOOT_SIGN_BACKUP_LEN (2 * FLASH_PAGE_SIZE) + +#define MCU_CFCT_START (MCU_SEC_BOOT_SIGN_BACKUP_START + MCU_SEC_BOOT_SIGN_BACKUP_LEN) +#define MCU_CFCT_LEN FLASH_PAGE_SIZE + +#define MCU_RECOVERY_IMAGE_SIGN_START (MCU_CFCT_START + MCU_CFCT_LEN) +#define MCU_BT_IMAGE_SIGN_START (MCU_RECOVERY_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_DSP_IMAGE_SIGN_START (MCU_BT_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_DSP1_IMAGE_SIGN_START (MCU_DSP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_APP_IMAGE_SIGN_START (MCU_DSP1_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_PARTITION_TABLE_SIGN_START (MCU_APP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) + +#endif \ No newline at end of file diff --git a/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_16M_FD230.h b/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_16M_FD230.h new file mode 100644 index 000000000..1bc76d9e9 --- /dev/null +++ b/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_16M_FD230.h @@ -0,0 +1,173 @@ + +/* + * ********************* FLASH ALLOCATION ********************* + * Flash is shared between the cores, and also handles a limited number of + * non-volatile storage areas. + * + * Flash is split into 2 main areas + * IMAGE Area + * Managed by the BT core + * This contains, in order from the bottom of Flash: + * SSB - SSB image starting at the bottom of flash. Variable size depending on the SSB on the chip that + * the package is loaded on. The values in this file only apply to the SSB built with this file. + * RECOVERY_Image - starts in the page after the SSB. + * BT_Image - starts in the page after the RECOVERY_Image + * DSP_Image - starts in the page after the BT_Image + * APP_Image - starts in the page after the DSP_Image + * System On-demand region - dynamically allocated flash for FOTA etc + * NV Area + * Ends at the last page of flash, is configurable in size above a minimum allocation. + * NV Area, of 12 pages, is allocated, from the lowest address: + * 8 pages of general use (pages are not fixed and self-identifying), consisting of + * 1 Page for Asset Store defragmentation + * 3 pages for Asset Store + * 2 Pages for App and DSP Core KV defragmentation + * 1 page for DSP Core KV + * 1 page for App Core KV + * 2 pages for BT core use (last 2 pages in Flash) + * 1 page for BT Core KV + * 1 page for BT Core KV defragmentation + */ + +#define FLASH_START 0x70000000 +#define FLASH_LENGTH 0x1000000 +#define FLASH_MAX_END (FLASH_START + FLASH_LENGTH) + +#define FLASH_PAGE_SIZE 4096 +/* APP ITCM config */ +#define MCU_ITCM_END (APP_ITCM_ORIGIN + APP_ITCM_LENGTH) + +#define SSB_BOOT_RAM_ORIGIN APP_ITCM_ORIGIN +#define SSB_BOOT_RAM_LENGTH APP_ITCM_LENGTH + +/* ----------------------------------------------------------------------------------------------------------------- */ +/* IMAGE Area Defines */ +/* MCU SSB Region */ +#define SSB_FLASH_REGION_PAGES (SSB_IMAGE_PAGES + 5) +#define KV_PAGES 0 +#define SSB_FLASH_REGION_START (FLASH_START) +#define SSB_FLASH_REGION_LENGTH (SSB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define SSB_VECTORS_LOAD_ORIGIN (SSB_FLASH_REGION_START) +#define SSB_VERSION_LOAD_ORIGIN (SSB_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) +#define SSB_CHANGEID_LOAD_ORIGIN (SSB_VERSION_LOAD_ORIGIN + VERSION_LENGTH) + +#define SSB_PROGRAM_ORIGIN (SSB_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define SSB_PROGRAM_LENGTH ((SSB_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) + +/* MCU SSB BACK-UP Region */ +#define SSB_BACKUP_FLASH_REGION_PAGES 32 +#define SSB_BACKUP_FLASH_REGION_START (SSB_FLASH_REGION_START + SSB_FLASH_REGION_LENGTH + KV_PAGES * FLASH_PAGE_SIZE) +#define SSB_BACKUP_FLASH_REGION_LENGTH (SSB_BACKUP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* SEC_BOOT Region for Signature Certificate */ +#define SEC_BOOT_FLASH_REGION_PAGES 15 +#define SEC_BOOT_FLASH_REGION_START (SSB_BACKUP_FLASH_REGION_START + SSB_BACKUP_FLASH_REGION_LENGTH) +#define SEC_BOOT_FLASH_REGION_LENGTH (SEC_BOOT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define PARTITION_TABLE_REGSION_PAGE 1 +#define PARTITION_TABLE_REGION_START (SEC_BOOT_FLASH_REGION_START + SEC_BOOT_FLASH_REGION_LENGTH) +#define PARTITION_TABLE_REGION_LENGTH (PARTITION_TABLE_REGSION_PAGE * FLASH_PAGE_SIZE) + +/* DTB Region */ +#define DTB_FLASH_REGION_PAGES (DTB_IMAGE_PAGES) +#define DTB_FLASH_REGION_START (PARTITION_TABLE_REGION_START + PARTITION_TABLE_REGION_LENGTH) +#define DTB_FLASH_REGION_LENGTH (DTB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* RECOVERY Region */ +#define RECOVERY_FLASH_REGION_PAGES (RECOVERY_IMAGE_PAGES) +#define RECOVERY_FLASH_REGION_START (DTB_FLASH_REGION_START + DTB_FLASH_REGION_LENGTH) +#define RECOVERY_FLASH_REGION_LENGTH (RECOVERY_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define RECOVERY_VECTORS_LOAD_ORIGIN (RECOVERY_FLASH_REGION_START) +#define RECOVERY_VERSION_LOAD_ORIGIN (RECOVERY_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) +#define RECOVERY_CHANGEID_LOAD_ORIGIN (RECOVERY_VERSION_LOAD_ORIGIN + VERSION_LENGTH) + +#define RECOVERY_PROGRAM_ORIGIN (RECOVERY_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define RECOVERY_PROGRAM_LENGTH ((RECOVERY_FLASH_REGION_LENGTH) - \ + (BT_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) + +/* RESERVE Region */ +#define RESERVE_FLASH_REGION_PAGES (RESERVE_IMAGE_PAGES) +#define RESERVE_FLASH_REGION_START (RECOVERY_FLASH_REGION_START + RECOVERY_FLASH_REGION_LENGTH) +#define RESERVE_FLASH_REGION_LENGTH (RESERVE_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* BT Region */ +#define BT_FLASH_REGION_PAGES (BT_IMAGE_PAGES) +#define BT_FLASH_REGION_START (RESERVE_FLASH_REGION_START + RESERVE_FLASH_REGION_LENGTH) +#define BT_FLASH_REGION_LENGTH (BT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define BT_BUILD_INFO_ORIGIN (BT_FLASH_REGION_START) +#define BT_VECTORS_LOAD_ORIGIN (BT_BUILD_INFO_ORIGIN + BUILD_INFO_LENGRH) +#define BT_VERSION_LOAD_ORIGIN (BT_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) +#define BT_CHANGEID_LOAD_ORIGIN (BT_VERSION_LOAD_ORIGIN + VERSION_LENGTH) +#define DSP_CHANGEID_LOAD_ORIGIN (BT_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) + +/* Fill 4 byte to align flash 8 byte */ +#define BT_PROGRAM_ORIGIN (DSP_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define BT_PROGRAM_LENGTH ((BT_FLASH_REGION_LENGTH) - (BT_VECTORS_LENGTH + \ + VERSION_LENGTH + CHANGE_ID_LENGTH + CHANGE_ID_LENGTH)) + +/* DSP Region */ +#define DSP_FLASH_REGION_PAGES (HIFI0_IMAGE_PAGES) +#define DSP_FLASH_REGION_START (BT_FLASH_REGION_START + BT_FLASH_REGION_LENGTH) +#define DSP_FLASH_REGION_LENGTH (DSP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* DSP1 Region */ +#define DSP_CODEC_FLASH_REGION_PAGES (HIFI0_CODEC_PAGES) +#define DSP_CODEC_FLASH_REGION_START (DSP_FLASH_REGION_START + DSP_FLASH_REGION_LENGTH) +#define DSP_CODEC_FLASH_REGION_LENGTH (DSP_CODEC_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* APP Region */ +#define APP_FLASH_REGION_PAGES (APP_IMAGE_PAGES) +#define APP_FLASH_REGION_START (DSP_CODEC_FLASH_REGION_START + DSP_CODEC_FLASH_REGION_LENGTH) +#define APP_FLASH_REGION_LENGTH (APP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* NV data Region */ +#define NV_FLASH_REGION_PAGES (NV_IMAGE_PAGES) +#define NV_FLASH_REGION_START (APP_FLASH_REGION_START + APP_FLASH_REGION_LENGTH) +#define NV_FLASH_REGION_LENGTH (NV_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* Fota data Region */ +#define FOTA_FLASH_REGION_PAGES (FOTA_IMAGE_PAGES) +#define FOTA_FLASH_REGION_START (NV_FLASH_REGION_START + NV_FLASH_REGION_LENGTH) +#define FOTA_FLASH_REGION_LENGTH (FOTA_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define APP_VECTORS_LOAD_ORIGIN (APP_FLASH_REGION_START) +#define APP_VERSION_LOAD_ORIGIN (APP_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) + +#define APP_PROGRAM_ORIGIN (APP_VERSION_LOAD_ORIGIN + VERSION_LENGTH) +#define APP_PROGRAM_LENGTH ((APP_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH)) + +/* cores image flash region start */ +#define FLASH_CORE_IMAGES_START (FLASH_START + SSB_FLASH_REGION_LENGTH + SSB_BACKUP_FLASH_REGION_LENGTH + \ + SEC_BOOT_FLASH_REGION_LENGTH + \ + KV_PAGES * FLASH_PAGE_SIZE + PARTITION_TABLE_REGION_LENGTH) +/* ----------------------------------------------------------------------------------------------------------------- */ +/* KV Region Defines */ +/* Minimum System Configuration pages in FLASH reserved */ +#define SYSTEM_RESERVED_FLASH_PAGES 0 +/* Minimum reserved Non Volatile storage + Config Data. */ +#define FLASH_RESERVED_LENGTH (SYSTEM_RESERVED_FLASH_PAGES * FLASH_PAGE_SIZE) + +/* + * ********************* SEC BOOT REGION ********************* + */ +#define MCU_ROOT_PUBKEY_START SEC_BOOT_FLASH_REGION_START +#define MCU_SUB_PUBKEY_START (MCU_ROOT_PUBKEY_START + FLASH_PAGE_SIZE) +#define MCU_SSB_IMAGE_SIGN_START (MCU_SUB_PUBKEY_START + FLASH_PAGE_SIZE) +#define MCU_SUB_PUBKEY_BACKUP_START (MCU_SSB_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_SSB_IMAGE_SIGN_BACKUP_START (MCU_SUB_PUBKEY_BACKUP_START + FLASH_PAGE_SIZE) + +#define MCU_SEC_BOOT_SIGN_BACKUP_START MCU_SUB_PUBKEY_BACKUP_START +#define MCU_SEC_BOOT_SIGN_BACKUP_LEN (2 * FLASH_PAGE_SIZE) + +#define MCU_CFCT_START (MCU_SEC_BOOT_SIGN_BACKUP_START + MCU_SEC_BOOT_SIGN_BACKUP_LEN) +#define MCU_CFCT_LEN FLASH_PAGE_SIZE + +#define MCU_RECOVERY_IMAGE_SIGN_START (MCU_CFCT_START + MCU_CFCT_LEN) +#define MCU_BT_IMAGE_SIGN_START (MCU_RECOVERY_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_DSP_IMAGE_SIGN_START (MCU_BT_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_DSP1_IMAGE_SIGN_START (MCU_DSP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_APP_IMAGE_SIGN_START (MCU_DSP1_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_PARTITION_TABLE_SIGN_START (MCU_APP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) diff --git a/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_8M.h b/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_8M.h new file mode 100644 index 000000000..9729162ff --- /dev/null +++ b/code/sdk/drivers/boards/brandy_evb/memory_config/include/flash_8M.h @@ -0,0 +1,184 @@ +/* + * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. + * Description: Default memory configurations + * Author: @CompanyNameTag + * Create: 2022-03-09 + */ + +#ifndef FLASH_8M_H +#define FLASH_8M_H + +/* + * ********************* FLASH ALLOCATION ********************* + * Flash is shared between the cores, and also handles a limited number of + * non-volatile storage areas. + * + * Flash is split into 2 main areas + * IMAGE Area + * Managed by the BT core + * This contains, in order from the bottom of Flash: + * SSB - SSB image starting at the bottom of flash. Variable size depending on the SSB on the chip that + * the package is loaded on. The values in this file only apply to the SSB built with this file. + * RECOVERY_Image - starts in the page after the SSB. + * BT_Image - starts in the page after the RECOVERY_Image + * DSP_Image - starts in the page after the BT_Image + * APP_Image - starts in the page after the DSP_Image + * System On-demand region - dynamically allocated flash for FOTA etc + * NV Area + * Ends at the last page of flash, is configurable in size above a minimum allocation. + * NV Area, of 12 pages, is allocated, from the lowest address: + * 8 pages of general use (pages are not fixed and self-identifying), consisting of + * 1 Page for Asset Store defragmentation + * 3 pages for Asset Store + * 2 Pages for App and DSP Core KV defragmentation + * 1 page for DSP Core KV + * 1 page for App Core KV + * 2 pages for BT core use (last 2 pages in Flash) + * 1 page for BT Core KV + * 1 page for BT Core KV defragmentation + */ + +#define FLASH_START 0x70000000 +#define FLASH_LENGTH 0x800000 +#define FLASH_MAX_END (FLASH_START + FLASH_LENGTH) + +#define FLASH_PAGE_SIZE 4096 +/* APP ITCM config */ +#define MCU_ITCM_END (APP_ITCM_ORIGIN + APP_ITCM_LENGTH) + +#define SSB_BOOT_RAM_ORIGIN APP_ITCM_ORIGIN +#define SSB_BOOT_RAM_LENGTH APP_ITCM_LENGTH + +/* ----------------------------------------------------------------------------------------------------------------- */ +/* IMAGE Area Defines */ +/* MCU SSB Region */ +#define SSB_FLASH_REGION_PAGES (SSB_IMAGE_PAGES + 5) +#define KV_PAGES 0 +#define SSB_FLASH_REGION_START (FLASH_START) +#define SSB_FLASH_REGION_LENGTH (SSB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define SSB_VECTORS_LOAD_ORIGIN (SSB_FLASH_REGION_START) +#define SSB_VERSION_LOAD_ORIGIN (SSB_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) +#define SSB_CHANGEID_LOAD_ORIGIN (SSB_VERSION_LOAD_ORIGIN + VERSION_LENGTH) + +#define SSB_PROGRAM_ORIGIN (SSB_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define SSB_PROGRAM_LENGTH ((SSB_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) + +/* MCU SSB BACK-UP Region */ +#define SSB_BACKUP_FLASH_REGION_PAGES 32 +#define SSB_BACKUP_FLASH_REGION_START (SSB_FLASH_REGION_START + SSB_FLASH_REGION_LENGTH + KV_PAGES * FLASH_PAGE_SIZE) +#define SSB_BACKUP_FLASH_REGION_LENGTH (SSB_BACKUP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* SEC_BOOT Region for Signature Certificate */ +#define SEC_BOOT_FLASH_REGION_PAGES 15 +#define SEC_BOOT_FLASH_REGION_START (SSB_BACKUP_FLASH_REGION_START + SSB_BACKUP_FLASH_REGION_LENGTH) +#define SEC_BOOT_FLASH_REGION_LENGTH (SEC_BOOT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define PARTITION_TABLE_REGSION_PAGE 1 +#define PARTITION_TABLE_REGION_START (SEC_BOOT_FLASH_REGION_START + SEC_BOOT_FLASH_REGION_LENGTH) +#define PARTITION_TABLE_REGION_LENGTH (PARTITION_TABLE_REGSION_PAGE * FLASH_PAGE_SIZE) + +/* DTB Region */ +#define DTB_FLASH_REGION_PAGES (DTB_IMAGE_PAGES) +#define DTB_FLASH_REGION_START (PARTITION_TABLE_REGION_START + PARTITION_TABLE_REGION_LENGTH) +#define DTB_FLASH_REGION_LENGTH (DTB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* RECOVERY Region */ +#define RECOVERY_FLASH_REGION_PAGES (RECOVERY_IMAGE_PAGES) +#define RECOVERY_FLASH_REGION_START (DTB_FLASH_REGION_START + DTB_FLASH_REGION_LENGTH) +#define RECOVERY_FLASH_REGION_LENGTH (RECOVERY_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define RECOVERY_VECTORS_LOAD_ORIGIN (RECOVERY_FLASH_REGION_START) +#define RECOVERY_VERSION_LOAD_ORIGIN (RECOVERY_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) +#define RECOVERY_CHANGEID_LOAD_ORIGIN (RECOVERY_VERSION_LOAD_ORIGIN + VERSION_LENGTH) + +#define RECOVERY_PROGRAM_ORIGIN (RECOVERY_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define RECOVERY_PROGRAM_LENGTH ((RECOVERY_FLASH_REGION_LENGTH) - \ + (BT_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) + +/* RESERVE Region */ +#define RESERVE_FLASH_REGION_PAGES (RESERVE_IMAGE_PAGES) +#define RESERVE_FLASH_REGION_START (RECOVERY_FLASH_REGION_START + RECOVERY_FLASH_REGION_LENGTH) +#define RESERVE_FLASH_REGION_LENGTH (RESERVE_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* BT Region */ +#define BT_FLASH_REGION_PAGES (BT_IMAGE_PAGES) +#define BT_FLASH_REGION_START (RESERVE_FLASH_REGION_START + RESERVE_FLASH_REGION_LENGTH) +#define BT_FLASH_REGION_LENGTH (BT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define BT_BUILD_INFO_ORIGIN (BT_FLASH_REGION_START) +#define BT_VECTORS_LOAD_ORIGIN (BT_BUILD_INFO_ORIGIN + BUILD_INFO_LENGRH) +#define BT_VERSION_LOAD_ORIGIN (BT_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) +#define BT_CHANGEID_LOAD_ORIGIN (BT_VERSION_LOAD_ORIGIN + VERSION_LENGTH) +#define DSP_CHANGEID_LOAD_ORIGIN (BT_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) + +/* Fill 4 byte to align flash 8 byte */ +#define BT_PROGRAM_ORIGIN (DSP_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) +#define BT_PROGRAM_LENGTH ((BT_FLASH_REGION_LENGTH) - (BT_VECTORS_LENGTH + \ + VERSION_LENGTH + CHANGE_ID_LENGTH + CHANGE_ID_LENGTH)) + +/* DSP Region */ +#define DSP_FLASH_REGION_PAGES (HIFI0_IMAGE_PAGES) +#define DSP_FLASH_REGION_START (BT_FLASH_REGION_START + BT_FLASH_REGION_LENGTH) +#define DSP_FLASH_REGION_LENGTH (DSP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* DSP1 Region */ +#define DSP_CODEC_FLASH_REGION_PAGES (HIFI0_CODEC_PAGES) +#define DSP_CODEC_FLASH_REGION_START (DSP_FLASH_REGION_START + DSP_FLASH_REGION_LENGTH) +#define DSP_CODEC_FLASH_REGION_LENGTH (DSP_CODEC_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* APP Region */ +#define APP_FLASH_REGION_PAGES (APP_IMAGE_PAGES) +#define APP_FLASH_REGION_START (DSP_CODEC_FLASH_REGION_START + DSP_CODEC_FLASH_REGION_LENGTH) +#define APP_FLASH_REGION_LENGTH (APP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* NV data Region */ +#define NV_FLASH_REGION_PAGES (NV_IMAGE_PAGES) +#define NV_FLASH_REGION_START (APP_FLASH_REGION_START + APP_FLASH_REGION_LENGTH) +#define NV_FLASH_REGION_LENGTH (NV_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +/* Fota data Region */ +#define FOTA_FLASH_REGION_PAGES (FOTA_IMAGE_PAGES) +#define FOTA_FLASH_REGION_START (NV_FLASH_REGION_START + NV_FLASH_REGION_LENGTH) +#define FOTA_FLASH_REGION_LENGTH (FOTA_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) + +#define APP_VECTORS_LOAD_ORIGIN (APP_FLASH_REGION_START) +#define APP_VERSION_LOAD_ORIGIN (APP_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) + +#define APP_PROGRAM_ORIGIN (APP_VERSION_LOAD_ORIGIN + VERSION_LENGTH) +#define APP_PROGRAM_LENGTH ((APP_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH)) + +/* cores image flash region start */ +#define FLASH_CORE_IMAGES_START (FLASH_START + SSB_FLASH_REGION_LENGTH + SSB_BACKUP_FLASH_REGION_LENGTH + \ + SEC_BOOT_FLASH_REGION_LENGTH + \ + KV_PAGES * FLASH_PAGE_SIZE + PARTITION_TABLE_REGION_LENGTH) +/* ----------------------------------------------------------------------------------------------------------------- */ +/* KV Region Defines */ +/* Minimum System Configuration pages in FLASH reserved */ +#define SYSTEM_RESERVED_FLASH_PAGES 0 +/* Minimum reserved Non Volatile storage + Config Data. */ +#define FLASH_RESERVED_LENGTH (SYSTEM_RESERVED_FLASH_PAGES * FLASH_PAGE_SIZE) + +/* + * ********************* SEC BOOT REGION ********************* + */ +#define MCU_ROOT_PUBKEY_START SEC_BOOT_FLASH_REGION_START +#define MCU_SUB_PUBKEY_START (MCU_ROOT_PUBKEY_START + FLASH_PAGE_SIZE) +#define MCU_SSB_IMAGE_SIGN_START (MCU_SUB_PUBKEY_START + FLASH_PAGE_SIZE) +#define MCU_SUB_PUBKEY_BACKUP_START (MCU_SSB_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_SSB_IMAGE_SIGN_BACKUP_START (MCU_SUB_PUBKEY_BACKUP_START + FLASH_PAGE_SIZE) + +#define MCU_SEC_BOOT_SIGN_BACKUP_START MCU_SUB_PUBKEY_BACKUP_START +#define MCU_SEC_BOOT_SIGN_BACKUP_LEN (2 * FLASH_PAGE_SIZE) + +#define MCU_CFCT_START (MCU_SEC_BOOT_SIGN_BACKUP_START + MCU_SEC_BOOT_SIGN_BACKUP_LEN) +#define MCU_CFCT_LEN FLASH_PAGE_SIZE + +#define MCU_RECOVERY_IMAGE_SIGN_START (MCU_CFCT_START + MCU_CFCT_LEN) +#define MCU_BT_IMAGE_SIGN_START (MCU_RECOVERY_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_DSP_IMAGE_SIGN_START (MCU_BT_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_DSP1_IMAGE_SIGN_START (MCU_DSP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_APP_IMAGE_SIGN_START (MCU_DSP1_IMAGE_SIGN_START + FLASH_PAGE_SIZE) +#define MCU_PARTITION_TABLE_SIGN_START (MCU_APP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) + +#endif \ No newline at end of file diff --git a/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h b/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h index 3edc736bf..64bd965cb 100755 --- a/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h +++ b/code/sdk/drivers/boards/brandy_evb/memory_config/include/memory_config_common.h @@ -127,177 +127,23 @@ #endif /* - * ********************* FLASH ALLOCATION ********************* - * Flash is shared between the cores, and also handles a limited number of - * non-volatile storage areas. - * - * Flash is split into 2 main areas - * IMAGE Area - * Managed by the BT core - * This contains, in order from the bottom of Flash: - * SSB - SSB image starting at the bottom of flash. Variable size depending on the SSB on the chip that - * the package is loaded on. The values in this file only apply to the SSB built with this file. - * RECOVERY_Image - starts in the page after the SSB. - * BT_Image - starts in the page after the RECOVERY_Image - * DSP_Image - starts in the page after the BT_Image - * APP_Image - starts in the page after the DSP_Image - * System On-demand region - dynamically allocated flash for FOTA etc - * NV Area - * Ends at the last page of flash, is configurable in size above a minimum allocation. - * NV Area, of 12 pages, is allocated, from the lowest address: - * 8 pages of general use (pages are not fixed and self-identifying), consisting of - * 1 Page for Asset Store defragmentation - * 3 pages for Asset Store - * 2 Pages for App and DSP Core KV defragmentation - * 1 page for DSP Core KV - * 1 page for App Core KV - * 2 pages for BT core use (last 2 pages in Flash) - * 1 page for BT Core KV - * 1 page for BT Core KV defragmentation - */ - -#define FLASH_START 0x70000000 -#define FLASH_LENGTH 0x1000000 -#define FLASH_MAX_END (FLASH_START + FLASH_LENGTH) - -#define FLASH_PAGE_SIZE 4096 -/* APP ITCM config */ -#define MCU_ITCM_END (APP_ITCM_ORIGIN + APP_ITCM_LENGTH) - -#define SSB_BOOT_RAM_ORIGIN APP_ITCM_ORIGIN -#define SSB_BOOT_RAM_LENGTH APP_ITCM_LENGTH - -/* ----------------------------------------------------------------------------------------------------------------- */ -/* IMAGE Area Defines */ -/* MCU SSB Region */ -#define SSB_FLASH_REGION_PAGES (SSB_IMAGE_PAGES + 5) -#define KV_PAGES 0 -#define SSB_FLASH_REGION_START (FLASH_START) -#define SSB_FLASH_REGION_LENGTH (SSB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define SSB_VECTORS_LOAD_ORIGIN (SSB_FLASH_REGION_START) -#define SSB_VERSION_LOAD_ORIGIN (SSB_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) -#define SSB_CHANGEID_LOAD_ORIGIN (SSB_VERSION_LOAD_ORIGIN + VERSION_LENGTH) - -#define SSB_PROGRAM_ORIGIN (SSB_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) -#define SSB_PROGRAM_LENGTH ((SSB_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) - -/* MCU SSB BACK-UP Region */ -#define SSB_BACKUP_FLASH_REGION_PAGES 32 -#define SSB_BACKUP_FLASH_REGION_START (SSB_FLASH_REGION_START + SSB_FLASH_REGION_LENGTH + KV_PAGES * FLASH_PAGE_SIZE) -#define SSB_BACKUP_FLASH_REGION_LENGTH (SSB_BACKUP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* SEC_BOOT Region for Signature Certificate */ -#define SEC_BOOT_FLASH_REGION_PAGES 15 -#define SEC_BOOT_FLASH_REGION_START (SSB_BACKUP_FLASH_REGION_START + SSB_BACKUP_FLASH_REGION_LENGTH) -#define SEC_BOOT_FLASH_REGION_LENGTH (SEC_BOOT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define PARTITION_TABLE_REGSION_PAGE 1 -#define PARTITION_TABLE_REGION_START (SEC_BOOT_FLASH_REGION_START + SEC_BOOT_FLASH_REGION_LENGTH) -#define PARTITION_TABLE_REGION_LENGTH (PARTITION_TABLE_REGSION_PAGE * FLASH_PAGE_SIZE) - -/* DTB Region */ -#define DTB_FLASH_REGION_PAGES (DTB_IMAGE_PAGES) -#define DTB_FLASH_REGION_START (PARTITION_TABLE_REGION_START + PARTITION_TABLE_REGION_LENGTH) -#define DTB_FLASH_REGION_LENGTH (DTB_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* RECOVERY Region */ -#define RECOVERY_FLASH_REGION_PAGES (RECOVERY_IMAGE_PAGES) -#define RECOVERY_FLASH_REGION_START (DTB_FLASH_REGION_START + DTB_FLASH_REGION_LENGTH) -#define RECOVERY_FLASH_REGION_LENGTH (RECOVERY_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define RECOVERY_VECTORS_LOAD_ORIGIN (RECOVERY_FLASH_REGION_START) -#define RECOVERY_VERSION_LOAD_ORIGIN (RECOVERY_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) -#define RECOVERY_CHANGEID_LOAD_ORIGIN (RECOVERY_VERSION_LOAD_ORIGIN + VERSION_LENGTH) - -#define RECOVERY_PROGRAM_ORIGIN (RECOVERY_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) -#define RECOVERY_PROGRAM_LENGTH ((RECOVERY_FLASH_REGION_LENGTH) - \ - (BT_VECTORS_LENGTH + VERSION_LENGTH + CHANGE_ID_LENGTH)) - -/* RESERVE Region */ -#define RESERVE_FLASH_REGION_PAGES (RESERVE_IMAGE_PAGES) -#define RESERVE_FLASH_REGION_START (RECOVERY_FLASH_REGION_START + RECOVERY_FLASH_REGION_LENGTH) -#define RESERVE_FLASH_REGION_LENGTH (RESERVE_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* BT Region */ -#define BT_FLASH_REGION_PAGES (BT_IMAGE_PAGES) -#define BT_FLASH_REGION_START (RESERVE_FLASH_REGION_START + RESERVE_FLASH_REGION_LENGTH) -#define BT_FLASH_REGION_LENGTH (BT_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define BT_BUILD_INFO_ORIGIN (BT_FLASH_REGION_START) -#define BT_VECTORS_LOAD_ORIGIN (BT_BUILD_INFO_ORIGIN + BUILD_INFO_LENGRH) -#define BT_VERSION_LOAD_ORIGIN (BT_VECTORS_LOAD_ORIGIN + BT_VECTORS_LENGTH) -#define BT_CHANGEID_LOAD_ORIGIN (BT_VERSION_LOAD_ORIGIN + VERSION_LENGTH) -#define DSP_CHANGEID_LOAD_ORIGIN (BT_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) - -/* Fill 4 byte to align flash 8 byte */ -#define BT_PROGRAM_ORIGIN (DSP_CHANGEID_LOAD_ORIGIN + CHANGE_ID_LENGTH) -#define BT_PROGRAM_LENGTH ((BT_FLASH_REGION_LENGTH) - (BT_VECTORS_LENGTH + \ - VERSION_LENGTH + CHANGE_ID_LENGTH + CHANGE_ID_LENGTH)) - -/* DSP Region */ -#define DSP_FLASH_REGION_PAGES (HIFI0_IMAGE_PAGES) -#define DSP_FLASH_REGION_START (BT_FLASH_REGION_START + BT_FLASH_REGION_LENGTH) -#define DSP_FLASH_REGION_LENGTH (DSP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* DSP1 Region */ -#define DSP_CODEC_FLASH_REGION_PAGES (HIFI0_CODEC_PAGES) -#define DSP_CODEC_FLASH_REGION_START (DSP_FLASH_REGION_START + DSP_FLASH_REGION_LENGTH) -#define DSP_CODEC_FLASH_REGION_LENGTH (DSP_CODEC_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* APP Region */ -#define APP_FLASH_REGION_PAGES (APP_IMAGE_PAGES) -#define APP_FLASH_REGION_START (DSP_CODEC_FLASH_REGION_START + DSP_CODEC_FLASH_REGION_LENGTH) -#define APP_FLASH_REGION_LENGTH (APP_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* NV data Region */ -#define NV_FLASH_REGION_PAGES (NV_IMAGE_PAGES) -#define NV_FLASH_REGION_START (APP_FLASH_REGION_START + APP_FLASH_REGION_LENGTH) -#define NV_FLASH_REGION_LENGTH (NV_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -/* Fota data Region */ -#define FOTA_FLASH_REGION_PAGES (FOTA_IMAGE_PAGES) -#define FOTA_FLASH_REGION_START (NV_FLASH_REGION_START + NV_FLASH_REGION_LENGTH) -#define FOTA_FLASH_REGION_LENGTH (FOTA_FLASH_REGION_PAGES * FLASH_PAGE_SIZE) - -#define APP_VECTORS_LOAD_ORIGIN (APP_FLASH_REGION_START) -#define APP_VERSION_LOAD_ORIGIN (APP_VECTORS_LOAD_ORIGIN + APP_VECTORS_LENGTH) - -#define APP_PROGRAM_ORIGIN (APP_VERSION_LOAD_ORIGIN + VERSION_LENGTH) -#define APP_PROGRAM_LENGTH ((APP_FLASH_REGION_LENGTH) - (APP_VECTORS_LENGTH + VERSION_LENGTH)) - -/* cores image flash region start */ -#define FLASH_CORE_IMAGES_START (FLASH_START + SSB_FLASH_REGION_LENGTH + SSB_BACKUP_FLASH_REGION_LENGTH + \ - SEC_BOOT_FLASH_REGION_LENGTH + \ - KV_PAGES * FLASH_PAGE_SIZE + PARTITION_TABLE_REGION_LENGTH) -/* ----------------------------------------------------------------------------------------------------------------- */ -/* KV Region Defines */ -/* Minimum System Configuration pages in FLASH reserved */ -#define SYSTEM_RESERVED_FLASH_PAGES 0 -/* Minimum reserved Non Volatile storage + Config Data. */ -#define FLASH_RESERVED_LENGTH (SYSTEM_RESERVED_FLASH_PAGES * FLASH_PAGE_SIZE) - -/* - * ********************* SEC BOOT REGION ********************* - */ -#define MCU_ROOT_PUBKEY_START SEC_BOOT_FLASH_REGION_START -#define MCU_SUB_PUBKEY_START (MCU_ROOT_PUBKEY_START + FLASH_PAGE_SIZE) -#define MCU_SSB_IMAGE_SIGN_START (MCU_SUB_PUBKEY_START + FLASH_PAGE_SIZE) -#define MCU_SUB_PUBKEY_BACKUP_START (MCU_SSB_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_SSB_IMAGE_SIGN_BACKUP_START (MCU_SUB_PUBKEY_BACKUP_START + FLASH_PAGE_SIZE) - -#define MCU_SEC_BOOT_SIGN_BACKUP_START MCU_SUB_PUBKEY_BACKUP_START -#define MCU_SEC_BOOT_SIGN_BACKUP_LEN (2 * FLASH_PAGE_SIZE) - -#define MCU_CFCT_START (MCU_SEC_BOOT_SIGN_BACKUP_START + MCU_SEC_BOOT_SIGN_BACKUP_LEN) -#define MCU_CFCT_LEN FLASH_PAGE_SIZE - -#define MCU_RECOVERY_IMAGE_SIGN_START (MCU_CFCT_START + MCU_CFCT_LEN) -#define MCU_BT_IMAGE_SIGN_START (MCU_RECOVERY_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_DSP_IMAGE_SIGN_START (MCU_BT_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_DSP1_IMAGE_SIGN_START (MCU_DSP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_APP_IMAGE_SIGN_START (MCU_DSP1_IMAGE_SIGN_START + FLASH_PAGE_SIZE) -#define MCU_PARTITION_TABLE_SIGN_START (MCU_APP_IMAGE_SIGN_START + FLASH_PAGE_SIZE) + * norflash 分区修改会导致已商用版本OTA失败,此处修改需谨慎 + * norflash修改请同时修改以下文件: + * 分区表配置: + * 16M:build\config\target_config\brandy\param_sector\param_sector_16M.json + * 8M:build\config\target_config\brandy\param_sector\param_sector.json + * 打包脚本: + * tools\pkg\chip_packet\brandy\packet.py +*/ +#if defined(CFG_FLASH_SIZE) && (CFG_FLASH_SIZE == 16) +#ifdef FD230 +#include "flash_16M_FD230.h" +#else +#include "flash_16M.h" +#endif +#else +#include "flash_8M.h" +#endif /* * ********************* RAM ALLOCATION ********************* diff --git a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h index 24d6e2bc3..c0a6c37c3 100755 --- a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h +++ b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h @@ -25,6 +25,8 @@ #else #define ENABLE_LOW_POWER NO #endif +#if defined(CFG_FLASH_SIZE) && (CFG_FLASH_SIZE == 16) +#ifdef FD230 #define DTB_IMAGE_PAGES 0 #define RECOVERY_IMAGE_PAGES 64 #define RESERVE_IMAGE_PAGES 0 @@ -32,9 +34,31 @@ #define HIFI0_IMAGE_PAGES 112 #define HIFI0_CODEC_PAGES 320 #define APP_IMAGE_PAGES 3401 +#else +#define DTB_IMAGE_PAGES 0 +#define RECOVERY_IMAGE_PAGES 256 +#define RESERVE_IMAGE_PAGES 64 +#define BT_IMAGE_PAGES 112 +#define HIFI0_IMAGE_PAGES 192 +#define HIFI0_CODEC_PAGES 448 +#define APP_IMAGE_PAGES 2048 +#endif +#else +#define DTB_IMAGE_PAGES 0 +#define RECOVERY_IMAGE_PAGES 64 +#define RESERVE_IMAGE_PAGES 0 +#define BT_IMAGE_PAGES 112 +#define HIFI0_IMAGE_PAGES 112 +#define HIFI0_CODEC_PAGES 320 +#define APP_IMAGE_PAGES 1353 +#endif #define NV_IMAGE_PAGES 4 #define FOTA_IMAGE_PAGES 3 +#ifdef FD230 #define FOTA_IMAGE_START 0xFFD000 +#else +#define FOTA_IMAGE_START 0x770000 +#endif #define SSB_FOTA_OFFSET 0x0 #define XO_CTRIM_VALUR_DEFAULT 0x56 #define DSP1_IPC_ENABLE NO diff --git a/code/sdk/drivers/chips/brandy/porting/systick/systick_porting.c b/code/sdk/drivers/chips/brandy/porting/systick/systick_porting.c index 27ce6ab39..878077f98 100755 --- a/code/sdk/drivers/chips/brandy/porting/systick/systick_porting.c +++ b/code/sdk/drivers/chips/brandy/porting/systick/systick_porting.c @@ -42,13 +42,14 @@ uint64_t uapi_systick_get_time(systick_time_t time_type) volatile uint64_t now_count = 0; volatile uint64_t ret_time = 0; volatile uint64_t cost_msec = 0; + uint64_t pre_count = g_pre_systick_count; if (g_pre_systick_count == 0) { - g_pre_systick_count = uapi_systick_get_count(); - g_pre_systick_msec = (g_pre_systick_count * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ; + pre_count = uapi_systick_get_count(); + g_pre_systick_msec = (pre_count * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ; } else { now_count = uapi_systick_get_count(); - cost_msec = ((now_count - g_pre_systick_count) * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ; + cost_msec = ((now_count - pre_count) * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ; g_pre_systick_count = now_count; g_pre_systick_msec = g_pre_systick_msec + cost_msec; diff --git a/code/sdk/drivers/drivers/driver/button/button.c b/code/sdk/drivers/drivers/driver/button/button.c new file mode 100644 index 000000000..6e0fb2a0c --- /dev/null +++ b/code/sdk/drivers/drivers/driver/button/button.c @@ -0,0 +1,359 @@ +/** + * Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. \n + * + * Description: Button driver source file \n + * Author: @CompanyNameTag \n + * History: \n + * 2023-02-24, Create file. \n + */ + +#include "pinctrl.h" +#include "button_porting.h" +#include "platform_core.h" +#include "gpio.h" +#include "gpio_porting.h" +#include "debug_print.h" +#include "rtc.h" +#include "timer.h" +#include "systick.h" +#include "chip_core_irq.h" + +#define BUTTON_PWREN_ID 1 +/** + * @if Eng + * @brief Button debounce struct + * @else + * @brief 按键去抖动结构体定义 + * @endif + */ +typedef struct { + uint8_t debounced; /*!< @if Eng Recording debounced group. + @else 记录产生抖动的按键组 @endif */ + uint32_t debounced_time; /*!< @if Eng Debounced time. + @else 抖动计时 @endif */ +} button_debounced_t; + +/** + * @if Eng + * @brief Button information struct + * @else + * @brief 按键信息结构体定义 + * @endif + */ +typedef struct { + uint8_t pressed_group; /*!< @if Eng Recording button pressed group. + @else 记录被按下的按键组 @endif */ + uint8_t which_pressed; /*!< @if Eng Pressed button bit turns to 1 + @else 被按下的按键置1 @endif */ + uint8_t which_released; /*!< @if Eng Releaesd button bit turns to 1 + @else 被松开的按键置1 @endif */ +} button_info_t; + +button_debounced_t g_button_debounced = {0}; +button_map_t g_button_pin_map[BUTTON_PIN_MAP_MAX] = {0}; +timer_handle_t g_button_timer = {0}; +timer_handle_t g_gpio_button_timer = {0}; +button_info_t g_button_info = {0}; +bool g_timer_is_running = false; +bool g_gpio_timer_is_running = false; +msg_send_callback_t g_msg_send_cb = NULL; + +static const char* g_state_str[PRESSED_MAX] = { + "BUTTON_PRESSED", + "BUTTON_RESLASED", +}; + +static void button_debounced_timer_callback(uint32_t data); +static void button_check_released_timer_callback(uint32_t data); + +void button_group_set_bit(uint8_t* group, uint8_t bit) +{ + (*group) |= (1 << bit); +} + +static void button_group_clear_bit(uint8_t* group, uint8_t bit) +{ + (*group) &= ~(1 << bit); +} + +static button_press_state_t button_get_press_state(pin_t pin) +{ + button_peripheral_api *button_api = button_port_get_api(); + return button_api->button_get_state(pin); +} + +static bool button_group_find_bit(uint8_t group, uint8_t* bit) +{ + if (bit == NULL) { + return false; + } + for (uint8_t i = 0; i < BUTTON_PIN_MAP_MAX; i++) { + if ((group & (1 << i)) != 0) { + *bit = i; + return true; + } + } + return false; +} + +static void button_send_msg(uint8_t pin_group, button_press_state_t state) +{ + if (g_msg_send_cb == NULL) { + PRINT("button %d is %s\r\n", pin_group, g_state_str[state]); + } else { + g_msg_send_cb(pin_group, state); + } +} + +static void button_timer_start(void) +{ + bool start = false; + if (!g_gpio_timer_is_running) { + g_gpio_timer_is_running = true; + start = true; + } + + if (start) { + uapi_rtc_stop(g_gpio_button_timer); + uapi_rtc_start(g_gpio_button_timer, BUTTON_TIMER_INTERVAL, button_debounced_timer_callback, 0); + } +} + +static void button_timer_start_check_released(void) +{ + bool start = false; + if (!g_timer_is_running) { + g_timer_is_running = true; + start = true; + } + + if (start) { + uapi_rtc_stop(g_button_timer); + uapi_rtc_start(g_button_timer, BUTTON_CHECK_RELEADSED, button_check_released_timer_callback, 0); + } +} + +static void button_irq_callback(pin_t pin) +{ + pin = PIN_NONE; + uapi_ulp_wkup_type_record(); + button_peripheral_api *button_api = button_port_get_api(); + // if not vbus or pwren interrupt return + if (button_api->button_check_interrupt(pin) == false) { + button_api->button_clear_interrupt(pin); + return; + } + // deal with vbus interrupt + if (button_api->button_check_vbus_interrupt()) { + button_api->button_deal_vbus_event(); + button_api->button_clear_interrupt(pin); + return; + } + + // deal with pwren interrupt + button_api->button_clear_interrupt(pin); + button_press_state_t press_state = button_get_press_state(pin); + button_send_msg(BUTTON_PWREN_ID, press_state); + button_api->button_add_veto(); + button_timer_start_check_released(); +} + +static void button_gpio_callback(pin_t pin, uintptr_t param) +{ + unused(param); + uint8_t bit = 0; + for (uint8_t index = 0; index < BUTTON_PIN_MAP_MAX; index++) { + if (pin == g_button_pin_map[index].pin) { + bit = index; + break; + } + } + + uapi_gpio_clear_interrupt(pin); + button_press_state_t press_state = button_get_press_state(pin); + unsigned int irq_sts = osal_irq_lock(); + if (press_state == PRESSED) { + button_group_set_bit(&g_button_debounced.debounced, bit); + g_button_debounced.debounced_time = (uint32_t)uapi_systick_get_ms(); + } + osal_irq_restore(irq_sts); + + button_peripheral_api *button_api = button_port_get_api(); + button_api->button_add_veto(); + button_timer_start(); +} + +static void button_debounced_handler(void) +{ + pin_t pin = 0; + uint32_t time = (uint32_t)uapi_systick_get_ms(); + uint8_t pressed_group = 0; + uint8_t bit = 0; + uint8_t debounced = g_button_debounced.debounced; + + while (debounced > 0) { + if (button_group_find_bit(debounced, &bit)) { + button_group_clear_bit(&debounced, bit); + pin = g_button_pin_map[bit].pin; + if ((button_get_press_state(pin) == PRESSED) && + (time - g_button_debounced.debounced_time >= DEBOUNCED_INTERVAL)) { + /* Debounce */ + button_group_set_bit(&pressed_group, bit); + button_group_clear_bit(&g_button_debounced.debounced, bit); + } + } + } + + /* Comparing with the old pressed state to figure out which buttons are pressed or released */ + g_button_info.which_pressed = pressed_group & ~g_button_info.pressed_group; + g_button_info.which_released = ~pressed_group & g_button_info.pressed_group; + + /* Recording pressed_group */ + g_button_info.pressed_group = pressed_group; +} + +static void button_debounced_timer_callback(uint32_t data) +{ + unused(data); + g_gpio_timer_is_running = false; + + button_debounced_handler(); + + if (g_button_info.which_pressed != 0) { + button_send_msg(g_button_info.which_pressed, PRESSED); + } else if (g_button_info.which_released != 0) { + button_send_msg(g_button_info.which_released, RELEASED); + } + if (g_button_debounced.debounced != 0) { + button_timer_start(); + } else { + button_peripheral_api *button_api = button_port_get_api(); + button_api->button_remove_veto(); + } +} + +static void button_check_released_timer_callback(uint32_t data) +{ + unused(data); + + g_timer_is_running = false; + + button_peripheral_api *button_api = button_port_get_api(); + button_press_state_t press_state; + press_state = button_get_press_state(PIN_NONE); + if (press_state == 1) { + button_send_msg(1, RELEASED); + button_api->button_remove_veto(); + } else { + button_timer_start_check_released(); + } +} + +errcode_t uapi_button_gpio_register(pin_t pin) +{ + errcode_t ret; + ret = uapi_gpio_unregister_isr_func(pin); + if (ret != ERRCODE_SUCC) { + return ret; + } + /* GPIO set input and pull up */ + if ((uapi_pin_set_mode(pin, (pin_mode_t)HAL_PIO_FUNC_GPIO) != ERRCODE_SUCC) || + (uapi_pin_set_pull(pin, (pin_pull_t)HAL_PIO_PULL_UP) != ERRCODE_SUCC) || + (uapi_gpio_set_dir(pin, GPIO_DIRECTION_INPUT) != ERRCODE_SUCC)) { + PRINT("gpio config failed\r\n"); + return ERRCODE_FAIL; + } + ret = uapi_gpio_register_isr_func(pin, GPIO_INTERRUPT_DEDGE, button_gpio_callback); + if (ret != ERRCODE_SUCC) { + PRINT("button gpio register failed\r\n"); + return ret; + } + return ERRCODE_SUCC; +} + +errcode_t uapi_button_deregister(pin_t pin) +{ + errcode_t ret; + button_peripheral_api *button_api = button_port_get_api(); + ret = button_api->button_unregister_callback(pin); + if (ret != ERRCODE_SUCC) { + PRINT("button deregister failed\r\n"); + return ret; + } + + return ERRCODE_SUCC; +} + +errcode_t uapi_button_register(button_map_t* button_map) +{ + errcode_t ret = 0; + if (button_map == NULL) { + return ERRCODE_FAIL; + } + + button_peripheral_api *button_api = button_port_get_api(); + for (uint8_t i = 0; i < BUTTON_PIN_MAP_MAX; i++) { + g_button_pin_map[i].pin = button_map[i].pin; + g_button_pin_map[i].button = button_map[i].button; + if (button_map[i].pin != PIN_NONE && button_map[i].button != BUTTON_MAX) { + if (button_map[i].button == BUTTON_PWR) { + button_api->button_pmu_pwr_cfg(true); + } + ret |= uapi_button_gpio_register(g_button_pin_map[i].pin); + } else if (button_map[i].pin == PIN_NONE && button_map[i].button == BUTTON_PWR) { + ret = button_api->button_register_callback(g_button_pin_map[i].pin, (osal_irq_handler)button_irq_callback); + if (ret != ERRCODE_SUCC) { + PRINT("button register failed\r\n"); + return ret; + } + continue; + } + } + + return ret; +} + +void uapi_button_deinit(void) +{ + /* Stop the time and clear the pin map */ + uapi_rtc_stop(g_button_timer); + uapi_rtc_delete(g_button_timer); + g_button_timer = NULL; + uapi_rtc_stop(g_gpio_button_timer); + uapi_rtc_delete(g_gpio_button_timer); + g_gpio_button_timer = NULL; + for (uint8_t i = 0; i < BUTTON_PIN_MAP_MAX; i++) { + g_button_pin_map[i].pin = PIN_NONE; + g_button_pin_map[i].button = BUTTON_MAX; + } +} + +errcode_t uapi_button_init(void) +{ + errcode_t ret = 0; + ret = uapi_rtc_init(); + + ret |= uapi_rtc_adapter(0, RTC_0_IRQN, irq_prio(RTC_0_IRQN)); /* 1: using timer1 */ + if (ret != ERRCODE_SUCC) { + PRINT("uapi_rtc_init FAILED 0x%x", ret); + return ret; + } + ret = uapi_rtc_create(0, &g_button_timer); /* 1: using timer1 */ + if (ret != ERRCODE_SUCC) { + PRINT("uapi_rtc_create FAILED 0x%x", ret); + return ret; + } + ret = uapi_rtc_create(0, &g_gpio_button_timer); /* 1: using timer1 */ + if (ret != ERRCODE_SUCC) { + PRINT("uapi_rtc_create FAILED 0x%x", ret); + return ret; + } + return ERRCODE_SUCC; +} + +void uapi_button_send_msg_register(msg_send_callback_t cb) +{ + if (cb != NULL) { + g_msg_send_cb = cb; + } +} \ No newline at end of file diff --git a/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c b/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c index 9f6645767..5eec00b93 100755 --- a/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c +++ b/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c @@ -77,6 +77,7 @@ typedef struct { static mmc_save_info_t g_mmc_cur_info = { 0 }; bool g_mmc_sleep_inited = false; bool g_mmc_inited = false; +static enum mmc_bus_timing g_max_timing = bus_timing_normal; void mmc_set_first_init_flag(bool flag) { @@ -694,24 +695,50 @@ static void sdhci_use_pll_clk(void) DPAL_WRITE_UINT16(GLB_CLKEN_ENABLE, GLB_CLKEN_REG); } +static uint32_t sdhci_get_config_clock(struct hci_softc *sc, uint32_t clock) +{ + uint32_t actual_clock = clock; + if (clock > sc->caps.max_clk) { +#if EMMC_BOARD_DEBUG_ON + dprintf("%s, clock:[%u] is greater than the max_clk:[%u]!\n", __FUNCTION__, clock, sc->caps.max_clk); +#endif + actual_clock = sc->caps.max_clk; + } + switch (g_max_timing) { + case bus_timing_mmc_hs: + case bus_timing_uhs_sdr50: + case bus_timing_uhs_ddr50: + case bus_timing_mmc_ddr52: + case bus_timing_sd_hs: + if (actual_clock >= SDIOM_SRC_CLK_FREQ_LVL_50M_VAL) { + actual_clock = SDIOM_SRC_CLK_FREQ_LVL_49M_VAL; + } + break; + default: + break; + } + return actual_clock; +} + uint32_t sdhci_set_clock(struct hci_softc *sc, uint32_t clock) { unsigned int ret; static uint8_t inited = false; - + uint32_t actual_clk = 0; if (clock == 0) { device_printf(sc->dev, "set clock invalid param!\n"); return clock; } + actual_clk = sdhci_get_config_clock(sc, clock); #if EMMC_BOARD_DEBUG_ON - dprintf("%s, clock: [%u], resource:[0x%x]!\n", __FUNCTION__, clock, DPAL_GET_UINT16(SDIOM_CR_REG)); + dprintf("%s, clk:%u,a_clk:%u,resource:[0x%x]!\n", __FUNCTION__, clock, actual_clk, DPAL_GET_UINT16(SDIOM_CR_REG)); #endif - if (clock <= SDIOM_SRC_CLK_FREQ_LVL_50M_VAL) { + if (actual_clk <= SDIOM_SRC_CLK_FREQ_LVL_50M_VAL) { brandy_reg16_clrbit(BRANDY_EXTERNAL_EMMC_CCLK_DIV, EMMC_TUNING_COARSE_MODE_BIT); } else { brandy_reg16_setbit(BRANDY_EXTERNAL_EMMC_CCLK_DIV, EMMC_TUNING_COARSE_MODE_BIT); } - ret = hal_mmc_set_soc_clock(sc, clock); + ret = hal_mmc_set_soc_clock(sc, actual_clk); if (ret != 0) { device_printf(sc->dev, "set clock fail!\n"); return 0; @@ -727,17 +754,24 @@ uint32_t sdhci_set_clock(struct hci_softc *sc, uint32_t clock) #ifdef CFG_SDIO_EMMC_COEXIST if (sc->num == 0) { #endif - // After the tuning phase value is configured, the tuning clk function is automatically enabled. - uint32_t phase = dpal_readl(AT_STAT); - dpal_writel(phase, AT_STAT); + // After the tuning phase value is configured, the tuning clk function is automatically enabled. + if (actual_clk > SDIOM_SRC_CLK_FREQ_LVL_50M_VAL) { + brandy_reg16_clrbit(HOST_CTRL2, SAMPLE_CLK_SEL_BIT); + brandy_reg16_clrbit(AT_CTRL, 0x4); // 0x4 means SW_TUNE_EN + dpal_writel(sc->tuning_phase, AT_STAT); + brandy_reg16_setbit(HOST_CTRL2, SAMPLE_CLK_SEL_BIT); // The fixed clock is less than or equal to 52 MHz, and the tuning clock is not used. - if (clock <= SDIOM_SRC_CLK_FREQ_LVL_50M_VAL) { - brandy_reg16_clrbit(HOST_CTRL2, SAMPLE_CLK_SEL_BIT); - } + } else { + brandy_reg16_clrbit(HOST_CTRL2, SAMPLE_CLK_SEL_BIT); + } #ifdef CFG_SDIO_EMMC_COEXIST } #endif - return clock; +#if EMMC_BOARD_DEBUG_ON + dprintf("%s,clk_src=0x%X, at_ctrl=0x%X, at_stat=0x%X, host2_ctrl=0x%X, tuning_phase=0x%X\r\n", __FUNCTION__, + readw(SDIOM_CR_REG), readw(AT_CTRL), readw(AT_STAT), readw(HOST_CTRL2), sc->tuning_phase); +#endif + return actual_clk; } void mmc_set_internal_clk(uint16_t clk_level) @@ -1118,6 +1152,7 @@ static void sdhci_set_mmc_io_driver(const struct hci_softc *sc, uint32_t host_id static bool sdhci_judge_dll_sample(uint32_t timing) { + if (g_max_timing < timing) { g_max_timing = timing; } if (timing == bus_timing_mmc_hs || timing == bus_timing_sd_hs || timing == bus_timing_normal || timing == bus_timing_uhs_sdr25) { return false; @@ -1162,8 +1197,7 @@ static void sdhci_set_phase(struct hci_softc *sc, uint32_t timing) } } else { /* SDIO device */ - if ((timing == bus_timing_sd_hs) || - (timing == bus_timing_uhs_sdr25)) { + if ((timing == bus_timing_sd_hs) || (timing == bus_timing_uhs_sdr25)) { drv_phase = DRV_PHASE_180_DEGREE; phase = SAMPLE_PHASE; } else { @@ -1174,7 +1208,8 @@ static void sdhci_set_phase(struct hci_softc *sc, uint32_t timing) } en_flag = sdhci_judge_dll_sample(timing); #if EMMC_BOARD_DEBUG_ON - device_printf(sc->dev, "timing:%u, phase:0x%x, drv_phase:0x%x, en_flag:%d \n", timing, phase, drv_phase, en_flag); + device_printf(sc->dev, "timing:%u, g_max_timing =%u, phase:0x%x, drv_phase:0x%x, en_flag:%d \n", timing, + g_max_timing, phase, drv_phase, en_flag); #endif sdhci_set_drv_phase(sc->num, drv_phase); sdhci_en_drv_dll_sample(sc, en_flag); diff --git a/code/sdk/drivers/drivers/driver/mmc/include/soc_mmc.h b/code/sdk/drivers/drivers/driver/mmc/include/soc_mmc.h index 3cc5cc232..da82d3080 100755 --- a/code/sdk/drivers/drivers/driver/mmc/include/soc_mmc.h +++ b/code/sdk/drivers/drivers/driver/mmc/include/soc_mmc.h @@ -177,8 +177,8 @@ extern "C" { #define SD_BUS_DIV_NUM_MASK 0xF8 // bit3---bit7 #define SD_BUS_DIV_NUM_POST_SHIFT 3 -#define EMMC_TUNING_BM0_VAL (0x4210) -#define EMMC_TUNING_BM1_VAL (0x707) +#define EMMC_TUNING_BM0_VAL (0x4244) +#define EMMC_TUNING_BM1_VAL (0x777) #define EMMC_TUNING_COARSE_MODE BIT(13) #define DWC_MSHC_PTR_VENDOR1 0x500 diff --git a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c index 6c24c0f63..44ef95dd3 100644 --- a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c +++ b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c @@ -3031,7 +3031,7 @@ void hx3695_hrs_ppg_Int_handle(void) encoded_hrm[15] = ppg_s_data.green_cur;//绿灯电流 encoded_hrm[16] = ppg_s_data.ir_cur;//红外电流 - if(cm_custom_ble_service_on_flag()) + if(uapi_dev_runtime_get_bt_powerstat()) ble_ppgtest_server_send_input_report(encoded_hrm,PPG_DATA_LEN_MAX); // ble_op_att_send_data(ATT_CHARACTERISTIC_2a37_01_VALUE_HANDLE,encoded_hrm, \ @@ -3477,7 +3477,7 @@ void hx3695_spo2_ppg_Int_handle(void) encoded_hrm[15] = cal.R_LED; encoded_hrm[16] = cal.IR_LED1; - if(cm_custom_ble_service_on_flag()) + if(uapi_dev_runtime_get_bt_powerstat()) ble_ppgtest_server_send_input_report(encoded_hrm,PPG_DATA_LEN_MAX); } } diff --git a/code/sdk/include/middleware/services/bts/common/bts_def.h b/code/sdk/include/middleware/services/bts/common/bts_def.h index cd14ba170..fc6b0a7b6 100755 --- a/code/sdk/include/middleware/services/bts/common/bts_def.h +++ b/code/sdk/include/middleware/services/bts/common/bts_def.h @@ -158,6 +158,31 @@ typedef struct { @else UUID字段。 @endif */ } bt_uuid_t; +/** + * @if Eng + * @brief Set BT_SERVICE_TASK priority. + * @par Set BT_SERVICE_TASK priority. + * @attention NULL + * @param [in] task_priority task priority, range is 0 to 31, 0 is highest priority, 31 is lowest priority. + * @retval #ERRCODE_BT_SUCCESS Excute successfully. + * @retval #Other Error code, @ref errcode_bt_t + * @par Dependency: + * @li bts_def.h + * @see + * @else + * @brief 设置BT_SERVICE_TASK任务优先级。 + * @par 设置BT_SERVICE_TASK任务优先级。 + * @attention 无 + * @param [in] 任务优先级, 0为最大优先级,31为最小优先级. + * @retval #ERRCODE_BT_SUCCESS 执行成功。 + * @retval #Other 错误码, @ref errcode_bt_t + * @par 依赖: + * @li bts_def.h + * @see + * @endif + */ +errcode_bt_t bts_set_service_task_priority(uint16_t task_priority); + /** * @} */ diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style.cpp.xml index 814768b37..4747edad5 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style.cpp.xml @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_item.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_item.cpp.xml index 616ce6daf..b094ecb2d 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_item.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_item.cpp.xml @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_manager.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_manager.cpp.xml index f56cf39f9..037fdcae2 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_manager.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_manager.cpp.xml @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/btsrv_task.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/btsrv_task.c.xml index 7f8007ae6..8528e7ad3 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/btsrv_task.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/btsrv_task.c.xml @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml index 076b14e7e..a62c26346 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml @@ -8,8 +8,8 @@ - - + + diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state.cpp.xml index 83155ae4e..39339dba5 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state.cpp.xml @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state_machine.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state_machine.cpp.xml index 879879367..2b6d5b643 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state_machine.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state_machine.cpp.xml @@ -1,22 +1,22 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_router.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_router.cpp.xml index b28742c84..d6361bbe2 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_router.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_router.cpp.xml @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lite_m_gfx_engine.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lite_m_gfx_engine.cpp.xml index 58d336d49..1bdf5bd87 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lite_m_gfx_engine.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lite_m_gfx_engine.cpp.xml @@ -1,33 +1,33 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/map_svg_parser.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/map_svg_parser.cpp.xml index fdff0566e..4a02f3641 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/map_svg_parser.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/map_svg_parser.cpp.xml @@ -1,72 +1,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/platform_adapter.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/platform_adapter.cpp.xml index b988bc94b..5df549e10 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/platform_adapter.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/platform_adapter.cpp.xml @@ -1,4 +1,4 @@ - - - + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/spp_service.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/spp_service.c.xml index b0ce8cad1..8666eca75 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/spp_service.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/spp_service.c.xml @@ -1,52 +1,58 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_coverflow_view2.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_coverflow_view2.cpp.xml index cf81c8609..a5a003547 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_coverflow_view2.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_coverflow_view2.cpp.xml @@ -3,5 +3,6 @@ - + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_icosahedron_view.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_icosahedron_view.cpp.xml index c474fb166..7b69562ed 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_icosahedron_view.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_icosahedron_view.cpp.xml @@ -1,2 +1,2 @@ - + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_map_view.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_map_view.cpp.xml index ee2cc76b0..0a05ed538 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_map_view.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_map_view.cpp.xml @@ -1,3 +1,3 @@ - - + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_roller_view.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_roller_view.cpp.xml index 2645a8d50..dfbff856e 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_roller_view.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_roller_view.cpp.xml @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_slipflow_view.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_slipflow_view.cpp.xml new file mode 100644 index 000000000..9bd50c7f8 --- /dev/null +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_slipflow_view.cpp.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_transform_group.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_transform_group.cpp.xml index a9391cb37..31f789946 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_transform_group.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_transform_group.cpp.xml @@ -1,3 +1,3 @@ - - + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_sea.c.xml b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_sea.c.xml index 2541a892c..b826476ed 100755 --- a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_sea.c.xml +++ b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_sea.c.xml @@ -1,88 +1,88 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml index b1d8c6a12..189bb53e3 100755 --- a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml +++ b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml @@ -1923,17 +1923,20 @@ - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/hci_core_ram.c.xml b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/hci_core_ram.c.xml index 0bdff1a17..1f5869e67 100755 --- a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/hci_core_ram.c.xml +++ b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/hci_core_ram.c.xml @@ -1,12 +1,15 @@ - - - - - - - - - - - + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a index c5a5e72a1c5fd6522e16e6f4f0b71cc9ceddd1c8..ddc954de833eb15c0bd6f835414fbb2e390746bf 100755 GIT binary patch delta 33 jcmaEJpXtqgrU}yQW(Fq47RKfqm00;;?9F<7`xXKK!yF1` delta 33 jcmaEJpXtqgrU}yQ#wKQ#24)r;m00;;?9F<7`xXKK!?Fr+ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a index dc7c4de02b3649c0041c51d94d229a99f8d570b1..11fadca12b0ae59fbce7ae63421dacb7aeb22c1f 100755 GIT binary patch delta 26481 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 delta 24437 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 diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a index 54c959693c8d1f16384d8e7017f16a2322fc6722..b31ab9d87d78065eb06ff1b56d83417fb73a7208 100755 GIT binary patch delta 1071 zcmcceMElAU?FrKCW(Fq47RDAEm2?xJY}3hlSHw5xCh&2>1g85vV3F87EAt}@Oa!Pz zZ1ak|)nZ5j;+qRwv$$XaAU)!nfA();g^7UmoS3T33lo?g_k~S-v*6-c0&EahOm55+ z-+W?oyaF=c<;r(1WPZf`|B}f3lAp_^5q!z*R-%l$tOx<|?JZJ_x8)H665DI77$=z{ z3+NUx-t$2Sh;P@}&lrwmsQC6dw;1OyK&X(|9$C$lWC;`4I8|c%%`Hq-?J$9d{o>mT zY?yzqfe8RTw!Pye^XCv`ff;rz>lY#fB)6wMU|FaS6L{D!v0YVw^&8w_AVV!;S&KPf zDnQnrOl3VZ0VV*_vho{ik~U1h@xH`%O(nKGxL-hKY_VlihnoQs_~FXduME=y5?GSS zCe4W~aHojvb2Ll!t{WA z6xqkIh##iJv6@L@yW~8MAX}IcQ1o=(<~XN?EKthEdCdeSun`yvnbw@IV99m5;C@Dl z?S;{t@1$VH9^3*nwziD(TpvuN@Fg=)7b{m?HcX_^jzwZSYay2xECN90h;Pqn=6Vl{ eXNX9}axP_9tU*L}?BlA2#ldv2Ie`zjn1ulUx>&^k delta 1073 zcmY+BZ%7ky7{|G7cfY%%Y)SKOlh93+aJVMP#wvp#-$~$zN^G*E5h^Y>A}X^tVX-&M z61k{YnJ-ophMo1$ia7_1l3?Y8H~-MjmK?)!Y7=l49hb#HFn zJ6TWmbOb{Fpnu-e7UlHsfRZR!WpyN4BOq`)7^ixBaMM-=Q}e2%K8!!EqlO48tBHvr z5y6e321?hTu?Su-SY&m1x^=4oNUDAIjvc}GC~>Oq)JP)&cR92xSEQlaJ)Eree*5P{ zhZZWSXG__71m(66axgyHx91db!c`aZvBBgS-^<(#nn+ucS?fl^WOxa7EiuPvvQF-P zV(#5Hcx31uvkZg`M1s`?%hdag9lVXPZzfGukBaPo*Fdy~dAKw5VS3K=7o&|GC1EQfSUgQ)Ocr9qVnWnVsW~`I zj#32L>r*Wid(aQQX>wtPs<{Ba+)UNw6a1@oRQf>2)BNlNCI6 ziU|5S;b#Y`@<1{S?Gp+Oi1gsmKH-RbmWS- kQ9WtUug9LxicQt~XeNDuFBip&)tzfdJDCjOylAQY52b-X!~g&Q diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a index 1ddd57eb5819e25308a66697c54d85c5e19d0fa9..3d7ba6d016a82495ecd34763291b60d10a66b2f9 100755 GIT binary patch delta 41 rcmbQSnRmu!-U-sIW(Fq4rW+O5`5>%j9lmxQK1LvB+OEULoZ}4u@6if9 delta 41 rcmbQSnRmu!-U-sI#wKPKCL0yl`5>%j9lmxQK1LvB+OEULoZ}4u@g)jN diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a index e396688fdbd5d975b04a459f24725f4d190d50e6..f451d2feca80cd0108619677af7830c8ff120dac 100755 GIT binary patch delta 182520 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�-k0%^$|uFc(<1wk1>Y8J1h6V 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
    =ft(g`+=+Nf2U#3 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
    Dat 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 MH`2YgmVMR#04m^j+5i9m diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_audio_manager_wrapper.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_audio_manager_wrapper.a new file mode 100644 index 0000000000000000000000000000000000000000..08d29c576bb0574c65239c35b9b9df2cfa893749 GIT binary patch literal 45036 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 VEA`$nSV{0P%JkO$OT1^Q{ui84X?*|y delta 24410 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 delta 1038 zcmZXSUr1A77{)o<&i9=iYTB@!v+cs>vZxVZO}GAemms(xp>E93h+r*TDg-UM7!gqy z<{IM!;V6X`)XiA&-l(IHh%P3DUF1+FC?w<}8i{n%x6^qK=g{4Ge$Vr~@5lF@x%I%@ zdSKj3j|Mx!?cpQ&mO}$X{SKv*QK@ikpuw)`LNY4y=;c?W!i%AoF4Xnx^}8_xC_SR({3hF?ws;Ij^Q6wVUfQE`pkeD>rMd!dw|P zk8_VgNb%Rrobt2N<_1TZn|O*gDm$x~k>`F>q3J5|YEP;adPd2wK0`)^{(0hZAZd$G8B$B6 zLqei1UaOI~(?HxXLg|d&Qm-oFq91o)W>-;^q1{hE`;ffl8EHLD2_9GZlw+hjLM=_0 zQCrbL+G{nDub1hW{|T2%N2$dW%*W_?J;)Za`-#)hefYmaHbZY}FBDc(KNu1Ut-4>m zAk4I(N>?Xc@L^1tYCxjQR%{a7&kDV#%xJqTlnx?-60vUvQ7OwF_FFEVux~UYQU_Q1 z>_0pv^8JQ=eoQCX1=ixl+c6|?aabI5qEZ}jD#6knvFb;pj{TMs{SuP;ZV3()#e`2s Nr5cgpT}8Aw{{qSSK%f8s diff --git a/code/sdk/middleware/chips/brandy/dfx/include/log_def_app.h b/code/sdk/middleware/chips/brandy/dfx/include/log_def_app.h index 4f8fda3b9..d171afad1 100755 --- a/code/sdk/middleware/chips/brandy/dfx/include/log_def_app.h +++ b/code/sdk/middleware/chips/brandy/dfx/include/log_def_app.h @@ -188,6 +188,7 @@ typedef enum { MSG_CENTER_OTA_CPP, MSG_CENTER_CUSTOMER_CPP, MSG_CENTER_PROTOCOL_CPP, + MSG_CENTER_COMMON_CPP, ALARM_NOTIFICATION_CPP, MAKEPHONE_NOTIFICATION_CPP, NOTIFICATION_MANAGER_CPP, diff --git a/code/sdk/middleware/chips/brandy/dfx/include/log_def_gui.h b/code/sdk/middleware/chips/brandy/dfx/include/log_def_gui.h index eadd45120..5375914e1 100755 --- a/code/sdk/middleware/chips/brandy/dfx/include/log_def_gui.h +++ b/code/sdk/middleware/chips/brandy/dfx/include/log_def_gui.h @@ -426,6 +426,7 @@ typedef enum { KALEIDOSCOPE_UTILS_CPP, UI_COVERFLOW_VIEW_CPP, UI_COVERFLOW_VIEW2_CPP, + UI_SLIPFLOW_VIEW_CPP, UI_ROLLER_VIEW_CPP, UI_ICOSAHEDRON_VIEW_CPP, UI_MAP_VIEW_CPP, diff --git a/code/sdk/middleware/chips/brandy/dfx/include/log_def_ohos.h b/code/sdk/middleware/chips/brandy/dfx/include/log_def_ohos.h index 2d1e3bd07..fa8b79033 100644 --- a/code/sdk/middleware/chips/brandy/dfx/include/log_def_ohos.h +++ b/code/sdk/middleware/chips/brandy/dfx/include/log_def_ohos.h @@ -120,6 +120,7 @@ typedef enum { JSI_CPP, APP_MODULE_CPP, DEVICE_MODULE_CPP, + NETWORK_MODULE_CPP, NFC_MODULE_CPP, GEOLOCATION_MODULE_CPP, VIBRATOR_MODULE_CPP, @@ -134,6 +135,7 @@ typedef enum { CONSOLE_MODULE_CPP, DATE_TIME_FORMAT_MODULE_CPP, FEATURE_ABILITY_MODULE_CPP, + IMAGE_MODULE_CPP, INTL_MODULE_CPP, JSTEST_MODULE_CPP, LOCALIZATION_MODULE_CPP, diff --git a/code/sdk/middleware/chips/brandy/nv/include/nv_config.h b/code/sdk/middleware/chips/brandy/nv/include/nv_config.h index 6a01d6450..f053e883c 100755 --- a/code/sdk/middleware/chips/brandy/nv/include/nv_config.h +++ b/code/sdk/middleware/chips/brandy/nv/include/nv_config.h @@ -6,20 +6,22 @@ #ifndef NV_CONFIG_H #define NV_CONFIG_H +#include "memory_config.h" + #define NV_TASKS_MAX_NUM 64 /* 可支持的NV保存任务的最大数(多核系统使用) */ #define NV_NORMAL_KVALUE_MAX_LEN 4060 /* 普通NV的最大数据长度 */ #define NV_ENCRYPTED_KVALUE_MAX_LEN 4048 /* 加密NV的最大数据长度 */ /* Flash 物理地址起始和结束 */ -#define FLASH_PHYSICAL_ADDR_START 0x70000000 -#define FLASH_PHYSICAL_ADDR_END 0x80000000 +#define FLASH_PHYSICAL_ADDR_START (FLASH_START) +#define FLASH_PHYSICAL_ADDR_END (FLASH_START + FLASH_LENGTH) #define KV_PAGE_SIZE FLASH_PAGE_SIZE /* NV运行区默认起始地址(物理地址) */ -#define KV_STORE_START_ADDR (FLASH_PHYSICAL_ADDR_START + 0xFF9000) +#define KV_STORE_START_ADDR (NV_FLASH_REGION_START) /* NV运行区page数 */ -#define KV_STORE_DATA_PAGE_NUM 4 +#define KV_STORE_DATA_PAGE_NUM (NV_FLASH_REGION_PAGES) /* NV运行区默认长度(不包含备份区) */ #define KV_STORE_DATA_SIZE (KV_STORE_DATA_PAGE_NUM * KV_PAGE_SIZE) diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a index 74bab2e7062d657810fd5d8da4ad3f45440625a1..b561e81a9b818892eaa1e9a7b8f6cfac16a9c795 100644 GIT binary patch delta 72 zcmcc7!g8a9Wr8%TnSqIk(MAPx76@yyg1W@!5|-sk5bkCL^76@yyg1W@!5|-sk5bkCL^H~;_u diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a index 0c18f1d00f9a667516f508f2a41d9ec17453ac63..ad93d8538ef36736c8455e0dbf7251320bead420 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqIkp}E0EB~um%+stxv9LruM7-w=Ei`Zrh^=N;XO0d9&vg?^J Lfz5pnPALKag*z9N delta 80 zcmcc7!g8a9Wr8%jv5A?bg}Kp2B~unC+i-In%U&fIXL1~i*k%j$Xn&YWu)v10>zObW KoBJM|QUm~xAQ#pE diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a index 901f59cf3c1723816f982720ed292337a7174d33..ccac945e2407a9db528975b84541875279e8920c 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqIkiG|rlB~unC+jMgr%U&fIXL1~i*k%j$Xn&YWu)v10>zObW KoBJM|QUm~rV;8dk delta 78 zcmcc7!g8a9Wr8%jv5C2XsfFoAB~unC+hlVb%U&fIXL1~i*k%j$Xn$6)%E=1qlAAY{ OUCV^YZ|-|=N)Z5G-4`qX diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a index 1f2f82e274b3b809863a27b4dcd0e4ff26ca48fb..4347741a3663efc867b01f0a31d7faa1589ad191 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqJ1rJ?CYB~unC+hlVb%U&fIXL1~i*k%j$Xn&YWu)v10>zObW KoBJM|QUm~ocNd=k delta 79 zcmcc7!g8a9Wr8%jv5A?bk%`GhB~unC+jw&v%U&fIXL1~i*k%j$Xn!_{%E^lA5}P-c OUCV?i*xdKvlp+9g`4?sY diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a index 0406d16e544bb73f46ba17d3b9d0ddd565075548..f82ee73f48e201da3d3893e80fc6f0eeb32036ef 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqIkv8B;QB~um{dvhGiUL_c3avY1;W()Obe-wcYW!E!d0-O6D HoKge;hSe9M delta 80 zcmcc7!g8a9Wr8%jv5C2XiKXF2B~um{dvhGiUL_c3avY1;W()Obe-wcYW!E!d0-O6D HoKge;hUpig diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a index c72f493565136ead1d7e8bb610240590e2943a30..99705e6991f12c529528a83d11dd17314d7e8ce1 100644 GIT binary patch delta 77 zcmcc7!g8a9Wr8%DnSqJ1nej$NGZuCT(|B_n%U&fIXL1~i*k%j$Xn&}}$%^U{n>UtS N%Y^bb_dYnS2mnYz7T*8> delta 82 zcmcc7!g8a9Wr8%Dv5A?5sl`S`GZuCT(`0iT%U&fIXL1~i*k%j$Xnz!e4Q1Cep*klk Ms*7)4@?eW10Kh&NTmS$7 diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a index ed20488fdac4603df94e004cab0dc8e25035b1b2..5730c169dac5bbf671168f85320b7ac751df938c 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqIkiJ{p>B~unC+jMgr%U&fIXL1~i*k%j$Xn&YWu)v10>zObW KoBJM|QUm~mBNvbW delta 80 zcmcc7!g8a9Wr8%jv5C2XsiDb6B~um{dvhGiUL_c3avY1;W()Obe-wcYW!E!d0-O6D HoKge;gWng9 diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a index 4188f3425e751496c72ee9e22ff0cde2d38d7a6d..4ce2807bb3c7c42d4a100e10b7fcf1d0486ae219 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%DnSqJ1nZ-s$GZrXwvZA{9<`S0WN>Ki0MfDUnQ M&qP+dKi0MfDUnQ M&qP+dUnQ M&qPwXzObW KoBJM|QUm~zLKo!# diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a index a0f017f9f620d1721b8a2c09312362deb2a41019..88583111eddb8c75db2f072e425688fd9824798c 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqIkiJ8$xB~unC+i-In%U&gz#N;>@vCS6h(f%j`8_KR{!UQ(= IJvgNZ0EHzNmjD0& delta 78 zcmcc7!g8a9Wr8%jv5C2XshQzMB~unC+hB7X%U&fIXL1~i*k%j$Xn$6)%E>V-5}P-a OUC)HcZ|-|=N)Z5FJQpkg diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a index 4500b5129de22f9b7a7d79f4de080513ec66be84..6cff65178aa573ced1364041d051ce8c6d76ccd4 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqJ1g^}e(B~unC+hTJZ%U&fIXL1~i*k%j$Xn&YWu)v10>zObW KoBJM|QUm~rUKg_f delta 80 zcmcc7!g8a9Wr8%jv5A?bftle(B~um{dvhGiUL_c3avY1;W()Obe-wcYW!E#I0tTD= I9-LAH0EgNarT_o{ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a index 7ca96c1850ee12fd15491bd40a960d4625208e24..47b9d40c1902c11db6bc61f9b659795ce2ad893a 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqIkfwAdEB~unC+hlVb%U&fIXL1~i*k%j$Xn&YWu)v10>zObW KoBJM|QUm~j)E9vO delta 80 zcmcc7!g8a9Wr8%jv5A?bsj0z6B~um%+r)Bn9LruMn8f5b7O~A1>e2ov0vpP%XTk(F J_dPhJ2mp)a7rp=h diff --git a/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a index db044ac0d6bc9c3df5521c1890fa09f5630e0966..cd4bc8646637bb753146cbcc878b289e5880b3a9 100644 GIT binary patch delta 80 zcmcc7!g8a9Wr8%jnSqIksj=}!B~unC+h}tf%U&fIXL1~i*k%j$Xn&YWu)v10>zObW KoBJM|QUm~mHy4lq delta 80 zcmcc7!g8a9Wr8%jv5C2XnX%zUB~um{dvhGiUL_c3avY1;W()Obe-wcYW!E#I0tTD= I9-LAH0E6upjQ{`u diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a index c43a607e50ac5ea4216cbb30a2ec10a3e0d508df..253ac7e829276e39d9e54133428a38d67cdfbfdc 100644 GIT binary patch delta 57 zcmZoz#oVxpd4e>nnSqIk(MAPxMs_gE(qMBO~(;mtaWH;Y1;lVcbqHviedA_D-} Cnh@gv delta 57 zcmZoz#oVxpd4e>nv5C2X;YI~>Ms_gE(r|Me~(;mtaWH;Y1;lVcbqHviedA_D-} CRS@6+ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a index f556eafb92cbaf53999df2b0e1bb48fc96da5d05..11f94461b2848871dcc773085e8a66cbcabae299 100644 GIT binary patch delta 63 zcmZoz#oVxpd4e>%nSqIkp}Fx!B~wNidvhG)$%Sx^-r|j-FwW#SMzPI*cCg3*05TgA ABme*a delta 63 zcmZoz#oVxpd4e>%v5A?bg}KE>B~wNy+kA5z%nSqJ1rJ?0UB~wNidvhG)$%Sx^-r|j-FwW#SMzPI*cCg3*05xh7 AKmY&$ delta 63 zcmZoz#oVxpd4e>%v5A?bk%`4dB~wNidvhG)$%Rmk`DVSv8%1H9$#INgoB!-!kpTcV CVG>RN diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a index 49605afa7003996331292e67bede7aab0e2fcb09..2113c203ac2df5ce82f59d43c1a4f2fff2d9e1a3 100755 GIT binary patch delta 59 zcmZoz#oVxpd4e>XnSqJ1nej$NGe#(Lb1dVjg)p}6;!UDZ_T*Sb@y&mBu*d)a_hb=N delta 59 zcmZoz#oVxpd4e>Xv5A?5sl`S`Ge#(Lb1dVjg)p}6;!UDZ_T*Sb@y&mBu*d)a{MZqM diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a index 6c3cb9c2b7e2ac05d4090c6f8824e660c0f23ce7..655e25318f8e68cf46ac53c381aaa28acdc8b6d0 100755 GIT binary patch delta 62 zcmZoz#oVxpd4e>%nSqJ1nWe!-B~wNidvhG)$%SlS35(6Ti#LhFBqql(if#V0gGB}a DBxDi( delta 62 zcmZoz#oVxpd4e>%v5A?5xuNAoB~wNidvhG)$%SkXiOsr;H;KX|CdV;~ZT_=^MFs#U CbrK!` diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a index 746d092905d8203dabd5ec8b99a9a7e469e43781..220209d864810203e31d64b1c804efdd19d162a0 100755 GIT binary patch delta 63 zcmZoz#oVxpd4e>%nSqJ1g|XpAB~wNidvhG)$%Rmk!DhY18%1H9$#INgoB!-!kpTcQ C77`)= delta 63 zcmZoz#oVxpd4e>%v5A?bftm3}B~wNidvhG)$%Sx^-r|j-FwW#SMzPI*cCg3*05vfZ AJOBUy diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a index 6346e30ab216fb33162d1709fa146d5b93152322..b912171210d5f2665bf2b8821b586b483a08fed5 100755 GIT binary patch delta 63 zcmZoz#oVxpd4e>%nSqIkfr-&ZB~wNy+i-In%v5A?bsj2x!B~wNidvhG)$%Sx^-r|j-FwW#SMzPI*cCg3*066^; ATmS$7 diff --git a/code/sdk/middleware/services/gui/hal/display/src/display_gralloc.c b/code/sdk/middleware/services/gui/hal/display/src/display_gralloc.c index 0efd01d31..bc3041070 100755 --- a/code/sdk/middleware/services/gui/hal/display/src/display_gralloc.c +++ b/code/sdk/middleware/services/gui/hal/display/src/display_gralloc.c @@ -229,13 +229,14 @@ static int32_t AllocMem(const AllocInfo *info, BufferHandle **handle) } uint8_t *addr = LosAllocMem(pool, (uint32_t)(buffer->size)); - if ((pool == g_poolId) && (g_tryToFreeImgCallback != NULL)) { + if (((info->usage & HBM_USE_MEM_YUV) != HBM_USE_MEM_YUV) && + (pool == g_poolId) && (g_tryToFreeImgCallback != NULL)) { while (addr == NULL) { if (g_tryToFreeImgCallback()) { - DISP_LOGW("Success to free image during AllocMem size:%d\n", buffer->size); + DISP_LOGW("Success to free image during AllocMem size: %u\n", buffer->size); addr = LosAllocMem(pool, (uint32_t)(buffer->size)); } else { - DISP_LOGE("Failed to AllocMem size:%d and no image can be free\n", buffer->size); + DISP_LOGE("Failed to AllocMem size: %u and no image can be free\n", buffer->size); break; } } diff --git a/code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a b/code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a index 4e1c4b4acdb7b21aff79dbe4f0bf83faeea35d20..542fd6b61492aeedb90ac38401703edb92ee08e3 100755 GIT binary patch delta 413 zcmdmUN?^|^feBI^MrH;k#%9Lm8uXpegX};aNcyg2qy8(Z*5(LU_z#o{RG4| z2LwpT!bD7fBI27nb1$kRi->Kmn99Zt6M^WOvtXYhsz}A5Rd91aYQ#4?KJaxwQL}xG z0;5t0vXJ=pwu!jUR9?m~FSqW(tA(-wdo_ zLo3rRRk#MQP{(SfZ3rKLgJOH^cBVu@m@j$Z@-L2_~_ delta 414 zcmdmUN?^|^feBI^24)6kmPTfl8x(!egX};aNcyg2qy8(Z*5(LU_us?{RG4| z2LwpTB8!M`?##WYjw~X!xne3CH>${-1^X0HMJf)hLNmwlfv*FKn(b>87?nbhg~YeN zEn)PugbQuATgN!Z7S07ZaQlzfjCMJ2q3u9#{6KhNyInR@2;Bc*A8p^z%Ct)rt^sUD z$7-f+2p@ohVted%rbIzhWp_?6MKQyLw%eUyQjmai!3NblVJZ@Z30Z=Lcz!W$>VOMD L%)Z;i9KQ$vMg?;d diff --git a/code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a b/code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a index 729723d8ac1b89e28bf5440ec96155f481d03d20..22fc4d0e4a99aebba6a41d093d9837bdaba66601 100755 GIT binary patch delta 416 zcmezJRp854feBLVMrH;k#ummK6>SALplpN5?`*|3*9c_k!bLW}vyBmg^T6^M0aCIs z5ks)Zg4|2$aFOZj6d1)fPn^oi4HGijJa54jMK}+vWx}CVa6^p1A`uV#9AIjUw*w8) z34w9J3by|!Vbroj6>?a|Xk`l%G6vhcedcRM#~ipA&}i}PKf{?G!aZROvTgg1EG9cC zxT@`TtxOkG;arG8x~rMC!uSALplp-L?`*|3*9c_k!bLW}vyBmg^T6^M0aCK4 zA`5aasl!F4uTx+Y-#l?DD>qzd^SlLD6yZFuArlU*LNg@dfu93h&32$6Iw5c_NXzyg zC5&2@s6r0w7_DsKLSUP>&wS13m;)CB>J;DpGo0xmswcMp$YQdSf~(qY*UEH36~;A% z7^J(JX)D|hreK2@w=*RQ!j*wt)o_C85ZoY;DzWVekD0h6P*rvOX37#p6%r6+-qe9C MB)> 3); // 3: shift by 3 bits - uint8_t* buf = LvAllocBufferForImg(buffSize); + uint8_t* buf = (uint8_t*)LvAllocBufferForImg(buffSize); if (buf == NULL) { LV_LOGE("[%s: %d] AllocBuffer failed, size = %u.\n", __FUNCTION__, __LINE__, buffSize); return false; diff --git a/code/sdk/middleware/services/gui/uikit/CMakeLists.txt b/code/sdk/middleware/services/gui/uikit/CMakeLists.txt index 0e621de13..826b856a0 100755 --- a/code/sdk/middleware/services/gui/uikit/CMakeLists.txt +++ b/code/sdk/middleware/services/gui/uikit/CMakeLists.txt @@ -217,6 +217,7 @@ set(COMPONENT_SRC ${PROP_UI_SRC}/components_ext/ui_roller_view.cpp ${PROP_UI_SRC}/components_ext/ui_map_view.cpp ${PROP_UI_SRC}/components_ext/map_svg_parser.cpp + ${PROP_UI_SRC}/components_ext/ui_slipflow_view.cpp ${PROP_UI_SRC}/components_ext/ui_coverflow_view.cpp ${PROP_UI_SRC}/components_ext/ui_coverflow_view2.cpp ${PROP_UI_SRC}/components_ext/ui_icosahedron_view.cpp diff --git a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a index ce7f417b27d634ff2e64a91a2d074093c1a40584..33533dffcbde88e75bd37a8bdc741fb36f229152 100644 GIT binary patch delta 177042 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

    e>)S5iS;ZEa4>r zk0+cfa1P<65=N^ClZj9tjxdezGJ$6ho+5A_;i&@8AzUKxi-eyRcp>3w0_PJh6}X77 z>R7jo@NywvL8E1;B$m$348(AEzK6>GAU?uig1PS3j$vwyk6iNgsTL;MRZN5Pqc?<61mPNil^tx;C6p;}Alb|n7?4T&9dFm!zlL${N<#+Ed(rA&|IK`B zR};_g1}B%V23j3_!a{2(&nc6FxpSe_RlfeJgCA>yr3lHmeCFGh@+S_)@H;PCgZOH@ z#lj!l?jOcayp8n`o69A$V#UusWKFLh^Rm@uF0Z;8#G4l5=~}~b%zK-+*qX}o>-_?F z-e0f~#@Gl;Ncru(fjqd-`Xhhiq#VpsJ7E&xb1{M4`MM%&JpZ`0WdwKhG(65*7hBsQ zPfr$G;Vn~a4TKK`a7QeAq=>3X)RVtSqRv8egG34ZE{QUQD0K-$gZU#%Aj;uymRj3V znbFDEf!{>Fi4>EB?FF*U@*3`|%alN8u*6oi@Yx@3fi5vsPLkHLRP$t5#Zv z8g@_NS82QLY2J4gwhd47QfyIUK3@gv9NzgASZ{llzw`=OPv^(5h2KTwYRrkfE?hYB zS6gkC>KQbhj90G4?AXvw{t>(xQuDBxcs0nsS#5Qh?_v4@oR-Ls#aU*x8LrLb-OH@; z<`Jj}sT^jq%V8#ruf&Ib{eoOq<2+<&an7 z1$!se^P${oOT0D<<2>YqPR$eeQSOi#wibY{c8dXj2uBc4`0j+i0+n(Qs;bj$#>Pwh zK)E&6Osh1ijukhMyrJj?Zdi-m_Je$;a8*fNOWAyZk05!So!nr^Ny>N8tXp&WYh>Yc zAVb0{;sRpgV!XN5ieqN|MBxLfqIA}g{K(6^4svNUKUsCm;N&X2 zrW>{%7idP6H4dL-NUMT0A5tlamsP>A2W?vOW{Avv@xD>@W%~`h^I8C9~I5u8J5=B?BKmOBJbn#$=&9Wjj)`yNYp?tw6Yp~&+LS9PpYmhrd z4L<_=#0z*#o2(w?X5CRv#&tIsLnC|i z>fzLdZufWBuiREYtlIi&nP)LK#X%@JxtmzaZFoZggKvd+7ezOfbqwEV2EPwK$|T{w z_&uOvy5l0*NOe0J+c7GhjO`SD@_D0!4@>dyVJ5ppykLo`J@1!ijNo^MU=n{qnPrHT z9!ipSBg$HC-)f6WU&Howe)5c=jT>%7fx?xjn7Ovq1g1@K)zt*Lc9{ZQJ57Nxne_Pb zyL`9??S!=26x1rywWcO0EYnp{6XY=G2f8-Z1i3cX1R0weEpSr`f{hJZn`3TMF#KaI zkyGHLlm=^ybA4(Rv(=T%$n@;5dV5<|asSj(+LCe}AwT(K-Q@DbX&oK{=)dcL`DU|)B}1{P6|i`lr< zpShfk_nJQ5Rnn!zVQw&M@#~5-WUM{Pjx-vhwg+nxZM!11@QqCCv~u#Nkp`VwvY2C4 zwT?~x#hLNN(x8Gt22N|Vtw?oDDaHzI#;wIcH6HIp; zW@{^W>D<*)cRAPFlvUz7nC|69>^H=10OM~DH@9^gO&hc$*Q^=KAAnQxp!cWe0w38B zdp-VIKBFTqti_STKd7*ClPPzF)xS%LvR+(GmX!D8P#lk;(zVvgjyBLa@ryGv^TY9_ zv6b!JOj3 zZ)OffA!r$=WefA39Qkt%I~`_j7y(UTT(;y2eO59DoGLkai9+_3J!4eK6i9hEZw^BpMx z&au%WsW>~8vbvI$jYEqEE*TyBQfzc=Qtaq0FKvn5lC&kpayK-_{Nt^1|57GxE9_j# zx@{wz8zdVBdWxZNR5o)}_mv#Qq0D8kV_l2aTM8e`V#d+Wu)@(;mvBsHHgwDEE#X`G zZgFlX$T<04!#XAxK9pXTT6>CD)m3lqmb`)o)8$W!; z*0p%Yz?9WCiUtRTzv-S=Nvy?;di^ zRzqRM_8>=biR{|+w#DV%Y_+(mt+MOY^%mD_R+(+oDz~wz#AZFJRLqW{=Iq~Nmn-IW#$?Vm^vSWGhMLsP;SIOP!+xjGPYjI zT;bmYjnD4Bbik4yf0bJCEq;>2ohN&p-I}us!<&L!otlCiOTuB@6y()4pt-{3@>p$f z_tIS@x#9bn@v)=9xrR)$*IThL?x@Mtu1~NlIxBc(iiIm>KG&jV{IX zxy6G||BMAVD{8AdUo>`bTg`!Kg^}MVCx1H{fW5`rQ|an!naqDg58GdTszmx&IZITh z!cnI>Z4Y{6o0R$FwwNj9)}Q}v%zVZcz`~@gAJITo=@%SLL1w3wQ4139_FhfCIfQp( z;x@GCkZaLT-wJCM^;0AcHEzJPT_Z~`r=fu$BtJNsV$KCh0tMQ2s2n|i^bX_-kS-99e-q%laT&}LDg zw^tjRGH?}nBT>KFswBW{mfC%@EcIB)7Zp|md^c@GpuHVFE zVze|_x=xMH;O9zAac(-~BpiU2apPlF!zRPq0(WE+uek&^6;5oYtW zvMyCLzQ}#D4h^x%QvO(`uDs2eZ*FtFij{Mf^JV?mdnWq8;ZrN+f@)(}2`dacnkc3C z?@#r%BVCr1hxse*hGuH4H3f%!Tv*WY^!H9w703oV5~eER2Uj}7mYyhUjGBB+Wz-mt}z5u$5FQwjC?$y<)iZu zLuHrczaJ+#KcDI!m7Qfv$t*UeEQyo4SLB|r4N_z1a=sTiC+W4-TIz+LWT7XjS)5W^ z%l4MmrJk%-(wmTm_p(TL#s&YV5tQx}E!|=J<^QX6JM3q;@+gn$Xt%H;%f>&u;6K!T zG^o|e9p>6YUH8`>GFKZvIT}=u9kUI#W+NKGLhy1_%ks1SQmd6p%Uf$^dolwn$VYqR z&$Tvcl`1k_m5&GKeo)K8G7FowTRN3FEX?0lk@DDnL)R&pV~aDpepBmop|5mp+HRqN zk}}qD>}S>1jaruY=r=4G?uM$^OVoTAJD5?>`l|;6px`bgNuH`!SK_U9d(ByCJ1Tk> z?kKKZjEgW>Tk3hnnvruXa3x3Qpk%eCS~_aPz#fBoi>urum!VKh!Nq9f_66a#ASlqC zc5V3L3hg)xD<%hN$4Svn|7>o4Xzu=08sKS3Tw94d0{LEBM{$wtTC-2KPxkhEspM&1 zV(icqxU0m97G-rBjhb@{tg@pvlDUlAZQcvy?l{7@8={+$n8S`LtI`&D4eE;acBp0} zDje}KJ46ZqzWTu zv|EL^!n%~WV)xxEH&H`ly1Ug=sK&4ivWNeRx8WHaUn06R!&V6 z4fnJYNJE9~jZ#*5@nt1dO-_3#ck9|S>&Hi&))I4;_2VnfNL}O6x!N%o(=)RoFE$ST z(%SPv(RtR6!;q=__=8+g6^uJj6cvjHeu-Xf_ zMwMM0HEFx}-|oS!UU;6W^(?{1k>ZO3;X+gsaH z!X<=V=SBwvN!jJcZvWfZp`=w|m^H}J#$UPV=xUzgXADQZ2=Bm*t+Rq?7`S(NQ|hm6 zKK)Q?D$Fdg?fKYPu>vE~qd_V7=)bqb_WoQdmHb%Pp~T&4M==tqG_#a|xl)RGo>aPJ zPc;;+jNw^9q${lKz#Ke4N?V#T=x>IUfF_nw{2{B`(yn@Wm>KsyYVznJ97Dp`g7>^T zNeSpF8EXSs;o3kG7DEr%lR1@!OC;IaB&SeExyD@{7J%+|D#q2>#ov0*=*}UM+5hYH zfj69+Qa8k2U^e}j=^5R{Nh48eEHR=Bwx!Yf#!G80EN{ffU(mSDJ77znvp>gBsa0=J ztBDvR=hj4=c2kpCzAp%!=Q!_(h}!fzU7OxTcZ;?>!7A-7?wjTaM_aboT)d+=GyPgw zQY8(1%Lj$Cls9VG5WDwgc$ty2BFy6H;j5JW8+u7eO<2gN2^K^C1ZwPBW!9h}Zg zR#-6w_2QYJ!VN{tI3DLepec3!h65kwmM#B}iFoV)VWmUl4#Zh5U!q})?VvSGACB!#m*FaY<(X(^e1HMC6Bh)hw!g_ToKlXj%0 z4Eo5>tMaEUk+=adR*ASG3p9d6)=*c{+JbQ)>d975fzqv=@v+W9#n!v;R&S)y zSY46BTr6t^>?$*%_oIIBm$o!QbS*cTs4kQjn^~)pou4g_KoxE(3TiR($9S81#f_P4 z{olK!ctxK1tBPzb97hdrh8CIR9_)cMCZiW zt1A%&r+=c*Wx2N{GpCb)cgXm-ph4=u2pTvb2MR zjr_&hY)e1=3mz!VJuvNBM%!%q0?tTxxVhoVn!d$s6AEUNcru_rGCUVhZnFNLMoH;i zi)#m7Df3<}C>zhMx_F?-&phZqu^sNI$_mVbc1$_obcO8?a<$uU5f3C>_WeQi4fOdI z{&uST13r?H7Hl2C0|v@ge)c>6w*1arytB#w)KJZ2v`Nx3s{LpB8 zfaTaBQ!;<)Al@hsIco^w&z?2dc92G*z8!O$Q1&|}r@NMIfL%O( zB6MZ+9)M=TiO^MfyVFUdED`JL>OZ}3ANwo#5syBFeE>|;zC=i2A8An8_EgqmZ`NdE z@tKEnAT-fLgkH)5?({TPWTIXWH(UZvyYiIJz{J;A-1>Bstm<1MEe`Z1bl5v@^J(lkn^#@!H%fq-5?h%kWV zfcMiV^fY@XNyllP%QhXSiBSi2oaQKbOJjhthV^ecJUNLqEi$AINA<^#mRN8+e?KH-l?CU~C}!92_rt)R4h0fsYf6#-ADN2MES%dhlD| z-F5sfI8|m5dNMx)R_fL$JUht4on9k}Fo@CjYv0!>^s(SGk%p#E0LNrJ1lm6gdO;AV zGk6eOogAg;v%oWS`jOz?8a;^71mLNZloEz0pTqH<^C9ec=xv%BW%(kwQo_pqAt-=g zu+D(Kb?&XPLl{k+ZtKxM$~J*_(($b=;y=p%4DLN;kFtZ{bQOp&T={xUK8V;qRu29M z2A5Pd13v?PM#sMd_g13e>|1bkh8C=bvm4-a<%lqx-3Fhm<0d1{xsC^cW3ryQe3r|I}5@Wnd*1Gx9H9>;EhD@(Nrn{n(O1iL&D z#xp-$bFb+*eI~a~$0NbLI~>nq!Qav86TrRgKu_h9JEb1|1oof_=ihr-O<-AwkgqeK zZ|_{z@h8B))$z&TG|69t32Y|#C5@tqnh!oer!N5aR^kb4xe4V@?Xi|X1q_yHl;yC^ z;6*zA2DtYKa@cNgbfIdMc}xVHqSvhm=zJoZ!B6z~gP?q)L~@OBPU*?e$s%QubXgAejV zn8r%L$9p)wbOk<4$2Wiv)^WU%VNMVKUzNQHcojwZJ=}fCa&zw`Bscp)Hg>$hBy3@w zKmr0HgjGa@1QKLl10o^;LFV)s*Z9Vr22bB^)!pW2kP(FnCc2LUfk+1!#W7L z{)p#T#~|0&>YJ?(A=f`_++v+=ATPGQhFsqiFSCAtJjl2YI;t1BMwq<#iaGww+Vf+) z1s<_>Mr3q#3+q=zVOWkWXtlA@Bcv$*u}SHsWj4UESYzl~EmOy70am)~@6j@|5wxzb zwraVplyj}moc27{NIoheWMRv}*om&<_I`~rb8gc#RZMG@mU%vdR=)M;NU?dZo!I7Q zDYv&?aM>Sn$*0A-nZ)Zn_MEC~24f;j!WP8y(?qRTa*1`1mKV$TeXSR?oG0!3S!cD}UCIM2 z^bN{TCFSaY)>WEdgd9}HIa;O_b6lfkKBNUPf6_^pzKOoC@%|gcy}N(?eNM)|Ny~?1 z{883ZS}uW{(*gI!W15)ep@ZR;2g8O;U6{ZbxdHHij57%B5N)+*65Il8}2JOX!JwgCpQhR1VS{gsr*TOVmTOGck)MPV!? z!$@pFoRtDGq#Wyb-=t}ETBcY}YI&42n`OPNWnMs>EXZck24?6TY)=kzvE%V~cu@+QYA8De4ByP6;qvb*=-(n?l8WDsLwjAqLD__e>zu3B_ zfqqHdY)QO9Z&cTg!w79hZ%N~>EOg;B$wTgbX^{kdv0j;qvHjwYJk}-6YLAhURb#5T9 zv&J=$@3kImAg{L$D7me?ALU>!KQr4BYilfi1ghDVWE!#_4HgeA^<$darT&=e?|7PZ z;PJG^KvfecPjktSyX1FWawMyX4vgR3CC_Xqi@#NPW2-MTBr*4daiJ=HN0)q^OTNV= zKj@O5cgd$4%GFj>{lkVVp#qnDtxKNkk~h2LgD&|WE;$kddrgSpw@sN12;7-na+yo6 z7I(iImRbFgrs+P`dcgX(%Pfa2kq$f?MOtRf;5<2I#-nyp-fTUl^}GPGt%t4WwaluU zZPi$Z8~V$&zSD%c#m8bmFaxhW-lDB}lgG_9Z>L_o&ELlPx@!ID(}^PcKv;8c-3zQ= zXZlj^`xakV98YQ#Gp6IX_Hx3Wj^jFFUtHS1)3`iIbdp5x-krvE(6Tb@G_JFhJL{Qz z3bkF~xK5HU)D8>Bbrx5C7?qq_DCsVm?xLgR=Z$MGGH&vuR(Fwl$SOWSzMew}NTp4# zUaK7D=WCAu`N~Cs&RTxKIBiofPJ1sf-V5~M6ol zo=AHIL#`L^@I+R37?-b#0KCaq2a^COoogUff-uvW?mRAEXR)(M-V|Sc=XxWZS6FKY zb%oUh(T2%+mAaT??4pmc0A-`hfp`vk_XbeM51>vKfN~CyUq|J)7po72HI1hVhg(pf zPdz|^c=)|WY2wj8*zwgm?_l*wAkt2NbW(_;vjL>asX&!6U85v*A}Ah}$qxDiK&Q<+ z8m6NuuY!)_3PtJRuvGEDBjK^toy>7{(uG!FY9oLuegIhmf9v^xSTZXjDWRggbpCJriX*eoH}ID)B2&eS6%ol| z^IhmZ$eQgND6;PIHg`6=B59tlfGM{5ofHd8=gpneyL`gbK0~h_Rxr+*HD~gSs)^#r zF;w%PZ}v9H9EXmE@~Vo-b0_{L3$hDh$Ttz0gI#5mU)Zan!rdS7+e2V{7I%J^p_S;h zV1&W4|6+aK`(5x=owv#TtGz*y@eRJk`{|#NY2AL4%r!ITR~Ap2JguVl&7)M*K69DP ztABG^#i;ipvhv&x@`qJcm6qRFIc)O6%05+9zd1s&Zh@~^CwKM8Z$Gqh;+)F4lZH*0 zQ&~Bq&+i|Zc;;k8c7yZKq%`UZapY)Nyl8SPtbhGY@IqvuP{e%cxgy|9NeuA@+R;3& zPscvf%I8*1p3rN?eIe1p(obsy4Gm**l z`D+VIMHGM7>dRVx&--4{wKOUu{xL10ad?NTDyv4Rdf)zLUx)SonGzKRs$b>g8z)t* zFMU6;!Lh`=7mY2TM z`b6$#52!^pA^4-9&xXTxz8Ui(i;0?;s*^I_nQVo?D#M& zp}yu``DH|3Sw+QLjr}2U&-sX;*nOXW`29l~MT)LcFuVc^U)v2r)2)N!}Gkv{6U(Upm<`#X91@rsM!+| z@napK5F6DDbdwsdCPIi8(W`w)1^gD9EH-162OLaMJh9=slE;L4GqIX#RGQNFwZ!J@ zq7sA6p$m<~KLq*nJ)M&+CPs&@Rh&#YL8k0U!0b?IopkRy?tZxQ%=p#So-4iYGSw0mX~A9*RszP3;E> z;W##9Z~{23pYTn#uNu)-#sA8o{uVgy3dIwfX#5oxx(@#kUdC2DT0%K9jKMq&C`37d zpw1e9uo)M8Z<2bwIJGS@u~FLfmZ-*TIpT&CUz|8SIx4K%%*9vch{6(zV-GNbv$S}W z!FGx#Hc1=-Hl;#r_)mb%Q4t%SzdvKf;Gc!xdT7L}R)kJuzoM!t(Ga$>_r0~asEKZHbV zW{O5x$!?LfJZWYsMOm?KRXj6<`oQZ)<<2V(39ajQW1qWB344ieQ}_^eCCe2) zf}NS2kzIPZcPO5{=!WNnESRZL1|R;TAs0=qjY{-%RqKaW>ju0vbS8tWNoH10V#7Bl zubVJp!?U)T8v(K5TawpT8nNNoNCmqiV+hq0jA9yakfUP|hz-w-hgOi)^=hTUsn~^9 zDJ-u#ZNoMybeG~gU{}J^g;0pi_~BX4y<1+msuG(c_KMgCe9d~Zdc~~4KLq-Vxkp0T zKVH06;hxxq)+sFgY0T?G-T*QA_K6Z;GYZcV%%{}5Q#B^&f`ki`&k?<0+QDX>8y!zuhPzF*-V zu*($+dyrUYqr%a|4=9`poco}{{T%!PU^B;~I+-94!YuLXXuFA>EiUiGq7wRCIP3gK zSYbv;X-#YnaUywrHzGDXFLA>Y8~z0cPi*+_9DFqeqbNX{#u2gMS^kE1o{Loup4iww z>fnhD&w(zfn~)#^F?iL6#Y0Hb3Stw1Lvu_eAT~Tl#F$DzY+^1uprM;!gpa$tW+- z=5fXUWNzzCXh$}yzJnI}Nr%{YWOIj!V5KRs;RC>CPR2ywm~GNTwX@GCJeoG! z6`n}ELt$RRp}#7;1iRe-v;0yD!++=R8q7>y9a3qtjW=ntT9`(Z*zlvs>mfhHhM(oI zCpP>N^4BQ;#D-^UQP=2EFbW={sn^7Y-wkZ)HL>9X)neKG?ZHXl|#*@*Ca!1qGiFRge@KdYitb11|xL9 zW@dhrb>}5XV?7uY5%Yt<;?4b=gc#!j`@IT}K8?MZ3i2$mHu@R3cpv^D6d@BK9smMw zrn!GtnDyQyzzS&Q(j>-|lbiqO%fJ}n`hy`h2Q$!NPi%Oe0(0=hhM(f#i4D*CVbUcw z{A0>K2|G10pHc9_3g(M#PkR%qO~n1+jQ+UPS!9&p-GaURXEC-s;Zv?(&lbIcN%HNM1r?PsCGoP}ci6B{?I zv24}9i{J#Hr?Aw)2;EYjbXf5*KJ+&JA*{hx!jq1`3q16WgmPeJuI70`8T&9`XM>Cv zO`Z_uFwXQR;z4NhMqiQ#?+cn_`4g+(Ri1n(FEbf1vB_&Z)G_ZVo4(i;pHP^`ll#8H zo5+8l@F@q6mwr}A$4v*${ZQG+^TDT81aaU$VS&h&K&hB^_sU~-LUr0OrD_Y(WTPi= zaJb@$4PO9U!cs%vRUGHVMe4q@URKXK!MvsRyGR`eneWXT+LexLu~5fq>wwCp?QG zUeX8^*bI&!{*)}v4Ytr(39T&bOgh9SAFRTLcUET}Pq0)LfN1vj@L-Crg{6+T%)|dy zlcGO^DS}L`wVH2tUpu->NWA59Y*GjU+3ynG~0G z%S?(phIovMP)58|;R@m#6rM!9OyOz7V-=o7tmiqcBEC)W3y8}UUc^UvGxhHhD)_99 zu$*|j!YhbxS9mq?1clcU>v8@Yh$|Gok@!x9HxXAVTtmD<;m3$q0`vH{P?)F`TZwN} zcsubbg?AF)rSLA|Neb^KUajz6;=2{zPrOFq1H^jb+(X1u6n_M`+RUPRoQkzdae{cA z!Y7HRDSVoEy259P?^XCq;u#8`BVMoY1>!7)za!qD@K40NVe0ea18mu3bUOyGxH`B&sIEB;mo{V?8At8<3*rsZ!A}WR6O8N@W~J% zK%+SdQ|7F@b&mARypne&@SwvFCLP7xw0#(IK}oYzU;bwxkInC5!HY5 z#)+DQh`89_cEt?|k4UYLn(?GBO_YuB_#*Z2D>>RKww)&Q zj7ZLOb%wb+?nU-NPwIb5e^Qf(7TG52b-kSKzI?h!YjDUIF_0+!RUHwZ^_$4-5N0lW z-zRTe3h`l+HK@oinUm+$%h9}i`ipDhYw-(!8^~N_m zYHy$=<3)*0O~OrY`^7+bY8X!sJLKD`S%+IRi!5mA&g<`Y>x+Fa`I8&uPBcx5Y?bXk ztH0@&7qKlP<7I7Wu4@ZR{lE6di${DB$-nJouIolOqc24E*hWbW^Mh{qIMF{6vscP# znAd*l32UN;6kI#GYSK03b8eh0OFqk;XLnb<*by0?8gy3W{DNUsGiQle;oi*VuGqiZ zJ1%gb?S602kw7B&|V^41r9A=4Cz9WVNFoC4Z}*zly^ zA0cqGO=Qd8*DReFn3DK=qYCh?vYitc=Xow#%;@MzjOFVqHo9zyxjiSEZnTqvq}iog zM@Nf2Fz-sfdjp=MW9!3kKsMC0>)XIioX5mjut)RwK-p+ z*70K90aWt6ojhSOi+uX3(?yFlh$H#Y4f)HR^pWzxs?J`VF-h}Lr;d&mgF0(-KI+u* zBLASyDW7!e=xEXIAGSI$KK0b`V(CGDT%supKKRtBqQ&Cn5h|m+4?6hsNVyBkj?X~# ze8Vz64Lxs=wBs{Tot?;j-Jc|*^O2~Ij&2y8PXs1gd_=0V6SH4;OH5?IT-ZceJt*cfC49whG?}yXBmiyIJn>VHQ>pS2eB;_Dqs4uEPc^`FRC) zR=NkjZPmQj>0Lch@#GLH&?;=fo;kZhJo&RHEqn?r+bYYGKYL&b|lJT1Eg-Ej^t;&N7Ha~Q6rFip*Kh54LF2;J3?my~}$z2X@p4R4LZxY}* z66YZthPR((0zF!SmkGd}VJBQ12gd~Xo6@*oqe2&rurV9}Xf9`EPT<8t6@Pj%oP+8s zkzM48H;rhKAVv*;~WpT4LrOHMNgGK{t9sBZ_6n41BxyR9WIU<7rLP0 z!!2vGbkXIIaiLWlKC>KA>4I-WOfFKPhiTn${8hvzc$0c0fOh6!JEAA+=-nOBN4TPY ziyTC#$=6qW=#9xefOz~p!ese^#w5#c-kr(*gmO%jITxGG*-;%}%CLWQedQ^FY@+XT zMURd|x21~SeO90@`j?1)0@0XyZ%6chyQ0spi{9fqsGJAB_j=WVO&28&7r8j!&I33F z7mMYA_h=23(?w{ERaXJ}I$TU}xfm0LimWQYSeJ`|H>eL?nTvi77aLtJR>MViGO{vJJ`au(9^vGwIV80OTmAzJBj@hV*0p~`u=%f$t_IERd|kcK#195gO;{szKt zsw||0b4CSohKW#3lPeDN_`>D=WSM0Rga>+OV+6I#U@O#k=g}X-ZKy<@f*h!5X4!Z%a>n<0IV{rXR7a}X!TX#*JsK7Vax|C6|>!OF_3YO&nj-fXm9!IJZ#l}UJgVI>7 zCt^UIc7bzN=c13x#YVjAzAVZgw&T0IJnXy?AKmGbQReVa?ecJcJX>Y1=FwxJ%f-pb zI8Qng;~g$`7#F&>EJ;AMP{nX=L0D7=O=n?P*m6YUi9m_e9mA(4Iyi>U5j{&4!zot| z9)pW%FrkZy*jPlY@~M#xOELnTLL=2dBtYdX$r!{pxtQc|G05d&3|y%8u}6QGiw$s5 zhNyqWHpSuME|-h_aIsD0;trRK@8H5T41je9a@6Hw4(=fF(nV8#4emUUP1Eb|FEhlB z5>H%Xl$H#4Al4|AaJaW&teuEe2BSY?n}yAk;2&To>!Lncr{F@J!ya9Y3$2QuQD1^{ z94@9B7vLC5Qp^o1;USl5G*oKgjf7)HrM*``oaIBO8EoBOd*hg7UW?SdVM4Dn6zMqTW~@=k8&>!C@O%c~^Ja;3W!Dz&UpkEyP7 z7om-54!=zIL2M@72aF4y_g!#-^FKEb-`#l7ni_|PO%4xlyF46#hjuD|jiYtBXcs>~ zr53eGxYDKaX0XAM>&~==N*0-pwI2zadROB}c!f-s;-n+*k2+l3rCso6 z97B4Bh`!&G6su`P;wG3OE@#+@!NANesktRTOmT2RK`UE8I=_i&h}Pm|gY zI{99ECKg0IcVs^npv3B#?>EnF0k#<+n@kU=}uiLX^#^gUd zMp=Jy$uGL(V=noU*mp1@GyAG+#MOarrn}^I!hSs>sViD*ysFz|z2j0}cF9RO%GWaN zIAu$xoZ265^o6qi$1jU~;+yyJ=KbUI5v#;4GwaAk9xc!k0zh}n6EaFSSezn>-^sra+Ry6^5w;%gOuj#&5ORbQac zS}DFGZl&-~#C$7*aEUmmFk3Uz*(bZlMk(G)UU&Qjh`T6Wc8}>!K-oRU*OUl+?S)R_ zZc<36pnC_ih;`>KmFxt>GlIOZOy?kF``+5afA$Sc_e>fka`yY?ho2sW21+bV!#n@& z`+bF;*4K%z_WK5ThL09qU-1nJzciY^5oV`DU-OEu&^{pEf5kW0{zDFdW=~3 zs&5e1@H+_6-Y-&K^9>H~UdA{>GT4vs8hm=o#S5>&XJNVU9f0*#aoqt#E}I~pg6LT= zLHvw;_;;0j>ye*@Xk`ZxEqS7N@F4h|cxYWNj)K4cbQY)PzJ~`w&?-?_t_Sl=gHMXZ} ziWvVE{2dTG-a@XzrV7sy*cD9`L%E+dRXmEleMDS50(Hy`(fcUq4l~5P+!xIdpJ3m3 z;0!Kchbs_;e3#hQJt9qvI_7I_ZxKt6p=6ebqud=A*>B6zo6X%xv5&h=BKElN3cI;l zH>~uyFDCpD8n7}^dED15d@XJ+cZj9mV41lZsO&_sOm7kwX}Xpa){X-ez8{vQ;>~w_%_8FQu4s6UY`F^X<+3#m zKV?k7@yKvx#}4_9W-QCKT2@&5y!M^M+6#7T&#dvaYu@$U9A?2L57`_Spr!6JIxb-!r^Zfs^Y`p+%)h((nq~LF!b-np z049Q6c4y~sG*DPxNG8AueB&bWB07qFL6r8Sk9>)ZPDd=MUHXylmnfY7x`|(FG4X3b zBecp9a?aOU%=wyWi^>1=jo{3$@wKJre8OsCcM|E(9U8j!&{{aZLB=VMc7m*unK{D8WH0ksjH9Qq1x&P z;?+8XPVxsf8$uO2$supMjEJ|0Ww2*kr$Q$=WSndl zt}e9L5HG4Dy2^P(?{&!R$=~9TAB8;2AwLCqw?qCv$hZ^hP$cKI`^t!T7xyakRYtA` z@fL_RhJbtm@@a>B2J!-j{1xQo4*6e@$JWUuawa|>I2HO@;U3Iu>yVp3-mGN|8Bz0y ze(5l11_KTQHx6=vKX>RmLw?sG_k!$m*k27CbjW;Dn&FVg0p}^1Lst4)lOga{ph6pK zE@a+ejeINQ`byN#x&!hkJO-)I&sq!lOC#bf;RBHCi@cxpC}h6yF!oy^s{uJo9}%7d z!8^1H{j9%1F2H8wgTOp*Mt&Re07nKmZRkLU{tL*99r}xqV@z~hW&eRJ8#S3eX20RQ zp=kAVD76|lkcU}`kOvyIb*+^Nc~G5voy8Zg^{r$Zs{nFMoqnp-4f5`~3{JI5AYXu7 zyWxA^C{OG)5E+(W3tFu#thc++pH$r(7O~cJ>v64S4s*~baLP^w9#S@@@VcmF!~Lk` z0uVtAe@m=yA!M9FEoVWWg8_xpUHUtfjQczS6Ir7TcwGh2&-P@Bz`uPl`8~9bdZsnRB~Nw9tHcfe_GM;2@1oyx$)Ag7eV$DF zO7S$T?M~v&fBTZE+0X^i2{FOE;n8U>a>-9V8c)S0qE5b>mM@0?d3XK*k`vx+rm)2jU((hARz5^#b zi0kO6OMg+zLuE1ptQ@=#F@gE&;gV;&D<#B43|o|l8AhIo1u<8ZGk#=b%~Nu4R^1P8jAiKP2*h z#-+)ckzXz_&ugVNt<1@POtUY=xi zRq|+gi_5VlTQju*jhM-5Ez?h|HQRc~rT@?+r$jTR3XDI3lNM%HKjWhR<&r~q%Wnds zjdRKCUGnQL`9Ch1D?FP3SZ$RzB&-cC`E8e+;21GNRcDtx+9fY`$u$k+36}M@283mu za>?PW0y;3kb}so^m%PX&Zxk-a*T4oC$i|4Cx;-O!CNt2lu9^4~Z%`(Ww+l=S5%xa#E$Ei15?k;MXwJ;m6 zhp|$V40%#sU|px>C6IZ;ySetGUwzSbM7z0FbJ}$jdnaKTg)rMcFI`VZhIy&foL6S1 zG7tr|ciH~$v4p`AjIsRcc$iNNDvpX2ZHuE)#XWcVBg7vUdi^5xrSR<{@O6aa6+-Q+ zasCmuymGO~r)aVSL;O?!q8@>m@AlYuV9D6hG*4{!9N^$q{6ion&oB^M>eDJNv9T`& zPSZTG;U@tHx8Wat$;eq)jU(PYQ%l5*7LAhZ60v4(R8ndmX(mS-l=M}YO$4$nuKX2~ zF<@Wq^(CfkS2|WIfJ(YPNnx%_Bvw#g#9IC)!Vo!)cx*&;LPuB|Ne5 zRmz+x1)mXP(>+P{vm)bFe7n)DRzxTHlTvDx1*?s5$n2%|6Fs38^R`FEMQmd9tzri4 zb+PSq*dJ2r%~bCKM!0~@xZ}%_;4X2P>gT0azVk5ZEU3HJVxWvasl^LQ&EGgi-5R*K zzv9_OBOluyk4#D(pr~2cm0YbbZz;jumYDf{L}JQIiff6Tam6R#;2xZgh@_OiDK!t( zs25PZTU`DwD#_j}KcVoX?G^35hqzB1ZsOx^EF{m%mUy_zPE7f`^6{v{#~%9FFWM#g z62*!X|Gx3BD4TB`Hmn>WRxbqB){<)^#Eih;2PymkcDaKUmZx9;Kq5BzZ4DfJ$r8^* z`w~)uOc|jFn=$AI92DhEG3qI=#usky7K^`@$Hs3-afsU}?GvXcVFxMyWkf;Ph|PF; z3^=F{mDuq6$-gEZO!L3jUmxX94z)Z=UMvWS*h+>-D1W(yhAMm-yWC+4^W>!>PkT{C z_lm{w$kRbg_yg&n*oK)`3W7Rsc`!72C;|??j(-S6*bF}$I2DJq2p_rbv&22?ya}l$ zewo8=5$y`ao_XA=I!u(2+C_e9>+J#+!V2+q6JIy6wryA#Rck_FN!41l8ETW@ z7T{F%3QzvlH9W7DG|dwmemm{8A7aDvvP#pu^Ah9P4eC;^reGq-V&>r@#A7QNA)$P_ zFf$Jof-;!(&dffbJEYIQ_6u#mlg|SNb z1iR2Ug}=luS4Uu3b*n}GN85=un!nYkT*t(zOn;IG?86&T=B$)SEV4* zc4GBAP#|PDn$7{h#vieX#}_t+CpJ7^%ov{7@Gm%cV#D|I!2Vs8ZZ!p?CsMcw7eHxQC z*P=n%iyi7LP)5yHM!^roHmX@f2)!L@zHh^G&MBy?^)Ozr$2Q_=4m~k8*K7J$yLGpZr=aqGM z%sr(HORzH~5CRS!5|KN>b7dh~)3b!QB`i>y6y8PusfAGBGnFr%K0vJ!w zeEv;+R;hyybz5NG7`}Pfmzb*CEuIe(y&o`sFUYU5Q-6Yhun?Qk-wz!3Jg!E3wVkpA z0zwToqkjxIZHZW1<4a1_R|HR=QO`%I)BQ7uo~rAev;Eyk{Vq#I}qcKp^(^CxI3{&;UeNj3bV%8{7Hep z^J0f9Jdij-f5KWyAyO%Z6Z2+(Fp4-z;W5N#$f^s@*0204AlsivTK=Z9{mOnC`A-!; zi}#l224N`-$1Fg>Zm4S>Z##)%G`}Rd0ZOLE+=rnXgJu5T~jLCy6gAo72SK zDtwkWP1&$O?0+eqdAHLQPuKQ~ivN!IRf((R!c8`_g>VU*%|m5CJiDoi%=%+976Pk= z`50UF*B@3qOW9^`9Rdr-{$BAsSo;TsnHM`t*>GpS9j6rhZ|CU#dT~RVFX?(owRCjh zH&^k(XsX8=c!_t=QuW{1KPt@sb?%5;tGLp>h5V|upZN7kf3zrSA{$1ANr7TJaVR$^lzY>OIu z6?sO?Cix}E#v9?1>C^S6Vjua!F5p?q4F8#k?E-!Uc##*aoqQq6NuHoFYlboYhuA^B zbyx7L0fzslu)89I=VS)MdDa4Ac2}&sIjyTdAP&%+=g^p65RbrIB;z0(^IRGJTXB*6 zBp!TvQn)&x??kU|Aa{{0i}8lZ&x7Rg|G?5~W&g-j)5X_Q1CgSn5Q}bJ>gEriUq8RQ zKdo^Y+y{^!7C{SAt?>Q@#g@)`WYTRdmQvA5epDk$Pau(#?|B!9q8|R{o-h9(Cid{p z_pB`vr+WAYc}^6Gc0I8#?Ijj-|5z_^nET_sM8+Sm$JCKCxX&vVd$=FfM?@F-+uEMynx`CHl}6?cwY`~YzoT==9&bbW}U z7CSN*0Y$m@L2RBj7?uM@(KO%o_fH+V7tmJ#m z3yTw3>!M;jv#u6BdxIa~=YWSHHRyt0)EnuZyGE=be~9j@0kRs^DyBj2SvyoLE=Igb;MGu7v77wPq2e(48t`h^s0ft6 z-=TWD4v;;2hl;)>{+1qmN<0Jm@Vpo~`j5x`bP3WM2w8u^be#5whKkQ=$E9~lMfuD? zylBw}<#1xC=+p;g{FS(&kH1y8H@0qE=cYbLwg9pk%PIC#?haXv+ZE>^+r7mvh~_yv zRJ801??a)+STqd06%~D9UQr)?HRTzQbt&znJilH(3E5sOzV3@$EC(GShTMyjm3tKq zW|fr7^Kft@D6f^WOlHwlaC1N8RI#Hg^p8XDxinNfcNGq5yZGoTEPTaq+(N~5goolS>qW7Y@Xkc~K@%D$cK1Ve9usf&L;NqV6+a+8+%@fw-0g>z z8Z{`!^hePKMu{2y;r$@FzA6Kx7DVlwVDfWo^fkAMcV+3i|@aE0^NoZ=+ZT53Qh;Htp4M0=xaYUt#M*_!}kH zuAS=N?v=BoBC7~ptwm^4Rwx1gueUe}MqZuV)w&0A2ZzjI7x!aR;RcIOl&g%0j?>anNE!TSzxZFX=MJ8E;J$z=qJcE zb@Dho?K!*H$6-VSP7|MPRTyW*!GNWpLb?2~kYC*zxdrr-95QF+TWi$l>f^8rGj79z zTm-p$oxZCz0CHBHTxku92GP2n5O2)$_em?QBf45^V8Ew$6>bz)%=eF|o@8VkBgZ+k ztdl2OCn0aEi!j;x4Du9*d>%4?ji@ly`Vn%-i0H1hP@X*w$Mb1($OG%-MOJQY)0_N*8x83Mo}nEw!!`1%wM-6;oV8BNy@7LZ8lTnjms0L# z9oO=1DR;3hVm%N~W_1*wZV=8w9khB_ZL~~|Zu@DO4^pw#z1EFdW<}1yLe#fwnTL>L z^|Bsv#s908lcA5r(=pe`b^8I&|?@{e~aHXnZQWN;_F-dnc4ha$pq2^wVVgcrS|5El-#Jy z>UUjc9^8-_mS78_k9?SxUqw9$VxHplTBZ%%zNTfgY;Zf=`a#R{r99G#^8)BVd-<(# zz3jmfcu)U~;TMmJ#{011+Hk0Hu#nz)9gQ_92fwP!QizO6H&;gysX%$Wme&FY(RMwm z<lZC&NO_6X6c2O^ZLx7l!arzP9l$bc zs+4g*QAco_b+N0*Gm%Pv=KOI+}zRck{mqEMw8=2IXy5zYoS-9lq zUGfQ+{9}CG@v9=rNHE8*)I1 zP)hCQ+x*MyNUq<8^}=eK-tKShUBBv+f-d7QlTYQ0in$XjCSn;ewMN#w8FMFBV3n+K z6_e*zOl%KOUQwYy)tq@VCR9wEJF!6QTNN3KjvAMY?Nep?&uLnuID-LhM>;L!Efo#RDy@J+W?1Lx7WvD&x;9YJ; zSb`_+ebMeAf3uW#l?@v!W8NG%?gKI9A^$LZQ?TbDIQ>YqHmnu2VyW}YqeMEF{nu(Q5<^IKOL2b19DQkzoVj<^Gk_GAN*cS`IG;u zYMq0jpc;7m7Y)@AeZzkMIrxL5En>ry3hIhLYD@VkJUq)W{IuILv3vf5SyhR`eui9?@z6|Q#1!5E7Rq~fr1Y*Op zXEBaNfZ*(9JV$$d#Kgwl^3?OhhL7iOQR67yq2Mt5;IAqHViTbdxVt_AV#D({XV5~5 z2*ie;Mc!6CvEd&BmNkR-779kO2N>w zPx$k3c`n|}wO?k6=wHH*})nU2QJxOfmaZH|cEf{RtFdBGSpTaVPaVo)l^`OFo2 z;sZ&@ggZ<17yB&=!A6itgfxaGb#mV6-up>B_6hbG$>% zU+cjiMY|`V*7ahQL(R&T`l%R8wQgdzYBd{=y^Q^Dv4(10{hhU^HP6WhVh`2FVUExh zlsV=>z)1T%)w=GLIn?v1{#9f=1+~uF3Ws_V)xU^ARO>FRryS}}sJ6vos&!8mf9spH zL%=+HP*=aNvc`8aM%^2f>B!|Xw^`R`1@U}k&v~3mZc=zHu;~PT0obhT69J#O3zba< zaLFwScK|jWxsh$bb;CVScDL$QuN^p(nSQ`%T~v4LC&~eR8vXsixE57+>#a&(Zk*VO~|Kcc_s9cgT?fp2k>q z?D5D%yRq1|&X-iKFX9pynq2d_F{pb-i4EVIJp1hshz-xDWwZPdA0o`^Kjd+CqQ41C zw7ZLSk9*@HnM@FkXXf9z4Ae^1V6K!6W+U<(O6W;lC3>R*4^vhv^%94gmtE@JV#alN=W@4F)5^r=^&QmR(!_=zPF^2B zvEj!6o5u@c!}Cf&O_qV!@D;$tYZM>JJ&$~50>;PPBS%1{+@o}?^(GD*^dOq>9jGd6 zm3o^){a4_$wIX9U#@wwFm*LBkwoVL!XzmU#JFH&^PQ6!Lrn7s25uBBp_lDHu z=!wl>Sx!RI>Tw(kHD;pf;uu9HFZpE5i2n^9^wW~Xp#SqHrKYIlG7!a-o2+n{fBX+v z;iRWNr=uPE2w<~lQETAb2k;M}5L@ws63Rgxc*d2_-S!!=d8a?g`%k5c5#P_Wn~9jD zKzRHgHN}{ljCu%+gDputtSDZQ!CWx|ym^+#^D%we{}iW|VU~2$-%m^Pb$fugt2#Vh zR%Ryhcw*h_&P&zww5JoF#Xp2BY-S)sb7DSfBJglcFMWu(hvchew}H{+NZd=|QesvagyF=+3XdW#saC=m3Rw!55%*EJ zf;d~@NyMyg2-Apj6rM%gOyMfxs}x>9++5*B#4QwFLflW`<-E<xWB@yiSPt?)+Ts}AwjB4!5!!V%&t6+TYP_6*?!e+ig59!^q`rxd4&^A$cz zJW}B=i3=1yN37?5xIp|h{vmva&F1eFgrA77Q}`0`XJipTsk!`d{9zQ@DRR5v>G6Vx2+ zwMEbShewOEuVHY-_SZ0^;)HnVHH^gA4dVU-7}wF^05q54!o4EzfIrNG=e3MO7@v|m z2?H^f9Kb+~f$`7*h1vgL)HG3pX!bYa=>u?ciLoz`_)+`e!_>ec#gq*s1Hv7qP&kko|iZ;0RE6? zxFm)gL&WjYKn|!_dkpD>Mv6xnaSnJjEtNP;e#}VmE&0{p)!cR>?`@=CBYM4!D!W=t z=5D-L$K5XRJa_ksGu)jNQOB_hihS%m-A9Sh$1$Yhgjh;3?|ShR#XND8;)3hN&lH~! z+3z6E7SW%(Z^dlv!uz7-SgT9$9Sr{1c|GTOdF34phj|gXV{mIKt=RtU!DW&WW?I776=37-S`5CIFRz zqW2K*J28ax6wqo;RIwJcr+bBX^gSfQ>E#ZnWKNThnJB&`zda4TjLJ>k3Ani+dYw=O z^ge!LEg_XG){)vRp64!4oWU-Mio$M|C}Y0_}>fE3?3R!X}Gl@1qbg zuxevelGsbG^<;63+)lBBT+9cEe_CXJfHLneSq%69s$?-6Vt7eYjwg~eVmqzM#6DUT zO%`9#YMY4t5aPheqU(n^mdmitP}U1R#5qaF^P-s^4zk@Bi@@UuO2x&KIJOIn*+jR+@2IVe#|Zozahp4^v;s{w~ud3KzJ!|&iw4=uVtdatn0fDX&H ztQ0-f&Kb~IVhCvathkxGkaz?;&qOTxiFw4tXE=Ltb3@=2N zeu|nq%sYdF$2fObO2;mRS&rbEb0@qYKd)nfSa-p06?dtZ9P6P+^t8rE0(-eFJ4S)AHZ%9e=Q;;c zYis`C4fBYBT>~R)2Tk#3*tL7l`44+UV$VPsUM57u2;a+5Spo}>WB#xU$T8N(jS)Ye z_Z5kSM29cJiFmtxQNPJOg|9rk;% z$!8UDbb9y@@%lHuEV21tIENEzpSkG2&%U0KROo0;w$)RVlDk-ZWzFA!Ds;1MX(0Es zmO~zB)Ohp2*}n$W$tB{Jr^BwSJwL|#vK_o1DhB@I3R>CLv$i;YBr0(-pCV)NW8-VB zrw!U)%d2lKInutFg^NW7>ax+B(@V=F$zAWz=U6Q)zEot$!^ZEl?-Q{<_%o}wxT3x2 zk~wb41iC%vk~t2^1nN^Wj2o0UX3{`x{;QTg01t?IhnQsqSc9h!8)|@nq!Z>)|+jqRz28 zTQjwc3legnb-$K7NV$u(Q!Kq1!&cC^K;6yyTB}1+?qPZ92SMq3TFter^hH*YmT}KR z{9e{*EwirX;H1pfa;cO{tQA`3`-&V)VzNca)q0r4Ro3g;K;^fe^}UvP^f^}lx^Y1) zq8zNC*B*~lCXgGX18eO&ULF8N89e8?qVaLK`FdRBq{^Bc+@PAGRQDl@yL zA#WXY$>+rlzxXo6hEF47dR6F=GW1HH%UtqH1AF(*@1g<6 zHLNfFCcU=svfmrN{(4x&D;~TnGE*#m20zC>?G=@}{-tLk#gQogZKC^GPsab1 zog0B(uxG+s@&QW|g?yIFRI-XNk8uge5detRaZh_eL0y1(7 z`_9>GIK#%g8L3s$CPilhzfS7XVY3ySC$`c0R!-!Ach0wpQxH=YLxr#gn|Tq-_snUF zMRW|TtHt8BVchkk)Jkll)Jn{t)JAq%dfK1^X+9=_Sb}H>uVXWwjspjmio>u@T}Gvv zG~cLyfE-+gt_0yt#ILG7oAHt4ZK7Q)vZby02GCf`0lCY?ScjT7H>2iD!Qky;jYIA1 zc%MS`GO>s1J7iAecx4lN1=V+o^H5i>Q0k2i=d9#09Td;38N3U)q@&{Z5bKAdmx((o zp6|;-yb&Srby;o~g%=ZdRd_9Jx+$D-FBLj5jzf>piq_BvSIY4c(Z$`BaTa!|=;4cJ zHv&#+5G5^NORAT~=I}x=ORJVW;fW&l3rruncP_pcTrPUX)fe_q7?}uTfKi$=sJ;sr zp$eN(F9J?&tEP)+tEY>&LQWTvas_SG0DWW43WdVG3}^j&NUfZZrlhCBya|{5L18{N zYcDERduJV+-ff0C}nbdf8gKMzZ71Z}oiDhxH8TC`Z!L_oZJ!Ku0 zYSmw(=9vrLE6y|adZ}&Dqw+b`8$?Dzy_yfKCUzuatqwWM8cb`}cb^jve zd;xYPy%c7tmh@Jbmr-u9!WXa$l_<ksPwZrr(g;`Fh8|Poa zG&r~7D*IOiI_w_c7@H)|18BTfqZ?}(R<1&8b1&wC_*X=t{h-(kaX>%iAcM~OE8G^l zk^u@cT{G3pAmChWQwD72bK&D|t!*eG`-j@z_k!GzShoL{<&< zF+7W-JN(RiJ3JvZPIp6sx_uQhpd!Cb)($ub1n731#%>V+Ew4awyy?frQa5DLa6=r3( z=PR5=yij2tzx{&3ywL4GD$FZaf8D9Odp0Ts8wh*1!iB^yDcqfSkHSU7e^Z$C$KIrd`#g3 z#BVFie3?(k8O?mCdz_g65KhSMo_CaR5}le^D*i0-y9$3v{C^6cBYsce3&g7w z{*D-)8GgcMzb~QsTKEHndHb?IByOedU*-dMQuasc!U-d0t`P7Io9#{Sf3uPT*xAo2 z%>Vpw+>5=8amK+rJ)KrO?d(r#GtvU-9`VPRh@hyx#}h6xn+6)=(XfShx{)_p>>b<4 z%k?K~vHs*=Y;h_qkimr}$J(NMWgxizfv=j>zLFJqz_y2D-t0h9uo6z0H)ep_@JNxd z5i1muzun1;9Wd`gnwN3CIiITQ!*D?6lXkqs>+FQxOs7`kq>#2^8RBJoZe2bG8y_)M| z;pOBoZ-<2%Wy$e!s^i5vn9F0~6;wyNj^zM!rsTFd?XcX2PL0=7eROd+0V@tNbI&+= zk>5g_^V)QnXWXtcx5LScr7)M7<3&?%-msuAL1!|@i>S^{95vB*I%(IjvHR1UCszLY z=-DlG>i9WOPrIV?vDc)2+G!_do9MiB>b$z5v)|RE{)y90>_hZ$mLNWA@8U@l+he?o zL{+Om^QZ+O%PNDSQasWsa8=X^hzq26kz#4CdT~}MdbNhQ1maq$T}Lqn4+LE2tWunz zI51z`!Yf678;G+Y@>#l4ET!nhjeCg{k5XLG!FbMY8@MWW7euyD%p(ltA@WdCJ!lHB zkHE&T3_z`C)FlBbmP8SGge@KM^(FRn0a)jPb45!R*fV?}*0l{JCH%=ne*(|?)8r*< zqr&7=73OQubK(r5h$TlnbxT-{>7)-99=l*;PMG1#F1J}YN9u#@E?hWIW>{xr30yD= zGt5VQX8^Idc&IMT~m{n4fBUavarQuT%^ zS>`O|AXLa)UBB!B99%yhoaj*%NM@yD7=s92xj;kHZ%hQGv10HeHh`k9ggjiFdDxC? zT%c7IK8)~`U0MlkaLw=x=yPbb_T!3`9Z0dmT`H{V*SS$rkHMg2#r!}DJy!K=(P>qY!^LQai$_cjv|SloB&y8)-KCl@mgb?tf99fBAO@al zt_Y7WG}+d^Dv+kBEMpyMM&g>31)}ZHv5cec!jD#+r(=;L%Vmz}ZFKZJa15KozGGO) zr$Ez+#LW3(c0MY4Z_qeJv+C*Cw>_;IH%Ix+ipJ+`;OD5$I4=M7X{=ffqXubTkC-Mf zy9`%$D(IBu2o1aDl06;s)M6N8I@aD%5O_6GEdIhbvi8xgfdRJIULM{=+&CZ*Q`@L} zAlGZB*XEZ5?rdaVBMx2_$VC5Y_Rs!IQ8Ui#y^cx6VEYVZYXaparcwe^=CW8OP#)ou zm$~Gv;+lP7nfO@ckwuZ2)uF~FuJSg(B`xIo+9a=h1z$|jloZf#FT_?60X;1ywhy;3&6 zSS7z#M3e=ZTMT#wExC^*3O9 zSsa}jXl4Ih%)T*@CIT4n6Ha=s$etGX6tBj@rw0am#lyxocFYDTf1gD<5-wjL@lW^N!Re1BUG6_`CYfHiT@8mEX}k6;R#r{@NmVD_R%(lB++ zahQ1m?ZoGE11&KIrg2pO<6GK^PE`;Oh#Me=e~p-GNiwmi3f8y@ZG+k~yq$QLW?u0N zV@+!(TF!$QFRqz~0vIIno5KIJGy#Pw!~X}OT1qAW delta 145783 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 diff --git a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a index af9e8fe96a92e5f27928b99337046cfbad2dbb72..800ab8702a6bb2b622712cd8332db4b8721829d0 100644 GIT binary patch delta 177041 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 TEt1!Dz|a`9geIU+W%&O9c=k$l delta 145789 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 diff --git a/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a index 8ee2fe15e61066c34d76a807a608f4123de6e4b4..807b8f29e1b41d8bcaead94fcfa15129ef924c01 100755 GIT binary patch delta 177048 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�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 ILY3kF13_d<%>V!Z delta 145790 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

    VBB!p>lXT-FTyh{m(Q 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

    4b4);XDdq3vC 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

    VBB!p>lXT-FTyh{m(Q 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 s#nm#QB #include "components/ui_swipe_view.h" #include "components/card_swipe.h" #include "components_ext/hor_swipe_view.h" @@ -234,6 +235,7 @@ private: UIView* tailView_ = nullptr; UISwipeView::OnSwipeListener *swipeListener_ = nullptr; bool isNeedClip_ = false; + std::shared_ptr exists_; void RemoveAllInner(UISwipeView& view); void ProcessRes(void); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_hexagons_list.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_hexagons_list.h index 7d287c554..d214d955c 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_hexagons_list.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_hexagons_list.h @@ -145,7 +145,7 @@ public: * @brief Get the Index Of View object in this view group * * @param view, Indicates the view to search - * @return Returns the index, -1 if not exsit + * @return Returns the view, nullptr if not exsit */ UIView* GetViewByIndex(uint8_t index); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_slipflow_view.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_slipflow_view.h new file mode 100644 index 000000000..975e5a31a --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_slipflow_view.h @@ -0,0 +1,256 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: UISlipFlow + * Author: + * Create: 2024-08 + */ + +#ifndef UI_SLIPFLOW_VIEW_H +#define UI_SLIPFLOW_VIEW_H +#include +#include +#include "gfx_utils/vector.h" +#include "components/ui_image_view.h" +#include "components/ui_label.h" +#include "components/ui_abstract_scroll.h" + +namespace OHOS { +struct TempXoffsetInfo { + int16_t tempMasterXoffset; + int16_t tempSlaveXoffset; + int16_t tempMasterYoffset; + int16_t tempSlaveYoffset; +}; + +class UISlipflowView : public UIAbstractScroll { +public: + explicit UISlipflowView(); + ~UISlipflowView() override; + + /** + * @brief Adds a child view. + * + * @param view Indicates the pointer to the child view to add. + * @since 1.0 + * @version 1.0 + */ + void Add(UIView* view) override; + + /** + * @brief remove a child view from slipflow. + * + * @param id Indicates the pointer to the child view to remove. + */ + void Remove(UIView* view) override; + + /** + * @brief Set page size. + * + * @param width setting page width. + * @param height setting page height. + */ + void SetPageSize(uint16_t width, uint16_t height); + + /** + * @brief Get page width. + */ + uint16_t GetPageWidth() const + { + return pageWidth_; + } + + /** + * @brief Get page height. + */ + uint16_t GetPageHeight() const + { + return pageHeight_; + } + + /** + * @brief Sets the index for the current tab. + * + * @param index Indicates the index of a view. + * @param needAnimator Specifies whether a flip animation is needed. false (default value) indicates a flip + * animation is not needed, and true indicates the opposite case. + * @since 1.0 + * @version 1.0 + */ + void SetCurrentPage(uint16_t index, bool needAnimator = false); + + /** + * @brief Obtains the current tab index. + * + * @return Returns the current tab index. + * @since 1.0 + * @version 1.0 + */ + uint16_t GetCurrentPage() const + { + return curIndex_; + } + + /** + * @brief Obtains the current view. + * + * @return Returns the current view. + * @since 1.0 + * @version 1.0 + */ + UIView* GetCurrentView() const + { + return curView_; + } + + /** + * @brief Obtains the component type. + * + * @return Returns the component type, as defined in {@link UIViewType}. + * @since 1.0 + * @version 1.0 + */ + UIViewType GetViewType() const override + { + return UI_SLIP_FLOW; + } + + /** + * @brief Obtains a view based on its index. + * + * @param Indicates the index of a view. + * @return Returns the view. + * @since 1.0 + * @version 1.0 + */ + UIView* GetViewByIndex(uint16_t index) const; + + /** + * @brief Indicates that the animation duration is 12 ticks. + * + * @since 1.0 + * @version 1.0 + */ + constexpr static uint16_t ANIMATOR_TIME = 12; + + /** + * @brief Sets the time for the page being animated. The page will go beyond the blank during this time. + * + * @param time Indicates the time of the page being animated. + * @since 1.0 + * @version 1.0 + */ + void SetAnimatorTime(uint16_t time); + + /** + * @brief Set the movement coefficient of the current page and the page on the right compared to other pages. + * + * @param coefficient The moving speed of the current page and the page on the right is coefficient times + * that of other pages. + * @since 1.0 + * @version 1.0 + */ + void SetMoveCoefficient(uint16_t coefficient); + + /** + * @fn void OnDragEvent(const DragEvent& event) override + * + * @brief realize drag event, Switch to specified view when drag + * + * @param event The drag event + */ + bool OnDragEvent(const DragEvent& event) override; + + /** + * @fn void OnDragStartEvent(const DragEvent& event) override + * + * @brief realize drag start event, Switch to specified view when drag start + * + * @param event The drag event start + */ + + bool OnDragStartEvent(const DragEvent& event) override; + + /** + * @fn void OnDragEndEvent(const DragEvent& event) override + * + * @brief realize drag end event, Switch to specified view when drag end + * + * @param event The drag event end + */ + bool OnDragEndEvent(const DragEvent& event) override; + + /** + * @brief Represents a listener for swipe of the slipflow view. + */ + class OnSlipflowScrollListener : public HeapBase { + public: + virtual bool OnScroll(int16_t distance) { return true; } + virtual void OnScrollUpStart() {}; + virtual void OnScrollUpEnd() {}; + virtual bool OnRemove(UIView* view) { return true; } + virtual void OnRefreshPageOpaScale(UIView* view, int16_t xOffset, int16_t yOffset) {} + virtual ~OnSlipflowScrollListener() {} + }; + + /** + * @brief Sets the listener that contains a callback to be invoked upon a swipe event. + * + * @param onSlipflowListener Indicates the listener to set. + * @since 1.0 + * @version 1.0 + */ + void SetOnSlipflowListener(OnSlipflowScrollListener* onSlipflowListener) + { + slipflowListener_ = onSlipflowListener; + } + + void SetDirection(uint8_t direction) = delete; + uint8_t GetDirection() const = delete; +protected: + void SortChild(); + bool DragXInner(int16_t distance) override; + bool DragYInner(int16_t distance) override; + void StopAnimator() override; + void RefreshCurrentView(int16_t distance, uint8_t dragDirection); + void SwitchToPage(int16_t dst, bool needAnimator = true); + void MoveChildByXOffset(int16_t xOffset); + void DeleteMoveChild(int16_t distance); + void SwipUpReleaseOperation(); + void SwipUpDeleteOperation(); + void SwipUpRebound(); + void CalculateInvalidate(); + +private: + void DeleteGroup(UIViewGroup* group); + void AddTempXoffsetInfo(); + void ResetTempOffsetInfo(); + bool CalCurViewInfo(); + void RefreshChildIndex(); + void RefreshScreen(); + void RefreshPageOpaScale(UIView* view); + int16_t GetPreViewOffsetToCenter(); + + OnSlipflowScrollListener* slipflowListener_; + Graphic::Vector pageTempOffsetInfo_; + int16_t totalTempXoffset_{0}; + int16_t totalTempYoffset_{0}; + int16_t xMoveCoefficient_; + int16_t yMoveCoefficient_; + bool isSwipUpDelete_{false}; + + uint16_t tickTime_; + uint16_t curIndex_; + uint16_t blankSize_; + UIView* curView_; + UIView* deleteView_; + uint16_t lastIndex_; + uint16_t pageWidth_; + uint16_t pageHeight_; + UIView* lastView_; + uint16_t swipeMid_; + int8_t dragDirection_; + bool isMoveTotal_; + bool isSetPage_; +}; +} // namespace OHOS +#endif // UI_SLIPFLOW_VIEW_H diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_transform_group.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_transform_group.h index ade79f632..6ff2e112d 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_transform_group.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_transform_group.h @@ -60,6 +60,14 @@ public: * @version 1.0 */ void SetStyle(uint8_t key, int64_t value) override; + + /** + * @brief Called when a view is drawn. + * @param invalidatedArea Indicates the area to draw. + * @since 1.0 + * @version 1.0 + */ + void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override; private: void ReMeasure() override; void DeleteMirrorView(); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/dfx/dfx_frame_trace.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/dfx/dfx_frame_trace.h index a7cf2ea79..c2519d10f 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/dfx/dfx_frame_trace.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/dfx/dfx_frame_trace.h @@ -64,6 +64,7 @@ enum class FrameTraceType { HW_DRAW_SUBMIT, HW_DRAW_FLUSH, HW_DRAW_WAIT, + HW_DRAW_ARC_RECT, DRAW_MAX }; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/gfx_utils/mem_check.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/gfx_utils/mem_check.h index e1a266d62..241793d37 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/gfx_utils/mem_check.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/gfx_utils/mem_check.h @@ -36,37 +36,14 @@ #define GRAPHIC_LITE_MEM_CHECK_H #include -#include -#include -#include #include #include "gfx_utils/mem_api.h" #include "graphic_thread.h" +#include "graphic_mutex.h" +#include "soc_osal.h" #if ENABLE_MEMORY_CHECK namespace OHOS { -/** - * @brief Mem opt, add or delete - * - */ -enum class Opt { - ADD, - DEL -}; - -/** - * @brief Memory record info. - * - */ -struct MemRecord { - int32_t size; - uintptr_t address; - Opt opt; - time_t time; - int32_t total; - struct MemRecord* next; -}; - /** * @brief Memory alloc info. * @@ -103,7 +80,7 @@ public: * @since 1.0 * @version 1.0 */ - int MemAdd(int size, uintptr_t address); + bool MemAdd(int size, uintptr_t address); /** * @brief Reduce dynamic memory. You can call it when reduce dynamic memory. @@ -112,7 +89,7 @@ public: * @since 1.0 * @version 1.0 */ - int MemDelete(uintptr_t address); + bool MemDelete(uintptr_t address); /** * @brief print current memory info @@ -138,32 +115,19 @@ public: leakSize_ = sz; } -#ifndef VERSION_IOT - void CollectMemory(uint32_t delayTime); - void SaveRecordInfo(); -#endif - private: MemCheck() {} ~MemCheck(); MemCheck(const MemCheck &) = delete; MemCheck &operator=(const MemCheck &) = delete; -#ifndef VERSION_IOT - bool InsertRecord(uintptr_t address, Opt opt, int32_t size, int32_t total); - bool CreateRecordFile(); - bool isBeyondTime(); -#endif - bool initSuc = false; - FILE* fp = nullptr; - MemRecord* recordHead = nullptr; - MemAllocInfo* allocHead = nullptr; - MemRecord* recordTail = nullptr; - MemAllocInfo* allocTail = nullptr; - time_t setTime_ = 0; - int32_t delayTime_ = 0; - ThreadId recordThreadId = nullptr; - int32_t totalSize = 0; + bool InitMemInfoList(); + void ClearMemInfoList(); + + MemAllocInfo* allocHead_ = nullptr; + MemAllocInfo* allocTail_ = nullptr; + GraphicMutex lock_; + osal_atomic totalCnt_; bool enableLeakCheck_ = false; MemAllocInfo *leakHead_ = nullptr; int16_t crashCnt_ = -1; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/common/lite_surface.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/common/lite_surface.cpp index 82c36b1e0..f0d3f0521 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/common/lite_surface.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/common/lite_surface.cpp @@ -95,7 +95,7 @@ void LiteSurface::AddBuffer() bool LiteSurface::CanRequest(uint8_t wait) { - bool res = true; + bool res = false; if (!freeList_.IsEmpty()) { res = true; goto END; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_custom_hexagons_list.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_custom_hexagons_list.cpp index 33b1e697b..b69f92435 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_custom_hexagons_list.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_custom_hexagons_list.cpp @@ -120,7 +120,7 @@ bool UICustomHexagonsList::OnRotateStartEvent(const RotateEvent& event) bool UICustomHexagonsList::OnRotateEvent(const RotateEvent& event) { - float deltaScale = event.GetRotate() * ROTATE_SCALE_FACTOR; + float deltaScale = event.GetRotate() * ROTATE_SCALE_FACTOR * GetRotateFactor(); float targetScale = globalScale_ + deltaScale; /* -------------------------------------------------------------------------- */ int8_t focusIndex = GetFocusedImgIndex(); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_lite_surface_view.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_lite_surface_view.cpp index 4cfd78f7b..1c93fb728 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_lite_surface_view.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_lite_surface_view.cpp @@ -59,9 +59,11 @@ UILiteSurfaceView::~UILiteSurfaceView() currentBuffer_ = nullptr; } surface_->UnregisterConsumerListener(); - LiteMGfxEngine::GetInstance()->ClearHardwareLayer(); + LiteMGfxEngine::GetInstance()->ClearHardwareLayer(this); GraphicService::GetInstance()->PostGraphicEvent([] { - GraphicService::GetInstance()->EnableAsyncMode(true); + if (LiteMGfxEngine::GetInstance()->GetHardwareLayer() == nullptr) { + GraphicService::GetInstance()->EnableAsyncMode(true); + } }); if (preView_ != nullptr) { @@ -333,8 +335,10 @@ void UILiteSurfaceView::OnBufferAvailable() [&, ws] { if (!ws.expired()) { DisplayDev::GetInstance()->SetLayerColorKey(LAYER_0, false, 0); - LiteMGfxEngine::GetInstance()->ClearHardwareLayer(); - LiteMGfxEngine::GetInstance()->EnableAsyncMode(true); + LiteMGfxEngine::GetInstance()->ClearHardwareLayer(this); + if (LiteMGfxEngine::GetInstance()->GetHardwareLayer() == nullptr) { + GraphicService::GetInstance()->EnableAsyncMode(true); + } surface_->ClearBuffers(); currentBuffer_ = nullptr; lastFlushedBuffer_ = nullptr; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/engines/gfx/lite_m_gfx_engine.h b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/engines/gfx/lite_m_gfx_engine.h index e7c296d93..44efc7071 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/engines/gfx/lite_m_gfx_engine.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/engines/gfx/lite_m_gfx_engine.h @@ -39,6 +39,7 @@ struct EllipseInfo { struct AsyncSubmitInfo { Rect rect; bool hasPendingFrame; + bool needSwapToPendingFrame; }; class LiteMGfxEngine : public BaseGfxEngine { @@ -132,13 +133,17 @@ public: { hardwareView_ = view; } + IHardwareView* GetHardwareLayer() { return hardwareView_; } - void ClearHardwareLayer() + + void ClearHardwareLayer(IHardwareView* view) { - hardwareView_ = nullptr; + if (hardwareView_ == view) { + hardwareView_ = nullptr; + } } bool HasPendingFrame() @@ -164,7 +169,7 @@ private: BufferInfo* bufferInfo_ = nullptr; BufferInfo* nextBufferInfo_ = nullptr; - AsyncSubmitInfo lastAsyncInfo_ = {{0, 0, 1, 1}, false}; + AsyncSubmitInfo lastAsyncInfo_ = {{0, 0, 1, 1}, false, false}; bool enableAsyncSubmit_ = true; #if ENABLE_VGU_ENGINE @@ -183,7 +188,6 @@ private: void AddHwDraw(uint16_t cnt); void AsyncFlush(); #endif - void FlushInner(const Rect &rect); }; } #endif // GRAPHIC_LITE_LITE_M_GFX_ENGINE_H diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/display_dev.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/display_dev.cpp index 6dbca60ee..5b29de28b 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/display_dev.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/display_dev.cpp @@ -23,8 +23,19 @@ #include "hals/gralloc_engines.h" #include "dfx/dfx_frame_trace.h" +#ifndef _WIN32 +#include "tcxo.h" +#ifdef __cplusplus +extern "C" { +#endif +#include "soc_mipi_tx.h" +#ifdef __cplusplus +}; +#endif +#endif + namespace OHOS { -DisplayDev::DisplayDev() : isDisplayDevInited_{false}, devId_(0), layerFuncs_{nullptr} +DisplayDev::DisplayDev() : isDisplayDevInited_(false), devId_(0), layerFuncs_(nullptr), exitUlps_(false) { for (uint8_t i = LAYER_0; i < LAYER_MAX; i++) { currentBufferId_[i] = 0; @@ -44,9 +55,11 @@ void DisplayDev::LcdFlush(uint8_t layerId) } if (layerFuncs_->Flush != nullptr) { if (layerId == LAYER_MAX) { + TryExitUlps(true); if (layerFuncs_->Flush(0, 0, nullptr) != DISPLAY_SUCCESS) { GRAPHIC_LOGE("flush failed."); } + exitUlps_ = false; return; } uint8_t currentBufferIndex = currentBufferId_[layerId]; @@ -187,7 +200,7 @@ bool DisplayDev::OpenLayer(uint8_t layerId, const LayerInfo& info, uint8_t buffe layer_[layerId].pos.x = 0; layer_[layerId].pos.y = 0; if (layerFuncs_->CreateLayer(devId_, &layer_[layerId].layerInfo, &layer_[layerId].layerHdl) != DISPLAY_SUCCESS) { - free(layer_[layerId].buffer); + UIFree(layer_[layerId].buffer); layer_[layerId].buffer = nullptr; layer_[layerId].layerHdl = 0; layer_[layerId].bufferCount = 0; @@ -221,7 +234,7 @@ void DisplayDev::CloseLayer(uint8_t layerId) return; } - free(layer_[layerId].buffer); + UIFree(layer_[layerId].buffer); layer_[layerId].buffer = nullptr; layer_[layerId].layerHdl = 0; @@ -252,6 +265,21 @@ bool DisplayDev::IsUlpsEnabled(void) #endif } +bool DisplayDev::TryExitUlps(bool isFlushing) +{ + if (IsUlpsEnabled() && !exitUlps_) { +#ifndef _WIN32 + uapi_mipi_tx_exit_ulps(); + if (isFlushing) { + uapi_tcxo_delay_ms(1); + } +#endif + exitUlps_ = true; + return true; + } + return false; +} + bool DisplayDev::IsDoubleBuffer(void) { #if DOUBLE_BUFFER diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp index 02aaf218b..f8a9bfc3c 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp @@ -156,6 +156,21 @@ bool LiteInputDistributer::IsEventEmpty(InputDevType type) return true; } +void LiteInputDistributer::ClearEvent(InputDevType type) +{ + eventLock_.Lock(); + if (type == InputDevType::INDEV_TYPE_TOUCH) { + tpList_.clear(); + deviceData_.state = 0; + } else if (type == InputDevType::INDEV_TYPE_KEY) { + keyList_.clear(); + } else if (type == InputDevType::INDEV_TYPE_ENCODER) + { + encoderDataList_.clear(); + } + eventLock_.Unlock(); +} + #ifdef CONFIG_SUPPORTED_POWERMGR void LiteInputDistributer::SendEventToPM(const RawEvent& event) { diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_check.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_check.cpp index d16d72726..9725426b4 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_check.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_check.cpp @@ -15,170 +15,162 @@ #include "gfx_utils/mem_check.h" #if ENABLE_MEMORY_CHECK -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - #include "gfx_utils/graphic_log.h" -#include "hal_tick.h" -#include "securec.h" #include "hals/gralloc_engines.h" #ifdef __LITEOS__ #include "los_exc.h" #endif -#define SUPPRESS_DUMP 0 namespace OHOS { -using std::string; -const uint8_t OFFSET_TIME = 3; - MemCheck::~MemCheck() { - MemAllocInfo* allocPtr = allocHead; - while (allocPtr != nullptr && allocPtr->next != nullptr) { - MemAllocInfo* allocNote = allocPtr->next; - allocPtr->next = allocPtr->next->next; - free(allocNote); - allocNote = nullptr; + ClearMemInfoList(); +} + +void MemCheck::MemCheckInit() +{ + GRAPHIC_LOGI("MemCheck::MemCheckInit"); +} + +bool MemCheck::InitMemInfoList() +{ + if ((allocHead_ != nullptr) || (allocTail_ != nullptr)) { + GRAPHIC_LOGE("allocHead_ or allocTail_ is already inited."); + return false; } - MemRecord* recordPtr = recordHead; - while (recordPtr != nullptr && recordPtr->next != nullptr) { - MemRecord* recordNode = recordPtr->next; - recordPtr->next = recordPtr->next->next; - free(recordNode); - recordNode = nullptr; + MemAllocInfo* allocNode = (MemAllocInfo*)malloc(sizeof(MemAllocInfo)); + if (allocNode == nullptr) { + GRAPHIC_LOGE("malloc for allocNode failed!"); + return false; } - allocHead = nullptr; - recordHead = nullptr; + allocNode->address = 0; + allocNode->next = nullptr; + allocNode->size = 0; - if (fp != nullptr) { - fclose(fp); - fp = nullptr; - } + allocHead_ = allocNode; + allocTail_ = allocNode; + return true; } -void MemCheck::MemCheckInit() +void MemCheck::ClearMemInfoList() { - GRAPHIC_LOGI("MemCheck::MemCheckInit\n"); - MemRecord* recordNote = (MemRecord*)malloc(sizeof(MemRecord)); - if (recordNote == nullptr) { - initSuc = false; + if (allocHead_ == nullptr) { return; } - recordNote->address = 0; - recordNote->size = 0; - recordNote->total = 0; - recordNote->time = 0; - recordNote->next = nullptr; - recordHead = recordNote; - recordTail = recordNote; - MemAllocInfo* allocNote = (MemAllocInfo*)malloc(sizeof(MemAllocInfo)); - if (allocNote == nullptr) { - free(recordNote); - recordNote = nullptr; - initSuc = false; - return; + MemAllocInfo* allocPtr = allocHead_; + while (allocPtr != nullptr && allocPtr->next != nullptr) { + MemAllocInfo* allocNode = allocPtr->next; + allocPtr->next = allocPtr->next->next; + free(allocNode); + allocNode = nullptr; } - allocNote->address = 0; - allocNote->next = nullptr; - allocNote->size = 0; - allocHead = allocNote; - allocTail = allocNote; - initSuc = true; - return; + free(allocHead_); + allocHead_ = nullptr; + allocTail_ = nullptr; } void MemCheck::EnableLeakCheck(bool enable) { - enableLeakCheck_ = enable; - if (enableLeakCheck_) { + lock_.Lock(); + if (enableLeakCheck_ == enable) { + GRAPHIC_LOGE("Already set leak check: %d", enableLeakCheck_); + lock_.Unlock(); + return; + } + if (enable) { + if (!InitMemInfoList()) { + GRAPHIC_LOGE("EnableLeakCheck failed!"); + lock_.Unlock(); + return; + } leakCount_ = 0; leakHead_ = nullptr; + GRAPHIC_LOGP("-----Begin Memory Leak Check----"); } else { + GRAPHIC_LOGP("total count: %d", osal_atomic_read(&totalCnt_)); MemAllocInfo *info = leakHead_; for (; info != nullptr; info = info->next) { GRAPHIC_LOGE("leakcheck: [%d] addr %p size %d", info->count, info->address, info->size); } crashCnt_ = -1; leakSize_ = 0; + ClearMemInfoList(); + GRAPHIC_LOGP("-----End Memory Leak Check----"); } + enableLeakCheck_ = enable; + lock_.Unlock(); } -int MemCheck::MemAdd(int size, uintptr_t address) +bool MemCheck::MemAdd(int size, uintptr_t address) { - if (!initSuc) { - return -1; + osal_atomic_inc(&totalCnt_); + + lock_.Lock(); + if (!enableLeakCheck_) { + lock_.Unlock(); + return false; + } + + MemAllocInfo* allocNode = (MemAllocInfo*)malloc(sizeof(MemAllocInfo)); + if (allocNode == nullptr) { + GRAPHIC_LOGE("MemAdd malloc failed"); + lock_.Unlock(); + return false; } - MemAllocInfo* allocNote = (MemAllocInfo*)malloc(sizeof(MemAllocInfo)); - if (allocNote == nullptr) { - GRAPHIC_LOGE("MemAdd malloc failed\n"); - return -1; + allocNode->address = address; + allocNode->size = size; + allocNode->next = nullptr; + allocNode->count = -1; + + allocTail_->next = allocNode; + allocTail_ = allocNode; + + leakCount_++; + allocNode->count = leakCount_; + if (leakHead_ == nullptr) { + leakHead_ = allocNode; } - allocNote->address = address; - allocNote->size = size; - allocNote->next = nullptr; - allocNote->count = -1; - allocTail->next = allocNote; - allocTail = allocNote; - totalSize += allocNote->size; - if (enableLeakCheck_) { - leakCount_++; - allocNote->count = leakCount_; - if (leakHead_ == nullptr) { - leakHead_ = allocNote; + if (leakCount_ == crashCnt_) { + if (leakSize_ != allocNode->size) { + GRAPHIC_LOGE("size not right!"); } - if (leakCount_ == crashCnt_) { - if (leakSize_ != allocNote->size) { - GRAPHIC_LOGE("size not right! %d",allocNote->size); - } + lock_.Unlock(); #ifdef __LITEOS__ - LOS_Panic("mem leak here!\n"); + LOS_Panic("mem leak here!\n"); #endif - } } -#ifndef VERSION_IOT - if (!isBeyondTime()) { - if (!InsertRecord(address, Opt::ADD, size, totalSize)) { - return -1; - } - } -#endif - return 0; + lock_.Unlock(); + return true; } -int MemCheck::MemDelete(uintptr_t address) +bool MemCheck::MemDelete(uintptr_t address) { + osal_atomic_dec(&totalCnt_); + + lock_.Lock(); + if (!enableLeakCheck_) { + lock_.Unlock(); + return false; + } + if (address == 0) { GRAPHIC_LOGE("MemDelete address is nullptr\n"); - return -1; - } - if (!initSuc) { - return -1; + lock_.Unlock(); + return false; } - int32_t currNodeSize = 0; - MemAllocInfo* allocPtr = allocHead; + MemAllocInfo* allocPtr = allocHead_; while (allocPtr->next != nullptr) { if (allocPtr->next->address == address) { MemAllocInfo *cur = allocPtr->next; - leakHead_ = (enableLeakCheck_ && (leakHead_ == cur)) ? cur->next : leakHead_; - currNodeSize = allocPtr->next->size; - totalSize -= currNodeSize; + leakHead_ = (leakHead_ == cur) ? cur->next : leakHead_; MemAllocInfo* tmpInfo = allocPtr->next; allocPtr->next = allocPtr->next->next; if (allocPtr->next == nullptr) { - allocTail = allocPtr; + allocTail_ = allocPtr; } free(tmpInfo); tmpInfo = nullptr; @@ -186,150 +178,17 @@ int MemCheck::MemDelete(uintptr_t address) } allocPtr = allocPtr->next; } + lock_.Unlock(); -#ifndef VERSION_IOT - if (!isBeyondTime()) { - if (!InsertRecord(address, Opt::DEL, currNodeSize, totalSize)) { - return -1; - } - } -#endif - return 0; + return true; } void MemCheck::DumpMemInfo() { - int32_t total = 0; - int32_t count = 0; - int32_t max = 0; -#if SUPPRESS_DUMP printf("current malloc/new memory:\n"); -#endif - if(allocHead == nullptr) - return; - MemAllocInfo* allocPtr = allocHead; - while (allocPtr->next != nullptr) { - total += allocPtr->next->size; - if (max < allocPtr->next->size) { - max = allocPtr->next->size; - } - count++; - allocPtr = allocPtr->next; - } - printf("total size=%d, max=%d, count=%d\n", total, max, count); -#if SUPPRESS_DUMP + printf("total count: %d\n", osal_atomic_read(&totalCnt_)); printf("--------\n"); GrallocEngines::GetInstance()->DumpMem(); -#endif -} - -#ifndef VERSION_IOT -bool MemCheck::isBeyondTime() -{ - time_t currTime = time((time_t *)nullptr); - if (currTime - setTime_ > delayTime_) { - return true; - } - return false; -} - -bool MemCheck::InsertRecord(uintptr_t address, Opt opt, int32_t size, int32_t total) -{ - MemRecord* recordNote = (MemRecord*)malloc(sizeof(MemRecord)); - if (recordNote == nullptr) { - GRAPHIC_LOGE("MemAdd malloc failed\n"); - return false; - } - recordNote->address = address; - recordNote->opt = opt; - recordNote->size = size; - recordNote->time = time(0); - recordNote->total = total; - recordNote->next = nullptr; - recordTail->next = recordNote; - recordTail = recordNote; - return true; -} - -static void* SaveMemInfo(void* arg) -{ - MemCheck::GetInstance()->SaveRecordInfo(); - return nullptr; -} - -void MemCheck::SaveRecordInfo() -{ - // sleep 1s, wait main thread set delaytime - sleep(1); - time_t currTime = time((time_t *)nullptr); - while ((currTime - setTime_) < (delayTime_ + OFFSET_TIME)) { - MemRecord* recordPtr = recordHead; - while (recordPtr->next != nullptr) { - MemRecord* recordNote = recordPtr->next; - recordPtr->next = recordPtr->next->next; - struct tm *sttm = localtime(&(recordNote->time)); - // 1900: year - fprintf(fp, "%04u-%02u-%02u %02u:%02u:%02u addr=0x%x %s size:%d total:%d\n", sttm->tm_year + 1900, - sttm->tm_mon+1, sttm->tm_mday, sttm->tm_hour, sttm->tm_min, sttm->tm_sec, recordNote->address, - recordNote->opt == Opt::ADD ? "add" : "del", recordNote->size, recordNote->total); - free(recordNote); - recordNote = nullptr; - } - recordTail = recordHead; - fflush(fp); - - sleep(2); // 2: sleep time - currTime = time((time_t *)nullptr); - } - fclose(fp); - fp = nullptr; - recordThreadId = nullptr; -} - -bool MemCheck::CreateRecordFile() -{ - char currPath[16] = "/user/mem/"; - if (access(currPath, F_OK) == -1) { - GRAPHIC_LOGD("dir %s not exist, create dir\n", currPath); - if (mkdir(currPath, 0777) != 0) { // 0777: permission mode - GRAPHIC_LOGE("create dir %s failed , errno = %d : %s\n", currPath, errno, strerror(errno)); - return false; - } - } - char path[20] = ""; - if (sprintf_s(path, sizeof(path), "%s%d", currPath, getpid()) == -1) { - GRAPHIC_LOGE("MemCheckInit sprintf_s failed\n"); - return false; - } - fp = fopen(path, "w+"); - if (fp == nullptr) { - GRAPHIC_LOGE("open mem file %s failed ,errno = %d : %s\n", path, errno, strerror(errno)); - return false; - } - return true; } - -void MemCheck::CollectMemory(uint32_t delayTime) -{ - if (!initSuc) { - GRAPHIC_LOGE("Init failed!\n"); - return; - } - if (fp == nullptr && !CreateRecordFile()) { - return; - } - - if (recordThreadId == nullptr) { - recordThreadId = ThreadCreate(SaveMemInfo, nullptr, nullptr); - if (recordThreadId == nullptr) { - GRAPHIC_LOGE("create thread failed!!\n"); - return; - } - } - setTime_ = time(0); - delayTime_ = delayTime; - DumpMemInfo(); -} -#endif } // namespace OHOS #endif diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_custom.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_custom.cpp index 7b1656278..664c3c9fd 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_custom.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_custom.cpp @@ -46,9 +46,6 @@ void ImageCacheFree(ImageInfo& info) return; } - if (LiteMGfxEngine::GetInstance()->IsAsyncModeEnabled()) { - LiteMGfxEngine::GetInstance()->Flush(Rect(0, 0, 0, 0)); - } LiteMGfxEngine::GetInstance()->SyncHwDraw(); GrallocEngines::GetInstance()->FreeBuffer(const_cast(info.data)); info.phyAddr = nullptr; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/display_dev.h b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/display_dev.h index 7d4094d31..fcae1dd8c 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/display_dev.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/display_dev.h @@ -143,6 +143,7 @@ public: uint32_t CalcStride(uint32_t width, PixelFormat fmt); bool IsUlpsEnabled(void); + bool TryExitUlps(bool isFlushing); bool IsDoubleBuffer(void); /** @@ -169,6 +170,7 @@ private: uint32_t devId_; LayerFuncs* layerFuncs_; uint8_t currentBufferId_[LAYER_MAX]; + bool exitUlps_; #ifdef LAYER_PF_ARGB1555 const uint8_t layerBpp_ = 16; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/lite_input_distributer.h b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/lite_input_distributer.h index 7244a4417..039b4e97b 100755 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/lite_input_distributer.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/lite_input_distributer.h @@ -39,6 +39,7 @@ public: void GetEventData(DeviceData& data, InputDevType type); void SetEventData(const RawEvent& event); bool IsEventEmpty(InputDevType type); + void ClearEvent(InputDevType type); #ifdef CONFIG_SUPPORTED_POWERMGR void SendEventToPM(const RawEvent& event); #endif diff --git a/code/sdk/middleware/services/gui/uikit/res/image_background_circle.bin b/code/sdk/middleware/services/gui/uikit/res/image_background_circle.bin new file mode 100644 index 000000000..3998f5c66 --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/res/image_background_circle.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:129286d49d6097dd71c38311f24ea9cad9da01ea7ea3a1160b45731fbe9eb600 +size 237624 diff --git a/code/sdk/middleware/services/gui/uikit/res/kaleidoscope_circle.bin b/code/sdk/middleware/services/gui/uikit/res/kaleidoscope_circle.bin new file mode 100644 index 000000000..15be273ea --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/res/kaleidoscope_circle.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bda994196a6f1887261fad0b0af108eb64dc2be14abc6581ef3ec2c7e1afbbb3 +size 99864 diff --git a/code/sdk/middleware/services/gui/uikit/res/planet_circle.bin b/code/sdk/middleware/services/gui/uikit/res/planet_circle.bin new file mode 100644 index 000000000..770fd45ab --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/res/planet_circle.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81d23195839a6cf705c083957b110a235227d40784f3b644b94b795555de2654 +size 95784 diff --git a/code/sdk/middleware/services/gui/uikit/res/rainbow_circle.bin b/code/sdk/middleware/services/gui/uikit/res/rainbow_circle.bin new file mode 100644 index 000000000..da8559e35 --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/res/rainbow_circle.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25263b886947c791d585e3a26f575bc40dcefe85bb733b759f56424d9af2e51a +size 72184 diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_icosahedron/ui_test_icosahedron.cpp b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_icosahedron/ui_test_icosahedron.cpp index 2d2352809..e07b3f806 100644 --- a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_icosahedron/ui_test_icosahedron.cpp +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_icosahedron/ui_test_icosahedron.cpp @@ -100,7 +100,9 @@ void UITestIcosahedron::TearDown() const UIView* UITestIcosahedron::GetTestView() { - enterAnimator_->Start(); + if (enterAnimator_ != nullptr) { + enterAnimator_->Start(); + } return container_; } } \ No newline at end of file diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.cpp b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.cpp new file mode 100644 index 000000000..eb7936847 --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.cpp @@ -0,0 +1,295 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: UITestSlip + * Author: + * Create: 2024-08 + */ + +#include "ui_test_slipflow.h" +#include "common/screen.h" +#include "font/ui_font.h" +#include "gfx_utils/graphic_math.h" +#include "gfx_utils/rect.h" +#include "common/image_cache_manager.h" + +namespace OHOS { +namespace { +struct FaceInfo { + const char* name; + const char* path; +} ; + +static constexpr uint8_t SLIPFLOW_MAX_PAGE_NUM = 6; +static FaceInfo g_faceInfo[SLIPFLOW_MAX_PAGE_NUM] = { + {"1 rainbow", RES_PATH"/rainbow_circle.bin"}, + {"2 kaleidoscope", RES_PATH"/kaleidoscope_circle.bin"}, + {"3 planet", RES_PATH"/planet_circle.bin"}, + {"4 rainbow", RES_PATH"/rainbow_circle.bin"}, + {"5 kaleidoscope", RES_PATH"/kaleidoscope_circle.bin"}, + {"6 planet", RES_PATH"/planet_circle.bin"} +}; +static constexpr const char* BACK_IMAGE_PATH = RES_PATH"/image_background_circle.bin"; + +static constexpr uint8_t SLIPFLOW_PRELOAD_PAGE_NUM = 3; +static constexpr int16_t LABEL_FONT_SIZE = 30; +static constexpr uint8_t DEFAULT_STEP = 10; +static constexpr uint16_t BUTTON_WIDTH = 60; +static constexpr uint16_t BUTTON_HEIGHT = 40; +static constexpr uint16_t BUTTON_GROUP_WIDTH = 300; +static constexpr uint16_t BUTTON_GROUP_HEIGHT = 80; +static constexpr uint8_t DIVISOR_TWO = 2; +static constexpr uint16_t PAGE_WIDTH = 200; +static constexpr uint16_t PAGE_HEIGHT = 200; +} // namespace + +void UITestSlipflow::SetUp() +{ + if (container_ == nullptr) { + container_ = new UIScrollView(); + container_->SetThrowDrag(true); + container_->SetHorizontalScrollState(false); + container_->Resize(Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + } +} + +void UITestSlipflow::TearDown() +{ + container_->Remove(slipflow_); + DeleteChildren(container_); + if (container_ != nullptr) { + container_ = nullptr; + } + delete slipflow_; + slipflow_ = nullptr; + + label_ = nullptr; + slipUpNoticelabel_ = nullptr; + lastIndex_ = 0; + showBtn_ = nullptr; + isShowBtnGrp_ = false; + btnGrp_ = nullptr; + loadNum_ = 0; + + imgWidthAddBtn_ = nullptr; + imgWidthSubBtn_ = nullptr; + + imgWidth_ = 200; // 200: default value + imgPadding_ = 50; // 50: default value + mirrorOpa_ = 30; // 30: default value + rotateAngle_ = 70.0f; // 70: default value +} + +const UIView* UITestSlipflow::GetTestView() +{ + UITestSlipflowView(); + return container_; +} + +void UITestSlipflow::CreateLabelButton(UILabelButton** btn, const char* tile, int16_t x, int16_t y) +{ + UILabelButton* tempBtn = nullptr; + if (tempBtn == nullptr) { + tempBtn = new UILabelButton(); + } + tempBtn->SetPosition(x, y, BUTTON_WIDTH, BUTTON_HEIGHT); + tempBtn->SetText(tile); + tempBtn->SetOnClickListener(this); + btnGrp_->Add(tempBtn); + *btn = tempBtn; +} + +void UITestSlipflow::InitButtonGroup() +{ + if (showBtn_ == nullptr) { + showBtn_ = new UIButton(); + showBtn_->SetPosition(202, 10, BUTTON_WIDTH, BUTTON_HEIGHT); // 202: x position 10: y position + showBtn_->SetStyleForState(STYLE_BACKGROUND_OPA, 0, UIButton::ButtonState::RELEASED); + showBtn_->SetStyleForState(STYLE_BACKGROUND_OPA, 0, UIButton::ButtonState::PRESSED); + showBtn_->SetOnClickListener(this); + container_->Add(showBtn_); + } + if (btnGrp_ == nullptr) { + btnGrp_ = new UIViewGroup(); + btnGrp_->SetPosition(77, 40, BUTTON_GROUP_WIDTH, BUTTON_GROUP_HEIGHT); // 77: x position 40: y position + btnGrp_->SetStyle(STYLE_BACKGROUND_OPA, 0); + btnGrp_->SetVisible(false); + container_->Add(btnGrp_); + } + CreateLabelButton(&imgWidthAddBtn_, "wid+", 0, 0); + CreateLabelButton(&imgWidthSubBtn_, "wid-", 60, 0); // 60: x position +} + +void UITestSlipflow::UITestSlipflowView() +{ + if (container_ != nullptr) { + if (slipflow_ == nullptr) { + slipflow_ = new UISlipflowView(); + } + slipflow_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + slipflow_->SetIntercept(true); + slipflow_->SetThrowDrag(true); + slipflow_->SetPageSize(PAGE_WIDTH, PAGE_HEIGHT); + slipflow_->SetOnSlipflowListener(this); + UITestSlipflowViewInitFlow(); + + if (label_ == nullptr) { + label_ = new UILabel(); + } + label_->SetPosition(127, 50, 200, 50); // 127 50 200 50: label position + label_->SetTextColor(Color::White()); + label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + lastIndex_ = slipflow_->GetCurrentPage(); + label_->SetText(g_faceInfo[lastIndex_].name); + label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE); + if (slipUpNoticelabel_ == nullptr) { + slipUpNoticelabel_ = new UILabel(); + } + slipUpNoticelabel_->SetPosition(127, 400, 200, 50); // 127 400 200 50: label position + slipUpNoticelabel_->SetTextColor(Color::White()); + slipUpNoticelabel_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + slipUpNoticelabel_->SetText("继续上滑删除"); + slipUpNoticelabel_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30 : font size + slipUpNoticelabel_->SetVisible(false); + container_->Add(slipflow_); + container_->Add(label_); + container_->Add(slipUpNoticelabel_); + InitButtonGroup(); + } +} + +void UITestSlipflow::UITestSlipflowViewInitFlow() +{ + for (uint8_t i = 0; i < SLIPFLOW_MAX_PAGE_NUM; i++) { + UIImageView* image = new UIImageView(); + ImageInfo* src = ImageCacheManager::GetInstance().LoadSingleRes(std::string(g_faceInfo[i].path)); + image->SetViewId(g_faceInfo[i].name); + image->SetSrc(src); + image->Resize(PAGE_WIDTH, PAGE_HEIGHT); + image->SetResizeMode(UIImageView::ImageResizeMode::FILL); + image->SetAutoEnable(false); + UIViewGroup* group = new UIViewGroup(); + group->SetViewId(g_faceInfo[i].name); + group->SetPosition(0, 0, PAGE_WIDTH, Screen::GetInstance().GetHeight()); + group->SetStyle(STYLE_BACKGROUND_OPA, 0); + group->SetDragParentInstead(true); + UIImageView* backImage = new UIImageView(); + backImage->SetSrc(ImageCacheManager::GetInstance().LoadSingleRes(std::string(BACK_IMAGE_PATH))); + backImage->Resize(PAGE_WIDTH, PAGE_HEIGHT); + backImage->SetResizeMode(UIImageView::ImageResizeMode::FILL); + backImage->SetAutoEnable(false); + group->Add(backImage); + group->Add(image); + slipflow_->Add(group); + backImage->LayoutCenterOfParent(); + image->LayoutCenterOfParent(); + loadNum_++; + } +} + +bool UITestSlipflow::OnScroll(int16_t distance) +{ + if (slipflow_->GetChildrenNumber() == 0) { + label_->SetText(""); + return true; + } + int16_t contMidX = static_cast(Screen::GetInstance().GetWidth() / DIVISOR_TWO); + int16_t minOffset = contMidX; + uint8_t newCenterIndex = lastIndex_; + for (uint8_t i = 0; i < slipflow_->GetChildrenNumber(); i++) { + Rect rect = slipflow_->GetViewByIndex(i)->GetOrigRect(); + int16_t x = rect.GetLeft(); + int16_t x1 = rect.GetRight(); + int16_t xMid = static_cast(x + (x1 - x + 1) / DIVISOR_TWO); + int16_t distance = MATH_ABS(xMid - contMidX); + if (distance < minOffset) { + newCenterIndex = i; + minOffset = distance; + } + } + if (newCenterIndex != lastIndex_) { + lastIndex_ = newCenterIndex; + label_->SetText(slipflow_->GetViewByIndex(lastIndex_)->GetViewId()); + } + + Rect curViewRect = slipflow_->GetViewByIndex(lastIndex_)->GetOrigRect(); + int16_t centerMid = curViewRect.GetLeft() + curViewRect.GetWidth() / DIVISOR_TWO; + int16_t offset = MATH_ABS(contMidX - centerMid); + if (offset > curViewRect.GetWidth() / DIVISOR_TWO) { + label_->SetStyle(STYLE_TEXT_OPA, 0); + } else { + uint8_t alpha = (uint8_t)((1.0f - ((float)offset / (curViewRect.GetWidth() / DIVISOR_TWO))) * OPA_OPAQUE); + label_->SetStyle(STYLE_TEXT_OPA, alpha); + } + return true; +} + +void UITestSlipflow::OnScrollUpStart() +{ + label_->SetVisible(false); + slipUpNoticelabel_->SetVisible(true); +} + +void UITestSlipflow::OnScrollUpEnd() +{ + OnScroll(0); + label_->SetVisible(true); + slipUpNoticelabel_->SetVisible(false); +} + +void UITestSlipflow::OnRefreshPageOpaScale(UIView* view, int16_t xOffset, int16_t yOffset) +{ + UIView* image = static_cast(view)->GetChildrenHead()->GetNextSibling(); + if (xOffset < 0) { + image->SetOpaScale(OPA_OPAQUE); + } else if (xOffset > slipflow_->GetPageWidth()) { + image->SetOpaScale(0); + } else { + uint8_t alpha = (uint8_t)(OPA_OPAQUE * (1.0f - ((float)xOffset / slipflow_->GetPageWidth()))); + image->SetOpaScale(alpha); + } + if (yOffset > 0) { + if (yOffset > (slipflow_->GetPageHeight() / DIVISOR_TWO)) { + image->SetOpaScale(OPA_OPAQUE * 0.4f); + } else { + uint8_t alpha = (uint8_t)(OPA_OPAQUE * + (1.0f - 0.6f * ((float)yOffset / (slipflow_->GetPageHeight() / DIVISOR_TWO)))); + image->SetOpaScale(alpha); + } + } +} + +bool UITestSlipflow::OnRemove(UIView* view) +{ + if (view == nullptr) { + return false; + } + UIViewGroup* group = static_cast(view); + UIView* curView = group->GetChildrenHead(); + UIView* deleteView = nullptr; + while (curView != nullptr) { + deleteView = curView; + curView = curView->GetNextSibling(); + group->Remove(deleteView); + delete deleteView; + deleteView = nullptr; + } + delete group; + group = nullptr; + return true; +} + +bool UITestSlipflow::OnClick(UIView& view, const ClickEvent& event) +{ + if (&view == showBtn_) { + btnGrp_->SetVisible(!btnGrp_->IsVisible()); + } else if (&view == imgWidthAddBtn_) { + imgWidth_ += DEFAULT_STEP; + slipflow_->SetPageSize(imgWidth_, imgWidth_); + } else if (&view == imgWidthSubBtn_) { + imgWidth_ -= DEFAULT_STEP; + slipflow_->SetPageSize(imgWidth_, imgWidth_); + } + slipflow_->Invalidate(); + return true; +} +} // namespace OHOS diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.h b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.h new file mode 100644 index 000000000..17ee5adae --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: UITestSlip + * Author: + * Create: 2024-08 + */ + +#ifndef UI_TEST_SLIPFLOW_VIEW_H +#define UI_TEST_SLIPFLOW_VIEW_H + +#include "components/ui_slipflow_view.h" +#include "components/ui_scroll_view.h" +#include "components/ui_label_button.h" +#include "animator/animator.h" +#include "ui_test.h" + +namespace OHOS { +class UITestSlipflow : public UITest, + public UISlipflowView::OnSlipflowScrollListener, public UIView::OnClickListener { +public: + UITestSlipflow() {} + ~UITestSlipflow() override {} + void SetUp() override; + void TearDown() override; + const UIView* GetTestView() override; + /** + * @brief Test display UISlipflow + */ + void UITestSlipflowView(); + void UITestSlipflowViewInitFlow(); + + bool OnScroll(int16_t distance) override; + void OnScrollUpStart() override; + void OnScrollUpEnd() override; + void OnRefreshPageOpaScale(UIView* view, int16_t xOffset, int16_t yOffset) override; + + bool OnRemove(UIView* view) override; + + bool OnClick(UIView& view, const ClickEvent& event) override; +private: + void InitButtonGroup(); + void CreateLabelButton(UILabelButton** btn, const char* tile, int16_t x, int16_t y); + + UIScrollView* container_ = nullptr; + UISlipflowView* slipflow_ = nullptr; + UILabel* label_ = nullptr; + UILabel* slipUpNoticelabel_ = nullptr; + uint16_t lastIndex_ = 0; + UIButton* showBtn_ = nullptr; + bool isShowBtnGrp_ = false; + UIViewGroup* btnGrp_ = nullptr; + uint8_t loadNum_ = 0; + UILabelButton* addBtn_ = nullptr; + UILabelButton* removeBtn_ = nullptr; + UILabelButton* imgWidthAddBtn_ = nullptr; + UILabelButton* imgWidthSubBtn_ = nullptr; + UILabelButton* imgPaddingAddBtn_ = nullptr; + UILabelButton* imgPaddingSubBtn_ = nullptr; + UILabelButton* maxAngleAddBtn_ = nullptr; + UILabelButton* maxAngleSubBtn_ = nullptr; + UILabelButton* loopBtn_ = nullptr; + uint16_t imgWidth_ = 200; // 200: default value + uint16_t imgPadding_ = 50; // 50: default value + uint8_t mirrorOpa_ = 30; // 30: default value + float rotateAngle_ = 70.0f; // 70: default value +}; +} // namespace OHOS +#endif // UI_TEST_SLIPFLOW_VIEW_H diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/framework/src/test_case_list_adapter.cpp b/code/sdk/middleware/services/gui/uikit/sample/uitest/framework/src/test_case_list_adapter.cpp index ce6b1e7cd..156f248d3 100755 --- a/code/sdk/middleware/services/gui/uikit/sample/uitest/framework/src/test_case_list_adapter.cpp +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/framework/src/test_case_list_adapter.cpp @@ -81,14 +81,14 @@ public: tempView->SetViewId(view.GetViewId()); tempView->SetPosition(tempView->GetX(), tempView->GetY()); rootView->Add(tempView); - if (backBtn_ == nullptr) { - backBtn_ = new TransparentBackButton(); - backBtn_->SetPosition(0, (Screen::GetInstance().GetHeight() - BACK_BUTTON_SIZE) / 2, // 2, half size - BACK_BUTTON_SIZE, BACK_BUTTON_SIZE); - } - backBtn_->SetViewId(view.GetViewId()); - rootView->Add(backBtn_); } + if (backBtn_ == nullptr) { + backBtn_ = new TransparentBackButton(); + backBtn_->SetPosition(0, (Screen::GetInstance().GetHeight() - BACK_BUTTON_SIZE) / 2, // 2, half size + BACK_BUTTON_SIZE, BACK_BUTTON_SIZE); + } + backBtn_->SetViewId(view.GetViewId()); + rootView->Add(backBtn_); rootView->Invalidate(); return true; } diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/input_device_manager.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/input_device_manager.cpp index 3e1c2cb38..a1d44f4cc 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/input_device_manager.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/input_device_manager.cpp @@ -17,6 +17,9 @@ #include "common/task_manager.h" #include "gfx_utils/graphic_log.h" #include "dock/pointer_input_device.h" +#include "dock/rotate_input_device.h" +#include "hals/lite_input_distributer.h" +#include "gfx_utils/input_event_info.h" namespace OHOS { InputDeviceManager* InputDeviceManager::GetInstance() @@ -94,4 +97,40 @@ void InputDeviceManager::ClearPressableViews() node = node->next_; } } + +void InputDeviceManager::ClearRotateState() +{ + ListNode* node = deviceList_.Begin(); + while (node != deviceList_.End()) { + RotateInputDevice* device = dynamic_cast(node->data_); + if (device != nullptr) { + device->ResetRotateState(); + } + node = node->next_; + } +} + +void InputDeviceManager::ClearInputDeviceState(InputDeviceManager::InputDeviceType type) +{ + switch (type) { + case InputDeviceManager::InputDeviceType::ALL: + InputDeviceManager::GetInstance()->ClearPressableViews(); + InputDeviceManager::GetInstance()->ClearRotateState(); + LiteInputDistributer::GetInstance()->ClearEvent(InputDevType::INDEV_TYPE_TOUCH); + LiteInputDistributer::GetInstance()->ClearEvent(InputDevType::INDEV_TYPE_KEY); + break; + case InputDeviceManager::InputDeviceType::POINT: + LiteInputDistributer::GetInstance()->ClearEvent(InputDevType::INDEV_TYPE_TOUCH); + InputDeviceManager::GetInstance()->ClearPressableViews(); + break; + case InputDeviceManager::InputDeviceType::ROTATE: + InputDeviceManager::GetInstance()->ClearRotateState(); + break; + case InputDeviceManager::InputDeviceType::KEY: + LiteInputDistributer::GetInstance()->ClearEvent(InputDevType::INDEV_TYPE_KEY); + default: + GRAPHIC_LOGE("Cannot clear state of the input device: %d!", type); + break; + } +} } // namespace OHOS \ No newline at end of file diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/screen.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/screen.cpp index 02e33f92a..9ad0ce4aa 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/screen.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/screen.cpp @@ -106,9 +106,6 @@ bool Screen::GetScreenBitmapByRect(ImageInfo& info, const Rect* rect) BlendOption opt; opt.opacity = OPA_OPAQUE; opt.mode = BLEND_SRC; - if (LiteMGfxEngine::GetInstance()->IsAsyncModeEnabled()) { - LiteMGfxEngine::GetInstance()->Flush(Rect(0, 0, 0, 0)); - } BaseGfxEngine::GetInstance()->Blit(dstInfo, {0, 0}, srcInfo, dstRect, opt); #if ENABLE_VGU_ENGINE LiteMGfxEngine::GetInstance()->SyncHwDraw(); diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_abstract_scroll.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_abstract_scroll.cpp index 7f0dc554c..00be014d4 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_abstract_scroll.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_abstract_scroll.cpp @@ -362,7 +362,7 @@ bool UIAbstractScroll::OnRotateEvent(const RotateEvent& event) bool UIAbstractScroll::OnRotateEndEvent(const RotateEvent& event) { - if (memset_s(lastDelta_, MAX_DELTA_SIZE, 0, MAX_DELTA_SIZE) != EOK) { + if (memset_s(lastDelta_, sizeof(lastDelta_), 0, sizeof(lastDelta_)) != EOK) { return UIView::OnRotateEndEvent(event); } diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_canvas.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_canvas.cpp index ef35024a7..29ec415d7 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_canvas.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_canvas.cpp @@ -21,6 +21,61 @@ #include "gfx_utils/graphic_log.h" namespace OHOS { +void Paint::Scale(float scaleX, float scaleY) +{ + this->scaleRadioX_ *= scaleX; + this->scaleRadioY_ *= scaleX; + if (rotateAngle_ > 0.0f || rotateAngle_ < 0) { + transfrom_.Rotate(-rotateAngle_ * UI_PI / BOXER); + transfrom_.Scale(scaleX, scaleY); + transfrom_.Rotate(rotateAngle_ * UI_PI / BOXER); + } else { + transfrom_.Scale(scaleX, scaleY); + } +} + +void Paint::Rotate(float angle) +{ + transfrom_.Rotate(angle * UI_PI / BOXER); + rotateAngle_ += angle; +} + +void Paint::Rotate(float angle, int16_t x, int16_t y) +{ + transfrom_.Translate(-x, -y); + transfrom_.Rotate(angle * UI_PI / BOXER); + rotateAngle_ += angle; + transfrom_.Translate(x, y); +} + +void Paint::Translate(int16_t x, int16_t y) +{ + transfrom_.Translate(x, y); + this->translationX_ += x; + this->translationY_ += y; +} + +void Paint::SetTransform(float scaleX, float shearX, float shearY, + float scaleY, int16_t transLateX, int16_t transLateY) +{ + transfrom_.Reset(); + rotateAngle_ = 0; + Transform(scaleX, shearX, shearY, scaleY, transLateX, transLateY); +} + +void Paint::Transform(float scaleX, float shearX, float shearY, float scaleY, int16_t transLateX, int16_t transLateY) +{ + this->translationX_ += transLateX; + this->translationY_ += transLateY; + transLateX += transfrom_.GetData()[2]; // 2: index + transLateY += transfrom_.GetData()[5]; // 5: index + transfrom_.Translate(-transfrom_.GetData()[2], -transfrom_.GetData()[5]); // 2 5: index + Scale(scaleX, scaleY); + transfrom_.Translate(transLateX, transLateY); + transfrom_.SetData(1, transfrom_.GetData()[1] + shearX); + transfrom_.SetData(3, transfrom_.GetData()[3] + shearY); // 3: index +} + UICanvas::UICanvasPath::~UICanvasPath() { points_.Clear(); @@ -395,33 +450,63 @@ void UICanvas::DrawImage(const Point& startPoint, const char* image, const Paint return; } - ImageParam* imageParam = new ImageParam; - if (imageParam == nullptr) { - GRAPHIC_LOGE("new ImageParam fail"); - return; + if (static_cast(paint.GetStyle()) & Paint::PaintStyle::FILL_STYLE) { + UIImageView* imageView = new UIImageView(); + if (imageView == nullptr) { + GRAPHIC_LOGE("new UIImageView fail"); + return; + } + imageView->SetPosition(startPoint.x, startPoint.y); + imageView->SetSrc(image); + + DrawCmd cmd; + cmd.paint = paint; + cmd.param = imageView; + cmd.DeleteParam = DeleteImageView; + cmd.DrawGraphics = DoDrawImage; + drawCmdList_.PushBack(cmd); + + Invalidate(); + SetStartPosition(startPoint); } - imageParam->image = new Image(); - if (imageParam->image == nullptr) { - delete imageParam; - imageParam = nullptr; +} + +void UICanvas::DrawImage(const Point& startPoint, const char* image, + const Paint& paint, int16_t width, int16_t height) +{ + if (image == nullptr) { return; } + if (static_cast(paint.GetStyle()) & Paint::PaintStyle::FILL_STYLE) { + UIImageView* imageView = new UIImageView(); + if (imageView == nullptr) { + GRAPHIC_LOGE("new UIImageView fail"); + return; + } + imageView->SetPosition(startPoint.x, startPoint.y); + imageView->SetSrc(image); + float scaleX = 1.0; + float scaleY = 1.0; + if (width > 0 && imageView->GetWidth() > 0) { + scaleX = (float)width / (float)imageView->GetWidth(); + } + if (height > 0 && imageView->GetHeight() > 0) { + scaleY = (float)height / (float)imageView->GetHeight(); + } + DrawCmd cmd; + cmd.paint = paint; + cmd.paint.Scale(scaleX, scaleY); + cmd.param = imageView; + cmd.DeleteParam = DeleteImageView; + cmd.DrawGraphics = DoDrawImage; + drawCmdList_.PushBack(cmd); - imageParam->image->SetSrc(image); - ImageHeader header = {0}; - imageParam->image->GetHeader(header); - imageParam->start = startPoint; - imageParam->height = header.height; - imageParam->width = header.width; - - DrawCmd cmd; - cmd.paint = paint; - cmd.param = imageParam; - cmd.DeleteParam = DeleteImageParam; - cmd.DrawGraphics = DoDrawImage; - drawCmdList_.PushBack(cmd); + Invalidate(); + SetStartPosition(startPoint); + } Invalidate(); + SetStartPosition(startPoint); } void UICanvas::DrawPath(const Paint& paint) @@ -674,21 +759,23 @@ void UICanvas::DoDrawImage(BufferInfo& gfxDstBuffer, if (param == nullptr) { return; } - ImageParam* imageParam = static_cast(param); - - if (imageParam->image == nullptr) { - return; - } - + UIImageView* imageView = static_cast(param); + Point startPos = {imageView->GetX(), imageView->GetY()}; Point start; - GetAbsolutePosition(imageParam->start, rect, style, start); - - Rect cordsTmp; - cordsTmp.SetPosition(start.x, start.y); - cordsTmp.SetHeight(imageParam->height); - cordsTmp.SetWidth(imageParam->width); - DrawImage::DrawCommon(gfxDstBuffer, cordsTmp, invalidatedArea, - imageParam->image->GetPath(), style, paint.GetOpacity()); + GetAbsolutePosition({startPos.x, startPos.y}, rect, style, start); + imageView->SetPosition(start.x, start.y); + if (!paint.GetTransAffine().IsIdentity()) { + float angle = paint.GetRotateAngle(); + imageView->Rotate(MATH_ROUND(angle), Vector2(0, 0)); + imageView->Translate(Vector3(paint.GetTranslateX(), paint.GetTranslateY(), 1)); + Vector2 scale(static_cast(paint.GetScaleX()), static_cast(paint.GetScaleY())); + imageView->Scale(scale, Vector2(0, 0)); + TransAffine affine = paint.GetTransAffine(); + imageView->Shear(Vector2(affine.GetData()[1], 0), Vector2(affine.GetData()[3], 0), + Vector2(0, 0)); + } + imageView->OnDraw(gfxDstBuffer, invalidatedArea); + imageView->SetPosition(startPos.x, startPos.y); } void UICanvas::DoDrawLabel(BufferInfo& gfxDstBuffer, diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_label.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_label.cpp index 0fa53ac70..c3db5d484 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_label.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_label.cpp @@ -338,7 +338,6 @@ void UILabel::SetTextTransformMap(TransformMap& transMap) { InitLabelText(); labelText_->SetTransformMap(transMap); - SetTransformMap(transMap); } void UILabel::RefreshLabel() diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_list.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_list.cpp index 242f67e9a..86db75298 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_list.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_list.cpp @@ -380,10 +380,13 @@ bool UIList::DragYInner(int16_t distance) } distance = CalculateElasticDragLen(reboundSize, offset, distance); } - if ((childrenTail_->GetRelativeRect().GetBottom() + distance) < + if (childrenTail_->GetRelativeRect().GetBottom() < (listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM))) { - distance = listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM) - - childrenTail_->GetRelativeRect().GetBottom(); + distance = 0; + } else if ((childrenTail_->GetRelativeRect().GetBottom() + distance) < + (listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM))) { + distance = listHeight - scrollBlankSize_ - reboundSize - childrenTail_->GetStyle(STYLE_MARGIN_BOTTOM) + - childrenTail_->GetRelativeRect().GetBottom(); } } } diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_qrcode.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_qrcode.cpp index e3b110b8a..5cc83f374 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_qrcode.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_qrcode.cpp @@ -154,10 +154,6 @@ void UIQrcode::SetQrcodeVal(const uint8_t* val, uint32_t length) void UIQrcode::FillImgBackground(ImageInfo& info) { - if (LiteMGfxEngine::GetInstance()->IsAsyncModeEnabled()) { - LiteMGfxEngine::GetInstance()->Flush(Rect(0, 0, 0, 0)); - } - BufferInfo gfxDstBuffer; gfxDstBuffer.virAddr = static_cast(const_cast(info.data)); gfxDstBuffer.phyAddr = gfxDstBuffer.virAddr; diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_swipe_view.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_swipe_view.cpp index 35b3350ca..47c85fc66 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_swipe_view.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_swipe_view.cpp @@ -254,6 +254,10 @@ bool UISwipeView::OnRotateStartEvent(const RotateEvent& event) bool UISwipeView::OnRotateEndEvent(const RotateEvent& event) { + if (memset_s(lastDelta_, sizeof(lastDelta_), 0, sizeof(lastDelta_)) != EOK) { + return UIView::OnRotateEndEvent(event); + } + uint8_t dir; if (direction_ == HORIZONTAL) { dir = (lastRotateLen_ >= 0) ? DragEvent::DIRECTION_LEFT_TO_RIGHT : DragEvent::DIRECTION_RIGHT_TO_LEFT; diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_view.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_view.cpp index 6576e95f1..ec59ffcc8 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_view.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_view.cpp @@ -1116,10 +1116,6 @@ bool UIView::GetBitmap(ImageInfo& bitmap) uint16_t bufferWidth = static_cast(mask.GetWidth()); uint16_t bufferHeight = static_cast(mask.GetHeight()); - if (LiteMGfxEngine::GetInstance()->IsAsyncModeEnabled()) { - LiteMGfxEngine::GetInstance()->Flush(Rect(0, 0, 0, 0)); - } - #ifdef _WIN32 bitmap.header.colorMode = ARGB8888; #else diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/dock/focus_manager.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/dock/focus_manager.cpp index 72b7944b8..ea660502d 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/dock/focus_manager.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/dock/focus_manager.cpp @@ -18,6 +18,7 @@ #include "components/root_view.h" #include "gfx_utils/graphic_math.h" #include "common/input_method_manager.h" +#include "common/input_device_manager.h" namespace OHOS { FocusManager* FocusManager::GetInstance() @@ -50,6 +51,7 @@ bool FocusManager::ClearFocus() lastFocusView_ = focusView_; focusView_->Blur(); focusView_ = nullptr; + InputDeviceManager::GetInstance()->ClearInputDeviceState(InputDeviceManager::InputDeviceType::ROTATE); return true; } diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/innerkits/common/input_device_manager.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/innerkits/common/input_device_manager.h index bd89a1919..43d2672dd 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/innerkits/common/input_device_manager.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/innerkits/common/input_device_manager.h @@ -26,6 +26,17 @@ namespace OHOS { */ class InputDeviceManager : public Task { public: +enum class InputDeviceType { + /** All registered input device*/ + ALL = 0, + /** Point input device */ + POINT = 1, + /** Key input device */ + KEY = 2, + /** Rotate input device */ + ROTATE = 3, +}; + /** * @brief Get instance of InputDeviceManager. * @returns Instance of InputDeviceManager @@ -53,6 +64,11 @@ public: */ void Clear(); + /** + * Clear state of input devices. + */ + void ClearInputDeviceState(InputDeviceManager::InputDeviceType type = InputDeviceManager::InputDeviceType::ALL); + /** * Clear pressable views recorded in the pointer input device */ @@ -74,6 +90,11 @@ private: InputDeviceManager(InputDeviceManager&&) = delete; InputDeviceManager& operator=(InputDeviceManager&&) = delete; + /** + * Clear rotate state. + */ + void ClearRotateState(); + List deviceList_; }; } // namespace OHOS diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/innerkits/dock/rotate_input_device.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/innerkits/dock/rotate_input_device.h index b9dddd16a..07cc87c0a 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/innerkits/dock/rotate_input_device.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/innerkits/dock/rotate_input_device.h @@ -34,6 +34,11 @@ public: threshold_ = threshold; } + void ResetRotateState() + { + rotateStart_ = false; + } + protected: void DispatchEvent(const DeviceData& data) override; bool rotateStart_; diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h index 6c95fb16d..57e7a5c1d 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h @@ -336,6 +336,16 @@ public: void OnPostDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override; + /** + * @brief Get state of scroll animator. + * @since 1.0 + * @version 1.0 + */ + uint8_t GetScrollState() + { + return scrollAnimator_.GetState(); + } + static constexpr uint8_t HORIZONTAL = 0; static constexpr uint8_t VERTICAL = 1; diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_canvas.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_canvas.h index a2dece289..6f35a8dd2 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_canvas.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_canvas.h @@ -38,7 +38,9 @@ #include "common/image.h" #include "components/ui_label.h" +#include "components/ui_image_view.h" #include "gfx_utils/list.h" +#include "gfx_utils/trans_affine.h" namespace OHOS { /** @@ -57,7 +59,9 @@ public: */ Paint() : style_(PaintStyle::STROKE_FILL_STYLE), fillColor_(Color::Black()), - strokeColor_(Color::White()), opacity_(OPA_OPAQUE), strokeWidth_(2) {} + strokeColor_(Color::White()), opacity_(OPA_OPAQUE), strokeWidth_(2), + rotateAngle_(0), scaleRadioX_(1.0f), scaleRadioY_(1.0f), translationX_(0), + translationY_(0) {} /** * @brief A destructor used to delete the Paint instance. @@ -214,12 +218,133 @@ public: return opacity_; } + /* Zooms the current drawing to a larger or smaller size */ + void Scale(float scaleX, float scaleY); + + /** + * @brief get the x coordinate scale value + * @since 1.0 + * @version 1.0 + */ + float GetScaleX() const + { + return this->scaleRadioX_; + } + + /** + * @brief get the y coordinate scale value + * @since 1.0 + * @version 1.0 + */ + float GetScaleY() const + { + return this->scaleRadioY_; + } + + /** + * @brief Rotate current drawing + * @param angle rotate angle value. + * @since 1.0 + * @version 1.0 + */ + void Rotate(float angle); + + /** + * @brief Rotate current drawing + * @param angle rotate angle value. + * @param x translate x coordinate. + * @param y translate y coordinate. + * @since 1.0 + * @version 1.0 + */ + void Rotate(float angle, int16_t x, int16_t y); + + /** + * @brief Remap the (x, y) position on the canvas + * @param x translate x coordinate. + * @param y translate y coordinate. + * @since 1.0 + * @version 1.0 + */ + void Translate(int16_t x, int16_t y); + + /** + * @brief Gets the x position on the remapping canvas + * @since 1.0 + * @version 1.0 + */ + int16_t GetTranslateX() const + { + return this->translationX_; + } + + /** + * @brief Gets the Y position on the remapping canvas + * @since 1.0 + * @version 1.0 + */ + int16_t GetTranslateY() const + { + return this->translationY_; + } + + /** + * @brief Resets the current conversion to the identity matrix. Then run transform () + * @param scaleX scale x value. + * @param shearX shear x value. + * @param shearY shear y value. + * @param scaleY scale y value + * @param transLateX translate x coordinate. + * @param transLateY translate y coordinate. + * @since 1.0 + * @version 1.0 + */ + void SetTransform(float scaleX, float shearX, float shearY, float scaleY, int16_t transLateX, int16_t transLateY); + + /** + * @brief Resets the current conversion to the identity matrix. Then run transform () + * @param scaleX scale x value. + * @param shearX shear x value. + * @param shearY shear y value. + * @param scaleY scale y value + * @param transLateX translate x coordinate. + * @param transLateY translate y coordinate. + * @since 1.0 + * @version 1.0 + */ + void Transform(float scaleX, float shearX, float shearY, float scaleY, int16_t transLateX, int16_t transLateY); + + /** + * @brief Gets the Trans Affine + * @since 1.0 + * @version 1.0 + */ + TransAffine GetTransAffine() const + { + return transfrom_; + } + + /** + * @brief Gets the Rotate Angle + * @since 1.0 + * @version 1.0 + */ + float GetRotateAngle() const + { + return rotateAngle_; + } private: PaintStyle style_; ColorType fillColor_; ColorType strokeColor_; uint8_t opacity_; uint16_t strokeWidth_; + float rotateAngle_; // Rotation angle in degrees + float scaleRadioX_; + float scaleRadioY_; + int32_t translationX_; + int32_t translationY_; + TransAffine transfrom_; // matrix. }; /** @@ -420,6 +545,7 @@ public: */ void DrawImage(const Point& startPoint, const char* image, const Paint& paint); + void DrawImage(const Point& startPoint, const char* image, const Paint& paint, int16_t width, int16_t height); /** * @brief Defines the font style. */ @@ -631,13 +757,10 @@ protected: delete arcParam; } - static void DeleteImageParam(void* param) + static void DeleteImageView(void* param) { - ImageParam* imageParam = static_cast(param); - if (imageParam->image != nullptr) { - delete imageParam->image; - } - delete imageParam; + UIImageView* imageView = static_cast(param); + delete imageView; } static void DeleteLabel(void* param) diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label.h index 71d3d1318..b3c67ebc5 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label.h @@ -78,14 +78,14 @@ public: LINE_BREAK_MARQUEE, /** * The width and height of this label remain unchanged. - * If this text is too long, it will be scrolled back and forth to display. + * If this text is too long, it will be cropped to display. */ - LINE_BREAK_OSCILLATION, + LINE_BREAK_CLIP, /** * The width and height of this label remain unchanged. - * If this text is too long, it will be cropped to display. + * If this text is too long, it will be scrolled back and forth to display. */ - LINE_BREAK_CLIP, + LINE_BREAK_OSCILLATION, /** * Maximum value of the line break mode, which is used for validity check. */ diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_view.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_view.h index 47df1bd4f..e2b977876 100755 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_view.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_view.h @@ -114,6 +114,7 @@ enum UIViewType : uint8_t { UI_MENU_ITEM, UI_CARD_PAGE, UI_COVER_FLOW, + UI_SLIP_FLOW, UI_CROSS_VIEW, UI_BARCODE, UI_MAP_VIEW, @@ -1622,7 +1623,7 @@ public: * @since 5.0 * @version 3.0 */ - void Scale(const Vector2& scale, const Vector2& pivot); + virtual void Scale(const Vector2& scale, const Vector2& pivot); /** * @brief Scales the view in 3d. @@ -1632,7 +1633,7 @@ public: * @since 5.0 * @version 3.0 */ - void Scale(const Vector3& scale, const Vector3& pivot); + virtual void Scale(const Vector3& scale, const Vector3& pivot); /** * @brief Shears the view in 3d. diff --git a/code/sdk/middleware/services/gui/uikit/utils/frameworks/trans_affine.cpp b/code/sdk/middleware/services/gui/uikit/utils/frameworks/trans_affine.cpp new file mode 100644 index 000000000..808349747 --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/utils/frameworks/trans_affine.cpp @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "gfx_utils/trans_affine.h" +#if ENABLE_CMATH +#include +#endif + +namespace OHOS { +const TransAffine& TransAffine::RectToParl(float x1, float y1, + float x2, float y2, + const float* parl) +{ + data_[0] = x2 - x1; + data_[3] = 0; // 3 : index + data_[1] = x2 - x1; + data_[4] = y2 - y1; // 4 : index + data_[2] = x1; // 2 : index + data_[5] = y1; // 5 : index + Invert(); + Multiply(TransAffine(parl[2] - parl[0], parl[3] - parl[1], // 2 3 : index + parl[4] - parl[0], parl[5] - parl[1], // 4 5 : index + parl[0], parl[1])); + return *this; +} + +const TransAffine& TransAffine::Multiply(const TransAffine& metrix) +{ + float t0 = data_[0] * metrix.data_[0] + data_[3] * metrix.data_[1]; // 3 : index + float t2 = data_[1] * metrix.data_[0] + data_[4] * metrix.data_[1]; // 4 : index + float t4 = data_[2] * metrix.data_[0] + data_[5] * metrix.data_[1] + metrix.data_[2]; // 2 5 : index + data_[3] = data_[0] * metrix.data_[3] + data_[3] * metrix.data_[4]; // 3 4 : index + data_[4] = data_[1] * metrix.data_[3] + data_[4] * metrix.data_[4]; // 3 4 5: index + data_[5] = data_[2] * metrix.data_[3] + data_[5] * metrix.data_[4] + metrix.data_[5]; // 2 3 4 5 : index + data_[0] = t0; + data_[1] = t2; + data_[2] = t4; // 2 : index + return *this; +} + +const TransAffine& TransAffine::Invert() +{ + float d = DeterminantReciprocal(); + + float t0 = data_[4] * d; // 4 : index + data_[4] = data_[0] * d; // 4 : index + data_[3] = -data_[3] * d; // 3 : index + data_[1] = -data_[1] * d; + + float t4 = -data_[2] * t0 - data_[5] * data_[1]; // 2 5 : index + data_[5] = -data_[2] * data_[3] - data_[5] * data_[4]; // 2 3 4 5 : index + + data_[0] = t0; + data_[2] = t4; // 2 : index + return *this; +} + +const TransAffine& TransAffine::Reset() +{ + data_[1] = 0; + data_[2] = 0; // 2 : index + data_[3] = 0; // 3 : index + data_[5] = 0; // 5 : index + data_[6] = 0; // 6 : index + data_[7] = 0; // 7 : index + data_[0] = 1; + data_[4] = 1; // 4 : index + data_[8] = 1; // 8 : index + return *this; +} + +bool TransAffine::IsIdentity() const +{ + return MATH_FLT_EQUAL(data_[0], 1.0f) && + MATH_FLT_EQUAL(data_[3], 0.0f) && // 3 : index + MATH_FLT_EQUAL(data_[1], 0.0f) && + MATH_FLT_EQUAL(data_[4], 1.0f) && // 4 : index + MATH_FLT_EQUAL(data_[2], 0.0f) && // 2 : index + MATH_FLT_EQUAL(data_[5], 0.0f); // 5 : index +} + +bool TransAffine::IsValid(float epsilon) const +{ + return (MATH_ABS(data_[0]) > epsilon) && (MATH_ABS(data_[4]) > epsilon); // 4 : index +} + +TransAffine TransAffine::TransAffineRotation(float angle) +{ +#if ENABLE_CMATH + return TransAffine(std::cos(angle), std::sin(angle), -std::sin(angle), std::cos(angle), 0.0f, 0.0f); +#else + return TransAffine(Sin(QUARTER_IN_DEGREE - angle), Sin(angle), -Sin(angle), Sin(QUARTER_IN_DEGREE - angle), + 0.0f, 0.0f); +#endif +} + +const TransAffine& TransAffine::Rotate(float angle) +{ +#if ENABLE_CMATH + float scaleXTemp = data_[0] * std::cos(angle) - data_[3] * std::sin(angle); // 3 : index + float shearXTemp = data_[1] * std::cos(angle) - data_[4] * std::sin(angle); // 4 : index + float translateXTemp = data_[2] * std::cos(angle) - data_[5] * std::sin(angle); // 5 : index + data_[3] = data_[0] * std::sin(angle) + data_[3] * std::cos(angle); // 3 : index + data_[4] = data_[1] * std::sin(angle) + data_[4] * std::cos(angle); // 4 : index + data_[5] = data_[2] * std::sin(angle) + data_[5] * std::cos(angle); // 5 : index +#else + float scaleXTemp = data_[0] * Sin(QUARTER_IN_DEGREE - angle) - data_[3] * Sin(angle); // 3 : index + float shearXTemp = data_[1] * Sin(QUARTER_IN_DEGREE - angle) - data_[4] * Sin(angle); // 4 : index + float translateXTemp = data_[2] * Sin(QUARTER_IN_DEGREE - angle) - data_[5] * Sin(angle); // 2 5 : index + data_[3] = data_[0] * Sin(angle) + data_[3] * Sin(QUARTER_IN_DEGREE - angle); // 3 : index + data_[4] = data_[1] * Sin(angle) + data_[4] * Sin(QUARTER_IN_DEGREE - angle); // 4 : index + data_[5] = data_[2] * Sin(angle) + data_[5] * Sin(QUARTER_IN_DEGREE - angle); // 2 5 : index +#endif + data_[0] = scaleXTemp; + data_[1] = shearXTemp; + data_[2] = translateXTemp; // 2 : index + return *this; +} +} // namespace OHOS diff --git a/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/graphic_math.h b/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/graphic_math.h index 748c81d8b..e0a4e3767 100755 --- a/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/graphic_math.h +++ b/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/graphic_math.h @@ -75,13 +75,15 @@ static constexpr uint16_t THREE_QUARTER_IN_DEGREE = 270; /** A full rotation: 360 degrees */ static constexpr uint16_t CIRCLE_IN_DEGREE = 360; /** Pi value */ -static constexpr double UI_PI = 3.14159265358979; +static constexpr double UI_PI = 3.14159265358979f; static constexpr float ATAN2_P3 = -0.3258775; static constexpr float ATAN2_P5 = 0.1556117; static constexpr float ATAN2_P7 = -0.0443360; static constexpr float RADIAN_TO_ANGLE = 57.295779513; static constexpr float UI_FLT_EPSILON = 1E-5; static constexpr int16_t ORDER_MATRIX_4 = 4; +static constexpr float VERTEX_DIST_EPSILON = 1e-14; +static constexpr float BOXER = 180.0f; float Sin(float angle); float Acos(float value); diff --git a/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/image_info.h b/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/image_info.h index 681721b8c..536af1f9a 100755 --- a/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/image_info.h +++ b/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/image_info.h @@ -38,7 +38,7 @@ #include #include "graphic_config.h" namespace OHOS { -#define MAX_IMG_PATH_LEN 64 +#define MAX_IMG_PATH_LEN 128 /** * @brief Defines image head node information. */ diff --git a/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/trans_affine.h b/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/trans_affine.h new file mode 100644 index 000000000..596043dea --- /dev/null +++ b/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/trans_affine.h @@ -0,0 +1,272 @@ +/* + * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef GRAPHIC_LTE_TRANS_AFFINE_H +#define GRAPHIC_LTE_TRANS_AFFINE_H + +#include "gfx_utils/graphic_math.h" + +namespace OHOS { +const float affineEpsilon = 1e-14; +const uint16_t parlIndexSize = 6; +/** + * @brief Map source transformation + * @since 1.0 + * @version 1.0 + */ +class TransAffine : public Matrix3 { +public: + /** + * @brief Initialize to identity matrix + * @since 1.0 + * @version 1.0 + */ + TransAffine() : Matrix3() {} + /** + * @brief Custom matrix + * @since 1.0 + * @version 1.0 + */ + TransAffine(float v0, float v1, float v2, float v3, float v4, float v5) + : Matrix3(v0, v2, v4, v1, v3, v5, 0, 0, 1) {} + /** + * @brief Converts a rectangle to a parallelogram + * @since 1.0 + * @version 1.0 + */ + TransAffine(float x1, float y1, float x2, float y2, const float* parl) + { + RectToParl(x1, y1, x2, y2, parl); + } + + void SetData(int32_t index, float value) + { + data_[index] = value; + } + /** + * @brief Convert the original parallelogram to the target parallelogram + * @param x1 x-axis coordinate of the upper left corner of the rectangle + * @param y1 y-axis coordinate of the upper left corner of the rectangle + * @param x2 x-axis coordinates of the lower right corner of the rectangle + * @param y2 y-axis coordinates of the lower right corner of the rectangle + * @param parl Target parallelogram + * @since 1.0 + * @version 1.0 + */ + const TransAffine& RectToParl(float x1, float y1, + float x2, float y2, + const float* parl); + + /** + * @brief reset TransAffine + * @since 1.0 + * @version 1.0 + */ + const TransAffine& Reset(); + + /** + * @brief Element offset + * @param deltaX x-axis offset + * @param deltaY y-axis offset + * @since 1.0 + * @version 1.0 + */ + const TransAffine& Translate(float x, float y); + /** + * @brief Element rotation + * @param angle Rotate angle + * @since 1.0 + * @version 1.0 + */ + const TransAffine& Rotate(float angle); + /** + * @brief Element Scale + * @param scale Overall amplification factor + * @since 1.0 + * @version 1.0 + */ + const TransAffine& Scale(float scale); + /** + * @brief Element Scale + * @param x x-axis magnification factor + * @param y y-axis magnification factor + * @since 1.0 + * @version 1.0 + */ + const TransAffine& Scale(float x, float y); + + /** + * @brief Transformation matrix multiplication + * @param metrix + * @since 1.0 + * @version 1.0 + */ + const TransAffine& Multiply(const TransAffine& metrix); + + /** + * @brief Matrix flip + * @since 1.0 + * @version 1.0 + */ + const TransAffine& Invert(); + + const TransAffine& operator*=(const TransAffine& metrix) + { + return Multiply(metrix); + } + + /** + * @brief Convert x, y + * @param x x-coordinate + * @param y y-coordinate + * @since 1.0 + * @version 1.0 + */ + void Transform(float* x, float* y) const; + + /** + * @brief inverse transformation + * @param x x-coordinate + * @param y y-coordinate + * @since 1.0 + * @version 1.0 + */ + void InverseTransform(float* x, float* y) const; + + /** + * @brief Computes the reciprocal of a determinant + * @since 1.0 + * @version 1.0 + */ + float DeterminantReciprocal() const + { + float reciprocal = data_[0] * data_[4] - data_[3] * data_[1]; + if (reciprocal == 0) { + return VERTEX_DIST_EPSILON; + } + return 1.0f / reciprocal; + } + + /** + * @brief Check the matrix for degradation + * @since 1.0 + * @version 1.0 + */ + bool IsValid(float epsilon = affineEpsilon) const; + + /** + * @brief Check whether it is an identity matrix + * @since 1.0 + * @version 1.0 + */ + bool IsIdentity() const; + + /** + * @brief zoom + * @param x x-coordinate + * @param y y-coordinate + * @since 1.0 + * @version 1.0 + */ + void ScalingAbs(float* x, float* y) const; + + /** + * @brief Set rotation matrix + * @since 1.0 + * @version 1.0 + */ + static TransAffine TransAffineRotation(float angle); + + /** + * @brief Set scaling matrix + * @since 1.0 + * @version 1.0 + */ + static TransAffine TransAffineScaling(float x, float y) + { + return TransAffine(x, 0.0f, 0.0f, y, 0.0f, 0.0f); + } + + /** + * @brief Set scaling matrix + * @since 1.0 + * @version 1.0 + */ + static TransAffine TransAffineScaling(float scale) + { + return TransAffine(scale, 0.0f, 0.0f, scale, 0.0f, 0.0f); + } + /** + * @brief Set translation matrix + * @since 1.0 + * @version 1.0 + */ + static TransAffine TransAffineTranslation(float x, float y) + { + return TransAffine(1.0f, 0.0f, 0.0f, 1.0f, x, y); + } +}; + +inline void TransAffine::Transform(float* x, float* y) const +{ + float tmp = *x; + *x = tmp * data_[0] + *y * data_[1] + data_[2]; + *y = tmp * data_[3] + *y * data_[4] + data_[5]; +} + +inline void TransAffine::InverseTransform(float* x, float* y) const +{ + float reciprocal = DeterminantReciprocal(); + float a = (*x - data_[2]) * reciprocal; + float b = (*y - data_[5]) * reciprocal; + *x = a * data_[4] - b * data_[1]; + *y = b * data_[0] - a * data_[3]; +} + +inline const TransAffine& TransAffine::Translate(float deltaX, float deltaY) +{ + data_[2] += deltaX; + data_[5] += deltaY; + return *this; +} + +inline const TransAffine& TransAffine::Scale(float scaleX, float scaleY) +{ + data_[0] *= scaleX; + data_[1] *= scaleX; + data_[2] *= scaleX; + data_[3] *= scaleY; + data_[4] *= scaleY; + data_[5] *= scaleY; + return *this; +} + +inline const TransAffine& TransAffine::Scale(float scale) +{ + data_[0] *= scale; + data_[1] *= scale; + data_[2] *= scale; + data_[3] *= scale; + data_[4] *= scale; + data_[5] *= scale; + return *this; +} + +inline void TransAffine::ScalingAbs(float* x, float* y) const +{ + *x = Sqrt(data_[0] * data_[0] + data_[1] * data_[1]); + *y = Sqrt(data_[3] * data_[3] + data_[4] * data_[4]); +} +} // namespace OHOS +#endif diff --git a/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player_lite/js/builtin/src/audio_player.cpp b/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player_lite/js/builtin/src/audio_player.cpp index a94b564ea..ac804a0f7 100755 --- a/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player_lite/js/builtin/src/audio_player.cpp +++ b/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player_lite/js/builtin/src/audio_player.cpp @@ -47,6 +47,10 @@ static Audio::AudioManager& g_amInstance = Audio::AudioManager::GetInstance(); void TriggerEventListener(const AudioEventListener *listener) { + if (listener == nullptr) { + // listener is nullptr + return; + } if (!JsAsyncWork::DispatchAsyncWork(AsyncExecuteCallback, const_cast(listener))) { MEDIA_ERR_LOG("dispatch async work failed."); } diff --git a/code/sdk/middleware/services/media/foundation/sample/wrapper/video_play_wrapper.cpp b/code/sdk/middleware/services/media/foundation/sample/wrapper/video_play_wrapper.cpp index 89c3399eb..62a4c9557 100644 --- a/code/sdk/middleware/services/media/foundation/sample/wrapper/video_play_wrapper.cpp +++ b/code/sdk/middleware/services/media/foundation/sample/wrapper/video_play_wrapper.cpp @@ -174,7 +174,6 @@ static bool InitPlayerResources(MediaVideoPlay *videoPlay) videoPlay->player_ = player; videoPlay->isPlaybackCompleted_ = false; - videoPlay->isPlaybackStopped_ = false; videoPlay->interruptHintStop_ = false; videoPlay->playError_ = false; @@ -499,10 +498,6 @@ int32_t MediaVideoPlay::StopVideoPlay(void) { MEDIA_ERR_LOG("StopVideoPlay start!"); MediaMutexLock(mutex_); - if (!isPlayed_) { - MEDIA_INFO_LOG("video play is not start,can not stop!"); - goto EXIT; - } if (isPlaybackStopped_ || isPlaybackCompleted_ || interruptHintStop_) { if (isLoop_) { if (!isPlaybackCompleted_) { @@ -516,12 +511,12 @@ int32_t MediaVideoPlay::StopVideoPlay(void) return MEDIA_OK; } } -EXIT: isPlaybackStopped_ = true; MediaThreadCondSignal(cond_); MediaMutexUnLock(mutex_); if (isSyncExitMode_) { MediaThreadJoin(&threadHandle_); + isPlaybackStopped_ = false; dynamic_cast(surface_)->ClearBuffers(); // clear buffers safely in sync mode to reduce peak memory } play = nullptr; @@ -551,15 +546,6 @@ void MediaVideoPlay::SetSyncExitMode(bool isSyncExitMode) void MediaVideoPlay::DestroyVideoPlaySource(void) { - if (!isEntered_) { - if (isSyncExitMode_) { - MediaThreadJoin(&threadHandle_); - // clear buffers safely in sync mode to reduce peak memory - dynamic_cast(surface_)->ClearBuffers(); - } - MEDIA_ERR_LOG("video is not played\n"); - return; - } needSendBackgroundFrame_ = false; StopVideoPlay(); uint32_t count = 0; diff --git a/code/sdk/middleware/utils/codeloader/private/codeloader_execute_command_memory_commands.c b/code/sdk/middleware/utils/codeloader/private/codeloader_execute_command_memory_commands.c index 0fed0d7e9..1c71f18b8 100755 --- a/code/sdk/middleware/utils/codeloader/private/codeloader_execute_command_memory_commands.c +++ b/code/sdk/middleware/utils/codeloader/private/codeloader_execute_command_memory_commands.c @@ -372,42 +372,36 @@ static bool codeloader_command_processor_set_flash_limits_common_helper( bool ret_value = true; uint16_t apps_area_pages; - // Core Images always starts at end of the SSB. - start_address = (uint32_t)((uintptr_t)(g_hal_sectors_flash_region_end)); - // make sure we can never put system images in the Application Area - if ((start_address + ((bt_code_length + recovery_code_length + dsp_code_length + extern0_code_length) * - FLASH_PAGE_SIZE)) > APP_FLASH_REGION_START) { + // set recover region + start_address = RECOVERY_FLASH_REGION_START; + core_section_length = FLASH_PAGE_SIZE * recovery_code_length; + codeloader_command_set_core_region(CORE_IMAGES_RECOVERY, core_section_length, start_address); + + // set bt region + start_address = BT_FLASH_REGION_START; + core_section_length = FLASH_PAGE_SIZE * bt_code_length; + codeloader_command_set_core_region(CORE_IMAGES_BT, core_section_length, start_address); + + // set dsp region + start_address = DSP_FLASH_REGION_START; + core_section_length = FLASH_PAGE_SIZE * dsp_code_length; + codeloader_command_set_core_region(CORE_IMAGES_PROTOCOL, core_section_length, start_address); + + // set extern0 region + start_address = DSP_CODEC_FLASH_REGION_START; + core_section_length = FLASH_PAGE_SIZE * extern0_code_length; + codeloader_command_set_core_region(CORE_IMAGES_EXTERN0, core_section_length, start_address); + + // set apps region + apps_area_pages = (uint16_t)APP_FLASH_REGION_PAGES; + start_address = (uint32_t)APP_FLASH_REGION_START; + + // check apps images will fit into allocated area + if (apps_code_length > apps_area_pages) { ret_value = false; } else { - // set recover region - core_section_length = FLASH_PAGE_SIZE * recovery_code_length; - codeloader_command_set_core_region(CORE_IMAGES_RECOVERY, core_section_length, start_address); - start_address += core_section_length; - // set bt region - core_section_length = FLASH_PAGE_SIZE * bt_code_length; - codeloader_command_set_core_region(CORE_IMAGES_BT, core_section_length, start_address); - start_address += core_section_length; - - // set dsp region - core_section_length = FLASH_PAGE_SIZE * dsp_code_length; - codeloader_command_set_core_region(CORE_IMAGES_PROTOCOL, core_section_length, start_address); - start_address += core_section_length; - - // set extern0 region - core_section_length = FLASH_PAGE_SIZE * extern0_code_length; - codeloader_command_set_core_region(CORE_IMAGES_EXTERN0, core_section_length, start_address); - - // set apps region - apps_area_pages = (uint16_t)APP_FLASH_REGION_PAGES; - start_address = (uint32_t)APP_FLASH_REGION_START; - - // check apps images will fit into allocated area - if (apps_code_length > apps_area_pages) { - ret_value = false; - } else { - core_section_length = FLASH_PAGE_SIZE * apps_code_length; - codeloader_command_set_core_region(CORE_IMAGES_APPS, core_section_length, start_address); - } + core_section_length = FLASH_PAGE_SIZE * apps_code_length; + codeloader_command_set_core_region(CORE_IMAGES_APPS, core_section_length, start_address); } return ret_value; } diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a index 8811498b44350097b8b0fd8940d30ee9311de3d9..ef880f2fb5e2953cdabf806070130001d7461509 100644 GIT binary patch delta 59 ucmdmUglW$arU}yQW(FoEMwS*El_Z&A?9EQhfq`(&tdLeoI7cl{%me`UWe@29 delta 59 ucmdmUglW$arU}yQ#wO+lhL$E9l_Z&A?9EQhfq`(&tdLeoI7cl{%me`SY!B4{ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a index 2b088ccd88c6bfcd50d23527750c99ce4efe5208..9b01f98e364be13e6d398664375d55e506628000 100644 GIT binary patch delta 59 xcmdmUglW$arU}yQW(FoEh86}Jl_Z%VY;()aPRxOUaL%ldR!Nwu&1!jKCIIyP577Vs delta 59 wcmdmUglW$arU}yQ#wKQ#78b@El_Z&=Y@^Li%z=S$&a9ADNtmk5YI$NN0Q%|>2LJ#7 diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a index d4ad57565cfb2b8b4af68d7cae88f5f3ba80b339..bcb9c68b62022dde08eaaa6d9dd14ac51d5f9643 100755 GIT binary patch delta 59 ucmdmUglW$arU}yQW(FoECKhHJl_Z&A?9EQhfq`(&tdLeoI7cl{%me`U3=ic1 delta 59 wcmdmUglW$arU}yQ#wO+lrWU3fl_Z&A?9EQhfq_tt$>v!ht&(sVwLCEs0QU(G$O delta 59 ucmdmUglW$arU}yQ#wO+lCYDAUl_Z&A?9EQhfq`(&tdLeoI7cl{%me`S=?~ce diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a index 71587fc57f3b9c0a0bf3bc62460ed927e507a339..f860b0bff0cb0732fffe91622269dcccae14bf3e 100755 GIT binary patch delta 59 ucmdmUglW$arU}yQW(Fq4X2#|ll_Z&A?9EQhfq`(&tdLeoI7cl{%me`S%@5fC delta 59 ucmdmUglW$arU}yQ#wKPKrWO_(l_Z&A?9EQhfq`(&tdLeoI7cl{%me`YUJwlc diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a index 8b6acb947b201b88454172ed6227faaf14de2663..b4bba35f19cbd92cd485954fc8c4fdb0edef248b 100755 GIT binary patch delta 59 ucmdmUglW$arU}yQW(FoECWdAkl_Z&A?9EQhfq`(&tdLeoI7cl{%me`REf2{6 delta 59 ucmdmUglW$arU}yQ#wO+lriP{)l_Z&A?9EQhfq`(&tdLeoI7cl{%me`RJrBtM diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a index 23468d2a0628d023746af3256e767c9c16cf1ee8..f27331968d3bbf2efc1b2e8548e56f1750c9b2e7 100755 GIT binary patch delta 59 wcmdmUglW$arU}yQW(Fq4W|qbql_Z&A?9EQhfq_tt(dJnpt&(sVwLCEs0QQ^@-~a#s delta 59 wcmdmUglW$arU}yQ#wKPK=0+A9l_Z&=Z1c@d%z=S$&a9ADNtmk5YI$NN0Qrv(`v3p{ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a index 1fa6576d7d776a18f0f5f454c476792a7d436168..a086e051428eccffac536bcacdbf78db20ecd8b7 100755 GIT binary patch delta 59 ucmdmUglW$arU}yQW(FoECdQTE>A>t&(sVwLCEs0Qdh7>;M1& diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a index d3ffd47b87b9e8e58b91b1cab0533c2642fb9dec..b610a44b090465ffd3c55abb8fe86cd933c0aa3c 100755 GIT binary patch delta 55 wcmdmUglW$arU}xlW(FoErW+Ncnc2ZC1B=a0%z=S$&a9ADNr;-wDtQtn0K0t-{Qv*} delta 58 zcmdmUglW$arU}xl#wO+lW*Zfxnc2ZC1M|&J%z=S$&a9ADNr;-s4$KmZZSqV2>39#_ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a index 2ac65c0adf48b705ad1fa4a5fa860f521c29fc79..0f5adb494900055953a22fb8641f6e8cf3a68978 100755 GIT binary patch delta 59 vcmdmUglW$arU}yQW(FoE1}3H(l_Z&=Y?IAS%z=S$&a9ADNjOI>Ps{`W^A-=j delta 59 ucmdmUglW$arU}yQ#wKQ#rlyt~l_Z&A?9EQhfq`(&tdLeoI7cl{%me`X`49;J diff --git a/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a index f29bef29f2f2c7b486f450840a6ac898835ee393..fcf3d99b77934eadeed85bb51fbca65491a1e804 100755 GIT binary patch delta 59 ucmdmUglW$arU}yQW(FoErpCq_l_Z&A?9EQhfq`(&tdLeoI7cl{%me`RJrBtM delta 59 ucmdmUglW$arU}yQ#wO+lX2ymal_Z&A?9EQhfq`(&tdLeoI7cl{%me`Q=nusJ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a index 24138d8474db796f79b6cf3da209cef75c501ffe..1cf0bc695b5a23dea289a06bc4872355cb874e90 100644 GIT binary patch delta 443 zcmeyfmhaD6z6sLoW(FoE#sN|F+5Yz>;~|J9BTKNmx8M1~n9T-L zvmNO0n>xxF^O-lRAjmbG1Az;V0)Y@(@a6A0>kY<1#e+;hM+(J zIl!NBd$SH;UXZFe`Yf+hB(96zzD2&&myMHaFOXio5Z*Gu4FnV b1l0yo1T<(5lbRS*#26?dv3=hqCc7g5a8`&z delta 441 zcmeyfmhaD6z6sLo#wO+lhL#o^l|m(;Y?IA(5(kB$9Mj2l5@MTUbmARhveW&3Gm3A% znH$9q69Fm_-yB%WCk_*UD5;&|#RoHG^SMPkIpLhXHFsrT9EjS^lSaHSk;&&40nNYm zj|(bb)_m{b_InQ*C$hj*0Nu2`=NV%#Gh76yXZzomjE7*F!0z6D=L=&t8%)i1pu=zS zzQFOyb)s6`AhAjocom$~03DreHfz!CSZ-C{RES@Mqi}Zo|aF1XX1Q za{Bg4JEpW)xClt)pV>@{Va_lE>)o@6X)|18I?yKZ?Y%3R&Iv)anS+9Kd*vP`H8ECj Q1Wm4yklMcQ5|iB#0AuioBme*a diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a index 80921f3d0188155904ad60bbb1a000a956532f67..a74ab7332c624b94559c34b47b36585c9accd8e2 100644 GIT binary patch delta 441 zcmeyfmhaD6z6sLoW(FoEh8D&fl|m(;Y=g~p5(kB0oXK?(Vw+=h;vHcE)BS!kif_J| z8^sS30V)yS99YXI4izwjD5;&|#Rn7Fd~VTBPB^D;&0QH72cov~q!BMnWb(O1K=ZHt zN|F+5Yz>;~|(PLy)_--}%Cr%?4Am9q90z zJaC>K2a~QOj5qzC8I$<-N=2r7a3iU zMj)qeue4)Ii-n7TobhKi(_)x2AbR&KV%iKBnGUo`e0%RorgK6_+JFY_VNw%g1xL{2 O1Gy60_grFfI069l>xex7 delta 443 zcmeyfmhaD6z6sLo#wKQ#78d3kl|m(;Y~#&!5(kB0oXK?(Vw+=h;vHcE)BS!kif_J| z8^sS5F##$O-yB%WCk_*UD5;&|#Rn7Fd~VTBPB^D;&0QH72cov~q!BMnWb(O1K=ZHt zxxF^O-lRAjmbGtz8(oGQ~yL70N=Km~8%axe$@Gj0#JVPau|sRB8D zd!-#yS}a@y!A%Ui-%db6fMh zhuiNxWSq!?P$03r=NV%#GeSUe``?$0hqw>|65H>5Va#Sj7D)Ncc$f!Sz=eZJToPHJ zLXqh{lA#jYOH`Sf1(8*Vm@{2RQ2}&^KjZdr8zvSen0qImTO_`{(vB%D7Fp+?*-VR3 koU>;U(`FQbo|R1Jg^;yW>|s(DgPU3>A+demB__Kg02NP!i~s-t delta 432 zcmeyfmhaD6z6sLo#wO+lrWWQKl|m(;Y?IA(5(kB$9Mj2l5@MTUbmARh0@M9|Gm3A% znH$9q69Fm_-yB%WCk_*UD5;&|#Rn7Fd~VTBPB^D;&0QH72cov~q!BMnWb(O1K=ZHt z<6;H7ZF0d$iRLd4w|{xaSj_@g19a8)o@b1~%uq!KawWF^dC7PfrU}Hq^Mx^+4K6Ra zJ@q%^As#qiV!I0mlei=jze17eKC*cws!Yv-Nb(})OxKa+f%f||ZV$I%Vqt=*x+b~3 z(vB%D7RCp;YBtkigexSr?^(pO8JXX+lIgq6Vfg9KU zbHN4dn8cgEJly`}A!9WQRB-!8E2cEY?YEyZvM@niV=?*MBJu5iUosxzf{OsXu>H;# z#%wm2$abI~Zt}o+dK^r;k}%%%e`ZYL+bb2B?lHrJw#TV5%@l<5fC}EiQ*0&?-6*-VSsP(=1DV%iKBnI5OgB)+|OCDS<}Bt<}j_Asf5L7gx? NQ4y$S&m|^@BLL4dkX`@) diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a index f21bf59a2056ee130f0e9c25f29af4cbf782753c..a0846371dc912d4374c75ac3c89e9b39ce54a265 100755 GIT binary patch delta 441 zcmeyditooNz6sLoW(FoE#+IfVl|m(0!R*NiCnYvdkytGZ;ZA=ri%Dv8oKCDGTv~GT z&DqlDb{=lzU1bsixzPr_(0Rw9G5}nSDZBFMerpzpS<>u z3+Axqa}T$ld&szw8KFR8JBJmMKjZet&lp*l5WN&3~p+jgv9n;7n$}Q1^{eCgvS5? delta 427 zcmeyditooNz6sLo#wO+lCYB}}l|m(;Y@^L}5(kB0oayI2GfHfZ(}{J2iA=7O5Zins zH<}+wKzwsxEuT1&fY|1mDb{?fVACfb$d%Z9Wzk|zB<_?o$7SGL$<37~jdm2iB+BxV@i0sy(9-QsJ~L*s!Q~~l z=l)_m!~^F`Z1-Vj;+I6?S12&uN4BLzg{fH(NnXT^={mAJ&=tWj{)TIk+beCEl46n6 r|Cq(J7-7G}_8kkEHY4*pRxq6xLQ-F{n@L>^$_ILU`;LoD2Mz-Oo(qlP diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a index 39ededcc0864cb67febf23ef42dd3c2c13720a33..ec9c60453e885cfa28ecddd47abc5b992f360aa6 100755 GIT binary patch delta 427 zcmeyditooNz6sLoW(Fq4X2zBql|m)hAneVx5{HDL;^x!OeP)!{9H$fO2$h{&DFae-(+kM!X z_$84ADioORGb0O>s4z7PA`6I^Fg_qd z7!UKHi1@HG@k^qJR46drhgmiqtgA$YsaX(3jfff3byPJRR!qUnFgH)$w@7?@r7crZ zEQ+olvzQj6x@X5irp;_HUDM-KfKKdO!E{atCbT_nH)WncPB)0Fn I#AJ5_03S4ks{jB1 delta 437 zcmeyfmhaD6z6sLo#wO+lriSJll|m(;Y}3tk5(kB0oXK?(Vw+=h;vHcE)BS!kif_J| z8^sS30V)yS99YXI4ikVVsh#4*2NT(RZqZIoIHzyTT^Se$qPFv-5id++^0`Go^RNBm zVgu`t0@ zU6b5iX~&cn3*+ZXZ2vQxX)(eT65IDIV%m(%?^(%oUI>aqT}BT)>V=y!p$+?Oz@;RE6I>n8z1#o1WIT+}2@<*Ug)y5AMNP_Y#=|@)A}$iR@X# fv>8>TXC>2lA-F5{FxiR0jQ|G0_C1%F9F710u{eZm delta 430 zcmeyfmhaD6z6sLo#wKPK=Ei0ll|m&TY$Nl{brJ`Kp&X0JbrNEmV|3yjVFJ_relv=1 zzL^`v4;8TlDiPltSj#646M!hGo#Mp@6WM%j(N0bX$Jk(V-TO1$#$T-Z}PyT59W$*ci~_XmxKyzPgG?3#*8dmqRP}P2o;zPl$F>nYR+^Greym^ zE2b=%^`>C!EA5!lV&NL>n8dgLna#AA4Mk+nBBsqS7nx3vQw1vOUCDG#2&!m%;vObD SF{q2pfZmkYzV8x~-4OtM359q7 diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a index 99adba076648d8528bcc57dd520a7ca0b7e7c367..68aaae6c54716cba751037657e9977de112bc37d 100755 GIT binary patch delta 443 zcmeyfmhaD6z6sLoW(FoeV7O5!RDu=Eo}RFWNpka4iB-Zdz9N&v<`|uLM`Zqu+-QCn zAEZ98mQNhU2dS@_;>`!++X3aDE?UG1TO1&33=vj5m4UJUtF3 zT}c>k`ad%!@$Hq0O!weMZjV!CnkfiVupOx2EnE)f0Ds2q;WkVxOi)#ZlR?g?v|~z( zh3NyU{4<+rG29tokv)r;Hp4}x18oxD-n)|NoDh;Wph0_>)WqOM*GWih-*<`0?g#*@ CQHA>e delta 430 zcmeyfmhaD6z6sLo#wO+lrX~g(l|m&TY-5YfbrJ`KVVucz5@MTUbmARh0@M9|Gm3A% znH$9q69Fm_-yB%WCk_*UD5;&|#Rn7Fd~VTBPB^D;&0QH72cov~q!BMnWb(O1K=ZHt z<6;H7ZF+(tlSK2EhugnAWUOX^h)q6_E3v)j8DlUrjDJmP`@ffr2cdev@^`*4X0yTM zb0xQ@{$@PH1LsR@ci~_Xmqg-MC^FrLn+G(%M3t#o5J_Idoas8UJkWlB#_i!YOe{<= zRo5i9SK2Y9#lrYNQ~u0mT8wao#P&Ulm^LHxdsZ@?7eZ2Bv4=@r42i$z5|hIb060~S AkpKVy diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a index 721fb7c7e54f7cb6fa8c2869409449ffc0b9b444..abe70ce5b21519c075632b6d022507aaccdde245 100755 GIT binary patch delta 443 zcmeyfmhaD6z6sLoW(Fq4=H_M_l|m(;Y~#&!5(kB0oXK?(Vw+=h;vHcE)BS!kif_J| z8^sS5F##$O-yB%WCk_*UD5;&|#Rn7Fd~VTBPB^D;&0QH72cov~q!BMnWb(O1K=ZHt zN|F+5Yz>;~|(PkfX%5-}%Cr%?4Am9q90z zJW!tLc0CRzT}c>k`ad%!@$Hq0O!r_$nr@F%Wtu4nQ?MPV;4NGZY&g&X{*2qhZJ1b? zV5&e)-(G3QloksY0XgH(Y^KF9XPAQZ?pegN87?v%Xp{K%-jz(}gpjlW4cfz`CI%HT O18S4lzV8x~-4OtylZej% delta 443 zcmeyfmhaD6z6sLo#wKPKmS%<D$Rd$|4HL&k|La1}r|ZSQ%;7|aY80qWWQ_a);Ys3ucOkh{0v`NEjZ1~X` zSeRg{Ku+IYX~&cn3l{-77fk9cYvI_TH6D=Y){70S(&2q$UOx PF$8Lp*uL))lid*jgqw+< diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a index 24f1ab15d89280c36d34f246b9ad4bc3b39fba49..2e6dc12d6366ec3a4a668489fc7ac94d85f5069c 100755 GIT binary patch delta 448 zcmeyfmhaD6z6sLoW(FoECT1oZl|m(0!R+Y?c1#kRr%0?8M&`%p#5*GMZ{$YvBl81l z`Nfg>HB-F#5PZqaPZurXMDQgxFIjV32ASV+(wG;)m)v~w+CMIs+nVn^+TPIK+12%!#v0WE*wnalE?xTicI&B43*ek zqRP}Ph^#`yoas7>3ZOgu8MlYqFtISf+&lT)BJu5&c1&rpaFIF*vF(3mGc87O&z?n0 po7rGWrpKu=iEr;+$#hN#CN#ND0%*=2CN(i65sB^lE-~310RRLqgw_B6 delta 441 zcmeyfmhaD6z6sLo#wO+lre?+)l|m(;Y{SiU5(kB0oXK?(Vw+=h;vHcE)BS!kif_J| z8^sS30V)yS99YXI4ikVVsh#4*2Nf~ed~VTBPB^D;&0QH72cov~q!BMnWb(O1K=ZHt z<6;H7ZSsL!iRLd4w|{xaSj_@g19a8)o@b1~%y1E)uI+zcG9KcBi-6SJ`NEjZ1{2v1 zboxymI8Tp*NmmlaoBq#?Nql>yBGWy%k=x@`nPv*Y6l@17cng;U1q;Xl{*2qhZJ1b? zU~au8xxLbkDJ>SJ3#{(XY^KFN|F+5Yz>;~|(Pu)DY4`NEjZ22-;g=(K~UCt65kx76YmIBZ8qKS zH>3FGo4HZ^Fpuj4%WM85z}V4$aJ7h;@f*yGMy8GYO??Z Y>GsM!Olo3K5lf(m#P)rcnCy-K0BmQ9kpKVy diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a index ec02bba405d48e2460f22572ade7d024be336a54..32c2de08b08c0a39bc6f08c499a3e2ece56219b9 100755 GIT binary patch delta 443 zcmeyfmhaD6z6sLoW(FoEriKO^l|m(0!R+Y?dzd6QPnB3D4C5;@NoFwZ7TL3iX)|18I?yKZ?Y%3R&IuuD0~)l4 TNlgrHbe)96_I;O_?2Z5c=JJRR delta 436 zcmeyfmhaD6z6sLo#wO+lW(JlUl|m(;Z1c@^5(kB0oXK?(Vw+=h;vHcE)BS!kif_J| z8^sS30V)yS99YXI4ikVVsh#4*2NT(RZqZIoIHzyTT^Se$qPFv-5id++^0`Go^RNBm zVgq{gbk+8rXNTkwFJaE3mb{7sNaY-b8g(A~^W+Z-zDpRu{5?{oe={mAJ&<*~K+rw>`SeTGhRoF45 w$0G6n%w}4QaD~M7J&Tw&BlCM!GMyJfQeUx$NnH%WpPsOXNpkz%OHB4h0C)P1o&W#< diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a index fe9825e060560ecbaa5e423bff49242534b014d9..da076b71b1f94d3a3b9fd9d993c6db57eaec06c3 100755 GIT binary patch delta 437 zcmeyfmhaD6z6sLoW(FoE2BroZl|m&TY!j2sbrJ`Kp&Zl6brNEmV|3yjVFJ_relv=1 zzL^`v4-)|@5#JnG%O?&KfGDY*;>8CO*?ex%PEIJtY;)h5yD~5iL~Z9uBVL%u6nmb<@v)N#3wgVl0 zlLyYz<6zR2gz={TGh-6pUa81*4{qf4I8~;Zf-nW!fePNj3^UZ7jxS)?@Pu*Tu36~+wXi~%w|IoN%_rqmx0$Gn;8K8;Z!DMNFGvB8Jm}Hi>WVUCDG#2yRfF1kj*8Olo3CA`;v8U1G930st$3 BiLw9y diff --git a/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a index 139ea697c027f2e02d7bb7caae1b724dec4311d7..4d9a96aa34b53ae54e8d4d43097a198bcf84aebe 100755 GIT binary patch delta 460 zcmZoz$JelqZ-O+tnSqIksj=BcrBDf0FnjWYhZ38oNURn{;>PI2J3>{OOs>z=}1;Wl#iqP8#!~2;8~$p9?Br1~Rny$HVPE z9x_(5Km|=fg4-uNV+>|S7TNZS@i0suM9G6MjM;3+O15YGW<1P;BI3cpBrb^}QlrRp zAI0G96{<|lf+%Vv%$csEssTF3pK*J%4HF9!R3+H$+iUEY(qobJZkxlj7}Ze+7BOu` e6`8P->AVn zwW{JU4p@1^6mLEhfftJwb3z4-z$#X(IWB`D&~wt57e(OCwf|hKV8>0ak&tNq@o@W( zhm6%M$ZEDvc*Ypaj4ZP472{zpWP$AuzA$F9p@?MsW<1P;FnPNN2a~uY62C@~={_?O zze1I%SrCaYVa{|NSsv&Jf5z?6HcTu`NUCb=n9^er{B3iX7PBF^+Yc;a+KkMfu#)M# a5L{kzd+i=3H8CjvK(5601DBW_jsO5i(SnWu diff --git a/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.c b/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.c index a132b7934..28359880f 100644 --- a/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.c +++ b/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.c @@ -52,6 +52,7 @@ static errcode_t nv_asynv_send_msg_to_write_flash(nv_key_map_t* cur_key) if (ret != OSAL_SUCCESS) { return ERRCODE_FAIL; } + cur_key->flush_flag = false; return ERRCODE_SUCC; } @@ -202,6 +203,7 @@ static errcode_t nv_async_store_init_keys_one_page(kv_page_handle_t *page) nv_psram_free(cur_key); return ERRCODE_FAIL; } + cur_key->flush_flag = true; (void)nv_async_hash_add(cur_key); } key_found = kv_page_find_next_key(page, NULL, &key); @@ -344,6 +346,8 @@ static errcode_t nv_async_msg_process(nv_queue_msg_handle_t *msg_data_t) } g_nv_async_flash_space = status.max_key_space; + /* 当前key已刷新到flush上 */ + msg_data->flush_flag = true; osal_sem_up(&nv_async_sem); return res; } @@ -386,14 +390,20 @@ static errcode_t nv_async_thread_msg_event_init(void) errcode_t nv_async_flush(void) { nv_queue_msg_handle_t msg_data_t; - uint32_t msg_data_size = sizeof(nv_queue_msg_handle_t); - uint8_t cur_queue_num = (uint8_t)osal_msg_queue_get_msg_num(g_nv_msg_queue_id); - - while (cur_queue_num > 0) { - (void)memset_s(&msg_data_t, msg_data_size, 0, msg_data_size); - osal_msg_queue_read_copy(g_nv_msg_queue_id, &msg_data_t, &msg_data_size, OSAL_MSGQ_NO_WAIT); - nv_async_msg_process(&msg_data_t); - cur_queue_num--; + CstlHashIterator it; + errcode_t res; + /* 遍历hash表,将当前还没刷新到flash上的NV刷新到flash */ + for (it = CstlHashIterBegin(g_hash_table); it != CstlHashIterEnd(g_hash_table); + it = CstlHashIterNext(g_hash_table, it)) { + nv_key_map_t *cur_data = (nv_key_map_t *)CstlHashIterValue(g_hash_table, it); + if (cur_data->flush_flag == false) { + msg_data_t.key_id = cur_data->key_id; + msg_data_t.key_ram_location = (uintptr_t)cur_data; + res = nv_async_msg_process(&msg_data_t); + if (res != ERRCODE_SUCC) { + nv_log_err("[NV] nv_async_flush fail! key_id=0x%x", msg_data_t.key_id); + } + } } return ERRCODE_SUCC; diff --git a/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.h b/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.h index 46a519229..782b0354e 100644 --- a/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.h +++ b/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.h @@ -16,10 +16,11 @@ extern "C" { typedef struct nv_key_map { uint16_t key_id; /* Key ID */ - uint16_t key_len : 13; /* Key length */ + uint16_t key_len : 12; /* Key length */ uint16_t permanent : 1; /* 是否是永久Key */ uint16_t encrypted : 1; /* 是否是加密Key */ uint16_t non_upgrade : 1; /* 是否不可以升级 */ + uint16_t flush_flag : 1; /* 是否已刷新到flash */ uint8_t kvalue[0]; /* key value */ } nv_key_map_t; diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a index 8dccc78399b4c0f7daf4785a88d72a5955149e7e..11942bd6dfe2dafb5f209455429aacb182b6ef58 100644 GIT binary patch delta 278 zcmZ3}$g!r8V}dlhnSqIkv4QDErB)p%+i>$bokBJkXYx87vCTHd<=m`bmD4YnGD>W| zV0TyznZF_Rv;s1JMq4;Df-kw5x9gk$)Iejffj?$d!>l#|3ryH%E(%p)viaO;QFdhI zn=W7Hf$~i^-@6~E1XBspy4{C~F0 z%qQQwFTQzW>L~>jfthV#%rJrJ`&1dlH}iI#6M%_;P5m*e8e+epr6pKk!ZveJs0z!? z=T3{V!#E(>O_#6pfcZuShMVu*4^)D33_z0GeV7=tm0=>=f%fqVu!6ldxuH#B`wLUX a*Q;T&VD%p!GA@Q22X^1~jqezL3jzSCZdhRe diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a index 67622a669df5f9981db33faa79dc9b4467daf7f2..addd26ede1bfbc54a7d0f41cc65bb02d7cd828fa 100644 GIT binary patch delta 284 zcmZ3}$g!r8V}dlhnSqIkp@r#2rB)p%+i3GTokBJkXYx87vCTHd<=ku#mD4YpGKz1$ zV0TyzDlqx(eTmH*Q%@-%^Jlh&F~dxlzE2gXgSYFP089jI=8sv`FxySQ0u#2Gi=tTa zw|a1C@|fZ}(wh%vOfkupMY8FU&quunV@oG-Z6X8b!;8hm4DP OkVGW5Z+yr2TMz)C23oTK delta 286 zcmZ3}$g!r8V}dlhv5A?bg{ARErB)pX+rn(~I-No`D93#AIvugiHpb=LC;}Jk4y(Zh z?%fyPyfO8Z0*b)QwlHR>fW`EEs*K{BdArUDz(l~N{+Lw_v)=$LFkzdyC`5&&!RB+P zMcH8-knE<**Lm0=uASW2Cb9YJeJdrXydg+_yAKm%wlYk|cA%BKQ0pv>!4BB|(vWBe@$08b@bZU6uP delta 280 zcmZ3}$g!r8V}dlhv5A?bk*UQ-rB)p%+jR3fokBJkXYx87vCTHd<=ku#m6IFW#5Z5C zJFEs*aPPkO=8dVR6i@_awuLdn1g7s(Wfb4c+jUL=CIU9}$E<2;WJ4!xGZ%#_FyDOc zv?x20$s}UBv(Z diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a index fd74cca096299bf928bf1653a315adb7c6cc7c81..ecee40958f742d2c336b535c126842c035c1ec3d 100755 GIT binary patch delta 285 zcmZ3}$g!r8V}dlhnSqIkfvMp}rB)pX+r)hHI-No`7-#Z29kI?P6zVDx4$%H Ze6)?v%7U;-AHu+3Z)s={RR zxznQTP>wN3cGKnSJW#&b=6m-8m0%o@#%yJ%izYX=iEqE6%J`ihs>BlPfbB0$ X8DFhNR`cN@<6<6Ufer5%{|EvAHzZtT diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/CMakeLists.txt b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/CMakeLists.txt index d259e499d..321df8bc4 100755 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/CMakeLists.txt +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/CMakeLists.txt @@ -260,6 +260,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/components/baidu_map_component.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/app_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/device_module.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/modules/network_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/vibrator_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/battery_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/sensor_module.cpp @@ -272,6 +273,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/modules/presets/console_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/presets/date_time_format_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/presets/feature_ability_module.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/modules/presets/image_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/presets/intl_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/presets/jstest_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/presets/localization_module.cpp diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/base/js_fwk_common.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/base/js_fwk_common.h index 664f57fc8..553f2e8b3 100755 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/base/js_fwk_common.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/base/js_fwk_common.h @@ -86,7 +86,7 @@ void ThrowError(); constexpr uint16_t PATH_LENGTH_MAX = 1024; constexpr uint8_t NAME_LENGTH_MAX = 255; constexpr uint8_t DEVICE_ID_LENGTH_MAX = 65; -constexpr uint16_t FILE_CONTENT_LENGTH_MAX = 1024 * 30; +constexpr uint16_t FILE_CONTENT_LENGTH_MAX = 1024 * 48; // hex code constexpr uint8_t DEC = 10; @@ -277,7 +277,7 @@ jerry_value_t *ConvertDragEventInfo(const DragEvent &event, const uint16_t id); jerry_value_t *ConvertKeyEventInfo(const KeyEvent &event); #endif void ClearEventListener(const jerry_value_t args[], uint8_t argc); - +bool DumpPrintMemoryInfo(); jerry_value_t *ConvertRotateEventInfo(const RotateEvent &event); JSValue GetRootAbilitySlice(); JSValue CallWithRootAbilitySlice(JSValue func, JSValue args[], JSSize size); diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a index 19cfb84300947cbf5c0644b2c8ed805603478121..ab19c8d200d982aadd5add8ac0c633eee0ee08a8 100644 GIT binary patch delta 25207 zcmc(H3w#ts`fYX3OowL}I>{tVAcQ~=Z~{pPNq7h$84zQDfDu_h5)cp(BtS$!WP&_I zQHY=^B8U+IQBgtAQB=g|s_P=+bJfM@s;jO7y6Ue2P;>h8(xJeIceleD_jP=0n^Uf-PD^z`g>3i@Yydf$S=0+}UUV%*$oQe-lT3&kPYm3W#IXSInR|@7RAHd2eR? z-{S30G2>@r=-(OsKk1>Lt<|qvxH<6{`$=qC%}m4)ef%2HWq!b##g?VaMbY;|^O!c7 zxhQr&NHL_qZ*&YfwfNEt)SA*VL)-^X0P zO+^2rV0V|{zflbRn}X*YX72wcZhL^ae@P7e5@+4_y>ZO_!|MM!dV0)f6hjI`j{P&3 z=l^w_^DXm;7-F6)uKNvR=(j8!Wru#@*<0Sv*smEw|8Zu+hBNEekD>p4ruS@PmL8v2 z#;pH1hNSbC`ONwsVqAM4i$woA7WZq#(EpUt*aukLzl*aDu(;T`pgW8Eg)#I?6a32l z-q;#%9NIR0-=5YjIwkfGUOuO~eEubu)r_1zXYTyP=Ug^pE`PtXmBiEfn+e?ejWK9n zi=LTt7-x)h zMWiFMUCH6rt&MM6ODT_6zwJ&AcTP6G?;g@?+c?wA zJi&|aHmc3czw`Zf8q6 zkK=WFjHzbkX1=Ey)oZnv&b)zF>@_BsnfHeG>^15PY64U~kr&-*vb~;y zitf*x?t9I%MJi9_(P39Xrqi@N^#-ThSMbyCx#G+o4dGD_8Dq_i9aE{{RJu`-v+bgC zsN_#QY#cN*FXvZ3VqDa|pOfu1JsS%Ix{l9&%t+z!2aMKnjXnG78>!b*!iNqROVLjE^TCf90W)(y<=5TJd?0+&W5)Hyg{9}EkC;BCIz7E&Zq1b0 z=UuX7`ozp>=~EZiOusOF%Iw*5FDeFH5YYnZ)zhb3I`roZGv-g9E>?|*H}8DV=pUYN z&@j#RSIZfNaf$J1prO7T=*i(*4;j6UmHdx~jF52+ANizlzp;j&eiH0je$`V(XTJMs z!^?L+g^9M7KmL@_r_1$79t|!wl`Wzl#$?KOCp$n%gHnVVU?dQR?E(B z=CFY+YQ{IR&CU2t{N87boIVGoC`wrslj$nOKGni^YW%)hM~j|aa4yruL{0pAVWTJj9=FtBryA-0+YARL6C66AybUOB+72N&b4 z2==JzWh1}`MV!2>9Gq5i5xi_X_)JBamsNq&FrpA*5N1M%jyNxy2mYC`mM&q}FS44Os+X22(aFovy*}V{UY7P&AH){NG@a-CZ7W^TN9|q5l za36aEJX)ZS9cyM!VIPAB9e*mHrLf}=Mny76Vc&xHj&MKw5xiT3cVsQxdVy)IJ^0Fq zJ&pOnXKTDG_$G}9z&{}Fl+V&xKM40l9Maif@a-Bu8~i(sj{y%vcm|sQK3?M&fk($g zH#QqQBVzB)E(fm%7v&?XWf0OM4!zkm;B7Qs2i{HN4dB@t-v(YB;koP{@JSlq4^A^k zgj{wId{Lx)mdl=pP^#?UuYfmc{2lP;HU1HJ^o(=aaqw}P{U6}b3Sg&$`8pzE&tomY zr>gU(t&k02i{{V~{D8*0gCEg&Huw)39{^si@e=Up8RxMwaGbFWd2Aebi;!GrsRC6H z+!~(+ex35i_+9|MP~%I%qbqwpTLqpHu@|y+;L$-mh;i^}3lCVZ-7^6{5|k!{z3MM2kjqSD1z)OILwSB2(o{H zN9S>nxh=+KMOrAx;=%JYo&w%o;~C&>G#&sSq49hRTv^-`02q_z{gy z2G7^{Oz`NS3$l6OJtFxJXG_4lX?#Tp!W$7`1iJyeR^#>Hhcw;@{;tOF2G7^{KJd3R z{y2DAgqO1Cz;L(MqoOy7W zi`vJsc<`uwY=|X8SQ*K%f~A9x(|AwtSsKp;k5*tD8wif6F2gt$1dlfHcs3F|UYT(! zGepE}}4ScF*?+rdSVxPtez-I_f*Pm&u2tu^Urm=It zXGapuVCR8%*Z3rGug0f?S8IGO_y~a&WN+cCLRj*jfnDK{kWk3?5y0X0Y49 z2S+lP$#ym4v)EqnWfA*)b^v^Pgx9dA!K3-tu$RDZBD+&Q&i!==wOWE>;4341A^QZp zW28wJvai5z(d?(dw`knLW^$Uw+kr3Acn5I0Sc&p+S;>I#o#qe#kB;(%EFU~gt3VMr z_TVxsWToKIm2VL{4}88dqv%QC(J`=yO$Tp`ln;lw5JaC)szq!Oc%7EPa`2-XUkkoL z<2Qjv$H)?PEBLX9eF@tM{)5Kv2Tw8N`BTx4K(Hcbw1hncev8Im0x#6~8{pS#ya{}z z#yJqvDi75CGZDz4ml9NVr z^wt=@SMqGfzXfZGv41T&t!OrD#WLx>Ne0TVzvLo)n-IG+#^HL&d%@Yp(*Hz^{Y}YR zpl@tc@l=dGDZ1@-P9PA&i<@zN>Qy5nbYnA(v3)W8g&6)x40qEFtPFILT_mRgZR4+8 z@`DafWOJJP^Dn+|wGZ9gTx7dr_(L)L@fdzsavEbc`twwbJs}uc|6vUORB@;0(wVOv63XDErL4G_z}WH_{&WmK z5yLysX+<(*Y^dZ_&}?j5W=bA(csI6A_ou0RKo`J2m0a{=chb7GDY=+DJ=l23 z%V4u{4PF)Ff2-tM9eaSiD0wb;$i^<<>zD-pl6<(6Ae$B105VVo2FLKRF?_P*-@(_$ zHFRx^eM6LooY}Hj3U4?G^4T9H?+D%n50$M102!zP@sf+#TF8ndCx4p_VDlvxV`vbo zm;7qSKA1fwc`5aO2KGJ2rSO3>NP?_gq9|>Ylc0$8m7G+nzdfeqyU@HVSFkO4d z;T=ADv!`>&M}tfT%BPp)9|GIB(3~G*zc7YRlf0YbU&>ZUKGxx7>_CkFJCa}K*hhs} z`(z*)r~*S`_<|UIv*dIQ#1hCJjj~E6OEvb!tbfVJ*qEI@)PCBRI(M=b?vtsxF$thnOPba3v z*l&&D`(yZHlCN~q&tUIMPO~4&!%WuJ43iAjf_g z`)iE7U8>9+2g*MnITnEsGOT95lfr5zgZXTAOo9hv_`8ztbo^^r3tAUspaR-UP8%~D z+t_|F_L>Ms`%{9er0_Pdjcw*_5eH%48N=U^e7{q`66U5y#WGNS?P7R}esJQrs!7?sYgL&fv8Y{DiStXp8|D8h3Xs&m3JX|JLiwalr=1j zy64CmMtY$ikSqvDRvOvLr2S?8_3N){*k4t?zp8wHS;72l>670hTiPIrCeP1Nwj5>3 zfr&5gWA+Z`e{4J#|MM@tZyexG;wMkI+HAb-A1NE>+MbkI)924$TzT>In#wuO`|-*J zHB)L9;FVL+cSbVr*xyVF;~n|kt~lo+W0&wl&^yTI0klKwi%5a?xb|><5@w^A@A(mj zAW#1%4kLJW2b08dFqO1B+?ypWjY+x(&SsgxZ*S}J86$atw6!(6QtVh!| z5O>aqDr+jnF6Tus`^N}#u4W!g=CKB!GTZQ(=NUZbxal)0cq8R@zHpzVxi2I4AU{Ip zal%}unVn_pg8F~KDxcWAq*>n(iL=Q(ULskbafGi*P8RIwEXB4A4~wVGE+SmXLV77+5awCpcuuvW^p`Z5Dz}H^x~j1aXs4 z=5)I;fv2BBuLKR=rOcJ&8aUC|*yUNDInm%lgXpD6PA{1k8od4Uo+LA2GT#ID7P2jZ zeEs)E*R;zhze;ibgjG+`dD`Q-_cRKqF!-1Itt4~ML|z0QsuJ!GY3_dD0A2YI@(@c_ zIna6PkhNN1YMa0{0@JA}oy;X`guYeNw`ur3^0`*{bhdD`%S0szt2)yq!JcaHS03~D zjElIpo#`~r&__JJkenign!B^lm#slqW#gR7br2BfT(Z_W5LXmrKV1|{Sovp=ULthD zO7Bg&EO#OiWhf_uESRv;sc!?<;{%}$qQdcnZy;5?=E+(oF!{?)Hzx8bH)i!nUe^|9 zjUjM*7WH`*KLnn+UL_=}xoD7YTZ^(=<}~5LW(Efo(ZM z2`inZmuyA8W3$sZ+0% z+$40Z*{Pw8RamTMV-7xwQ8$OVzAO`9k=)B5S_!iQ+(BH+Ogc=;-Gem_`fN410 zxKyksM^GLvOh?+8J}fWw7{a--^zrai?NkgLY`_P?D8v#f3PI}$IRVTXTs2m@ea7Xy z4w*UqbKDdY0le+zXhQo6XBFk0PZ=qh3q*U;)K`W2fCIEvBTzy1Lb2)wdASEUFERN0 zelv+L^Eh3+2U>@PBA0A0}EW6!UTi+1s9%}QN{1tA;e_*;Pys9Ui_@hL+M zpK%q(Mc&spKx;4pwT1UK2Rbj2vKj?W$H9BMz%6jFL-Kl4%a3$HHzq9SwdpweC-Ng% zIH!sHWN$OsKTNdE0HjdWZ9}P77#o*=<2z@CFn80;`NE7(@ybLcqYI|ARzOmxu!hVl`4KY9$JtZ^Wu}>AudHun zCWr0;M4$!=1`E2zM|0#C)kd!N9U;SjuEU|M~Gdjzh-A+T3qnp{~A2u#TW z`viWNbcsjP(h}S+3`Yn*DDYP}1RfIj6b>pQ6aAYdeY}KaM${_b%E$|Buj0Ggm}hs8^`gP2%BQ9c9^h@-ngjjPoT!2*dR)a0xROHl4WjAjbX1XpfmPEHRyv)Tn$Lul?(~qH zBzg}m)bb&${GDt1V-ToC>0ASkJH+`SNEUSpLh}=A#1_$5FLsJ`SjHZ~o{4t3v~#S& z-sWkK&;Nu-ScF5#A%XvGCPp1y$|6&n`cKtvEHJKcUNd>Hyuwv!R_d+5llVZ$LkvFU zKCJPgv>CkzOx!!b(3*x~wQ+=-qG- zFHdbQ5_~5Nj&4H2kmK`~Sw3}5@IzA>2FNZmB&_s&V6~kjtaLgDLFj~)zK3-A0+ldyargNg z8DvWlRte~fHfp0xSm|jfF!+p9uJc8Ul4k`D;NYdcL7)K}kT^*A_oRw<+`;DsUP|R> zy&%YH9I|LNM4+op@DC1jzNr~_Nno0JR#!d(=3?{Q$7{PxwHfaiY?G zK=^H5frm%&?~sw<9X9Gd3QN0b_|%SzMuIwr0NHo)Iy@4~k#|k`n%M>p(C|YTff)F+ z1D$OBmAtVFda@F?8t!Cc7hNBHrhON0e9DvTm%Dcw5~?hxV;AC%@t`}&WzWa;B@Xw} zcjMO4bo;s=6FJjJ2)rlo48lzUx4?l;#8`ttgyWMmRCn{D6x86N`qw>l8&wVBe_!}_ z#34Wpg7C9x@B3-m4u28;PTCIzb{cTDcxE_lLu>+m2Oa}fca0L!o5?kc+iO}P5 zDEXAv_|1WQNGkq|=qbP1ukGi;m`=toxH}d5oa35wLSQPl`6CqCW6t{>+7`R?RGfx< zHujUtStUQBnQ3FD&XT4GuJj$TOQ&lA0u3N#^#TV@lFC>*V(?2s;_EY6QZED#e&xu{ z7m0&^7r2P@uLY*I%=$*)J%qm%nC4x{KLn1`PLFPdZ(QJt+-dpYqUux)tX3StO23YD zx#AF3dOhjmd15E*kslJLNK;aosS4_uB4MS|mD!g5gq3b13p*_GA*}Rt-~?K~5eO^2 z2kDOpJw!wq3W3!Qld#f2WRf;H|YJP|=kJY^Td5_O!KQ12LPo-8xn2f00X8@~4C#>`uVAbe^ zmEIdT;1c1jJxlfvLtN)Vc_?v?(7s(;R(c_h;LyXKb|esx#>ZY#*Yh zBaugN*_xRK3!cyHfjPdNC_&~*kM;j|8RFk=%DUh-?P+>=<>Onsm^pl7H#5b279I5@ zb~(@0qx;Nfu&qgG-urk|mBc4!;33!3&JL)<3!-Yhw3-(I`|;EYS#8*ghw4@=VA(lv-2OLNc`f$RD z0?!1_N)mV_>C&I_p{FFbcQKRv^pu1`JfbSd2DT5=1Gwanyu+i>rp&aKs1qWr^h2co zL1af*>2$&JPs0a-e(`DoPn9}h<^LhD{j$g>L_`^AuBw6wE1ezzsfHx1^lZ(au+nK7 z1$+H+==K0BvVkG7m-k7rczMXK30?imvPh)wVu122-Q zM2e$Yige&W7oqncoFVWa!d(TXB__~KU|O!TG6k+C++E;XfJ@F0_z3B=bwIEXu?Hl` zU%%97Pfvj86?v{~9U5<{_Rh*9AFb#sPZ4}@qtDx4iJL;~aPj=!KMxv08KO!~Bhh{h zZw}6(UY*Ym<;M9!sq@KAJgHQUG)&>>=!BI{=i^`C$j+DUl};DTRH+kII;~!Q5)cS0 zeJOCN(0RXjmwnFbqO9vRpDn<4ozMxZv^#-oGVhqPDZpNZ+{54*SPI5>fA}=RC|oqGDrsw^c5L6D@&fh`Ovfa2|R!>oeKi3 zG9?89w*dCzg(5cux4t^qNWF(g5{Pat6yu6LOa~R)I>Sdw-a=pB2qRVH~YuoEl z1a&Dz=+#3^pGEp=V`I~w{d{Y0V=2!lGP|`LkKJQ73=MpAk$HB@HJ~FLdK=Lr5qg4X z3Wl(-4jBqs6`|{i?gIS|s5h&E1A&V7nOKLMp$HSiG8n#qjqateBxXva$N?=KC! za|!5f(3OsLF462N@vj{X{0X8fLFu-tfwv2SHci35LzzS?iIz`OS>5kgLAN+r{YZ4_ zbd}ZUVW3Aq#p&Nhlr}4Mj`Inkb)cf4A;UpGzgS!{8u)smWiyrYdqm#_70!Lm1}&V0 znJLbf=+aB^|GW-;nP_m1c*TkH9Ra!rR5a{dqThjv(|>~KQmhuV0N{Mj0bMj#HC-jq z^lI_{a}E4{qMw7VbdmFqM5}8U`_M@{x)ihmtM7KF8n+Ss4i}XQalS;$u=p=>=#XDr9~&AST!z%TlDl-ZSUD>D;${V3DhYY!G(CsR~;Dxw>)4dMy>s}XAAY%_3R zTN1fNnrgp5>*npZ#K*nmNPhdYz35z=MLnzKZ7~>DUu?+g(V)P}QczT8Dvs2=mS9@6}UiB)j!^30r6*8Yo zWAs(he{+m}oy`Bm7=4}e|9gzSu@m>6kNTvwYhIsQIyuc~kBHG5rM@6W-zoL2G5T() zzX087H`!17JMr3gaK3R~QEs+uPv~_P+RZCOGLtA*1Q5qcU%@jPCJ+(r{hr zBwkY%8ynM4`K^}*;-?`xZ7e#KVFho*|3rE>Hhr3u+&^6lIR&}m2h8%g^Sfj1E-pQrL zTj)M1;gelle=1c{7^QcK*Hg5+(v=oX;Z*M26|U#n=stbwTpuf+eD2h*Z-c9+%e2~s zCvS0GR3x)6xO0qK_!Bkm&h2NbtXVs@5WZW& zCu-bymOhyGy}}(b4u|($;qDus{~Fxv@xqs|x>x69mF4Aw4^?<(U&!x^vfyJuU_P zu6Gmp%N8N5{2NK1>bQp(5oOp-hMA7R`JZs5KTNtTfUweO(5M0kE1fpXvH)lEtn{O# z%M&2nSKj`!cgY}|im*!XG3jzB5LWtEq|25gtn^c)%a$XobPJ&nblk1-oPbi2uxRf|D`N^)wS-nhDGDj9#@aA zqL=zpgafVIs@}B4N|iccrPJoe@52WIVWlqxPWAEZcvo`a0y2u9_cBD&ahQAZ!X>v(|laTPzkQHo4C=KR0=LDc-}3ZEzQQ=qJYx z^YsnT-EMvoS0nxvbo__TnYXw{o8PR`KUX63M0sQ;TZm;=PoVW%rM#*S7)p`~O6;_~* zeuC%qc;2+loyI%1wQ8Z?+SW=IdW!hX#*=L=H$MtvTl@Xi4M|3V=ll%(SRyytTB&?V zyfp)f-jBB~!eLlDs~-+mwzC!+cKDli*0gLVrxaVaw@yUy znM3cwuWTmrwk6gO=p#$4eK;6F>og8O2CZvxxOSM;35Pp}S!dwz@-V9p*@jt}IAjjD zMjDCX1;ecZBbhSXQLq2b;^p{t&BXANXIn2&;cL%vl0JHlbqOUcwbtYCV5wDUIaPU$ zH(ib~l6|g~0sXvltyhur8D-YG3F)D&35{d-+#cm5kDb0^iiBvO8DYO ztutMq8xLB;aQM?f)Ho$v@`Uw~0owCPtHDa4)~k1_?7=TxCZ&Y`@}xDRm&!GapKmn{ z!_UwA0y+Bm;xDYraX9e>it+R1$E_sGPtDbbetlaNVfe$hpRm@*A96*fWw(i& zCr4CHt{8GpB*pbKjI{8lzPK-3MjC(9A9ogLQfgcWlKXUwtIyF}D>?j^k#V0TM#*_}*nZ|m*7J^aqj_kI8W zdCqywY}oA|rfq*Wtu`f;lUtCPomr5co|#U;{+XVhQ&5;)Xz5k08Pi{7Y@`3*8$&-N z!;j80_Rqv`7BXgwTI*BH8AF=yGxmdHuEDe)5{JLUG!a7zh-=j`rcs>z*gqe+&b0q2 zZmDP5_r}oQGyFg4q3^BLzprq8%)9Jw;%}ETUB-|C|Eue_?=#&NUG6ew#rTWNWse;v zFc-zn$v;6HQ?MQZZTS77>+%=LY7;k(Rrmp>ZUU1TnMykBQ7XAC)o|7RX@o!-O# zgE7S1sYCvQG4wr!Pko8Ge@J}rG3NePW9VN^K>nx3F!x`U|KRB9I)|wkQoy?Ac440X z>p1mK%%kF*RUzh?v+6$>L;uObQFiEGXuZ+qWA^Wkp?@mFq9M%qzlov$UB=tDGQ%DZ zEM~^P6hlbxN&Y{KF>QS;5);?5n15#s{k_bFKgMGIUcB)Di*d%887$@p#Ly2(^lwbl z)?VwneeKfgMnC1{Rbh9ly3Dxt`%kxNPUUx8p?BcB{;c)qmt4>)`Bek-^!?j=?w=V$ zXZNhj3-(uSd}X90`E^wref!HlzQv4K4}J4#Yejg)7e;dUM2t4vrKE6r8?9Yi$u8&B z@41u0S0`y-r%I`iatu$()pm7kpATAK%!jpUF}+6b8|)eKDnGMVOW@_3x4kmbZjo|t=ZLxMEU$RXbiOXx-v|IJY zEMD5E4fA#{*f&@klGRY)ncSS;fIQQ|qNSe#U3+ z)T;Hy^SpVdHbHNEg%|D8O7+I~`Kn!7mEQOc|74f8UT=&I*X-81Y02GhrOY|1`-d9F zJPiejRw1|X=11H<{_3MzEwa90k2bXJ>K=*O&Sjl%Oz}e)+}(}u+pGD#mpl<$dH2BU`)?Bd-T80# zY6JBJLwS0W)~(C%pXYc^F+IL(!zosFw@UnISY}>w?Gya7YWEoaY?C%gZ+w8K@1xdk z>p zzbNu#@dI(BOdUh8#au$Vu(&eJKY zhSf_yQSK6l+YeHG8Pt| zR_jUQJC14Dp{L+;3G8^!Kv}ZG;04h%>_zZ?;G!Fsve&?iZ2UC%VDMIml>RJuIdB`v z&w*bHESj{GeGOg(F8y&H#|m__%>ghHT&#}8!M;4Ac$p8pzm2DX(}E>}mt}xYRg`&I zZ}3Gno)3OcgonKBN(diE1TQNEKWF13!SMn_1}_^2K2A{-FbRBxjo$)3D#AOkTfvvv z_#NQe6%Vlv>@ElmN&sICzRkw#z@N17P2l+v?ql1)qXqid?iTiB_BeP+#6Oum3r@F) z0;WPTI|`w<;P~{jUxRmx@Kp9Dc(lMY_8xe&MQQ9q@aYl%H1-AfMjQVc{QU?|$Fn+P zdjzMcn9kZl*k*G`1ixV8oxlST-i7r5A8X@T;L$PBjr9fZ60v8nV(|J153ph2=@z$^ zg5GR21e!l0^kx&lyD5skxd}Ye#;d^xMR+z_06yNvmx52Q@q57M+ju>A8F8@`WwVDM zG}|1027cVe_k%}UoXwsEA7ius0z6uQT=o)pX~dq(-U6RwbT2!7GVW3eDq*myj6w8gp14<2oCF6#y!E0{$5cg*{f?Hi|`3zt)!K)(v1K920izDT;0jvf>VZ@<`tptxQ zEJbWRcxA*si2W42+{U+oSK0WZ;589m!kz?=Hn4;p0-vVZPc!rd2+@05!d?ZR9_g|Y zb{ah2#?ONHu<>)?aW?)nc$tm64g0JrVR7K012%_b2&Zhk3;0PJ4}cfics_Xao|mvI z!FxnnJcN~kceC-4;BQ8FDZ9=<|JT@r$#6Ji<1@ie+xUF&d>dZ^{w3tnR5AA-Lc$)Jjz2cKlKe*-=}VxPo}SjIAJygj&A@eo$!WC+zt0Pg}` zYU91Yvu!*V9N)CaFo_KSkB*s1tQ0(Y9+<=`!3QXJHkn;#;~4)_*klNcBMvj!4Df9c zUd`r#M+>NCA@KWb_7&hYHhwSovIw8UehQu%>7hBS5&QvRr}b|R+Y5nqBN67Xr@<#H z3i}c8`8Iw6Ji7VJVQ+w6u-V@Oj}F>7>?80rTLr!Z$7vP8T7T!TZy}72WH6T*IG)b2 z@%G@AHl7ULVB=lDqqk%(>jhqGv*&_G$IM(d0DL{!t@1H}hC+xAl6kBG{M|?f^VqfE z7j1kJcygpg^VoE7!^Up|f565=;L)Xf9$N{15A33RY_xR{me~?K2)^6KAE68)6`0SO z!28?y)8NrTHlG~YKxVm!U1;II z2;Vf?{TK1y9K&N`>@V?{Se4^4L#<(^;6pT-!3rfOjb>wogHM(`)AEmHbq@O@lG9RT zvexWvhy9Zl>Dz`_8a)xoKm}eY`DMT+*6cYB`zp!l&}5>DdmZ-U4*s5l|FH${iYLM7 z0oQ7A9|tetSHGe43H{U|haLQN$!WBj_~)W$PlV?XO+3A%OHLZKGuy#S9eiR-9%47Q z6j-%`FOi%^lZpGe*I_^A;P15XPi6^mR5cN-3QA6!gvmmFHd+ee)~B*rk~dfmX>64v z1Mc9P6u0hNI(tEJq^AP^=-|2SAcIP3*n{ zB`1yG3d&r{e5qBy05(hVGVm@quWXV0eQS)Aup^R} z)BQJD5j!gd%9dLAse_-Fe5&O?h;`^do+6O{RStf)gRgS%I?1gKfil?WaMPYZ{gTEvB2gtz0UK2~BQwA!) z>)=U}cZ1EuqhY?}l@=eyW>{R5Z&hHebeL&5l(VCfgIf0U4xW)j77?fdrIOP&XyUvw z(_vrI!d}T5iOce>0-lu)Ypo1Mv2&6qTO5af0tjMIj%7J5_&7GI1s~7mNiKS90^2P4 zG;0u6v0s9#@~sM-lnzt~wdgGeZ+7rcC0_<#6DL`d-aaB=UV~3&10*Mn@|)YjK80=W zD9fjwHSuJ2%#q+j$?4=_;!K+C2atg>EOPK4OHQ-Z#HoCh&IxB`1{%93(lNtxOylr#S454!%e7Q&xU+*-3}}t&l@#n@UA7_PABRJeDUp zX;zCJ{3^+-U^j7So-6q{i!Wrn1z&`N{jC$H+7Y;8^WjF(H3gqMek|L zwQ$=r+86Fn{=}>t)_d5XLAm)8@#02+Yz49+QlXOa70Akqps0VQ&sZfHvYz1;A zUT*p1hicmfBRPlMTE1;-)1}?>r!x zC6KHiGLX$Em?)cApz2bfs#&0_S)f{9sC){QsZcm44a&P**)CVM%O~d5tx4|_9`T`e zEYA8uG>k7qce)HW4Ws_NCPq)nx`LK&@wy?$LgF2&d8N?loTzjfbY?$ZebkebEtB=I znOl>2ph!koC8ODC_S5+6t6V-+T!zg~MVQ6^u(()N9KY!mPuCc0AsC|ZB^92ejv`^2 zEkoL@%%K{;*Xv45F-wI5RbJJIN;j|4_`p#fpH{}3y?T=WYT-stKg!Ko@`q_W>r36o z@Aytj2u-7e<-(J&@?1>1tRrEi*OER$_!CyTwGdSZov_kRkpFO@6IS}0q+g-&Gx4s( zkU3H~G}|1$5)SxejIc^bOK{*eQpNk0z&wHb;u5@F;8C~)<_kQ9^aTQwRJ>5&jkpBv zuyC>UknhE!L*Wo&;7&q}eTW#8g?&btx&nb7X@hb}wuatd8hU+nG^q1PSE8%mD6MYx z5uY}SSG3lX^wHLh_32|Y9{+1kVot)3M0+!km11gLy zc5065Kf+3{Cw;iazj)e64E2|9s_b{>NjM~2D>5Xk68eDyHTXctMJ!%oLF+w3kj{+= z)Tx2HEQs&c&=*o)4qUuU=$oT@0^1rT)>kaWck}75c+w2oD$MIP)apqc$BU|@K~Yr+ zkoAfUhhUXMvCw86M%LjQ&cRCMB2aaMKd~S-8CWOqbPeYIBI_=YRMx%8dgpJ)%B$A zt3?U}7xOw%F~X{1){->bT9Wkf7%wM1zIOLSlk^+K&zX7>MpgqdqmiXuhbcdXp9JkF z-}m*fYUPWd(gy`<7)HH|CtXh}{ ztN})_ZoyiCOK}OT6PVVPpwy{3#k6=JI6Cgk&6-cY5gm94jhey(ZhfdWn9s!}d$6cI z9g9`@*4(&B=!BI%7ntVEE3s~$J{6tV$MA)27Jln(e%r}UHk+_YzlZc2g+F1X(=;*Z zREl7qGDk_jMd*Z;{|VCNY8@h?46g&LIZ0UQ@7r|3N3&3g)6IQwxxa3}Z zAWT6Ftd}pvXpIB0!UKfs1U`*R@qGe+Y{SXG7}xyz_Ih*`p&_bD3IMBpg0Rwu0IL=f zR{B_ARb#?R9|T;o0UrqEh{g35RO5q4-EBwA$mE*Ao7!QIn<+Xy17?*|Z(x+nwJ-I= z3{_Nrn?pWuF~<)`cTSkWVsvDx$e-3q)B6t2%!*B zr5yll%9%h|>1Cu(5OpA|beeXitQ%paFDCsKoEL_<69=gKwA|)E-LE>2uu8ZVxcGj2 zAkZko8hWmko^-`LQMP^MF<=hRAVZ){#rsnWT3=KJHwm0h`h&dcl%AGmt=J1hK7>_~ z-GCDo@*3=<+E{)v+qyJ?bsQj^``Vn_0-K9?GtB-)!c6H^UUcuxMQHal%@-@z{c^r5 zRqx6x+vvl!;k==Zo)p>)H-vP=fW$Po6{frFeFz^2MTo%$d>~9m3~aHW^&N3=tH9K0 zfrkZt3>WV;XM1PPBlAdJ1ak(B z3GhA*}pq za?>Nk7CJ_)#-VJy#}}e+=Md-?DZll=<{F_BR{D0*BmW5Cv?I} zKS#P8CLtoq@HH7~MFPS~#~<)S&UJ*9o=UpRh_KRo+jPQ8r?+S7W)X%i9{T7xOl3q^ zC7|=Sst{qN)9$E74`HP*1@_;9nj;Wa`f}hDsS{TEeOf9CxEBh-eKx~ZU~@gsOvHq$ z6XqtH`52jNc@@kd`N&6qP@}S?iBfWi@)R#^iw_Ij8yD{pf%9<*NK6Ad@VwAz5SJVk zcrh-)UkJQ{@G*gDvoHCjz#(hdr`wBg2r=*iA@Q|xfEGf8wy2!Ss0g_DS3;+=x6(HO zmz)s#Q>4qvy+rueLVug^O9Io3_TPthC>eOf!1c^PTsLTSXAb-HdK?$qVvyHsbz6=k zX?Q_GY$JyLorZ6~{m2EO2vPM|7vR9l_&~@;44kx}_0@7v;#f#@)}WU*x_>&aPQrRS zogXsXN!m|&1DM)p2EkM1Jcd$XpZSMNV|_9bQwJbWN2|oUffF|IOqfG*oKx$SnYtkG z3O*2M_bZk-6FBfHsSMv4MRi&X0?bmT7AtsXR9Wt2{5GeMuP(0DIrS z2f}lRL7Dh{!f*0($@(?z-XbHzSJr6%P+rk7x;0Q|t0q|M_(Qw~<}CSSMI%$0P2j-W z_&_K{4E)A|R<8c>bxmLS^px?u8L71`w3qpGb1V1yQI<6vC$kwr)M%*PXe>6@WShdCvY);`Hq*#yC)Pa8a=xp!6N#rHh z{Ejl0X|`PEkbN3&=&C2pkndy`+04tyEbj|pRXB~jk~8=~7=Rd{JC9I?82Ft9t-q=W zN^Fq+fzab{DgHh8UZVGFcUDO0B>jPpCFw((^bv1>#IL?YPl%x+9j|1v7KtfCV_(&* zH?Z3L2rHe&wKI$4(g8ve9(^ zRh6oN%@MqY%<{2emCamF=8?Rq6ArU`McZixtJG8;y2hK1)Y5#xW;T(+Y~n>^-X~J0 zHBsc2&G`Itg>=D-?>5fmrfK3tE4T9h7=s z(*GoM8gnIo7PthLpv1#~i>dMmRfqwZcD@a-C;S(DAZ$hqer-Wk{35P_zY0QAxA+@@ zY4-|zD{vfP=`#peRc<_R@kPcxUG)dFN3Ho3+5-*2KA-4z2EMao{7DJgz=RJiiN%`0 z)c$}jur-cc0#iGS>G*?St%V+e$AOm^0#5-hjuAM4=6OImwH!xP-LPOjL66`*z5gg) z3z{L%5!AEl=1}Ryu_CwsF@uhOFN0RRq&uD_p5is#G5%<4M=%jpG2MtC;LY7JM4l1m zOq;ninV;s~3@qD`_wYp-c)juzZSOwqIo<#p-kCO)V=Kn1Q}R5BhXQ&6e5U@=XtvZn zs??dlXnQ8i>I}8mW}XLJ+*;Je+N9*cm$1r$`pP^keC+);hIF}K6IT9Jq{}%%Sm_}e zo+<%hWmrzSOh8!a8*MsarBhdV+lUIK0T)Z03ml+fj4*_7JAtPH2jjG4(yc$G49EnO zQNNH@x9_V&SO1X4_jT8MhvdRTw@VdBb4gX4u+k5aen=ETSn0Hm`me_af_+VG22YVX zVdeh;uz6JE6C$Dv)+2%JV*4Wjy)RHbMp*f0k}mxTE1h=sKzj%Xenc-NLZAUyEHN!S zfp|?kDinc~(2|HyNjO1Z8d@bC1g3FRk|^*};Gp#1NxDzyj{_Gc348)LkSy>ggk`~h z0uFW*x|@0aX8+UiPCN_W2kHKyya+qEe<%_l^hQ(-q+4$u!&^V%a}oo4=0_!Cz8Q>2Tz5n@D?;V2o7hy;X{{wlEA&j~9%9XQ|@{yhk%2;84=s=yV5 zFAm6`Uxlxm)t;7YpcMUm@0HuEN6 zbEVJ;t7O}O{d4evKv?NC22$qmny`@+lGz=wnO_7}*%4OBUI+HyiVp0E<=`_bp*#N>y??SpC3Nf@0*8EDgFS_z z43_{|5ylag36=r}CEf~L+)Mbl;pcdy$folu0<}RklqR1^J%~V9=|#ZkNFM(Syj;M0 zI&FhHag6Gau{Ota;6OlRV68Agf%BmU=>-)+U&4I^t^h916gU>xKa6{^yyF|KiY#1S z;MMe{3BFXOHxT%WgV+o7Jej1Gi!W5lIenp`y-=Tn=jtqx6RjM%>q1cK zR%sQYw2Bs`jTEKfByTINQj}I{D=j0}R$88|G`dj;R%vaErDr6qc|Rv+SYl?ibJ-&>*& zZI%2Zu@Y|J-w~~f&=G?{cSPtzM9)R&=R^x}!!DrA4gAU>pqUuBw5V?2>xj+=y~nb? zN7Ox@u^pDR&rs0aptTka5$*qDahTe`UnY78bd+W7R0`T*0{#z(mDMbw)f4f*a&#)_ zAkpUQRaWh@mi5AX_w6_BEc!aJaI`($)|5i5e_lVXapJXem zJ|jVQfQkl&h@Okkmx&fGP}WYBpf#YP>t+!>x)4u*;{I0RTgj!@;733HRH=I}E4ot_ ziE?n4t%2Sa*H2oBKUOw?Da0nO|EsU>AE44yC?W}AKF(iOCj(DLBpapf+PY=xaw~Nj zRD0@gY^ibMBdNzaQs0-zYf5xq-)kJ{Yq0WL9fGt|ZRuA#((g=M|2tpb<&Mbd+jEqiXUk2j6heV1oJxA)zqCF1|>Q|+s5>1R07cjMoU#*^n%NAi1?s;RVYwBAV@ z&qs{WllZaGy0_=3W%xgjG*pl)#&V=)FF10}=MN!G-=mJ47cIwNK}{(+Mt3Cnw~pi= z`+0LIZt4X``em!+gh5)mJ*s1JFs?A^tZ$`oVPz?G%^&#s_J(Zlm#M2!JWWoxV9ZC7 zU++l1O(Y-hNM3zUH2ET1^3^gq`o#(tQ|jwApZT~$)>3)(eVQ-+J%?`aK4bMH)7?(A zLFLjmwXWy`-=qX7XUohJQtkgmQY4|KcX1@Y3x1@lpl~JpVj*G$v%-p0esZktGsim8 zL$AIT`rQtFRVq&>{V|8WR7|m}4`ZD%RDsT2_ zU5xo_7<;WfKXIKN{rMvNPEu01{dj%VGV2$O@bg9ChGu z=T?$CTDj`msh>sSRh{wsN_~=CgJP6~A3^FEzBkQP6sr_+N)DgPaQ&uCN#T>TU7h1B zCVn?5Iqa=*T_Tb|5k+0S!gWmil#_5mNgG^el~a}|JZH13r%PWR7oM=ibwiQNGMg9O z8j~DuKI2+&rIfP5sK%0EiiyPE&2YEYv<|%WEcXQ8KA3K03HwQwb|+TKFnsPr-LIlP6u*&gb<+( zqeEn>Ej@iTK}(~uQsM$%wvR3Sn1R}6K6LHgq2RuZYBwID1kE5mAOBGT;bDfw0m?kv>`Igq1#lbe!TS5LP-pshHOZov_m9 zk}exe7&!iyD5LWuTq*KpP`-v#Shh&glM_B1! zkuJNAu+lG*E_;r!(ql1HRRahsou-5u6NCpVLpm97$fiJ8=``m1n+p9>9Uigia63!CnGSAw3}QPMiN((t|?xqsU-y zfir=NFBO>10Qj4S@SSVj?KFcr!yLoU9dr3Y{$$~SQ+uT1^MF&NPFOXFP7Hn@J`e~i z9S2pGB6Y$_UkhyBiVp1mQTpvew-Pzu1e`$*rH}S0I;+ z_z&&jpVYc!0borW}7CTDjR>=qbdmbCR#y3_aG(o2Gbt{5*7R2=Dcf zdxU<`U3c>LKED1TNIm$kNJ=(%%{54#-QX_NHyJ!LF2=`qK5TgT`UZCo?Kpp?!F{Rz zR*ZFi;a@knz53}Go=L}s1t<)6fT6do@O}*UZqR(ZY>V4_*~c*qi(NF3BL(_ZC3~X3 z#PCBn8HFF%;_jtIwgqdy`rTId^8RWg2;(OLdv=PjhKugs_f+oIul{ZA;i(h91DKte zE4GbmF84f{E1hz~-kF{?tt874JJ&O}dj{PvrF<(5Pl-34*5ddZ@kUo8?o5K`jX3&& zw=|w=8a2=#G>s&oCySq=J7*eh{wj>^;?A_WKT%8YjP8P8$m5!6r0|6a#uOwvlVIF{ z%is=19xiuuFcxTW;XigTCTFU$!}yiL7d8AZ{a!=i6HMX?zqWJCue}*3l^zwG4 z#+A^Amm2$V(XKMS#pS!JjFq^oEHf^_<&iSuQe0jxGy0IN%;=6w_p6QJnm2sw)kcAq zL>V^L+keLHHvB-KH+*=Q@d6dTy4*_oOu2D0B^_a`!{vz)#ze!a%Io4s1T!m)F3_*3 zFkVB>myR^nj#JH`8^K@QWsKEK-fOq<6I}N1HrC)W@KIxSM-%1W*vDS}n!!DH6nISj zt4EDl@anh6=%<ow<*qmM5*Z`_8< z=jTz3k1zSsNHl!ZTYW^EAN$hy41;vbSH=qQ3zgZKdEw0XnAvJT6^Idc&>z!N)BNF& zQer-JX@34zrG9bnP0VA@2Bp@InNPvid$OL(a zq7p?@L=YnaqN0MJqo|0_Ro6wt=c8CMa`N+Yi~DC}0%7$)TU)?DTzaJahlB=D*IKUJDrIkOq-$ zaVGQpzs_^NWgeMB%yZc_zhVyknw6vO(9hg^)B73wC3EOME^PP+X8!Uy^uI6ko~_Ju z<|mdj^FPiZ<@{v}<=OjLTx?$0lg0ha9QwHd zzp%eIw#6HUbd!?{_nkMS8K3D7@eB z!F${E&YEZ1OZXy@aFHi<@7WvokByT;f3f>^p1QZkXBSx!#e0z_W$!&F-)I+6DnB<< z!_9GgluJqZ;_w_-O1OP{{%w0D4G^_&yHmp5Quy~>v{yJIpFi1IGtpARQ^G%v;&1D^ z3c`>+@_OvHi1d7(8vbBD@1Lb23Peo_D$W=DQr(s!yAXHbfTH{jV>X`Nv;KC*T#T`N zWX5{2&1@6nK)3^8XCf26nTa9I?$mJ3R_^7-8E1>qJNRsVkGS^^e!6i+rFi2GzMOv~ z&fUhxVsqymW$jz z@!EadGO|XAPwwO6+b#J*#m*2T@8^Nv^f-UdaLu*2EMvRab3Y&EPK;wN@%8<@N9ORy`+MGIMyJ!7-)7~jb&=b{s>*zIn1TCZ(CBzoMZ5=~~T7_Mt4MdRcrS7rrI zxq7ZTwX)|kr}|&@Y>6&YdvxAem}PfuZ)b;7=_|#l_gryCucq+mhxj-nbNe*vI2|`S zvbWuJ3Dx4Mhxq{`>r!#$Bm9C+1MFh2>fKx@(KTYuV?0&F@8|8~Y-RgOk+Gl8%-r6H z<12k`a5f^MZlI%{8a}w6FGD}wFNQqE14h<9DzB%J^+5Qh$N07U{PJ@$M$VX8n~_m9 zuWss`b1qssV^Y@ijA={iW}KffbF)$Cbi?+6QLYs4u8B^-iCLI)-O=2<>0 z;Z2C0A;|q-Bd&Osj}@cWdE&+9Bk1eN>pbXipwP{%1+HD;>X-5CQ}DuQDEkV05cm{j z|0j48u!1P=q-I~ihYSOCHS2s)qu{CC;`c4u-i z!Af9{s$Mn{d~n3c%PPTXCYQ;}CV|ZD z@PY{Uu{Xe@75doGR`yi(F?i7Sr}|kcI|gBNq<~cREqLDu_p=|tdqj8_*2e9uFr9S* zUlp;ZGe7to2R{vbqk{*)KOk<`&obBm2=_%CGT0FCZ4Q1W_;(II7CaE)nQS8X1P8wW zJUS+NusPtF5qnQ|DR?8etRF=!hma9*=*zAG@8IAK;5{6?2|UNaw}O{Ocpke4e6oY@ z1E(`craX24d~u|HmdBolP_FIZuYk8W_&eawJNQT7(LK&%$H2!s?0*N3HUKLfoUbDz z_I%bBe45^WS_)YZHai@;fbVzkp5TWaJO}&-2OkJt>ELDH(LK&*72w!omGaqm@HQbe z&r$<{3h9sCXO8V7$5JX(H`ed0m?M<Lc~6reFknh_}{>z6;!g5 z;L(Yul6i2Mi`vJrc<`uwT!^JWSQRO-ie-S0cktfevmHDSJlcTqY!En3b(O}mAb7Nk zC$LfA@!E`C8Q;ntn#ihKIZR};S~*N+^IO>`v!&pNA_Y!itH7hjcnZ4?yv|{71b@K6 zZv&4sFoY>$CxnL_4tu~~a_~pNqsM#-dltMZGU#g9%iz)TyoS96J|Yrd!`=rU>ENG% z>oJ4zU&H;5n2VV@H=in>A(&{>^0TAVde* zOm;JPbmE!GZUY|@DPR`c*^19*d%%}R>6pucKz7**CEt9 z0*->Oitt736YwsPE?vaF0>8y!KMB6s!A&eCr#pB8_+kg|3{Dp-SwAi-nGn8nI0V3> zqkIu708e)`padLiaFrIZa`5QPx0sy+zCfE%^Jw@|aN6VzwB( z!BM~p@FNbs4*W(3zX?1#MwYT$!H-7lOW6+a9~}IC@Kmn$pQ?TYf*IMPrR*v2TO9l) z@FE9)1N>SCZvkKB;Gco-a`3MyKGJ|?>=gLmNc~umo9&!~Y#B=cAL$541&>a}%UE~t z(GmM{)(1Q~b1rB7!J~tCIUC%{zn%>T9~2F!XQNvM)JKXY;IfyCQOU(Nim`oN-9zUg zh>{Q4VkTRyIB9f_-WtRAD4t{cw_zttSQgzksYK-!D=y73xAc0AFz26o7>u7eDQ^=Q|RW_BHIhI##Y4er(^i>7~Yw7D^eh1!xXQ9W?|VfOYxx1d$8-B{&XtucM9O2DlU&>Pu8gu zM3u;trMNtKda((LSHNcB8oWBj|5nAf*!BQ>QSm(RkcCyi*D(SARD6UTki&{B0F|f# zLt^;27(PYu@8E0U8oDmVeq)q}?6YN)65g-_3fLbM?*iT(50%YC0F|f#@rui{wTP7{ zPW~1f$QCFr$IxKbsQ8t(eF%F@@p3x;nOOH6Q^E)KAPKUBBw5>NJD`O1SDaL8z`z(j zRPkB1e<_<9V{eS%M>MD7PX)fI1;txp_(w7PuQB|a7@nDof>fgN$AIH%Z|Cl~eY#%R z>2a6cfGrT*z;x{)hj+x7O`dKc9}O~hLUV46{rng{UGW~ae>q#J_&A$a zu>CRq?byqm%4IASo87#c5$?VHrCh#$FfU=zj{hLJ4mJTUch^7IBdF9WneJ#rN42EM;zbRICz} zmk`5K6|aHK!lJHB@rklam$R8#upR2dr{2L!F{|**8FloIBKkgZ!ks|p9?5D1~_0r^@QP+e?04H!@@O8}6i1IW?`6jbNtN~ePAJXt1bvK~UR z%|I#=Qp7DvC$tAtIpr%>-vk>1B5 z?OjCP_Wq+YRSS!v?zyUkk)tpGNL2)+8jWIAXt6qe1B!JEi*@6Rb>oXw0}FDLPeHF7 zWrHNUydYQGaZpSOLGm(p(VgbeUSr8 zZHToIE+CgnTt)gaiD#02g~W@oDWf(bZA1>xRS0P_vbUa)e7qP~A@L{JWUIQ45vFAp zl0`Sh*()V+lTcwFc0N&LoWxNHa?!oQmFyZciErrstk0Ol#jqfb(q#K68Rv7+>3L7G zkvK){hI<>;7eTT9dwyE_B~)Iu+<(IQNYQ>;6NL8^DyZV(%YA0DF?f#MY{ijUcSs zOqT>}8W*oT=JD|hgg3#kJ7?G<9$!eEB1H~&d!4U(gRm~f-j{12Akn^Lud^YpC@6l0 ztd_9$&m_G}>V&o4mvmL{BqG{SNd{FhVXf1#4P1*4qz=d$#}mGeRQZ}G`+AAVUmbKl zNz}M;R*w=59kJIK0=H+=F|QE^!L!!O0K4PV!$D`q(J5+G*|UUk0fx)(J-&E4laR;_ zb%<9k=E<(X0AF6`_8F78;Nv|$8e30tcXBB4BDwp$;H~$j1lSrSb;4S=yIs9VaCSSL zM!For+J73brOr^oTBp-X^`h9m$>=l>t%D>V-DxK}?-JE`C9HMYC0K(deVjS`Q< zCa^(bnrgC@PDiEeCaF8RojRJY#$+`I=is9lb#n#2Gjb+Pl$gVk#W8N=@(Ph*7%81E zk*%A8LUb$YfUQxY5@ur_`n`|oH~-Q1VxV#B`{A@{q>#0>;(?qj1Q!l$bm*1+OM)TzJ+ul^>?u; zqYg*<3|Zq;U>Z(0ER*xeVbq5U)8Pcehv}seLpV>>J^`M(pGtv)P53|>ja)`mAvunO zIsuG2Ts2m?ef(0rzT65=VtXqVuyoW|r~|??3MoLro(G zW2DwZPyBX6$qV=t2RTYpGu#kIY2{Sf3~?B~x-uH2x-z=hSPL5CqK9~m!%Bw?6G9Hm z@wWma(P70DC8iGJK7NJ3Mc&sxKyxq>^@aB~8`>|CvYRE&z{Y#K#BH##Lh5=`FAjId zVN6^h>NBwQPZEc-u}_o4iM~dPf4J%{?6E0%^vld}X4; zXawl#ld#rlU#;9?bl4+of4-X#WwpcNxmg~x5Sy)SSv+yTO1Z$+Y86PB;wjZ2TdFS! zYkdysYL+Fe^(#rQ65HAvXNInngL13GOdX=b2R_DNS+$D>pRS*}Hn?AO z=x7Y`D|3>=Y#$amU+JaAx}RKH@JGd4D1%=q8jg5UjB9Zf+wV#aS=Y&~qutR}4guC( zM_B8$XZn05tabYcsguNcgcdo=9TcS2JJyUPB4008 ziVc{?9>JQ4R=KottijsmX^+qUgbXafrtF}^|F#g`K$o(}sZGaEw{9FTu5ex>Wr(`M z)i|tlv;t4!11TRl_>>LpZ+4YEEwPDBtEE^jX6?`ovZH-4>Z%3<FU%W zto0hwRYw!nIt?@HMp+JFt<%I|ZIF71h&IqHV%;PSgtfknbaieL*7`%F-z@zJYyCOW z8>LQI>&Hk}4J8b{2R8EMsU>8vh11>+yjUBBBlT!2U~Yoe|bLO;l-0C#?0GfUS-AKq9R5t)w?e zov_w-ldfK%5{54CKA$6l>M6oHfWBy>7s`aSo{kEG&)D_aU$iKDR^k9QUOF~NG++Y? z2MPajcy&^TSr z5a6 zw~CA;%o4YXhD>a>h)OWyHe84nW3}Ea>Or$!mBr9(7kEu#I>E9PZUc;~KAwtTSu{^H zU_Hd=VUg!f3DH4A>V>SkycAfUErhi`o^*93BdqnGJ5R1fY~mfV-VhO8&@P98u-2*P z^{6MTb?UXi>-a#T%XFE-IlzH8NW~i-WUZG22i_!AemO7j7CXl#%ki15f@$8+g>C`X z!TTKgeqiq(@qt9+M8|$W_-#>zhez@6kdfgXHrhTKQ@g=^dc{Q}LGMF=>^npQ9*O0u zyQTt%*#ZvG@IxAj9QczB?PC4aqPaVcWHoLz+$nq~T_1ghb(d&<%9G+(t9Kd_x-R>` zF2Wt-0e7;?T7c_I9PXv>#;v2__Vqj}OQw+!cu(S)gj*zTgAMHnUyDJ6?UOWAcZrfz zwBUlq*FAI_RSV*OU;1~!CO{p6^pmmo{cCLJKTCf*_Cty74xA&O8O{|WI~!->W`(*- z-_Sa{YZ_v(csfYtIdX)}hNL@S0h#BE6EL?4O7k+Yp^b4`DGjCINBBS*f*knRhW1w` z1AmdY3Y%<&P4f9f>hai=eJbkw#vm~?4gW&)l;0T8@pEa+AmbOporZPJF^6(`L3W*ov=ZzO$!Na~6;@6FxFYJz^INLcH1Www+*VXa#z z!V1fB2x~n9IFaUWB*I$nMfxLB4-wIZB4EA3B&_uj4xO;ptAO=op0L)Z0qct)VXb@7 z5HGbHsV8#qAL^<~vq-iw(2N)S9v?_Fl!O1Yq5YlrY=tWzm7SD&4K@K4yV!wmBzy`V zNL!Gzf3P8Y5u3n|5+7wHD2SnnNFA^VaEapyE2mOm-MGoXWrp;j!Qmew8qUKb-XTnU znP^~EdX$Sjk9t}?Ovb3e1C;gheZgZgmiAuvN(q%yD-P1-u~yVR@A0{;$K}KOY1FGo zQ;@a$OkmyVgtcA=tUH~s*82hnT(X=>;B2?VmjIV}xaio;xP|YtCl&snIM@xRohdzh z@Ce39oJrnoB&Nm(+DcqRKD4HwEpl0ViAMqls7H||A_qH4Of4>>-bJFRP5Y=b&DJ;c ze72K*#zs@G-jg1{)5AALNkN)}Tx@sR6jdj-__1=+Mdj+U1I z`|;EYMRfixFcS5p-fuc;){Ei~7J zqD|{>B*NO2deC}F>V&mEo^&-732VKE^a;|Ru-54`)c%CE9$G^N6+l=UHac{|T5kvJ zr6~<59l1>5eBeN$)JG6bl6V$ycCy5)NLT(;4m~Bgy}Oa@r>7*8;*oVl7O-`Q9>Ar9 z)Eyp;Hf^T4MDGw`tsf-)_p&&`TBi$^e>y&poENVa@HC|p*8U#?TQAFULPWHI&Q)D8 zVXf06Al;FKwVvbfC#-ckjRHOhNPc8*io|sOlqpOTZ$N*mv;-vBSvrj)Ot*bVG}wY^ z64S^EsxS6l37oC`?>4ddTooF4A4I`}ehe?<9 ziZ9ZPj&aYB@CPh{=W@JAs*w>#91$77f$mc8ML1L9!Guqfn5LLO4~c2I&d!p!mT*sr zZvielUE;%})6xOSM8+DBpm_aa-ie+7(JS&i)jKrabnESzM?G3`&O9aX!HvG?bUAJc zvBJgkd;ffBNEOIBoJOMc8r~e7MMrgkIG7jb3#Ba}H~FMeJJK+PqpcIxI_-~tp)K2A zy4N~gFw>MySnD)<`AI+`to3EUX;K#h;$7BRugkiwb@*%swi={PSjX-F_AkN*5@D^= zQBGSV>K`yuLaMm^4)cq^x;Vl*>@{HjW%xiMto65m)09qF>n*_gDHdU^e@*%-+1wBj zZTJD$e#z^b|s`o(V(8vks(jWKfqQ!a86U z>FRPsSnGA9t3gLt>vRmXKVhxY^BsMv64v@I`ewa8lXf`_sc2N7Hv}X)O9Fi)rpv9y zbPfm3kUE`(fq=yC0%vDSe3G!zX5VzO3?cojX=O`6W;+Fk7+6Lpo@U45a=(fV$C47HBv-X!(<0Z0XCFiOdqCN81TlJ?6mB zB*v5&XSQ7nI?|@M5j`BC$BCw52uthGVW2e;x}NAx(C<)hlX#D4^JMMZuN3qXP-<0^ z2obHD!q`r`qL+zwsh0o#(j>Z-f$jobWn1SF&8d<9+R-GQAi4^aZmXI^LJ+iND*heH zAX-hda=I?+e%lJV*)HlwqRVFJqQ(pdJq#*$|2CquSZT1Gj}vVGl@$#g0s8rc@{-Xc z))TFmrJdg+`Yxz+?sq0=(QKTVa({^~yBPn^YtxsB2ItCGoY>!ypu0h3$Ic`A9jM&> zCx|Y?Y(WzM_V+B%#q)I6RTIsqmH$82BWf3Z!6o(=j8sEl1tbSF%*bKWCbv_#W>6`;?9(&>fcOO#zMpHMc5 zmx-o=${p-B3bZCd=Mmi*p-&J!0V=yLVKiv|75E2!d3;A3r-`i#6Rzd zpY4c05EI|aCo)P<|06N+6)U6tH^&kGWla1KpEx)M@t?=U--LL3xFD7;XuAIb?OXTX zQlIcvBK~yft@>}38Y76ssEx!=kBPt5Cu$JixjH7k2jb;8={MHsW>_iWa1Qs0nPUxa z?^&zmk2uh=#VHUe`_-7T9~M7W8Y#txVv3%yMxCw*rG=N?H3Q?zIkZlQF=G*aDkeN* zEnYAfa%52t>F|Cr;V+8Y5I(REWO6A%rZn;zJVAy)jbDna!!L*lU!ErFgNCnoN=$s^ z_3Fe$>@r7uQ%w9(F?1ZNzbPg>e?6*K=LOxp=<0tL6JFFsl#Ii1eJUn?FlGrIU+;+j zQpKZV>~v!n(Smrx-%+fsGJ0CWJIc=0_FKA$+G_6WG&@Fb776E~*-Mn1r;59?i}Qat zWl?mj*2aWi+Ep|(bD#Av^fs_#vb59UuHqo7vkt`gLvOBt{?{0NX;+a^W%#Vr_}0x{ z-c{7RitF%*7=5KG=i(TBwesH-qhF)Se=$bCUitqmM&Hm?c+W+9(i2*@=a#N^H(DcO z^k$_mjL~-}eM^kKOX)8_xBE>Ur+r;T{X5v-IIpZXNA)N41{3|}Rl1Vdv966C$Qh8) z^|eu1w3xhS{NQw4SGvmAl%;$_#!0{V(jfdaMAr=^Co|394fvl(?}nC7lT(T_94WUj zPySe0f&A66g!7DRR;ix|D+)KiW1O2A{lTy<_zkkeAB=KSNrf`za<{9oV{5N|ma8-_ zBGHeYh1Yj>m9~jUHC^1P;S=3me=OHh7{7YfJzg_m$0S_tO4l)}va?sZp6j5z3Z+-S z2G_^ht5~4qlyLthS8tbLCWNPKc3n`S+>1rYC2^_YmUmrChH5Dc_Z1bA73av{A7{DS zah@pJ&34ap=g#z);YG9E$2iXtGv>Jax%bRmZH8}|<6hzxE8jC75e-k9H-;xJaPQ-x z0(}bNXMF6(wsaoZsXe17g7FSJ-Hy=RhPKm<+Cc}WJDa;5oL2mPM?9^Ddph_C&ctO(~T%iJM;D7^PFcmMc;*WhMNkiLZVEz7&4 zPm(%et$#xLWKlU6U#}i7&EGoAG|O99quL2rhtY#*3#(H~gtbmj%B=IHPFU-7&t{z` zb;4S=Z(%QxdYQV1wV8bjJ6#%_x3ILdw6I#GL|7Lzlk`bU%->?*@zP}Ju)yK4j2vir zf<#yc(i0?0?Kxqs+xNa$=~8mu`)(wE)gy$pe>3URZ1)f&q7A#qFv~XB{~50Jhe=lz z5Y{>k8eIWlt<$nuRbVfnwSI(jwF89vtA_yWT{5VyBCG>GCS45$!dm}|bk%c&wSJOx z)pLZkZeq0R9U!dr_$o4}K|rU7Hl&k&k?aY=TBl(@7{vVQ_E%j7XncY|7zQARt zOH9{(|HUkP#ntYP+@x`7jc>#k(#!p+(t+l0-ELZFr74}T)@cdk_u&JHu-2CWr};!q zyep+>AsOWlb7}KFaD7S>*7|d#t4DaxiJ|M<{W{ap3#f&_G{X7#K-w6-YMuMSj+iWt zZ*-q+d~S%0a=eWh*W@np&<~Ft66>3wyWQdhu1Vr6==eXKGj4H@F}`<;-Dg9)@fK)3 z#P3N#M1T~}YnRYrFCr%WbK2g5e?d2bfNt@lL^KZf{H@i!@p5Nt+{^wiWYX&Q+ zD2(6I?A=W}gq#22{;0QR^b44&;ccgRZtzN}I9HZ%PQK@%d@Y4>ak{RpVmb06_~-&p zX_I!aV?p4a0=%T{-~=+e=whkk2EGezpD@|PP=bTr-K2#g)A z_uDrm^F+_NnfS>>!8@91VrjfN6G89Cn-^d+Ji#1*&E*N^5^jaRNie79=(@xBUC$Re zPZDR8!Y4^gEj4d%pM>hOhTVnV+DsB1%gmwBN0pg-vEf1U6gEEw&8xAwdbrsYn>&Y_ zr(^T-aI+uThMQT~WQ{OK@ucv=5oRGzp#rxzI)82PQvAkdQuxU;%@?Thb!XY3kDg^- zM4{#8dTbsnH>*v%DX)o^OEE@r&NeflpL4ePDoQ@R!n}T>+KoJcpEvc1BRk9q*qm{v zc@;K$?=-K&X4p=1erF#VFr%Nd0oM)hy|d8c6TjbS&V$#WyUan{7ryK+)88plC@l`e z{rk-u@I#Wr9>s2@hA({7Ji`UL;ea_Dn?D{vi&Mj8PnaKZ(B4m)O=c?fUZdS)4}R}5 zIW_#}C(W6Cbg5zdgsZ{1U!3y=O7x2*UznF-bNmZb;}%H`l5kb1lvb=X8jhuSZmWIpm&5j_b{NdiYac+!rpMF5dLV{RT8SEv_@k{kp_8 j=ISO;Z>5C)JSy(9l!#=np#C}|ZnRn(p%$!vJ}&t`5)45< delta 24376 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 AFaQ7m diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a index ce01aba776416b148c1f3d069beadef2ab6cc175..4d3eb24c308060610c0c6ce6c860b6cf52553569 100755 GIT binary patch delta 25209 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::GetComponentFromBindingObject(context)); + if (component == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get canvas component from js object failed!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get canvas component from js object failed")); + } + if (argsNum < ArgsCount::NUM_1) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: DrawImage arg error!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("canvas_component: DrawImage arg error!")); + } + char* imageName = nullptr; + int16_t startX = 0; + int16_t startY = 0; + int16_t width = -1; + int16_t height = -1; + if (ParseImageName(args, imageName, width, height) != UNDEFINED) { + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("parse Imagename function error")); + } + if (argsNum >= ArgsCount::NUM_2) { + startX = IntegerOf(args[ArgsIndex::IDX_1]); + } + if (argsNum >= ArgsCount::NUM_3) { + startY = IntegerOf(args[ArgsIndex::IDX_2]); + } + if (argsNum >= ArgsCount::NUM_4) { + width = IntegerOf(args[ArgsIndex::IDX_3]); + } + if (argsNum >= ArgsCount::NUM_5) { + height = IntegerOf(args[ArgsIndex::IDX_4]); + } + Point startLocat = {startX, startY}; + + if (width > 0 || height > 0) { + component->canvas_.DrawImage(startLocat, imageName, component->paint_, width, height); + } else { + component->canvas_.DrawImage(startLocat, imageName, component->paint_); + } + ACE_FREE(imageName); + return UNDEFINED; +} + +jerry_value_t CanvasComponent::Transform(const jerry_value_t func, + const jerry_value_t dom, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + if (argsNum < ArgsCount::NUM_6) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: the number of rotate method parameter error!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("rotate method parameter error")); + } + + CanvasComponent *component = static_cast(ComponentUtils::GetComponentFromBindingObject(dom)); + if (component == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get canvas component from js object failed!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get canvas component from js object failed")); + } + + float scaleX = FloatOf(args[ArgsIndex::IDX_0]); + float shearX = FloatOf(args[ArgsIndex::IDX_1]); + float shearY = FloatOf(args[ArgsIndex::IDX_2]); + float scaleY = FloatOf(args[ArgsIndex::IDX_3]); + int16_t translateX = IntegerOf(args[ArgsIndex::IDX_4]); + int16_t translateY = IntegerOf(args[ArgsIndex::IDX_5]); + component->paint_.Transform(scaleX, shearX, shearY, scaleY, translateX, translateY); + return UNDEFINED; +} + + +jerry_value_t CanvasComponent::SetTransform(const jerry_value_t func, + const jerry_value_t dom, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + if (argsNum < ArgsCount::NUM_6) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: the number of rotate method parameter error!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("rotate method parameter error")); + } + + CanvasComponent *component = static_cast(ComponentUtils::GetComponentFromBindingObject(dom)); + if (component == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get canvas component from js object failed!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get canvas component from js object failed")); + } + + float scaleX = FloatOf(args[ArgsIndex::IDX_0]); + float shearX = FloatOf(args[ArgsIndex::IDX_1]); + float shearY = FloatOf(args[ArgsIndex::IDX_2]); + float scaleY = FloatOf(args[ArgsIndex::IDX_3]); + int16_t translateX = IntegerOf(args[ArgsIndex::IDX_4]); + int16_t translateY = IntegerOf(args[ArgsIndex::IDX_5]); + component->paint_.SetTransform(scaleX, shearX, shearY, scaleY, translateX, translateY); + return UNDEFINED; +} + +jerry_value_t CanvasComponent::Rotate(const jerry_value_t func, + const jerry_value_t dom, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + if (argsNum < ArgsCount::NUM_1) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: the number of rotate method parameter error!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("rotate method parameter error")); + } + + CanvasComponent *component = static_cast(ComponentUtils::GetComponentFromBindingObject(dom)); + if (component == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get canvas component from js object failed!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get canvas component from js object failed")); + } + + float angle = FloatOf(args[ArgsIndex::IDX_0]); + component->paint_.Rotate(angle); + return UNDEFINED; +} + +jerry_value_t CanvasComponent::Scale(const jerry_value_t func, + const jerry_value_t dom, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + if (argsNum < ArgsCount::NUM_2) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: the number of scale method parameter error!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("scale method parameter error")); + } + + CanvasComponent *component = static_cast(ComponentUtils::GetComponentFromBindingObject(dom)); + if (component == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get canvas component from js object failed!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get canvas component from js object failed")); + } + + float scaleX = FloatOf(args[ArgsIndex::IDX_0]); + float scaleY = FloatOf(args[ArgsIndex::IDX_1]); + component->paint_.Scale(scaleX, scaleY); + return UNDEFINED; +} + jerry_value_t CanvasComponent::Clear(const jerry_value_t func, const jerry_value_t context, const jerry_value_t args[], @@ -843,6 +1011,67 @@ jerry_value_t CanvasComponent::Clear(const jerry_value_t func, return UNDEFINED; } +jerry_value_t CanvasComponent::ParseImageName(const jerry_value_t args[], + char*& imageName, + int16_t &width, + int16_t &height) +{ + ImageComponent* imageCom = nullptr; + const char *src = nullptr; + char* imageNameBuf = nullptr; + // The parameter is the file name + if (jerry_value_is_string(args[ArgsIndex::IDX_0])) { + imageNameBuf = MallocStringOf(args[ArgsIndex::IDX_0]); + if (imageNameBuf == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get imageName value failed"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get imageName value failed")); + } + imageName = imageNameBuf; + return UNDEFINED; + // Parameters are objects retrieved from HML + } else if (jerry_value_is_object(args[ArgsIndex::IDX_0])) { + void *nativePtr = nullptr; + jerry_get_object_native_pointer(args[ArgsIndex::IDX_0], &nativePtr, nullptr); + imageCom = reinterpret_cast(nativePtr); + if (imageCom != nullptr) { + src = imageCom->GetSrc(); + if (src == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get imagePath value failed"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get imagePath value failed")); + } + size_t strLen = strlen(src) + 1; + imageName = static_cast(ace_malloc(strLen)); + if (memcpy_s(imageName, strLen, src, strLen) != EOK) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get imagePath value failed"); + return UNDEFINED; + } + return UNDEFINED; + } else { + // The argument is the object passed through the new Image() + imageName = GetImageObjectParam(args); + if (strlen(imageName) < 1) { + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get imageName value failed")); + } + return UNDEFINED; + } + } else { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get imageName value failed"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get imageName value failed")); + } + return UNDEFINED; +} + +char* CanvasComponent::GetImageObjectParam(const jerry_value_t args[]) +{ + jerry_value_t src = jerryx_get_property_str(args[ArgsIndex::IDX_0], ImageModule::attrSrc); + char* srcVal = MallocStringOf(src); + return srcVal; +} + void CanvasComponent::GetSubFont(const char *font, const uint8_t index, char *&subFont) const { if (font == nullptr || *font == '\0') { diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.h index e7a388d5c..4cd9b97c7 100755 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.h @@ -173,11 +173,41 @@ private: const jerry_value_t args[], const jerry_length_t argsNum); + static jerry_value_t DrawImage(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + + static jerry_value_t Transform(const jerry_value_t func, + const jerry_value_t dom, + const jerry_value_t args[], + const jerry_length_t argsNum); + + static jerry_value_t SetTransform(const jerry_value_t func, + const jerry_value_t dom, + const jerry_value_t args[], + const jerry_length_t argsNum); + + static jerry_value_t ParseImageName(const jerry_value_t args[], + char*& imageName, + int16_t &width, + int16_t &height); static jerry_value_t Clear(const jerry_value_t func, const jerry_value_t context, const jerry_value_t args[], const jerry_length_t argsNum); + static jerry_value_t Rotate(const jerry_value_t func, + const jerry_value_t dom, + const jerry_value_t args[], + const jerry_length_t argsNum); + + static jerry_value_t Scale(const jerry_value_t func, + const jerry_value_t dom, + const jerry_value_t args[], + const jerry_length_t argsNum); + + static char* GetImageObjectParam(const jerry_value_t args[]); UICanvas canvas_; jerry_value_t context_; Paint paint_; @@ -208,7 +238,12 @@ private: static const char * const FUNC_ARC; static const char * const FUNC_CLOSEPATH; static const char * const FUNC_STROKE; + static const char * const FUNC_DRAWIMAGE; + static const char * const FUNC_TRANFORM; + static const char * const FUNC_SETTRANFORM; static const char * const FUNC_CLEAR; + static const char * const FUNC_ROTATE; + static const char * const FUNC_SCALE; }; } // namespace ACELite } // namespace OHOS diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/component.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/component.cpp index 554e82684..c5dded922 100755 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/component.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/component.cpp @@ -1314,6 +1314,11 @@ bool Component::RegisterCommonEventListener(UIView &view, void Component::ReleaseCommonEventListeners() { + RootView *rootView = RootView::GetInstance(); + if (rootView != nullptr) { + rootView->ClearOnKeyActListener(); + } + ACE_DELETE(onKeyInputListener_); ACE_DELETE(onClickListener_); ACE_DELETE(onLongPressListener_); #ifdef JS_TOUCH_EVENT_SUPPORT diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/image_component.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/image_component.cpp index f794b07ef..0dc4ad514 100755 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/image_component.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/image_component.cpp @@ -32,6 +32,11 @@ ImageComponent::ImageComponent(jerry_value_t options, jerry_value_t children, Ap SetComponentName(K_IMAGE); } +const char *ImageComponent::GetSrc() +{ + return imageView_.GetPath(); +} + bool ImageComponent::CreateNativeViews() { // set default value diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/image_component.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/image_component.h index 0868e2162..26fe8c21b 100755 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/image_component.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/image_component.h @@ -30,7 +30,8 @@ public: ImageComponent() = delete; ImageComponent(jerry_value_t options, jerry_value_t children, AppStyleManager *styleManager); ~ImageComponent() override {} - + const char *GetSrc(); + protected: bool CreateNativeViews() override; UIView *GetComponentRootView() const override; diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp index ce9a837f8..c1aae2c9b 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp @@ -329,6 +329,10 @@ static void ExecuteSendMsgToJS(void *data) if (flag) { if ((!CheckIsJsValueFunction(success)) || (!CheckIsJsValueDefined(context))) { HILOG_ERROR(HILOG_MODULE_ACE, "Error in ExecuteSendMsgToJS. Invalid params detected!"); + if (msgBody != nullptr) { + AdapterFree(msgBody); + msgBody = nullptr; + } return; } OHOS::ACELite::JSIValue successArgv[OHOS::ACELite::ARGC_ONE] = { dataInfo }; @@ -337,6 +341,10 @@ static void ExecuteSendMsgToJS(void *data) } else { if ((!CheckIsJsValueDefined(context)) || (!CheckIsJsValueFunction(fail))) { HILOG_ERROR(HILOG_MODULE_ACE, "Error in ExecuteSendMsgToJS. Invalid params detected!"); + if (msgBody != nullptr) { + AdapterFree(msgBody); + msgBody = nullptr; + } return; } OHOS::ACELite::JSIValue failArgv[OHOS::ACELite::ARGC_ONE] = { dataInfo }; @@ -499,124 +507,126 @@ bool setCallbackFunction(OHOS::ACELite::JSIValue callback,uint8_t type,bool isSu if (!OHOS::ACELite::JSI::ValueIsUndefined(callback)) { if (!OHOS::ACELite::JSI::ValueIsFunction(callback)) { HILOG_ERROR(HILOG_MODULE_ACE, "Success callback value is not a function"); + ReleaseJsValue(callback); + return false; } else { switch (type) { case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI: if (isSuccess) { - poi_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + poi_successCallback = callback; } else { - poi_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + poi_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE: if (isSuccess) { - auth_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + auth_successCallback = callback; } else { - auth_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + auth_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT: if (isSuccess) { - nav_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + nav_successCallback = callback; } else { - nav_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + nav_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH: if (isSuccess) { - poi_sug_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + poi_sug_successCallback = callback; } else { - poi_sug_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + poi_sug_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION: - geo_location_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + geo_location_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_START: - route_plan_start_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + route_plan_start_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_SUCC: - route_plan_success_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + route_plan_success_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_FAIL: - route_plan_fail_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + route_plan_fail_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_START: - navi_start_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + navi_start_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_DESTROY: - navi_destroy_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + navi_destroy_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_TEXT_UPDATE: - road_guide_text_update_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + road_guide_text_update_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_ICON_UPDATE: - road_guide_icon_update_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + road_guide_icon_update_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_TIME_UPDATE: - remain_time_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + remain_time_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_DISTANCE_UPDATE: - remain_distance_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + remain_distance_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_ROUTE_UPDATE: - remain_route_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + remain_route_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GPS_STATUS_CHANGE: - gps_status_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + gps_status_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_FARAWAY: - route_far_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + route_far_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING: - route_plan_yawing_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + route_plan_yawing_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_RE_ROUTE_COMPLETE: - reroute_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + reroute_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ARRIVE_DSTINATION: - arrivedest_Callback = OHOS::ACELite::JSI::AcquireValue(callback); + arrivedest_Callback = callback; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH: if (isSuccess) { - geocode_search_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + geocode_search_successCallback = callback; } else { - geocode_search_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + geocode_search_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH: if (isSuccess) { - regeocode_search_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + regeocode_search_successCallback = callback; } else { - regeocode_search_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + regeocode_search_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH: if (isSuccess) { - route_riding_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + route_riding_successCallback = callback; } else { - route_riding_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + route_riding_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH: if (isSuccess) { - route_walking_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + route_walking_successCallback = callback; } else { - route_walking_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + route_walking_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH: if (isSuccess) { - route_transit_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + route_transit_successCallback = callback; } else { - route_transit_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + route_transit_failCallback = callback; } break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED: if (isSuccess) { - bt_connect_successCallback = OHOS::ACELite::JSI::AcquireValue(callback); + bt_connect_successCallback = callback; } else { - bt_connect_failCallback = OHOS::ACELite::JSI::AcquireValue(callback); + bt_connect_failCallback = callback; } break; default: @@ -646,10 +656,13 @@ JSIValue BaiduMapComponentModule::poi_nearby_search(const JSIValue thisVal, cons poi_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,false); - msg_center_vector_navi_req_poi(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vector_navi_req_poi(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::route_riding_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -662,10 +675,13 @@ JSIValue BaiduMapComponentModule::route_riding_search(const JSIValue thisVal, co route_riding_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,false); - msg_center_vector_navi_req_route_riding_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vector_navi_req_route_riding_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::route_walking_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -678,10 +694,13 @@ JSIValue BaiduMapComponentModule::route_walking_search(const JSIValue thisVal, c route_walking_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,false); - msg_center_vector_navi_req_route_walking_search(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vector_navi_req_route_walking_search(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::route_transit_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -694,10 +713,13 @@ JSIValue BaiduMapComponentModule::route_transit_search(const JSIValue thisVal, c route_transit_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,false); - msg_center_vector_navi_req_route_transit_search(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vector_navi_req_route_transit_search(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::auth_license(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -710,10 +732,13 @@ JSIValue BaiduMapComponentModule::auth_license(const JSIValue thisVal, const JSI auth_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,false); - msg_center_vector_navi_req_auth_license(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vector_navi_req_auth_license(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::getGeolocation(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -724,9 +749,12 @@ JSIValue BaiduMapComponentModule::getGeolocation(const JSIValue thisVal, const J ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION); geo_location_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION,true); - msg_center_vector_navi_req_geo_location(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasCallback = setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION,true); + if (hasCallback) { + msg_center_vector_navi_req_geo_location(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::naviInit(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -739,10 +767,13 @@ JSIValue BaiduMapComponentModule::naviInit(const JSIValue thisVal, const JSIValu nav_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,false); - msg_center_vector_navi_req_navi_init(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vector_navi_req_navi_init(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoutePlanStart(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -752,7 +783,7 @@ JSIValue BaiduMapComponentModule::onRoutePlanStart(const JSIValue thisVal, const ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_START); route_plan_start_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_START,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoutePlanSuccess(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -762,7 +793,7 @@ JSIValue BaiduMapComponentModule::onRoutePlanSuccess(const JSIValue thisVal, con ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_SUCC); route_plan_success_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_SUCC,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoutePlanFail(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -772,7 +803,7 @@ JSIValue BaiduMapComponentModule::onRoutePlanFail(const JSIValue thisVal, const ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_FAIL); route_plan_fail_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_FAIL,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onNaviStart(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -782,7 +813,7 @@ JSIValue BaiduMapComponentModule::onNaviStart(const JSIValue thisVal, const JSIV ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_START); navi_start_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_START,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onNaviDestroy(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -792,7 +823,7 @@ JSIValue BaiduMapComponentModule::onNaviDestroy(const JSIValue thisVal, const JS ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_DESTROY); navi_destroy_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_DESTROY,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoadGuideTextUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -802,7 +833,7 @@ JSIValue BaiduMapComponentModule::onRoadGuideTextUpdate(const JSIValue thisVal, ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_TEXT_UPDATE); road_guide_text_update_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_TEXT_UPDATE,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRouteGuideIconUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -812,7 +843,7 @@ JSIValue BaiduMapComponentModule::onRouteGuideIconUpdate(const JSIValue thisVal, ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_ICON_UPDATE); road_guide_icon_update_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_ICON_UPDATE,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRemainTimeUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -822,7 +853,7 @@ JSIValue BaiduMapComponentModule::onRemainTimeUpdate(const JSIValue thisVal, con ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_TIME_UPDATE); remain_time_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_TIME_UPDATE,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRemainDistanceUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -832,7 +863,7 @@ JSIValue BaiduMapComponentModule::onRemainDistanceUpdate(const JSIValue thisVal, ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_DISTANCE_UPDATE); remain_distance_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_DISTANCE_UPDATE,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRemainRouteUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -842,7 +873,7 @@ JSIValue BaiduMapComponentModule::onRemainRouteUpdate(const JSIValue thisVal, co ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_ROUTE_UPDATE); remain_route_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_ROUTE_UPDATE,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onGpsStatusChange(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -852,7 +883,7 @@ JSIValue BaiduMapComponentModule::onGpsStatusChange(const JSIValue thisVal, cons ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GPS_STATUS_CHANGE); gps_status_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GPS_STATUS_CHANGE,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRouteFarAway(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -862,7 +893,7 @@ JSIValue BaiduMapComponentModule::onRouteFarAway(const JSIValue thisVal, const J ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_FARAWAY); route_far_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_FARAWAY,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoutePlanYawing(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -873,7 +904,7 @@ JSIValue BaiduMapComponentModule::onRoutePlanYawing(const JSIValue thisVal, cons route_plan_yawing_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING,true); //msg_center_vector_navi_req_route_plan_yawing(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING,Callback,1); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onReRouteComplete(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -883,7 +914,7 @@ JSIValue BaiduMapComponentModule::onReRouteComplete(const JSIValue thisVal, cons ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_RE_ROUTE_COMPLETE); reroute_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_RE_ROUTE_COMPLETE,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onArriveDest(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -893,7 +924,7 @@ JSIValue BaiduMapComponentModule::onArriveDest(const JSIValue thisVal, const JSI ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ARRIVE_DSTINATION); arrivedest_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ARRIVE_DSTINATION,true); - return JSI::CreateBoolean(0); + return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::poi_sug_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) @@ -906,10 +937,13 @@ JSIValue BaiduMapComponentModule::poi_sug_search(const JSIValue thisVal, const J poi_sug_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,false); - msg_center_vertor_navi_req_poi_sug_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vertor_navi_req_poi_sug_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } /** @@ -1000,10 +1034,13 @@ JSIValue BaiduMapComponentModule::Geocode_search(const JSIValue thisVal, const J geocode_search_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,false); - msg_center_vector_navi_req_geocode_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vector_navi_req_geocode_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } @@ -1017,10 +1054,13 @@ JSIValue BaiduMapComponentModule::Regeocode_search(const JSIValue thisVal, const regeocode_search_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,true); - setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,false); - msg_center_vector_navi_req_regeocode_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,data,strlen(data)); - return JSI::CreateBoolean(0); + bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,true); + bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,false); + if (hasSuccessCallback || hasFailCallback) { + msg_center_vector_navi_req_regeocode_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,data,strlen(data)); + } + ace_free(data); + return JSI::CreateBoolean(true); } /** @@ -1032,7 +1072,8 @@ JSIValue BaiduMapComponentModule::Destroy_page(const JSIValue thisVal, const JSI char *data = JSI::JsonStringify(args[0]); HILOG_INFO(HILOG_MODULE_ACE,"Destroy_page : %s \n",data); msg_center_vector_navi_req_destroy_page(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_PAGE,data,strlen(data)); - return JSI::CreateBoolean(0); + ace_free(data); + return JSI::CreateBoolean(true); } /** @@ -1050,7 +1091,8 @@ JSIValue BaiduMapComponentModule::onBTConnect(const JSIValue thisVal, const JSIV OHOS::ACELite::JSIValue disconnectCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], DISCONNECT); setCallbackFunction(connectCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED,true); setCallbackFunction(disconnectCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED,false); - return JSI::CreateBoolean(0); + ace_free(data); + return JSI::CreateBoolean(true); } /** @@ -1062,7 +1104,8 @@ JSIValue BaiduMapComponentModule::NaviDestroy(const JSIValue thisVal, const JSIV char *data = JSI::JsonStringify(args[0]); HILOG_INFO(HILOG_MODULE_ACE,"exitNavigation : %s \n",data); msg_center_vector_navi_req_destroy_from_watch(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_FROM_WATCH,data,strlen(data)); - return JSI::CreateBoolean(0); + ace_free(data); + return JSI::CreateBoolean(true); } /** @@ -1074,9 +1117,96 @@ JSIValue BaiduMapComponentModule::StopAnswer(const JSIValue thisVal, const JSIVa char *data = JSI::JsonStringify(args[0]); HILOG_INFO(HILOG_MODULE_ACE,"StopAnswer : %s \n",data); msg_center_xiaodu_send_stop_answer(MSGCENTER_CMD_XIAODU,MSGCENTER_TYPE_ID_XIAODU_SEND_JS_EXIT,data,strlen(data)); - return JSI::CreateBoolean(0); + ace_free(data); + return JSI::CreateBoolean(true); } +void BaiduMapComponentModule::OnDestroy() +{ + HILOG_INFO(HILOG_MODULE_ACE, "BaiduMapComponent OnDestroy\n"); + + //poi_nearby_search + ReleaseJsValue(poi_successCallback); + ReleaseJsValue(poi_failCallback); + ReleaseJsValue(poi_callbackContext); + //route_riding_search + ReleaseJsValue(route_riding_successCallback); + ReleaseJsValue(route_riding_failCallback); + ReleaseJsValue(route_riding_callbackContext); + //route_walking_search + ReleaseJsValue(route_walking_successCallback); + ReleaseJsValue(route_walking_failCallback); + ReleaseJsValue(route_walking_callbackContext); + //route_transit_search + ReleaseJsValue(route_transit_successCallback); + ReleaseJsValue(route_transit_failCallback); + ReleaseJsValue(route_transit_callbackContext); + //auth_license + ReleaseJsValue(auth_successCallback); + ReleaseJsValue(auth_failCallback); + ReleaseJsValue(auth_callbackContext); + //onRoutePlanStart + ReleaseJsValue(route_plan_start_Callback); + ReleaseJsValue(route_plan_start_callbackContext); + //onRoutePlanSuccess + ReleaseJsValue(route_plan_success_Callback); + ReleaseJsValue(route_plan_success_callbackContext); + //onRoutePlanFail + ReleaseJsValue(route_plan_fail_Callback); + ReleaseJsValue(route_plan_fail_callbackContext); + //onNaviStart + ReleaseJsValue(navi_start_Callback); + ReleaseJsValue(navi_start_callbackContext); + //onNaviDestroy + ReleaseJsValue(navi_destroy_Callback); + ReleaseJsValue(navi_destroy_callbackContext); + //onRoadGuideTextUpdate + ReleaseJsValue(road_guide_text_update_Callback); + ReleaseJsValue(road_guide_text_update_callbackContext); + //onRouteGuideIconUpdate + ReleaseJsValue(road_guide_icon_update_Callback); + ReleaseJsValue(road_guide_icon_update_callbackContext); + //onRemainTimeUpdate + ReleaseJsValue(remain_time_Callback); + ReleaseJsValue(remain_time_callbackContext); + //onRemainDistanceUpdate + ReleaseJsValue(remain_distance_Callback); + ReleaseJsValue(remain_distance_callbackContext); + //onRemainRouteUpdate + ReleaseJsValue(remain_route_Callback); + ReleaseJsValue(remain_route_callbackContext); + //onGpsStatusChange + ReleaseJsValue(gps_status_Callback); + ReleaseJsValue(gps_status_callbackContext); + //onRouteFarAway + ReleaseJsValue(route_far_Callback); + ReleaseJsValue(route_far_callbackContext); + //onRoutePlanYawing + ReleaseJsValue(route_plan_yawing_Callback); + ReleaseJsValue(route_plan_yawing_callbackContext); + //onReRouteComplete + ReleaseJsValue(reroute_Callback); + ReleaseJsValue(reroute_callbackContext); + //onArriveDest + ReleaseJsValue(arrivedest_Callback); + ReleaseJsValue(arrivedest_callbackContext); + //poi_sug_search + ReleaseJsValue(poi_sug_successCallback); + ReleaseJsValue(poi_sug_failCallback); + ReleaseJsValue(poi_sug_callbackContext); + //geocode_search + ReleaseJsValue(geocode_search_successCallback); + ReleaseJsValue(geocode_search_failCallback); + ReleaseJsValue(geocode_search_callbackContext); + //regeocode_search + ReleaseJsValue(regeocode_search_successCallback); + ReleaseJsValue(regeocode_search_failCallback); + ReleaseJsValue(regeocode_search_callbackContext); + //BT_connect + ReleaseJsValue(bt_connect_successCallback); + ReleaseJsValue(bt_connect_failCallback); + ReleaseJsValue(bt_connect_callbackContext); +} void InitBaiduMapComponentModule(JSIValue exports) { @@ -1139,6 +1269,10 @@ void InitBaiduMapComponentModule(JSIValue exports) * stop anwser */ JSI::SetModuleAPI(exports, "stopAnswer", BaiduMapComponentModule::StopAnswer); + /** + * destroy + */ + JSI::SetOnDestroy(exports, BaiduMapComponentModule::OnDestroy); } } // namespace ACELite diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h index 5c665e1e5..f3d0e4599 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h @@ -111,6 +111,11 @@ public: * stop answer */ static JSIValue StopAnswer(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize); + + /** + * destroy + */ + static void OnDestroy(); }; void InitBaiduMapComponentModule(JSIValue exports); diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.cpp new file mode 100644 index 000000000..2cd2d4ade --- /dev/null +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.cpp @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2020 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ace_log.h" +#include "js_app_context.h" +#include "js_async_work.h" +#include "product_adapter.h" +#include +#include +#include "media_log.h" +#include "network_module.h" + +namespace OHOS { +namespace ACELite { +NetCallBack NetWorkModule::callback_; + +void NetWorkModule::TriggerCallbackListener(char *netConnectStatus, uint32_t Len) +{ + if (netConnectStatus != nullptr) { + callback_.netParam.Len = Len; + char *newData = (char *)realloc(callback_.netParam.status, Len + 1); + memset_s(newData, Len + 1, 0, Len + 1); + if (newData != nullptr) { + callback_.netParam.status = newData; + memcpy_s(callback_.netParam.status, Len, netConnectStatus, Len); + } + } + callback_.netParam.Len = Len; + if (!JsAsyncWork::DispatchAsyncWork(AsyncExecuteCallback, const_cast(&callback_.netParam))) { + MEDIA_ERR_LOG("dispatch async work failed."); + } +} + +static bool ValidJsValue(JSIValue value) +{ + return (value != nullptr) && (!JSI::ValueIsUndefined(value)); +} + +void NetWorkModule::AsyncExecuteCallback(void *arg) +{ + NetParam *netParam = static_cast(arg); + if (ValidJsValue(callback_.net_connect_callback) && netParam != nullptr) { + JSIValue result = JSI::CreateString(static_cast(netParam->status)); + JSIValue argv[ARGC_ONE] = {result}; + JSI::CallFunction(callback_.net_connect_callback, callback_.net_connect_thisVal, argv, ARGC_ONE); + JSI::ReleaseValue(result); + } +} + +JSIValue NetWorkModule::RegisterConnectListener(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum) +{ + if ((args == nullptr) || (argsNum == 0) || JSI::ValueIsUndefined(args[0])) { + HILOG_ERROR(HILOG_MODULE_ACE, "Invalid arguments for registering net connection callback"); + return JSI::CreateUndefined(); + } + + if (callback_.net_connect_callback != nullptr) { + HILOG_WARN(HILOG_MODULE_ACE, "net connection callback already registered"); + return JSI::CreateUndefined(); + } + + callback_.net_connect_thisVal = JSI::AcquireValue(thisVal); + callback_.net_connect_callback = JSI::AcquireValue(args[0]); + if (callback_.net_connect_callback == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to register net connection callback"); + return JSI::CreateUndefined(); + } + + // 可以在注册回调后执行其他必要的操作 + net_connect_status_change("test", strlen("test")); + + return JSI::CreateUndefined(); +} + +JSIValue NetWorkModule::UnregisterConnectListener(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum) +{ + if (callback_.net_connect_callback == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "No net connection callback registered to unregister"); + return JSI::CreateUndefined(); + } + JSI::ReleaseValue(callback_.net_connect_thisVal); + JSI::ReleaseValue(callback_.net_connect_callback); + callback_.net_connect_thisVal = nullptr; + callback_.net_connect_callback = nullptr; + + return JSI::CreateUndefined(); +} + +JSIValue NetWorkModule::GetConnectState(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum) +{ + + return JSI::CreateString(callback_.netParam.status); +} + +} +} + +#ifdef __cplusplus +extern "C" { +#endif + +void net_connect_status_change(char *netConnectStatus, uint32_t Len) +{ + OHOS::ACELite::NetWorkModule::TriggerCallbackListener(netConnectStatus, Len); +} + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.h new file mode 100644 index 000000000..2ddad8815 --- /dev/null +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.h @@ -0,0 +1,66 @@ +/* +* Copyright (c) CompanyNameMagicTag. 2021-2021. All rights reserved. +* Description: audio capture wrapper +* Author: Media Software Group +* Create: 2021-09-13 +*/ + +#ifndef NET_CONNECT_MODULE_H +#define NET_CONNECT_MODULE_H + +#include +#include "acelite_config.h" +#include "jsi.h" +#include "js_async_work.h" +#include "non_copyable.h" +#include "product_adapter.h" +#include "abilityms_slite_client.h" + +#ifdef __cplusplus +extern "C" { +#endif +void net_connect_status_change(char *netConnectStatus, uint32_t Len); +#ifdef __cplusplus +}; +#endif + +namespace OHOS { +namespace ACELite { + +struct NetParam { + char *status = nullptr; + uint32_t Len = 0; +}; + +struct NetCallBack { + JSIValue net_connect_callback = nullptr; + JSIValue net_connect_thisVal = nullptr; + NetParam netParam; +}; + +class NetWorkModule final : public MemoryHeap { +public: + ACE_DISALLOW_COPY_AND_MOVE(NetWorkModule); + NetWorkModule() = default; + ~NetWorkModule() = default; + static NetCallBack callback_; + static JSIValue RegisterConnectListener(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum); + static JSIValue UnregisterConnectListener(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum); + static JSIValue GetConnectState(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum); + static void AsyncExecuteCallback(void *arg); + static void TriggerCallbackListener(char *netConnectStatus, uint32_t Len); +}; + +void InitNetWorkModule(JSIValue exports) +{ + JSI::SetModuleAPI(exports, "registerConnectListener", NetWorkModule::RegisterConnectListener); + JSI::SetModuleAPI(exports, "unregisterConnectListener", NetWorkModule::UnregisterConnectListener); + JSI::SetModuleAPI(exports, "getConnectState", NetWorkModule::GetConnectState); +} + + +} +} + + +#endif diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/ohos_module_config.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/ohos_module_config.h index db16bf374..2779e85a7 100755 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/ohos_module_config.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/ohos_module_config.h @@ -75,6 +75,7 @@ extern void InitBatteryModule(JSIValue exports); extern void InitLocaleModule(JSIValue exports); #endif +extern void InitNetWorkModule(JSIValue exports); // #ifdef FEATURE_ACELITE_SYSTEM_CAPABILITY // extern void InitCapabilityModule(JSIValue exports); // #endif @@ -132,6 +133,7 @@ const Module OHOS_MODULES[] = { // #ifdef FEATURE_ACELITE_SYSTEM_CAPABILITY // {"capability", InitCapabilityModule}, // #endif + {"network", InitNetWorkModule}, }; } // namespace ACELite } // namespace OHOS diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/image_module.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/image_module.cpp new file mode 100644 index 000000000..5e4dbe069 --- /dev/null +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/image_module.cpp @@ -0,0 +1,344 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include + +#include "ace_log.h" +#include "locale_util.h" +#include "key_parser.h" +#include "keys.h" +#include "image.h" +#include "image_module.h" +#include "common/image_cache_manager.h" +namespace OHOS { +namespace ACELite { +constexpr jerry_object_native_info_t ImageModule::gcCallback; +const char * const ImageModule::attrOnload = "onload"; +const char * const ImageModule::attrOnError = "onerror"; +const char * const ImageModule::attrSrc = "src"; +const char * const ImageModule::attrWidth = "width"; +const char * const ImageModule::attrHeight = "height"; +const char * const ImageModule::className = "Image"; + +void ImageModule::Init(jerry_value_t intlHandle) +{ + (void)intlHandle; + jerry_value_t gObj = jerry_get_global_object(); + JerrySetFuncProperty(gObj, className, CreateImage); +} +void ImageModule::RegisterAttributeFunc(jerry_value_t canvas2dContext, + const char *attributeName, + jerry_external_handler_t setterHandler, + jerry_external_handler_t getterHandler) +{ + // register canvas js attribute setter property via the jerry_define_own_property method + jerry_value_t propName = jerry_create_string(reinterpret_cast(attributeName)); + jerry_property_descriptor_t desc; + jerry_init_property_descriptor_fields(&desc); + desc.is_set_defined = true; + desc.setter = jerry_create_external_function(setterHandler); + desc.is_get_defined = true; + desc.getter = jerry_create_external_function(getterHandler); + jerry_value_t returnValue = jerry_define_own_property(canvas2dContext, propName, &desc); + jerry_free_property_descriptor_fields(&desc); + ReleaseJerryValue(propName, returnValue, VA_ARG_END_FLAG); +} +jerry_value_t ImageModule::CreateImage(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + if (!jerry_value_is_constructor(func)) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("use new to create Image")); + } + ImageModule *imageModule = new ImageModule(); + if (imageModule == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("memory is not enough")); + } + + imageModule->width_ = -1; + imageModule->height_ = -1; + if (argsNum >= 1) { + if (jerry_value_is_number(args[0])) { + imageModule->width_ = jerry_value_to_number(args[0]); + } else if (jerry_value_is_string(args[0])) { + char* val = MallocStringOf(args[0]); + if (val == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("val is nullptr")); + } + imageModule->width_ = atoi(val); + ACE_FREE(val); + } + } + if (argsNum >= static_cast(ArgsCount::NUM_2)) { + if (jerry_value_is_number(args[1])) { + imageModule->height_ = jerry_value_to_number(args[1]); + } else if (jerry_value_is_string(args[1])) { + char* val = MallocStringOf(args[1]); + if (val == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("val is nullptr")); + } + imageModule->height_ = atoi(val); + ACE_FREE(val); + } + } + + jerry_set_object_native_pointer(context, imageModule, &gcCallback); + RegisterAttributeFunc(context, attrOnload, OnLoadSetter, OnLoadGetter); + RegisterAttributeFunc(context, attrOnError, OnErrorSetter, OnErrorGetter); + RegisterAttributeFunc(context, attrSrc, OnSrcSetter, OnSrcGetter); + RegisterAttributeFunc(context, attrWidth, OnWidthSetter, OnWidthGetter); + RegisterAttributeFunc(context, attrHeight, OnHeightSetter, OnHeightGetter); + return UNDEFINED; +} + +jerry_value_t ImageModule::OnLoadSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + if (argsNum == 1 && jerry_value_is_function(args[0])) { + jerry_release_value(imageModel->onLoadFunc_); + imageModel->onLoadFunc_ = args[0]; + } else { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("set imageModel onload arg fail")); + } + return UNDEFINED; +} + +jerry_value_t ImageModule::OnLoadGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + (void)args; + (void)argsNum; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + return imageModel->onLoadFunc_; +} + +jerry_value_t ImageModule::OnErrorSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + if (argsNum >= 1 && jerry_value_is_function(args[0])) { + jerry_release_value(imageModel->onErrorFunc_); + imageModel->onErrorFunc_ = args[0]; + } else { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("set imageModel onload arg fail")); + } + return UNDEFINED; +} + +jerry_value_t ImageModule::OnErrorGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + (void)args; + (void)argsNum; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + return imageModel->onErrorFunc_; +} + +jerry_value_t ImageModule::OnSrcSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + + if (argsNum >= 1) { + ACE_FREE(imageModel->src_); + imageModel->src_ = const_cast(ParseImageSrc(args[0])); + } + if (imageModel->src_ == nullptr || strlen(imageModel->src_) == 0) { + OnCallBack(context, imageModel, false, "src is null"); + return UNDEFINED; + } + jerry_release_value(imageModel->jerrySrc_); + imageModel->jerrySrc_ = jerry_create_string(reinterpret_cast(imageModel->src_)); + + ImageInfo* image = ImageCacheManager::GetInstance().LoadSingleRes(imageModel->src_); + if (!image) { + OnCallBack(context, imageModel, false, "unknown image"); + return UNDEFINED; + } + OnCallBack(context, imageModel, true, "load sucess"); + return UNDEFINED; +} + +jerry_value_t ImageModule::OnSrcGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + (void)args; + (void)argsNum; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + if (jerry_value_is_string(imageModel->jerrySrc_)) { + return imageModel->jerrySrc_; + } + return UNDEFINED; +} + +jerry_value_t ImageModule::OnHeightSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + if (argsNum < 1) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("set height fail")); + } + imageModel->height_ = IntegerOf(args[0]); + return UNDEFINED; +} + +jerry_value_t ImageModule::OnHeightGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + (void)args; + (void)argsNum; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + return imageModel->height_; +} + +jerry_value_t ImageModule::OnWidthSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + if (argsNum < 1) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("set width fail")); + } + imageModel->width_ = IntegerOf(args[0]); + return UNDEFINED; +} + +jerry_value_t ImageModule::OnWidthGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + (void)args; + (void)argsNum; + ImageModule* imageModel = nullptr; + jerry_get_object_native_pointer(context, (void**)&imageModel, &gcCallback); + if (imageModel == nullptr) { + return jerry_create_error(JERRY_ERROR_EVAL, + reinterpret_cast("get imageModel fail")); + } + return imageModel->width_; +} + +void ImageModule::OnCallBack(const jerry_value_t context, + const ImageModule *imageModule, + bool isSucess, + const char* msg) +{ + jerry_value_t targetFunction; + if (imageModule == nullptr) { + return; + } + if (isSucess) { + targetFunction = imageModule->onLoadFunc_; + } else { + targetFunction = imageModule->onErrorFunc_; + } + if (!jerry_value_is_function(targetFunction)) { + return; + } + const int16_t argcount = 1; + jerry_value_t arg = jerry_create_string(reinterpret_cast(msg)); + jerry_value_t args[argcount] = {arg}; + jerry_value_t ret_val = jerry_call_function (targetFunction, context, args, argcount); + if (jerry_value_is_error (ret_val)) { + HILOG_ERROR(HILOG_MODULE_ACE, "call back failed!"); + } + jerry_release_value(arg); + jerry_release_value (ret_val); +} +} +} + diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/image_module.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/image_module.h new file mode 100644 index 000000000..867ebc253 --- /dev/null +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/image_module.h @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ACELITE_IMAGE_MODEL_H +#define OHOS_ACELITE_IMAGE_MODEL_H + +#include "acelite_config.h" +#include "image_component.h" +#include "gfx_utils/list.h" +#include "js_fwk_common.h" +namespace OHOS { +namespace ACELite { +class ImageModule final : public MemoryHeap { +enum class ArgsCount { NUM_1 = 1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6 }; +public: + const char* GetSrc() + { + return src_; + } + + int16_t GetWidth() + { + return width_; + } + + int16_t GetHeight() + { + return height_; + } + + ACE_DISALLOW_COPY(ImageModule); + /** + * @brief register Image object + */ + static void Init(jerry_value_t intlHandle); + + static void RegisterAttributeFunc(jerry_value_t canvas2dContext, + const char *attributeName, + jerry_external_handler_t setterHandler, + jerry_external_handler_t getterHandler); +#if (defined(ENABLED_DELETE_MODULE_IAMGE) && (ENABLED_DELETE_MODULE_IAMGE == 1)) + static void DeleteImage(void* ptr) + { + ImageModule* image = reinterpret_cast(ptr); + ACE_DELETE(image); + } +#endif + + static void OnCallBack(const jerry_value_t context, const ImageModule *imageModule, bool isSucess, const char* msg); + // the handle to release the native value when the js value number format object is not needed. + static constexpr jerry_object_native_info_t gcCallback = { +#if ENABLED_DELETE_MODULE_IAMGE + .free_cb = DeleteImage +#endif + }; + static const char * const attrOnload; + static const char * const attrOnError; + static const char * const attrSrc; + static const char * const attrWidth; + static const char * const attrHeight; + static const char * const className; +private: + ImageModule() + : src_(nullptr), + width_(-1), + height_(-1), + onLoadFunc_(UNDEFINED), + onErrorFunc_(UNDEFINED), + jerrySrc_(UNDEFINED) {} + + ~ImageModule() + { + jerry_release_value(onLoadFunc_); + jerry_release_value(onErrorFunc_); + jerry_release_value(jerrySrc_); + ACE_FREE(src_); + } + + static jerry_value_t CreateImage(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnLoadSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnLoadGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnErrorSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnErrorGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnSrcSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnSrcGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnHeightSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnHeightGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnWidthSetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + static jerry_value_t OnWidthGetter(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + +private: + char* src_; + int16_t width_; + int16_t height_; + jerry_value_t onLoadFunc_; + jerry_value_t onErrorFunc_; + jerry_value_t jerrySrc_; +}; +} +} +#endif // NUMBER_FORMAT_MODEL_H diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/intl_module.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/intl_module.cpp index 40214f00c..bbb4da921 100755 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/intl_module.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/presets/intl_module.cpp @@ -21,6 +21,7 @@ #include "string.h" #include "number_format_module.h" #include "js_fwk_common.h" +#include "image_module.h" namespace OHOS { namespace ACELite { void IntlModule::Init() @@ -33,6 +34,7 @@ void IntlModule::Init() #ifdef FEATURE_DATE_FORMAT DateTimeFormatModule::Init(baseObj); #endif + ImageModule::Init(baseObj); JerrySetNamedProperty(globalObj, "Intl", baseObj); jerry_release_value(globalObj); } diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a index d4ecb8d31a19c9592dfc87617ba48c85eca5d526..5fd9ba68366d940eaff4c8a9f6cc9a511f2d53e9 100644 GIT binary patch delta 356 zcmbQTg@4Kx{t43TW(FoE#sBdHME+;iYJ3rt{h z-%(L97zeEX;O$E={U8Iywr*f-RzgxCwmm?ZalR&0#CS5$itW6sAM9Y{ p*FzEEdCu70f+DgZo9XvD6p<5B%+pcT)XZo0S42_s;sCRbBmh_&Z&d&Q delta 356 zcmbQTg@4Kx{t43T#wO+lhL)Bal_uIk*=CdHg^O*zV9U&kBJjbfnFlU#u2y{WM1M98 zn84@YHH>)`zxZTd2xVQM-l)MHgH`4 diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a index 53a5362dc77417638e17cf24b12be754d4394e86..0bdbf225a56e62d88e568e7a7c8069dc9a6033c9 100644 GIT binary patch delta 356 zcmbQTg@4Kx{t43TW(FoEh8Ct9l_uIk*+!G+g^O*zV9U&kBJjbfnFlU#u2y{WM1M98 zn84^P&% zy+_5wkR-)7AH01Dp&h7t>juVVC8+A@8>N`Vw+ARQ&ew$Mv78LFVLPucslWw5h6Qew?C&}7n}rSHxXFqW z#5XTF`d<{mm)Lyp_9YbrUwrEZ#%3iX{`LT6#`&7a0zAHq+q01c9_(P`*Mr(=0dnSc mp6871Ehr)zvYCFbLlHS4#XKEVP0f5}e?=5EFAgy4NCE(~X>b|< diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a index b91cc5452e282b2ab0ea72f588375f3e9a17e43c..209617000e6724e9c349832539e2fc7a429b0898 100755 GIT binary patch delta 355 zcmbQTg@4Kx{t43TW(FoE2BwA^l_uIk*e2$a=Y@-HzF^DD3Kg&b3w&^D=79^Gs}b`!6}SM%u)wWy+;9Pq{XGYMvp@wb zH}@SC6@zhr28wS!c>5Aeza_|qts5Adm5@}3Z4XdpoUaKN0a~%0*OzfyHe3X#Y5Rj6 zjQn~iB0SF-+gngXHe@sXUI!5|H2_(){e%?rbf_ArNX>j^e?>M(NKRIqAin*@0cIUZ E08LbHUjP6A delta 368 zcmbQTg@4Kx{t43T#wKQ#re-D^l_uJYWoQ(=IJms5Rsbs%>If{H6~y+FAgy4NCE(b#(J&* diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a index bba9869d1f355835b095b29e3eb2a631864ff0df..ee2bb8a6dd56e9733c65355bcaf97142d16c3313 100644 GIT binary patch delta 3743 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 delta 3634 zcmZvedvFui6~o7NbXaSq@IA%;dkT!G(v^WAgKJ?Ba%haxA3BF%Zy*l`obloXFWR4{(OnEJaoq{o3*;do3a=MKMpAlF85 z)gIn=IN82ivVabll*fWi=mMY%+_NHu#BIf8E^MbHWds+maKRjMdT}VE2VN9ZD7eYB z1x?iY(CO0~i-jj4>oMEsZW3HFMsJ&rl}{AeCXA!XM09^H)GoHo4^X1xSQQ2vYzJJH zu;Wd(U85P|gW4|Jqy$4$I3Kn*jkA#YP4?WW7INs1_L6iL(h2#Fy>H(kQ_1-`f)7sg z*t>ElX^Y{U8_Se(4nDqNcceRtLy3~VX&*bnqMU2zE7Q$N*{5PZ7Wp+MxjKyfmpk~0 zF&c%53UB|IFEo=P8orUg;Gvp0C#o>i!dD{;`Pm-c;V?;#r0M>CR0vnv`5mU&mJm{5 zJMhbB3V_LKP9N;#5!9XFzu>6BErgZ7?B=_lvXH79`~$OtSmV?C0=Ci6SuAAkH5IC# zSuIQlb&9YlJw3SmQ;(wWA1fDtr-oGrWfd;X6#ipMu1ff_Kb<4IqggcA>pf8*x3A`3h+8a?FQJ{WYb{$i$ZUZ1;y>c?Wru7 zaz}WbCO|^&4GS+BAd&ow3fnj_;bbE!TwQt_Q zT45EJ7;aTkx!mCNrBNyU3Zy>V7?rAMlV>~dBh)P5%wh2oNic6Kg*Pvi?1E7N(Y;wI zJ*2HB;AEBLvncLVOQR$Jfy2JCf+42;YwiYu=LPa*05jSI1p!fDaHqn$sT_P=u;dtz5;ybrA^}|20b` z4V*IK1uD~V)4Qz=@b*ifW7n(6R0ZaQC-3*Nj4gKXssg(d#FQ{Nq-Ijui_b+>II;Ssr};F1lkea-BsV zvI^Z0HXNA4M%XqmyU&~&1t6Bm-;sTMVV5; z!Fj>ypji`qS8}fO8{rse5HE24oxWUY@O5XDHiU%SFLHJ%nGh8&mN{=e!GgZ!&apCFym3$MqRqe*(^}bgiY8laOz3 zaeYV!4l6X6^}4H&4mbvW*xKsS$}-2|m!QuzT)~3=Lig#XSa4>6dn3JpF)q;$%cAZ9 zYMM;_!dbV(9cwW{Qs5}^?4D=*-yA|3oSEl2U6Aoq0k^(_)4#aqalpem4^L-;xQ(p$ z)WleE$BzU&J6IfGbQ*;2d!D1qgab8rBb1#}&ZGh7;@Q`X+uGWX@O=L~``sC=pyQ)# zn9qXEL2rcaBS|J%>ivXX0y$)8rniXpizrIBde_o?4MXfSk6S!QWd n?M3A*Q-B7GdX#R)Lxah^%0{}XB#)kdC^P8N6Hq#+G-Ul3KTBat diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a index 5ef2025165622b8feadc3b172d1d7171d58439bb..9268431f736a55687c83bae4461597079144656b 100644 GIT binary patch delta 3596 zcmZ8jdr(wm6ra0$AK%`~-DSDz-n$SQrcJ0I<_qlsrU9d|HWo6L&+`3Br$j+Xd`wP7 z(QJ9Ghy<-HAAql;gED4i`6w+kbt|8A1T|6$n|}u7lgVxfodAb*-{OvVa01u&WA& z$Fjg`R0pVzdrV|N9cG{BvfT_4fYU#7$uSg3QAGn1u5#tc6e-8rP#^EQ-$#+(S_K_? zCAkIx++zQkf{A{xGMT~b~<#hS=O!uU|Ef8SlEKRNiH3J$aWVG zw4mBCI9=gtch`{?bYYBNhn-)$QzRQIkO_B?06yTH$&E8Nz%1&@mJIPk6zJPhMy;YKpGK<0JmUnyLtEsX5|(prS~MV4`^6&KF} z8#pnnut26Nb|1h3_}+53aM=e6TuKw$sEHl&dmj^Lx+ByVKH?2n`?$DjW&~IXd=Pr? z5NA^c1`OC2$x0Y#8JOnjx=JZKYj9sDu>NF{rgT~2{%k@8af}^fA(*pxLF&=FAmERzXB&Tak3Jo1F-Iwm}Ng z5fN7}Z<3s@&i_Pmy4v`eWVuR0E{Ob7oLP8V65&9lq|sKZ<_ocKwOXnlVJFm~p+%BZ z)(otVS0KLJZ(k1WGf645Bgtg~I{pqZF95f-0A%NTADmmcw11hLm(6DRvO!Mn!UEBp z!WO1O=MVY!f+ExVBMse_lsUmjAW6O|LHUi|5$UMt0c8^PfF!?@q||6^uG1rwtG!sD zewK3lO%@;~K(|&!rOAm>+8t#)+u_zquq z&RbAwhv<8dZ&MEQ9lpu&eVxDp*!nEaynEXxLwmlDcZ{XS3SV9UORjnm|EC5_j%RoV zq~7s8&fJdyAEZXdWU_%LilQ$v)56WZ7JXzi%cwdV4dYp0O|n14+#p{5H2)Q53I^O5 z<4Mk84Uv-zMvH{x2nUr-?h=q M9^sKUX)B}t0}5?Bu>b%7 delta 3773 zcmZXWdr(wW9LMMG-p9Fn*2^^I9or^iEw&<%gkWFMCL1g^f5_F+=p2NVk$KLhSCjd+wfN|LuP6_xJjqbM8Hd z2TKnRmNunJlO|sm42~bad-RkYLhSccW3G$Wp(7*|b9)Z%9Oa~5&I47l&%rV^pCtpEK!GYh3 z{7M3Phs@N=U3_jR9%2GN9DIz=Ce2_4-^h2{E^(qC2Dk84C>~OmBI&UH6<%>AK$?-( zkFw!Zgl{2oXk~2%>3#2*?*TKdQgTs6Rt5W`{x z4RhhfLdOK*Uk@cSKD|#U1bw>DK=wuNM<^XS3x#2xlEK%rg}-ctr1;^N`NI2tT45&o zj41BsO@-O{0?zQP5oGXI35a-p(KF-mh}Z~OwL*v!@fHsn^G<@jzr1%0Z+`LtR{(NzS zZ48eUKCm^_Xn9zuhhvBz#~E$!@Oj39nPLh_Q{L&&VBJiy;ckXpu}fTGPlYwf4z!R9 zU)}75##|KPjKh1yQYIvSSSjI*k%t5XkG6}PgL$~EL!6(1UlUVJ9bHx_CjJZuv_XYAWfJ=hu_XhqMITbm?f96QRaZRvINOU zVr?1gL6U6?9&g?yr~=WMjkdQ?5oBc|;AsqJN27C$>zlew-P~*xVRab+^edx-tUPoJ z2WxYYn;jgl2#ica0?SSP-RvNia%eiGtOs+WWz0a;_Nlji86BWr^d~E9i|}J% zMn7s{gzdkfr|iYUHDCV&l|Dh%1e4TSIsFov7OAY?=Rf+zz1?Dk8T>)ajvkB zA(K^C1Dof#?(+I6jSiP~@^d&SndC}rE1bV(itF9!|5t`Lz3Q`%{&LQUp5}zqrB&tk z<}Asnyt5)OA$MZ@qk*$@)w&WV1(RsKYfJ`}SA+4*uIdtod^q3=q*8=*S>{lfF7@~g z;!8ns*_$6%`CC#}q){0(s2i>H*#`=1>aJ04XWbdjQ94y7>Ue>2=1NS0Elu~OSNoutQwIn*c$GaVcltho+GR=$EHFMk|+uH0>cd7lB#wK;#;y!16 zmPo;_74AyQlBq!hYZgE2KEZCz*)O=SwN3=-;kjmaS^@5Xkk5PFL&Xf~&-NS{$B<7K zd)Bf`bXS?@44qkn`kyKuwg!_^ikR50`s6-qDT(Iur;?A%Vl-_hl3@`; z)&+c})?p@HMe}_>S!+Y`49@oD&<<*lzsXl=ZD11B^@cA*M`>`^KHo8x%ze)n(3$F6 zPWl2#4Eed=r?LHHob!1*DUA-rZ>N-4Z#`0d@BWnVGD>4s&r-eC&46f{u2cK0@03lZ zso$_<{f+8REP1*>ozIfto7L}G(lkx2<=}x?YB{}X8bs%)rL0T0m8;bn(`U3s9pj~l zA11C>Wos{zJ{LEt66@0H=hapZ6LsV3>g8YeJXmr)uW2D{W{tZy~P)uZ$*I+XXQ dhv+;y3D6bhu* z)xK|--mPAB5HEQ9uu?#yN5h!1@6@p@(>^pOqnZX0C`!4Az5DKY-#y3aKlttM`8}WS zbDnqlOWx@(*)&qlx#{M}3>G?3a9>|@qr!kW zUkk>*7P!^Yn7E<$IP@MD%4CZGgs{ZT*o|dA6Ha_5gwhz&TAE_Q*b72awuQucj~j4y zwCj35qcm=GnJ_No%DFj#L~wb#%YfC3Tz8DNAtsz(=i1}5AqMQ<=-N46Nn{ts4OcV+ zs@q*tVjM~d5$)r}?mDhLM->ftWP{t7&Piux2Ta)ekvps;p?bm+j=38=%pbKoc*@;w zr53?a5KXAd*9!$W-Q`xT8b&Z>iWl6GVa%2=gD~GM-e(nx+6Li_EH39rV}WGAQdOK( z%dA?LOD4Sin3!cXBZ5DlOE_Yk_=QzFq9e#A^w*13h*?qOsTW06Wk_5H2RqS?@LjXG zgNrrR68WtlvhGDNMKapOG9DBS;rR}+V*(S4rYR<@>=K8jGbA1qCJh}A`@_=zQy3g4 z;!l=K1z_e$8?1350mtnR6i7p&od_ppOMloo2K+KtdN1hU5V234oR){AdwHxx*#Lsv zE#N1b(ZjW5a)1q>_TjfP|BnY84c^*fo&VTpIb4M{9f|w9E zAy-ayAY0RvZ}_}Wt4-<3l~m68o|JIUjmmAjgmkMUk{M{wp>7iD5^%*rg{1(k7qtoj zFT7Ln<3pmj9xk}FN&%lP{~Lw|6^j)Ye^tG4XOCAXf@E`V!i$y45bp)$99pRicXIlx zluVX}6~WNM5{h;2@ZjqPv?%nrwEG0SCd#A0M9F~HqsqAvHg5#kqKxEyrpb2hRFcJ~ z$nuw!Wbp|Sgzi_BWbrBIv`qSq*IrU&IM}S{_9V%gYgK;8XKpw5kYd$Ldg6n=r49Yjos3*f<1sM^5>&so&x zAOhLppV~P=aGgg_@ot8FUK4ipq2edl@Q~6NFs#NiayUb1Uy7df3^Hg8$(wo4 zQ_YtVJu4m))c*u*d64a`t5L2)bN$j({rscB2BS!T;)t4j2eby&x2PR?OfAWbz3@_i z?}ViS?&%h!VHH*7_lFjTRxGN_4o{kxxHd3VIa;G8-wutSC#qh{*DB2|+@Mw!+dLWY zewUifZ-b<7Sm@G{QBpi{U3@NSw(BC^(~F9>ES+i6NTQkA5B#kWBnazo&=xqWGZ@m^ zb!N44nw}0P^R=#V7Lqv3mTHHeWfWUzBL=PxZ95Ct@Eqd3pZSwC8``-%6P&O;Z^1Ht{sWd((n&Nc0H> z7AJm;-YvilMLwAYMRjJE_)6H?rojF(-=A!OP~gZi-wH<|N;msX@`+=o1^n4Z`MUI~J4a~G5LHH>vCy**ilL4$&oZu074$kc$mg9dC)&2 z`R3wR`S!`FX@zz_N200ccs@Z3K; z5Mp(sl-w5rE7+(~;K;5(EwiD(J#B$wHo$~A?*>Aq-EaNZfo!iG_@y&oI06~MENzDpFdfD~`H6 zvQ^*7?{?bMsjujn%m$Y)B9pLYw_bLQL%08kzQj?g)nDp|SrUnAmY>o)xJ*L$jJ}q= UUmDD*AN5&mpeT^rt*`U`1r02$n*aa+ delta 3714 zcmZvfdsGxv9LLY>&g1UR&MwQSJBx2Rd5)HlBA!N`z|re zlQpOMsr6ckOczYb36wU9=LKFf`{y%F;(J3~y2D>U@s$tiJ6FX;syJfS(;olM6f z2CNt4r&VX(kf+K0vpC_=rwNr+8&zn@kuUJf5@}a9ZtP)hDv{!FkcdMCv+f;nv^gzT z#`_i*WCI?`l~>Jk_@pyaBhSZ*Sd^{xaB-&oBD7+lo${`A}<*2 zBI{F?Z*d@))!H=WVv0i(g_Ofm`&&rt-4hpS&CMd8&2%6U8pno<-#SfccFYyMuQ3{0kNrPQ~#kgl?!e z6i2hI_&>-rzPa)rMTW*&MaQy-Y4k+f>Xnn@cvwmz(E696*efn(GLqsUvoQ!GbYyRF zk|_9nM8ZZe&qISm#zru!8+($4#1ShB-}WWvaUz*jS33C{TTBV{JcM+)HGMP5?@mnw z28<>%1z0(PXwK^F)dCkr5y{P|ex5UbuIwIrsj|=YWI5h=D!lj1py^b=O$KZZ)#HBH5D{>+4D^iR7=p=O4YWvA; zu=E%yK{ds+aX*qymk^>Ykr=BCzE&DR_h*5+glIeZ6~fvZpUegMz1g zXI-Anl4{>=@WC^_IJ&olCKZl{EgO8>Txy`|W)yY~CbvW5>%RXh>gO8YB}J{=>5IA( z-rnHrjkn6`2ef_YE5%*HN_bH4SB7~BOp~qqSGoNhHvA#n{Fc?uEPwKnGozAhf74ip z8+L8-h014N4dZOzC72!Ug4AQqvZA{)W@jueUXVF#L{{R3YcemNmHLx|VFiMYxc@R- zhm2fR^6WIAV-!9GQ}u=dg{yfq2R(JUi>t9zK5}W$z@HrtWA8%y5whGs6Wqsw}I{obbpY%z1)mT1b+x7bc{{ctVVIKeh diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a index 8e4eeec29dff4c5a992ad2b54f81e122c2cbd9a9..5bcadaa49078ec96a7994ff561321c327e72d32b 100755 GIT binary patch delta 3775 zcmZu!e{fXQ6`r^Ie%$xozHBxRd2a(oCe(IJX+lyGhf*1cmLwC%%1|IvCCoyD8X751 zOCT#LE3{Q>Ak0=DI2cUO7F#fEft)a*8PK9tXsrVltdhpkRPBT%Qi70T(z`eJ-F?^T zf7x%p^PTUUd(PdP6C;rmBayZ#O4-a=vu2i+B=buT$mH)*C%G(W!?BoDDIEU&!O1=s z{%BOP4}aFxsdxbE@FAEp#RZBD+1iTE0y-<)D|q5&*PAxExs)YJ;l<0v%Ey-twyN=?D^7GHZ&)1 zM=QH4B@n$lcyFO}ol(+)@W~SC^{~tN=oGerwcci&#qSHGgr$O$wOLXjxIsc}0KfF5 z^Rq6w6{a;yF;*90;6uNVLD8!{9u5j5$kx*L|=25Hl9-#pG=ZVJI74v0BB2P41Dv>Cz;_BVn0QA8cBiRGV%@>%@Kj_W$?c9qs$6^0d(!b5=l2A8Mt<2^emkLf2`{6fsVtzj7Q$EkG4ec@}kXLy4L@Y*lcIFrY4*s0l}E`a@e)WaMbFuR{8Y6WNk9Dha4R7PY;W&e6r z%~Y0_g_dqL%)36)t4^VFM(V(W{<_*sZy#FOHbF~-+&a?oP-<#V@H*#gEl7VGCZf7a zv;{VK$+fQJQVI3-Av>NiAxP`J8q-KvJ7;=4;Go=xdC z<4I}OWN!;B7>;Yx=>-dJ;D%5*TPZWNBmFrjTCrGok-RXW&cv!!HH?Q|pPfK^O~k@-?0m z4PS+agCC34Muc~@Fk(dL)6zis57sGV%{hVzJE0I4v*Y_GE`)9+4sC3DhhDOCxao2_cQhLP_Wm- zv7zdBIW=szN%kYhauRDi9Grcc8Ke&aI`?g5<|Q_TB&zLO<_A3TM=3Ea8z` z-!cErBUqc^q>c^q4-HtW3xzn*0!1o-=)WQ zoBQZ5+TbK#$6 OwRh6+JfzGmf&T&dRX#fa delta 3775 zcmZ9Oe{fXQ702i9z90AP%iGQ70q^Ys5yNQ5RFg@BETq**07){0M28wOSV99LzsgXY zmOvsY8?l&{~9I)X@+k4O-Fwy}7yX?z{e% zeD-_JJ?GqW&pU5lFMs=b`HqR|{nPShPM?v}nK6BzLjTTl9tlVmbk)fv=)jS-2|h1A zFxat2b-}3xvVEWv@+Z2WbFFM`#is$EMza+cw$#ZstU8a%{4N=l!I@7`cA86a3?%{? zS5Zs0OD+u)&Bb)z4?-Sd!(CavylEa{!N#S&h3Nw6-{R{qJj90X?Y`D~$1=@}InB3q z3pVxm@)LsSRGEMKG%o5bB~jOJ^^c#!(S_2m4R5~Z&ry@8iBt-G=x^3sSMfB}g2U(h zJ!!58>c94{;e&TSC0I@pa^b0!JwMUWmvPH?lVL1=@Fc}m~= z(fLh>(g;&(vJNVba?-NhXTd97%7RI*pF2lFQ7}JJRzBbo zq9IjHQ~$xbCgz;#3rFDhQT1l3plSP|I+qu!vm(UqA~D=-LSqc~BWHP)%Em&>p#o#6 zT8ZGw64l4u2ygJ3ezBuu2(0BnxPHqR30|9qD`F`cv*Aq z9@gV9=+jprXLCFm7gg%cYvY~C48s)b~HJ|NK-De#e8>^{4ybvWeyb>Hu zw*xs_{;Za}PN+%2h+c-A_6}A1)9igJPnrHkX2QB;%0*;CUFlT+JB0%$q@)>Smwnc#D@EVSmDK?{vRHX*RUZHbBJaMOi9P? ztE9w+>lxU6m6Sw5&%{IQ{#&;_X!hf3wTa_B#D@9LYr}$PXH$!|82}eE8gxx%-X1W<@;C`s)j2#HEPXU>aWT7~e8+eSr1Og&ZJ3Vlu(BsAe^7zY8 z;)U14{PC|u&fox&$1UGb{qwA4S?iXr&d!PD(p`zVCGAohNWKz!^k6(Nb<)@d5F;B$ z51Hh-&4FK)xd__(0}qYk|J7Hik0Yq^>4q=KzV;LLv8>CSIlXqkf*Y#7I_k~r5H{7Ey=H;N@>X9tH$8>Y0Rkf4xKcmyyg+C@V8Sp7P2glsE#$SN z-rl;c*YL?hzs1Ey%GqaKD@uO6E9DNhE5(3(OqU~gw>2f{nu-QrP5Doy$IJ$FE2Y&P z77o$aa8xpUMXrW^mC1@(jNqR6hQb4--b%}jaz2$Q=~`rb$7aQh(eJkfC)XJ3cp<2! za;I^Y_aHrS{%#|abw0Hs`%SYEWy6<|4=x(RC1X)B(w7;0m+e4|yk8ltXBRWW`Q}p` zg%wr7ey?W>ez7cA*W~eI9mJtM6;s|dZ9ArNvSCCIsXBNTw!wIPXBfu3r?l+B?U zwlOk7R=N@dM4s+d+Awn@G?%?K7V%3nQ`3rtqfW+CFSBc$;h;XU0sZ~C)MN7m&Hl5g zuuvdRXNSw#n`JQ!7KFcGcf-!QUK-BwR?vci7sBgU+cK+@Z-nc-Ru(*dF#MrN9zGh* zwuRH1&WE#81oCBH*y8cDEF$aD6XUvH+BvFXN6f2%t!@q|Z1PM>0i*e1X< zJMzrS>~Xjx-~6XYwmoQmA(G$CG8c$s<*7-vI3km spAhS|@r-%Gn~M$A=geNO9~&OHVAivD&gypVGjksAG#X*SfVm~*|JaS52mk;8 diff --git a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_hfp_hf_service.c b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_hfp_hf_service.c index b18558186..4bb78f63a 100755 --- a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_hfp_hf_service.c +++ b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_hfp_hf_service.c @@ -12,7 +12,7 @@ #include "bts_br_gap.h" #include "bts_hfp_hf.h" #include "sample_common.h" -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT #include "audio_manager.h" #else #include "bt_audio_manager_wrapper.h" @@ -59,7 +59,7 @@ typedef struct { hfp_hf_sample_cmd_handle_func func; } sample_hfp_hf_hdl_info; -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT struct AudioManager *g_audio_manager = NULL; struct AudioAdapter *g_primary_adapter = NULL; struct AudioAdapter *g_bluetooth_adapter = NULL; @@ -121,7 +121,7 @@ static void sample_handle_hfp_connection_state_changed(const bd_addr_t *bd_addr, static int32_t g_hfp_media_status = 0; static int32_t g_hfp_media_flag = 0; -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT #define MAX_AUDIO_ADAPTER_NUM 2 #define MAX_KEY_VALUE_LEN 25 @@ -143,7 +143,7 @@ static int32_t g_hdl_dn_spk = -1; static int32_t g_hdl_dn_sco = -1; #endif -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT static void audio_sample_attr_init(enum AudioFormat audio_format, struct AudioSampleAttributes *param) { param->type = AUDIO_IN_COMMUNICATION; @@ -379,7 +379,7 @@ static int32_t abrogation_audio_capture_render_pipeline(void) } #endif -#ifndef MEMORY_MINI +#ifndef MEMORY_MINI_HFP_SUPPORT static int32_t audio_stream_init(void) { /* 请求音频焦点 */ @@ -444,7 +444,7 @@ static int32_t sample_audio_init_start_task_body(const void *data) g_hfp_media_flag = HFP_MEDIA_FLAG_BUSY; int ret; -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT ret = audio_capture_render_init(); if (ret != 0) { bts_sample_log("{%s():%d} audio capture render init failed\n", __FUNCTION__, __LINE__); @@ -458,7 +458,7 @@ static int32_t sample_audio_init_start_task_body(const void *data) g_hfp_media_status = HFP_MEDIA_STATUS_INIT; /* 建立电话上下行通路 */ -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT ret = establish_audio_capture_render_pipeline(); if (ret != 0) { bts_sample_log("{%s():%d} establish audio capture render pipeline failed\n", __FUNCTION__, __LINE__); @@ -490,7 +490,7 @@ static int32_t sample_audio_deinit_task_body(const void *data) /* 设置媒体状态繁忙 */ g_hfp_media_flag = HFP_MEDIA_FLAG_BUSY; -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT abrogation_audio_capture_render_pipeline(); #else abrogation_audio_stream_pipeline(); @@ -651,7 +651,7 @@ static void sample_handle_hfp_call_state_changed(const bd_addr_t *bd_addr, const void sample_hfp_hf_set_spk_volume(uint8_t volume) { -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT /* vol range [0, 1.0] */ float vol = (float)volume / SAMPLE_HFP_PROF_VOL_LEVEL; if (g_audio_render_down_link != NULL) { @@ -686,13 +686,13 @@ static void sample_handle_hfp_codec_changed(const bd_addr_t *bd_addr, int codec) sample_hfp_hf_print_addr(bd_addr); bts_sample_log_with_func("codec : %d\n", codec); if (codec == HFP_HF_CODEC_ID_CVSD) { -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT g_hfp_codec = AUDIO_FORMAT_PCM_16_BIT; #else g_hfp_codec = PCM; #endif } else if (codec == HFP_HF_CODEC_ID_MSBC) { -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT g_hfp_codec = AUDIO_FORMAT_mSBC; #else g_hfp_codec = mSBC; @@ -756,7 +756,7 @@ static void sample_hfp_hf_cmd_00_reg_callback(const char **params, int32_t param // 蓝牙通话注册回调 void wstp_hfp_hf_reg_callback(void) { -#ifdef MEMORY_MINI +#ifdef MEMORY_MINI_HFP_SUPPORT audio_hal_init(); #endif errcode_t ret = ERRCODE_BT_SUCCESS; diff --git a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_spp_service.c b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_spp_service.c index af41b6e68..618e1e9a1 100755 --- a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_spp_service.c +++ b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_spp_service.c @@ -158,6 +158,8 @@ static void sample_spp_cmd_server_create(const char **params, int32_t params_cnt bts_sample_log_with_func("spp_server_create ret: %x\n", ret); } +static osal_task *g_spp_server_accept_task = NULL; +static bool g_spp_server_wait_accept = false; static int sample_spp_server_accept_task_body(const void *data) { int server_id = (int)(intptr_t)data; @@ -166,6 +168,13 @@ static int sample_spp_server_accept_task_body(const void *data) int ret = spp_server_accept(server_id); bts_sample_log_with_func("spp_server_accept ret: %x\n", ret); + g_spp_server_wait_accept = false; + bts_sample_log_with_func("spp_server_accept task %x task.task %x\n", + g_spp_server_accept_task, g_spp_server_accept_task->task); + if (g_spp_server_accept_task != NULL && g_spp_server_accept_task->task != NULL) { + osal_kthread_destroy(g_spp_server_accept_task, 0); + g_spp_server_accept_task = NULL; + } return OSAL_SUCCESS; } @@ -173,15 +182,20 @@ static int sample_spp_server_accept_task_body(const void *data) /* 等待client连接 */ void wstp_spp_cmd_server_accept(uint32_t server_id) { - osal_task *task = osal_kthread_create(sample_spp_server_accept_task_body, + if (g_spp_server_wait_accept == true) { + bts_sample_log_with_func("create task fail. exsit running task.\n"); + return; + } + g_spp_server_wait_accept = true; + g_spp_server_accept_task = osal_kthread_create(sample_spp_server_accept_task_body, (void *)(uintptr_t)server_id, "spp_server_accept_task", SAMPLE_SPP_TASK_STACK_SIZE); - if (task == NULL) { + if (g_spp_server_accept_task == NULL) { bts_sample_log_with_func("create task fail\n"); return; } - int ret = osal_kthread_set_priority(task, SAMPLE_SPP_TASK_PRI); + int ret = osal_kthread_set_priority(g_spp_server_accept_task, SAMPLE_SPP_TASK_PRI); if (ret != OSAL_SUCCESS) { bts_sample_log_with_func("set pri error: %08x\n", ret); } diff --git a/code/sdk/protocol/bt/host/bt/bts/bt_sample/bt_core/sample_bts_gap.c b/code/sdk/protocol/bt/host/bt/bts/bt_sample/bt_core/sample_bts_gap.c index d118c69b4..3689a56cc 100755 --- a/code/sdk/protocol/bt/host/bt/bts/bt_sample/bt_core/sample_bts_gap.c +++ b/code/sdk/protocol/bt/host/bt/bts/bt_sample/bt_core/sample_bts_gap.c @@ -63,7 +63,8 @@ typedef enum { BTSRV_SAMPLE_GAP_GET_FEATURE_CONFIG, /* 33 蓝牙特性获取 */ BTSRV_SAMPLE_GAP_RECONNECT_PHONE, /* 34 重连手机 */ - BTSRV_SAMPLE_GAP_SET_INQUIRY_PARAM, /* 35 设置搜到参数 */ + BTSRV_SAMPLE_GAP_SET_INQUIRY_PARAM, /* 35 设置搜到参数 */ + BTSRV_SAMPLE_GAP_SET_SERVICE_TASK_PRIORITY, /* 36 设置BT_SERVICE_TASK优先级 */ } btsrv_gap_sample_cmd_id; typedef enum { @@ -680,6 +681,8 @@ static void btsrv_sample_cmd_disconnect_remote_device(const char **params, int32 errcode_t ret = gap_ble_disconnect_remote_device(&bd_addr); bts_sample_log("gap_disconnect_remote_device ret(bool): %u\n", ret); } + +bd_addr_t g_remote_connect_addr = {0}; acl_conn_ext_mode g_acl_conn_ext_mode = ACL_EXT_MODE_CONNECT_A2DP; /* 连接设备 params: addr addr_type */ static void btsrv_sample_cmd_connect_remote_device(const char **params, int32_t params_cnt) @@ -715,6 +718,7 @@ bool wstp_connect_remote_device(const bd_addr_t *bd_addr) return false; } errcode_t ret = gap_connect_remote_device(bd_addr); + (void)memcpy_s(&g_remote_connect_addr, sizeof(bd_addr_t), bd_addr, sizeof(bd_addr_t)); bts_sample_log("gap_connect_remote_device ret(errcode_t): %x\n", ret); return (ret == ERRCODE_BT_SUCCESS) ? true : false; } @@ -724,6 +728,17 @@ static void sample_gap_state_changed_callback(const int transport, const int sta bts_sample_log("gap_state_changed_callback transport: %d status: %d\n", transport, status); } +/* 主动发起连接 */ +static bool is_active_connection(const bd_addr_t *bd_addr) +{ + if (memcmp(g_remote_connect_addr.addr, bd_addr->addr, BD_ADDR_LEN) == 0) { + (void)memset_s(g_remote_connect_addr.addr, sizeof(bd_addr_t), 0, sizeof(bd_addr_t)); + return true; + } else { + return false; + } +} + static void sample_gap_acl_state_changed_callback(const bd_addr_t *bd_addr, gap_acl_state_t state, unsigned int reason) { bts_sample_log("gap_acl_state_changed_callback addr: "); @@ -738,7 +753,7 @@ static void sample_gap_acl_state_changed_callback(const bd_addr_t *bd_addr, gap_ } #ifndef MEMORY_MINI #if (BTH_BREDR_ONLY == YES) || (BTH_BREDR_LE_DOUBLE == YES) - if (state == GAP_ACL_STATE_CONNECTED && ((uint32_t)device_class & 0x200) == 0) { + if (state == GAP_ACL_STATE_CONNECTED && ((uint32_t)device_class & 0x200) == 0 && is_active_connection(bd_addr)) { /* 只要是非手机设备,连接成功后就先初始化audio manager为音乐播放 */ bts_sample_log("sample_gap_acl_state_changed_callback call AudioManagerInit - AUDIO_STREAM_MUSIC\n"); @@ -1191,6 +1206,17 @@ static void btsrv_sample_cmd_reconnect_phone(const char **params, int32_t params bts_sample_log("reconnect phone ret:%d.\n", ret); } +static void btsrv_sample_cmd_set_service_task_priority(const char **params, int32_t params_cnt) +{ + if (params_cnt != 1) { /* 1:参数个数 */ + bts_sample_log("params_cnt error! need one param!\n"); + return; + } + uint16_t task_priority = (uint16_t)atoi(params[0]); + errcode_t ret = bts_set_service_task_priority(task_priority); + bts_sample_log("bts set service task priority ret:0x%x priority:%d\n", ret, task_priority); +} + btsrv_sample_cmd_hdl_info g_btsrv_gap_sample_hdls[] = { /* 0 */ { BTSRV_SAMPLE_GAP_ENABLE_BLE, btsrv_sample_cmd_enable_ble }, @@ -1244,6 +1270,7 @@ btsrv_sample_cmd_hdl_info g_btsrv_gap_sample_hdls[] = { /* 35 */ { BTSRV_SAMPLE_GAP_SET_INQUIRY_PARAM, btsrv_sample_cmd_set_filter_device_class }, + { BTSRV_SAMPLE_GAP_SET_SERVICE_TASK_PRIORITY, btsrv_sample_cmd_set_service_task_priority} }; void btsrv_gap_sample_cmd(uint32_t cmd_id, const char **params, int32_t params_cnt) diff --git a/code/sdk/tools/pkg/bin/brandy/bt.bin b/code/sdk/tools/pkg/bin/brandy/bt.bin index 7e312acea..41c634dfb 100755 --- a/code/sdk/tools/pkg/bin/brandy/bt.bin +++ b/code/sdk/tools/pkg/bin/brandy/bt.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23a8ebf4fe1e677662ba96dd9882af0c8247ecfee9fcb7c5c79666128b66f125 -size 425536 +oid sha256:1c2c6e827eb257e312c39c379615dc65f4d340df62244627fe0f2502f55ed513 +size 425632 diff --git a/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin b/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin index 0769cfb63..5df93c67b 100755 --- a/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin +++ b/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:52718d4082ae98fca23b0b5e19bd01a07bcb42bb9f7f152e203854f8bac7bd7a +oid sha256:c132d7fb64e2064b3f823e2415fda1ccf6c490c84c89651397f51823b8d72782 size 350088 diff --git a/code/sdk/tools/pkg/bin/brandy/dsp/mini/dsp_main.bin b/code/sdk/tools/pkg/bin/brandy/dsp/mini/dsp_main.bin index bf844e961..1c60a8219 100755 --- a/code/sdk/tools/pkg/bin/brandy/dsp/mini/dsp_main.bin +++ b/code/sdk/tools/pkg/bin/brandy/dsp/mini/dsp_main.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:37c3879f164d520afa160bee7505eabd501840aca871b3077033ebc3bfbe0c23 +oid sha256:955fa51b4e669f5c6730cdb6a1af28a886593e312c7de19a294be3416f37f09e size 331008 diff --git a/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin b/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin index 5208ee43b..c0b77b065 100755 --- a/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin +++ b/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7ef85fa292de2d6ccfd8009f7a758234cf2fa4d5a2df9def4e8fc46f0765ba6b +oid sha256:3cbcb5af41b109af9b8385fb4dd2412013115cd287c7b7fa88e4752a2d9dee23 size 344736 diff --git a/code/sdk/tools/pkg/chip_packet/brandy/packet.py b/code/sdk/tools/pkg/chip_packet/brandy/packet.py index b4451d336..2a9345eb3 100755 --- a/code/sdk/tools/pkg/chip_packet/brandy/packet.py +++ b/code/sdk/tools/pkg/chip_packet/brandy/packet.py @@ -24,11 +24,17 @@ from param_packet import gen_flash_part_bin from nv_binary import nv_begin # brandy packet -def build_brandy_other_bin(pack_style_str): +def build_brandy_other_bin(pack_style_str, flash_size): ''' build brandy partition and nv ''' chip_dir = os.path.join(SDK_DIR, "build", "config", "target_config", "brandy") # 分区配置文件路径 - partition_cfg = os.path.join(chip_dir, "param_sector", "param_sector.json") + partition_cfg = os.path.join(chip_dir, "param_sector") + if flash_size.endswith("0x1000000"): + # partition_cfg = os.path.join(partition_cfg, "param_sector_16M.json") + partition_cfg = os.path.join(partition_cfg, "param_sector_fd230.json") + else: + partition_cfg = os.path.join(partition_cfg, "param_sector.json") + partition_bin = os.path.join(SDK_DIR, "output", "brandy", "partition_table.bin") # nv配置文件路径 nv_config_json = os.path.join(chip_dir, "nv_bin_cfg") @@ -46,11 +52,71 @@ def build_brandy_other_bin(pack_style_str): gen_flash_part_bin(partition_cfg, partition_bin) nv_begin(nv_config_json, targets, 0) - -def make_all_in_one_packet(pack_style_str): +def make_all_in_one_packet_8M(pack_style_str): # make all in one packet - build_brandy_other_bin(pack_style_str) + bin_dir = os.path.join(PKG_DIR, "bin", "brandy") + application_dir = os.path.join(SDK_DIR, + "output", + "brandy", + "acore", + pack_style_str) + recovery_target = "%s-r" % pack_style_str + recovery_target = recovery_target.replace('-user', '') + recovery_bin = os.path.join(SDK_DIR, + "output", + "brandy", + "acore", + recovery_target, + "recovery.bin") + recovery_bx = recovery_bin + "|0x70050000|0x40000|100" + + upload_app_fwpkg = os.path.join(PKG_DIR, "fwpkg", "brandy", "upload_app.fwpkg") + + ssb = os.path.join(SDK_DIR, "output", "brandy", "acore", "brandy-ssb", "ssb.bin") + if not os.path.exists(ssb): + ssb = os.path.join(bin_dir, "ssb.bin") + print("ssb_path: ", ssb) + ssb_bx = ssb + "|0x70000000|0x20000|0" + + partition = os.path.join(SDK_DIR, "output", "brandy", "partition_table.bin") + partition_bx = partition + "|0x7004F000|0x1000|100" + nv = os.path.join(SDK_DIR, "output", "brandy", "nv_bin", "brandy_all_nv.bin") + nv_bx = nv + "|0x707F9000|0x4000|100" + + app = os.path.join(application_dir, "application.bin") + app_bx = app + "|0x702B0000|0x549000|18" + bt = os.path.join(bin_dir, "bt.bin") + bt_bx = bt + "|0x70090000|0x70000|20" + + target_env = TargetEnvironment(pack_style_str) + dsp_version = target_env.get("dsp_version") + dsp_main = os.path.join(bin_dir, "dsp", dsp_version, "dsp_main.bin") + dsp_main_bx = dsp_main + "|0x70100000|0x70000|22" + dsp_overlay = os.path.join(bin_dir, "dsp", dsp_version, "dsp_overlay.bin") + dsp_overlay_bx = dsp_overlay + "|0x70170000|0x140000|26" + + fs = os.path.join(application_dir, "file.bin") + fs_bx = fs + "|0xFFFFFFFF|0xFFFFFFFF|101" + + try: + packet_post_agvs = list() + packet_post_agvs.append(ssb_bx) + packet_post_agvs.append(partition_bx) + packet_post_agvs.append(app_bx) + packet_post_agvs.append(recovery_bx) + packet_post_agvs.append(bt_bx) + packet_post_agvs.append(dsp_main_bx) + packet_post_agvs.append(dsp_overlay_bx) + packet_post_agvs.append(nv_bx) + packet_post_agvs.append(fs_bx) + packet_bin(upload_app_fwpkg, packet_post_agvs) + except Exception as e: + print(e) + exit(-1) + +def make_all_in_one_packet_fd230(pack_style_str): + # make all in one packet bin_dir = os.path.join(PKG_DIR, "bin", "brandy") application_dir = os.path.join(SDK_DIR, "output", @@ -116,6 +182,79 @@ def make_all_in_one_packet(pack_style_str): print(e) exit(-1) +def make_all_in_one_packet_16M(pack_style_str): + # make all in one packet + bin_dir = os.path.join(PKG_DIR, "bin", "brandy") + application_dir = os.path.join(SDK_DIR, + "output", + "brandy", + "acore", + pack_style_str) + recovery_target = "%s-r" % pack_style_str + recovery_target = recovery_target.replace('-user', '') + recovery_bin = os.path.join(SDK_DIR, + "output", + "brandy", + "acore", + recovery_target, + "recovery.bin") + recovery_bx = recovery_bin + "|0x70B80000|0x100000|100" + + upload_app_fwpkg = os.path.join(PKG_DIR, "fwpkg", "brandy", "upload_app.fwpkg") + + ssb = os.path.join(SDK_DIR, "output", "brandy", "acore", "brandy-ssb", "ssb.bin") + if not os.path.exists(ssb): + ssb = os.path.join(bin_dir, "ssb.bin") + print("ssb_path: ", ssb) + ssb_bx = ssb + "|0x70000000|0x20000|0" + + partition = os.path.join(SDK_DIR, "output", "brandy", "partition_table.bin") + partition_bx = partition + "|0x7004F000|0x1000|100" + nv = os.path.join(SDK_DIR, "output", "brandy", "nv_bin", "brandy_all_nv.bin") + nv_bx = nv + "|0x70C80000|0x4000|100" + + app = os.path.join(application_dir, "application.bin") + app_bx = app + "|0x70380000|0x800000|18" + + bt = os.path.join(bin_dir, "bt.bin") + bt_bx = bt + "|0x70090000|0x70000|20" + + target_env = TargetEnvironment(pack_style_str) + dsp_version = target_env.get("dsp_version") + dsp_main = os.path.join(bin_dir, "dsp", dsp_version, "dsp_main.bin") + dsp_main_bx = dsp_main + "|0x70100000|0xC0000|22" + dsp_overlay = os.path.join(bin_dir, "dsp", dsp_version, "dsp_overlay.bin") + dsp_overlay_bx = dsp_overlay + "|0x701C0000|0x1C0000|26" + + fs = os.path.join(application_dir, "file.bin") + fs_bx = fs + "|0xFFFFFFFF|0xFFFFFFFF|101" + + try: + packet_post_agvs = list() + packet_post_agvs.append(ssb_bx) + packet_post_agvs.append(partition_bx) + packet_post_agvs.append(app_bx) + packet_post_agvs.append(recovery_bx) + packet_post_agvs.append(bt_bx) + packet_post_agvs.append(dsp_main_bx) + packet_post_agvs.append(dsp_overlay_bx) + packet_post_agvs.append(nv_bx) + packet_post_agvs.append(fs_bx) + packet_bin(upload_app_fwpkg, packet_post_agvs) + except Exception as e: + print(e) + exit(-1) + + +def make_all_in_one_packet(pack_style_str, flash_size): + # make all in one packet + build_brandy_other_bin(pack_style_str, flash_size) + if flash_size.endswith("0x1000000"): + make_all_in_one_packet_fd230(pack_style_str) + # make_all_in_one_packet_16M(pack_style_str) + else: + make_all_in_one_packet_8M(pack_style_str) + def is_packing_files_exist(soc, pack_style_str): """ 判断打包文件是否存在 diff --git a/code/sdk/tools/pkg/packet.py b/code/sdk/tools/pkg/packet.py index a50d62e20..1f4fe7c4f 100755 --- a/code/sdk/tools/pkg/packet.py +++ b/code/sdk/tools/pkg/packet.py @@ -17,6 +17,7 @@ def main(): print("Parameter error") build_soc = sys.argv[1] build_target = sys.argv[2] + flash_size = sys.argv[3] load_fmt = "chip_packet.%s.packet" %build_soc load_mod = importlib.import_module(load_fmt) @@ -26,7 +27,7 @@ def main(): lost = ";".join(lost_file) print(f"cannot find {lost}") exit(-1) - load_mod.make_all_in_one_packet(build_target) + load_mod.make_all_in_one_packet(build_target, flash_size) if __name__ == "__main__": main() diff --git a/patch_602_0812_to_0911.txt b/patch_602_0812_to_0911.txt new file mode 100644 index 000000000..cf713ecfb --- /dev/null +++ b/patch_602_0812_to_0911.txt @@ -0,0 +1,49 @@ +【补丁名称】patch_602_0812_to_0911 +【基础版本】b602 + 0521 + 0626 + 7020 + 0812 +【修复问题】 +BT合入内容 + 1、提供配置BT_SERVICE_TASK任务优先级的接口。 + 2、白名单流控方案,解决BLE配对B核数据积压导致内存不足问题。 + 3、解决T1来电未打断音乐的问题。 + 4、解决task创建过多导致通话通路未创建的问题。 + 5、屏蔽bt睡眠唤醒统计日志。 +PLT合入内容 + 1、msgcenter与native app代码解耦。 + 2、nv flash下电前刷新机制调整。 + 3、支持16M norFlash部署。 +MEDIA合入内容 + 1、解决视频停播问题。 +GUI合入内容 + 1、修复MemCheck挂死问题 + 2、修复UIKIT SAMPLE选择足球效果死机重启 + 3、UICrossView优化 + 4、针对无动画的ChangeSlice优化 + 5、异步及ULPS优化 + 6、支持切换页面时清除设备分发状态和缓存数据 + 7、支持SlipFlow + 8、修复视频表盘滑动到指南针不转动问题 +OHOS合入内容 + 1、解决jsapp内多次跳转page内存持续增长OOM问题。 + 2、增加network jsi,方便客户native对接。 + 3、解决贪吃蛇性能问题,提供drawImage方式。 +NATIVE-JS sample合入内容 + 1、解决美人鱼耳机无法控制音量问题。 + 2、解决取消配对后连接状态未刷新问题。 + 3、调整音量同步逻辑。 + 4、音乐播放结束回调不能直接操作UI。 + 5、刪除PresenterTask类。 + 6、解决蜂窝list内存泄露。 +【修改影响】NA + +【使用方法】 + 1、合入0521补丁 + 2、合入0626补丁 + 3、合入0720补丁 + 4、合入0812补丁 + 4、合入0909补丁 +【自测情况】 + 自验证范围: + 全功能冒烟 + 自验证target: + Native-js、target3 rc版本 +【是否合入版本】根据测试结果确定 -- 2.17.1