From 5471e351e17b935b3f478784a06eaf2f4e3aa7e2 Mon Sep 17 00:00:00 2001 From: rongkunshi Date: Sun, 6 Mar 2022 21:58:11 +0800 Subject: [PATCH 1/3] slide-trace-add Signed-off-by: rongkunshi --- common/include/frame_info_const.h | 2 ++ .../include/frame_scene_sched.h | 2 ++ .../include/rme_core_sched.h | 2 ++ .../include/rme_scene_sched.h | 5 ++++ .../src/frame_msg_mgr.cpp | 6 ++++ .../src/rme_core_sched.cpp | 21 +++++++++++--- .../src/rme_scene_sched.cpp | 29 +++++++++++++++---- .../innerkits/frameintf/frame_ui_intf.cpp | 28 ++++++++++++++++-- .../innerkits/frameintf/frame_ui_intf.h | 3 ++ 9 files changed, 87 insertions(+), 11 deletions(-) diff --git a/common/include/frame_info_const.h b/common/include/frame_info_const.h index d1e4bf4..b25d845 100644 --- a/common/include/frame_info_const.h +++ b/common/include/frame_info_const.h @@ -32,6 +32,8 @@ enum class FrameEvent { EVENT_SET_PARAM, EVENT_RTG_ENABLE, EVENT_BUFFER_COUNT, + EVENT_BEGIN_FRAME, + EVENT_END_FRAME, UNKNOWN, }; diff --git a/frameworks/core/frame_aware_collector/include/frame_scene_sched.h b/frameworks/core/frame_aware_collector/include/frame_scene_sched.h index 66ae8f4..768c557 100644 --- a/frameworks/core/frame_aware_collector/include/frame_scene_sched.h +++ b/frameworks/core/frame_aware_collector/include/frame_scene_sched.h @@ -25,6 +25,8 @@ public: FrameSceneSched() {}; virtual ~FrameSceneSched() = default; + virtual void HandleBeginFrame() = 0; + virtual void HandleEndFrame() = 0; virtual void BeginFlushAnimation() = 0; virtual void EndFlushAnimation() = 0; virtual void BeginFlushBuild() = 0; diff --git a/frameworks/core/frame_aware_collector/include/rme_core_sched.h b/frameworks/core/frame_aware_collector/include/rme_core_sched.h index cd9d48f..94afb67 100644 --- a/frameworks/core/frame_aware_collector/include/rme_core_sched.h +++ b/frameworks/core/frame_aware_collector/include/rme_core_sched.h @@ -28,6 +28,8 @@ public: ~RmeCoreSched(); bool Init(); + void HandleBeginFrame(); + void HandleEndFrame(); void BeginFlushAnimation(); void EndFlushAnimation(); void BeginFlushBuild(); diff --git a/frameworks/core/frame_aware_collector/include/rme_scene_sched.h b/frameworks/core/frame_aware_collector/include/rme_scene_sched.h index d94660d..e66e702 100644 --- a/frameworks/core/frame_aware_collector/include/rme_scene_sched.h +++ b/frameworks/core/frame_aware_collector/include/rme_scene_sched.h @@ -20,6 +20,8 @@ #include "frame_window_mgr.h" #include "rme_core_sched.h" +#include + namespace OHOS { namespace RME { class RmeSceneSched : public FrameSceneSched { @@ -28,6 +30,9 @@ public: ~RmeSceneSched() override; bool Init(); + void HandleBeginFrame() override; + void HandleEndFrame() override; + void BeginFlushAnimation() override; void EndFlushAnimation() override; diff --git a/frameworks/core/frame_aware_collector/src/frame_msg_mgr.cpp b/frameworks/core/frame_aware_collector/src/frame_msg_mgr.cpp index 3096491..4526b30 100644 --- a/frameworks/core/frame_aware_collector/src/frame_msg_mgr.cpp +++ b/frameworks/core/frame_aware_collector/src/frame_msg_mgr.cpp @@ -122,6 +122,12 @@ void FrameMsgMgr::HandleDefaultEvent(FrameEvent event, EventState value) case FrameEvent::SEND_COMMANDS: scene->SendCommandsStart(); break; + case FrameEvent::EVENT_END_FRAME: + scene->HandleEndFrame(); + break; + case FrameEvent::EVENT_BEGIN_FRAME: + scene->HandleBeginFrame(); + break; default: RME_LOGE("[HandleDefaultEvent]: unknown event id: %{public}d, event state:%{public}d\n", static_cast(event), static_cast(value)); diff --git a/frameworks/core/frame_aware_collector/src/rme_core_sched.cpp b/frameworks/core/frame_aware_collector/src/rme_core_sched.cpp index 298e9b4..7c8f75d 100644 --- a/frameworks/core/frame_aware_collector/src/rme_core_sched.cpp +++ b/frameworks/core/frame_aware_collector/src/rme_core_sched.cpp @@ -45,13 +45,18 @@ bool RmeCoreSched::Init() return ret; } +void RmeCoreSched::HandleBeginFrame() +{ + RME_FUNCTION_TRACE(); +} + void RmeCoreSched::BeginFlushAnimation() { m_pid = getpid(); if (m_rtg == -1) { m_rtg = SearchRtgForTid(m_pid); if (m_rtg <= 0) { - RME_LOGE("[BeginFlushAnimation]:Search rtg empty!pid %{public}d,Rtg: %{public}d", + RME_LOGW("[BeginFlushAnimation]:Search rtg empty!pid %{public}d,Rtg: %{public}d", m_pid, m_rtg); return; } else { @@ -106,7 +111,7 @@ void RmeCoreSched::ProcessCommandsStart() {} void RmeCoreSched::AnimateStart() { if (m_rtg <= 0) { - RME_LOGE("[AnimateStart]: search rtg empty! Rtg:%{public}d, Pid:%{public}d", m_rtg, m_pid); + RME_LOGW("[AnimateStart]: search rtg empty! Rtg:%{public}d, Pid:%{public}d", m_rtg, m_pid); return; } m_renderTid = gettid(); @@ -124,13 +129,21 @@ void RmeCoreSched::RenderStart() void RmeCoreSched::SendCommandsStart() { + RmeTraceBegin(("FrameS-SetMargin:" + to_string(m_rtg) + " margin:" + to_string(MARGIN_THREE)).c_str()); + SetMargin(m_rtg, MARGIN_THREE); + RmeTraceEnd(); +} + +void RmeCoreSched::HandleEndFrame() +{ + RME_FUNCTION_TRACE(); if (m_rtg <= 0) { - RME_LOGW("[SendCommandStart]: search rtg empty! rtGrp:%{public}d, m_pid:%{public}d!", + RME_LOGW("[HandleEndFrame]: search rtg empty! rtGrp:%{public}d, m_pid:%{public}d!", m_rtg, m_pid); return; } int ret = EndFrameFreq(m_rtg); - RmeTraceBegin(("FrameS-EndFrameFreq-rtg:" + to_string(m_rtg)+" ret:" + to_string(ret)).c_str()); + RmeTraceBegin(("FrameS-EndFrameFreq-rtg:" + to_string(m_rtg) + " ret:" + to_string(ret)).c_str()); RmeTraceEnd(); } } // namespace RME diff --git a/frameworks/core/frame_aware_collector/src/rme_scene_sched.cpp b/frameworks/core/frame_aware_collector/src/rme_scene_sched.cpp index aa36180..a3571e6 100644 --- a/frameworks/core/frame_aware_collector/src/rme_scene_sched.cpp +++ b/frameworks/core/frame_aware_collector/src/rme_scene_sched.cpp @@ -34,7 +34,6 @@ bool RmeSceneSched::Init() rmeCoreSched = new RmeCoreSched(); } - curWorkingStatus = 1; if (rmeCoreSched == nullptr) { return false; } @@ -42,11 +41,17 @@ bool RmeSceneSched::Init() return ret; } +void RmeSceneSched::HandleBeginFrame() +{ + curWorkingStatus = 1; + FrameWindowMgr::GetInstance().SetStartFlag(true); + rmeCoreSched->HandleBeginFrame(); + RmeTraceBegin(("FrameS-curWorkingStatus" + std::to_string(curWorkingStatus)).c_str()); + RmeTraceEnd(); +} + void RmeSceneSched::BeginFlushAnimation() { - if (!FrameWindowMgr::GetInstance().GetEnable()) { - return; - } if (curWorkingStatus == 1) { rmeCoreSched->BeginFlushAnimation(); } @@ -54,7 +59,7 @@ void RmeSceneSched::BeginFlushAnimation() void RmeSceneSched::EndFlushAnimation() { - if (curWorkingStatus == 1) { + if (curWorkingStatus == 1) { rmeCoreSched->EndFlushAnimation(); } } @@ -149,5 +154,19 @@ void RmeSceneSched::SendCommandsStart() rmeCoreSched->SendCommandsStart(); } } + +void RmeSceneSched::HandleEndFrame() +{ + if (curWorkingStatus == 0) { + return; + } + rmeCoreSched->HandleEndFrame(); + if (FrameWindowMgr::GetInstance().GetStartFlag()) { + FrameWindowMgr::GetInstance().SetStartFlag(false); + } + curWorkingStatus = 0; + RmeTraceBegin(("FrameS-curWorkingStatus" + std::to_string(curWorkingStatus)).c_str()); + RmeTraceEnd(); +} } // namespace RME } // namespace OHOS diff --git a/interfaces/innerkits/frameintf/frame_ui_intf.cpp b/interfaces/innerkits/frameintf/frame_ui_intf.cpp index f01980b..370b46f 100644 --- a/interfaces/innerkits/frameintf/frame_ui_intf.cpp +++ b/interfaces/innerkits/frameintf/frame_ui_intf.cpp @@ -166,12 +166,26 @@ void FrameUiIntf::RenderStart() const void FrameUiIntf::SendCommandsStart() const { - RME_LOGI("[SendCommandsStart]:start"); if (!inited) { return; } FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::SEND_COMMANDS, EventState::EVENT_ENTER); - RME_LOGI("[SendCommandsStart]:success"); +} + +void FrameUiIntf::BeginListFling() const +{ + if (!inited) { + return; + } + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_BEGIN_FRAME, EventState::EVENT_ENTER); +} + +void FrameUiIntf::EndListFling() const +{ + if (!inited) { + return; + } + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_END_FRAME, EventState::EVENT_ENTER); } extern "C" void Init() @@ -258,5 +272,15 @@ extern "C" void SendCommandsStart() { FrameUiIntf::GetInstance().SendCommandsStart(); } + +extern "C" void BeginListFling() +{ + FrameUiIntf::GetInstance().BeginListFling(); +} + +extern "C" void EndListFling() +{ + FrameUiIntf::GetInstance().EndListFling(); +} } // namespace RME } // namespace OHOS diff --git a/interfaces/innerkits/frameintf/frame_ui_intf.h b/interfaces/innerkits/frameintf/frame_ui_intf.h index 2801fbd..fbdb42c 100644 --- a/interfaces/innerkits/frameintf/frame_ui_intf.h +++ b/interfaces/innerkits/frameintf/frame_ui_intf.h @@ -42,6 +42,9 @@ public: void AnimateStart() const; void RenderStart() const; void SendCommandsStart() const; + + void BeginListFling() const; + void EndListFling() const; private: bool inited = false; }; -- Gitee From 8c777ada93c4ed014685979f139b6f206950d026 Mon Sep 17 00:00:00 2001 From: rongkunshi Date: Mon, 7 Mar 2022 21:49:18 +0800 Subject: [PATCH 2/3] csec--switch case modify Signed-off-by: rongkunshi --- common/include/frame_info_const.h | 37 ++- .../include/frame_msg_mgr.h | 29 +- .../src/frame_msg_mgr.cpp | 284 +++++++++++++----- .../innerkits/frameintf/frame_ui_intf.cpp | 34 +-- 4 files changed, 271 insertions(+), 113 deletions(-) diff --git a/common/include/frame_info_const.h b/common/include/frame_info_const.h index b25d845..d525abf 100644 --- a/common/include/frame_info_const.h +++ b/common/include/frame_info_const.h @@ -19,32 +19,29 @@ namespace OHOS { namespace RME { enum class FrameEvent { - FLUSH_ANIMATION, - FLUSH_BUILD, - FLUSH_LAYOUT, - FLUSH_RENDER, - FLUSH_RENDER_FINISH, // to add, do not realize - PROCESS_POST_FLUSH, - PROCESS_COMMANDS, - ANIMATE, - RENDER, - SEND_COMMANDS, + EVENT_BEGIN_FRAME, + EVENT_FLUSH_ANIMATION_START, + EVENT_FLUSH_ANIMATION_END, + EVENT_FLUSH_BUILD_START, + EVENT_FLUSH_BUILD_END, + EVENT_FLUSH_LAYOUT_START, + EVENT_FLUSH_LAYOUT_END, + EVENT_FLUSH_RENDER_START, + EVENT_FLUSH_RENDER_END, + EVENT_FLUSH_RENDER_FINISH_START, + EVENT_FLUSH_RENDER_FINISH_END, + EVENT_PROCESS_POST_FLUSH_START, + EVENT_PROCESS_COMMANDS_START, + EVENT_ANIMATE_START, + EVENT_RENDER_START, + EVENT_SEND_COMMANDS_START, + EVENT_END_FRAME, EVENT_SET_PARAM, EVENT_RTG_ENABLE, EVENT_BUFFER_COUNT, - EVENT_BEGIN_FRAME, - EVENT_END_FRAME, UNKNOWN, }; -enum class EventState { - EVENT_ENTER, - EVENT_CONSUMED, - EVENT_EXIT, - ENABLE, - DISABLE, -}; - enum class SceneEvent { SCENE_INVALID = 0, VIDEO, diff --git a/frameworks/core/frame_aware_collector/include/frame_msg_mgr.h b/frameworks/core/frame_aware_collector/include/frame_msg_mgr.h index dfcaef3..410b3d2 100644 --- a/frameworks/core/frame_aware_collector/include/frame_msg_mgr.h +++ b/frameworks/core/frame_aware_collector/include/frame_msg_mgr.h @@ -17,6 +17,7 @@ #define FRAME_MSG_MGR_H #include +#include #include "rme_log_domain.h" #include "frame_info_const.h" @@ -32,12 +33,36 @@ public: FrameMsgMgr(); ~FrameMsgMgr(); bool Init(); - void EventUpdate(FrameEvent eventType, EventState state); + void EventUpdate(FrameEvent eventType); private: + bool HandleFrameMsgKey(FrameEvent event); + void FrameMapKeyToFunc(); void UpdateScene(SceneEvent scene); - void HandleDefaultEvent(FrameEvent event, EventState state); void SetSchedParam(); + + void HandleBeginFrame(); + void BeginFlushAnimation(); + void EndFlushAnimation(); + void BeginFlushBuild(); + void EndFlushBuild(); + void BeginFlushLayout(); + void EndFlushLayout(); + void BeginFlushRender(); + void EndFlushRender(); + void BeginFlushRenderFinish(); + void EndFlushRenderFinish(); + + void BeginProcessPostFlush(); + void ProcessCommandsStart(); + void AnimateStart(); + void RenderStart(); + void SendCommandsStart(); + void HandleEndFrame(); + FrameSceneSched *GetSceneHandler() const; + typedef void (FrameMsgMgr:: *PHandle)(void); + std::map m_frameMsgKeyToFunc; + SceneEvent sceneType; RmeSceneSched *rmeScene; }; diff --git a/frameworks/core/frame_aware_collector/src/frame_msg_mgr.cpp b/frameworks/core/frame_aware_collector/src/frame_msg_mgr.cpp index 4526b30..63b9c3e 100644 --- a/frameworks/core/frame_aware_collector/src/frame_msg_mgr.cpp +++ b/frameworks/core/frame_aware_collector/src/frame_msg_mgr.cpp @@ -22,7 +22,9 @@ IMPLEMENT_SINGLE_INSTANCE(FrameMsgMgr); FrameMsgMgr::FrameMsgMgr() : sceneType(SceneEvent::SLIDE), rmeScene(nullptr) -{} +{ + FrameMapKeyToFunc(); +} FrameMsgMgr::~FrameMsgMgr() { @@ -44,17 +46,59 @@ bool FrameMsgMgr::Init() return true; } -void FrameMsgMgr::EventUpdate(FrameEvent event, EventState value) +void FrameMsgMgr::EventUpdate(FrameEvent event) { switch (event) { case FrameEvent::EVENT_SET_PARAM: SetSchedParam(); break; default: - HandleDefaultEvent(event, value); - break; + HandleFrameMsgKey(event); + break; + } +} + +bool FrameMsgMgr::HandleFrameMsgKey(FrameEvent event) +{ + std::map::iterator iter = m_frameMsgKeyToFunc.find(event); + if (m_frameMsgKeyToFunc.end() == iter) { + RME_LOGE("[HandleFrameMsgKey]: search frameEvent:%{public}d failed!", + static_cast(event)); + return false; + } + PHandle pFunction = iter->second; + (this->*pFunction)(); + return true; +} + +void FrameMsgMgr::FrameMapKeyToFunc() +{ + m_frameMsgKeyToFunc[FrameEvent::EVENT_BEGIN_FRAME] = &FrameMsgMgr::HandleBeginFrame; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_ANIMATION_START] = &FrameMsgMgr::BeginFlushAnimation; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_ANIMATION_END] = &FrameMsgMgr::EndFlushAnimation; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_BUILD_START] = &FrameMsgMgr::BeginFlushBuild; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_BUILD_END] = &FrameMsgMgr::EndFlushBuild; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_LAYOUT_START] = &FrameMsgMgr::BeginFlushLayout; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_LAYOUT_END] = &FrameMsgMgr::EndFlushLayout; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_RENDER_START] = &FrameMsgMgr::BeginFlushRender; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_RENDER_END] = &FrameMsgMgr::EndFlushRender; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_RENDER_FINISH_START] = &FrameMsgMgr::BeginFlushRenderFinish; + m_frameMsgKeyToFunc[FrameEvent::EVENT_FLUSH_RENDER_FINISH_END] = &FrameMsgMgr::EndFlushRenderFinish; + m_frameMsgKeyToFunc[FrameEvent::EVENT_PROCESS_POST_FLUSH_START] = &FrameMsgMgr::BeginProcessPostFlush; + m_frameMsgKeyToFunc[FrameEvent::EVENT_PROCESS_COMMANDS_START] = &FrameMsgMgr::ProcessCommandsStart; + m_frameMsgKeyToFunc[FrameEvent::EVENT_ANIMATE_START] = &FrameMsgMgr::AnimateStart; + m_frameMsgKeyToFunc[FrameEvent::EVENT_RENDER_START] = &FrameMsgMgr::RenderStart; + m_frameMsgKeyToFunc[FrameEvent::EVENT_SEND_COMMANDS_START] = &FrameMsgMgr::SendCommandsStart; + m_frameMsgKeyToFunc[FrameEvent::EVENT_END_FRAME] = &FrameMsgMgr::HandleEndFrame; +} + +FrameSceneSched *FrameMsgMgr::GetSceneHandler() const +{ + if (sceneType == SceneEvent::SCENE_INVALID) { + RME_LOGE("[GetSceneHandler]:get nullptr sceneType %{public}d,", static_cast(sceneType)); + return nullptr; } - return; + return rmeScene; } void FrameMsgMgr::UpdateScene(SceneEvent scene) @@ -65,88 +109,180 @@ void FrameMsgMgr::UpdateScene(SceneEvent scene) sceneType = scene; } -void FrameMsgMgr::HandleDefaultEvent(FrameEvent event, EventState value) +void FrameMsgMgr::HandleBeginFrame() { + RME_LOGI("[HandleBeginFrame]:start"); FrameSceneSched *scene = GetSceneHandler(); if (scene == nullptr) { - RME_LOGE("[HandleDefaultEvent]:scene nullptr"); + RME_LOGE("[HandleBeginFrame]:scene nullptr"); return; } - switch (event) { - case FrameEvent::FLUSH_ANIMATION: - if (value == EventState::EVENT_ENTER) { - scene->BeginFlushAnimation(); - } else { - scene->EndFlushAnimation(); - } - break; - case FrameEvent::FLUSH_BUILD: - if (value == EventState::EVENT_ENTER) { - scene->BeginFlushBuild(); - } else { - scene->EndFlushBuild(); - } - break; - case FrameEvent::FLUSH_LAYOUT: - if (value == EventState::EVENT_ENTER) { - scene->BeginFlushLayout(); - } else { - scene->EndFlushLayout(); - } - break; - case FrameEvent::FLUSH_RENDER: - if (value == EventState::EVENT_ENTER) { - scene->BeginFlushRender(); - } else { - scene->EndFlushRender(); - } - break; - case FrameEvent::FLUSH_RENDER_FINISH: - if (value == EventState::EVENT_ENTER) { - scene->BeginFlushRenderFinish(); - } else { - scene->EndFlushRenderFinish(); - } - case FrameEvent::PROCESS_POST_FLUSH: - scene->BeginProcessPostFlush(); - break; - case FrameEvent::PROCESS_COMMANDS: - scene->ProcessCommandsStart(); - break; - case FrameEvent::ANIMATE: - scene->AnimateStart(); - break; - case FrameEvent::RENDER: - scene->RenderStart(); - break; - case FrameEvent::SEND_COMMANDS: - scene->SendCommandsStart(); - break; - case FrameEvent::EVENT_END_FRAME: - scene->HandleEndFrame(); - break; - case FrameEvent::EVENT_BEGIN_FRAME: - scene->HandleBeginFrame(); - break; - default: - RME_LOGE("[HandleDefaultEvent]: unknown event id: %{public}d, event state:%{public}d\n", - static_cast(event), static_cast(value)); - return; + scene->HandleBeginFrame(); +} + +void FrameMsgMgr::BeginFlushAnimation() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[BeginFlushAnimation]:scene nullptr"); + return; } + scene->BeginFlushAnimation(); } -void FrameMsgMgr::SetSchedParam() +void FrameMsgMgr::EndFlushAnimation() { - RME_LOGI("[SetSchedParam]: set default sched param!"); + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[EndFlushAnimation]:scene nullptr"); + return; + } + scene->EndFlushAnimation(); } -FrameSceneSched *FrameMsgMgr::GetSceneHandler() const +void FrameMsgMgr::BeginFlushBuild() { - if (sceneType == SceneEvent::SCENE_INVALID) { - RME_LOGE("[GetSceneHandler]:get nullptr sceneType %{public}d,", static_cast(sceneType)); - return nullptr; + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[BeginFlushBuild]:scene nullptr"); + return; } - return rmeScene; + scene->BeginFlushBuild(); +} + +void FrameMsgMgr::EndFlushBuild() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[EndFlushBuild]:scene nullptr"); + return; + } + scene->EndFlushBuild(); +} + +void FrameMsgMgr::BeginFlushLayout() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[BeginFlushLayout]:scene nullptr"); + return; + } + scene->BeginFlushLayout(); +} + +void FrameMsgMgr::EndFlushLayout() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[EndFlushLayout]:scene nullptr"); + return; + } + scene->EndFlushLayout(); +} + +void FrameMsgMgr::BeginFlushRender() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[BeginFlushRender]:scene nullptr"); + return; + } + scene->BeginFlushRender(); +} + +void FrameMsgMgr::EndFlushRender() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[EndFlushRender]:scene nullptr"); + return; + } + scene->EndFlushRender(); +} + +void FrameMsgMgr::BeginFlushRenderFinish() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[BeginFlushRenderFinish]:scene nullptr"); + return; + } + scene->BeginFlushRenderFinish(); +} + +void FrameMsgMgr::EndFlushRenderFinish() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[EndFlushRenderFinish]:scene nullptr"); + return; + } + scene->EndFlushRenderFinish(); +} + +void FrameMsgMgr::BeginProcessPostFlush() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[BeginProcessPostFlush]:scene nullptr"); + return; + } + scene->BeginProcessPostFlush(); +} + +void FrameMsgMgr::ProcessCommandsStart() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[ProcessCommandsStart]:scene nullptr"); + return; + } + scene->ProcessCommandsStart(); +} + +void FrameMsgMgr::AnimateStart() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[AnimateStart]:scene nullptr"); + return; + } + scene->AnimateStart(); +} + +void FrameMsgMgr::RenderStart() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[RenderStart]:scene nullptr"); + return; + } + scene->RenderStart(); +} + +void FrameMsgMgr::SendCommandsStart() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[SendCommandsStart]:scene nullptr"); + return; + } + scene->SendCommandsStart(); +} + +void FrameMsgMgr::HandleEndFrame() +{ + FrameSceneSched *scene = GetSceneHandler(); + if (scene == nullptr) { + RME_LOGE("[HandleEndFrame]:scene nullptr"); + return; + } + scene->HandleEndFrame(); +} + +void FrameMsgMgr::SetSchedParam() +{ + RME_LOGI("[SetSchedParam]: set default sched param!"); } } // namespace RME } // namespace OHOS diff --git a/interfaces/innerkits/frameintf/frame_ui_intf.cpp b/interfaces/innerkits/frameintf/frame_ui_intf.cpp index 370b46f..f96f4c2 100644 --- a/interfaces/innerkits/frameintf/frame_ui_intf.cpp +++ b/interfaces/innerkits/frameintf/frame_ui_intf.cpp @@ -57,7 +57,7 @@ void FrameUiIntf::BeginFlushAnimation() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_ANIMATION, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_ANIMATION_START); } void FrameUiIntf::EndFlushAnimation() const @@ -65,7 +65,7 @@ void FrameUiIntf::EndFlushAnimation() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_BUILD, EventState::EVENT_EXIT); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_ANIMATION_END); } void FrameUiIntf::BeginFlushBuild() const @@ -73,7 +73,7 @@ void FrameUiIntf::BeginFlushBuild() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_BUILD, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_BUILD_START); } void FrameUiIntf::EndFlushBuild() const @@ -81,7 +81,7 @@ void FrameUiIntf::EndFlushBuild() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_BUILD, EventState::EVENT_EXIT); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_BUILD_END); } void FrameUiIntf::BeginFlushLayout() const @@ -89,7 +89,7 @@ void FrameUiIntf::BeginFlushLayout() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_LAYOUT, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_LAYOUT_START); } void FrameUiIntf::EndFlushLayout() const @@ -97,7 +97,7 @@ void FrameUiIntf::EndFlushLayout() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_LAYOUT, EventState::EVENT_EXIT); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_LAYOUT_END); } void FrameUiIntf::BeginFlushRender() const @@ -105,7 +105,7 @@ void FrameUiIntf::BeginFlushRender() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_RENDER, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_START); } void FrameUiIntf::EndFlushRender() const @@ -113,7 +113,7 @@ void FrameUiIntf::EndFlushRender() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_RENDER, EventState::EVENT_EXIT); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_END); } void FrameUiIntf::BeginFlushRenderFinish() const @@ -121,7 +121,7 @@ void FrameUiIntf::BeginFlushRenderFinish() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_RENDER_FINISH, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_FINISH_START); } void FrameUiIntf::EndFlushRenderFinish() const @@ -129,7 +129,7 @@ void FrameUiIntf::EndFlushRenderFinish() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::FLUSH_RENDER_FINISH, EventState::EVENT_EXIT); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_FINISH_END); } void FrameUiIntf::BeginProcessPostFlush() const @@ -137,7 +137,7 @@ void FrameUiIntf::BeginProcessPostFlush() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::PROCESS_POST_FLUSH, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_PROCESS_POST_FLUSH_START); } void FrameUiIntf::ProcessCommandsStart() const @@ -145,7 +145,7 @@ void FrameUiIntf::ProcessCommandsStart() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::PROCESS_COMMANDS, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_PROCESS_COMMANDS_START); } void FrameUiIntf::AnimateStart() const @@ -153,7 +153,7 @@ void FrameUiIntf::AnimateStart() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::ANIMATE, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_ANIMATE_START); } void FrameUiIntf::RenderStart() const @@ -161,7 +161,7 @@ void FrameUiIntf::RenderStart() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::RENDER, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_RENDER_START); } void FrameUiIntf::SendCommandsStart() const @@ -169,7 +169,7 @@ void FrameUiIntf::SendCommandsStart() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::SEND_COMMANDS, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_SEND_COMMANDS_START); } void FrameUiIntf::BeginListFling() const @@ -177,7 +177,7 @@ void FrameUiIntf::BeginListFling() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_BEGIN_FRAME, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_BEGIN_FRAME); } void FrameUiIntf::EndListFling() const @@ -185,7 +185,7 @@ void FrameUiIntf::EndListFling() const if (!inited) { return; } - FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_END_FRAME, EventState::EVENT_ENTER); + FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_END_FRAME); } extern "C" void Init() -- Gitee From 37017b43444038369da379be5aa4194f7ab8faf8 Mon Sep 17 00:00:00 2001 From: rongkunshi Date: Tue, 8 Mar 2022 11:26:56 +0800 Subject: [PATCH 3/3] csec for old code Signed-off-by: rongkunshi --- common/include/rtg_interface.h | 5 +---- .../include/frame_msg_mgr.h | 2 -- .../include/frame_window_mgr.h | 1 - .../frame_aware_policy/include/rtg_msg_mgr.h | 2 -- .../core/frame_aware_policy/src/para_config.cpp | 17 ++++++++++------- interfaces/innerkits/frameintf/frame_msg_intf.h | 5 ----- .../innerkits/frameintf/rtg_interface.cpp | 2 +- test/unittest/phone/frame_msg_intf_test.cpp | 1 - test/unittest/phone/rtg_interface_test.cpp | 2 +- 9 files changed, 13 insertions(+), 24 deletions(-) diff --git a/common/include/rtg_interface.h b/common/include/rtg_interface.h index f409dc7..68d5a60 100644 --- a/common/include/rtg_interface.h +++ b/common/include/rtg_interface.h @@ -27,8 +27,6 @@ using namespace std; #define MAX_SUBPROCESS_NUM 8 #define MULTI_FRAME_NUM 5 -typedef int pid_t; - struct rtg_enable_data { int enable; int len; @@ -85,9 +83,8 @@ enum rtg_sched_cmdid { RTG_CTRL_MAX_NR, }; -extern "C"{ +extern "C" { int EnableRtg(bool flag); - //-----for frame rtg-----// int CreateNewRtgGrp(int prioType = 0, int rtNum = 0); // Return GrpId if success int AddThreadToRtg(int tid, int grpId, int prioType = 0); int AddThreadsToRtg(vector tids, int grpId, int prioType = 0); diff --git a/frameworks/core/frame_aware_collector/include/frame_msg_mgr.h b/frameworks/core/frame_aware_collector/include/frame_msg_mgr.h index 410b3d2..67d842b 100644 --- a/frameworks/core/frame_aware_collector/include/frame_msg_mgr.h +++ b/frameworks/core/frame_aware_collector/include/frame_msg_mgr.h @@ -25,8 +25,6 @@ namespace OHOS { namespace RME { -class RmeSceneSched; - class FrameMsgMgr { DECLARE_SINGLE_INSTANCE_BASE(FrameMsgMgr); public: diff --git a/frameworks/core/frame_aware_collector/include/frame_window_mgr.h b/frameworks/core/frame_aware_collector/include/frame_window_mgr.h index 5e112c9..56860fc 100644 --- a/frameworks/core/frame_aware_collector/include/frame_window_mgr.h +++ b/frameworks/core/frame_aware_collector/include/frame_window_mgr.h @@ -32,7 +32,6 @@ private: int m_enable = -1; bool m_startFlag; }; - } // namespace RME } // namespace OHOS #endif diff --git a/frameworks/core/frame_aware_policy/include/rtg_msg_mgr.h b/frameworks/core/frame_aware_policy/include/rtg_msg_mgr.h index e94761d..1725df0 100644 --- a/frameworks/core/frame_aware_policy/include/rtg_msg_mgr.h +++ b/frameworks/core/frame_aware_policy/include/rtg_msg_mgr.h @@ -26,7 +26,6 @@ namespace OHOS { namespace RME { - class RtgMsgMgr { DECLARE_SINGLE_INSTANCE(RtgMsgMgr); public: @@ -38,7 +37,6 @@ public: void FpsChanged(); void FocusChanged(const int pid, bool isFocus); // for multiwindow }; - } // RME } // OHOS #endif diff --git a/frameworks/core/frame_aware_policy/src/para_config.cpp b/frameworks/core/frame_aware_policy/src/para_config.cpp index 06f14f8..1ac54cc 100644 --- a/frameworks/core/frame_aware_policy/src/para_config.cpp +++ b/frameworks/core/frame_aware_policy/src/para_config.cpp @@ -51,7 +51,7 @@ bool ParaConfig::IsXmlPrepared(const std::string& filePath) continue; } auto nodeName = curNodePtr->name; // char* to string - if (!xmlStrcmp(nodeName, reinterpret_cast("log_open")) || + if (!xmlStrcmp(nodeName, reinterpret_cast("log_open")) || !xmlStrcmp(nodeName, reinterpret_cast("enable")) || !xmlStrcmp(nodeName, reinterpret_cast("SOC")) || !xmlStrcmp(nodeName, reinterpret_cast("frame_sched_reset_count"))) { @@ -114,11 +114,12 @@ void ParaConfig::ReadRenderType(const xmlNodePtr& root) RME_LOGE("[GetRenderType]: renderType read failed!"); return; } - SplitString(std::string(reinterpret_cast(context)), " ", m_renderTypeList, RENDER_TYPE_MAX_VALUE, "renderType"); + SplitString(std::string(reinterpret_cast(context)), " ", + m_renderTypeList, RENDER_TYPE_MAX_VALUE, "renderType"); xmlFree(context); } -void ParaConfig::SplitString(const std::string& context, const std::string& character,std::vector &mList, +void ParaConfig::SplitString(const std::string& context, const std::string& character, std::vector &mList, const int maxVal, const std::string& attrName) { if (context == "") { @@ -136,7 +137,7 @@ void ParaConfig::SplitString(const std::string& context, const std::string& char } mList.push_back(curVal); - toSplitStr = toSplitStr.substr(pos + 1,toSplitStr.size()); + toSplitStr = toSplitStr.substr(pos + 1, toSplitStr.size()); pos = toSplitStr.find(character); } RME_LOGI("[SplitString]:get data success!attr name:%{public}s", attrName.c_str()); @@ -162,12 +163,14 @@ void ParaConfig::ReadFrameConfig(const xmlNodePtr& root) std::string nodeName = reinterpret_cast(curSubNode->name); // char* to string xmlChar* context = xmlNodeGetContent(curSubNode); if (context == nullptr) { // if one config wrong then this config dilscard. - RME_LOGE("[GetFrameConfig]: frame config get error! nodeName:%{public}s, key:%{public}s", nodeName.c_str(), key.c_str()); + RME_LOGE("[GetFrameConfig]: frame config get error! nodeName:%{public}s, key:%{public}s", + nodeName.c_str(), key.c_str()); xmlFree(context); break; } frameConfigTmp[nodeName] = atoi(reinterpret_cast(context)); - RME_LOGI("[GetFrameConfig]: nodeName:%{public}s, val:%{public}s", nodeName.c_str(), reinterpret_cast(context)); + RME_LOGI("[GetFrameConfig]: nodeName:%{public}s, val:%{public}s", + nodeName.c_str(), reinterpret_cast(context)); xmlFree(context); } m_subEventConfig[key] = frameConfigTmp; @@ -191,7 +194,7 @@ std::map ParaConfig::GetGeneralConfig() return m_generalConfig; } -std::map> ParaConfig::GetSubEventConfig() +std::map> ParaConfig::GetSubEventConfig() { return m_subEventConfig; } diff --git a/interfaces/innerkits/frameintf/frame_msg_intf.h b/interfaces/innerkits/frameintf/frame_msg_intf.h index de317e1..a417fa3 100644 --- a/interfaces/innerkits/frameintf/frame_msg_intf.h +++ b/interfaces/innerkits/frameintf/frame_msg_intf.h @@ -22,7 +22,6 @@ namespace OHOS { namespace RME { - class FrameMsgIntf { public: static FrameMsgIntf& GetInstance(); @@ -32,17 +31,13 @@ public: void ReportWindowFocus(const int pid, const int isFocus); void ReportProcessInfo(const int pid, const int tid, ThreadState state); void Stop(); - protected: FrameMsgIntf() = default; virtual ~FrameMsgIntf() = default; std::shared_ptr threadHandler_; - private: DISALLOW_COPY_AND_MOVE(FrameMsgIntf); - }; - } // namespace RME } // namespace OHOS #endif diff --git a/interfaces/innerkits/frameintf/rtg_interface.cpp b/interfaces/innerkits/frameintf/rtg_interface.cpp index 17f940c..a393463 100644 --- a/interfaces/innerkits/frameintf/rtg_interface.cpp +++ b/interfaces/innerkits/frameintf/rtg_interface.cpp @@ -36,7 +36,7 @@ namespace { } DEFINE_RMELOG_INTELLISENSE("rtg_interface"); -#define RTG_SCHED_IPC_MAGIC 0xAB +const char RTG_SCHED_IPC_MAGIC = 0xAB; #define CMD_ID_SET_ENABLE \ _IOWR(RTG_SCHED_IPC_MAGIC, SET_ENABLE, struct rtg_enable_data) diff --git a/test/unittest/phone/frame_msg_intf_test.cpp b/test/unittest/phone/frame_msg_intf_test.cpp index 115c403..4904104 100644 --- a/test/unittest/phone/frame_msg_intf_test.cpp +++ b/test/unittest/phone/frame_msg_intf_test.cpp @@ -198,6 +198,5 @@ HWTEST_F(FrameMsgIntfTest, FrameMsgIntfReportProcessInfoRenderDiedFore, TestSize std::map> mapList2 = AppInfoMgr::GetInstance().GetForegroundApp(); EXPECT_EQ(mapList2.count(pid_2), 1); } - } // namespace RME } // namespace OHOS diff --git a/test/unittest/phone/rtg_interface_test.cpp b/test/unittest/phone/rtg_interface_test.cpp index 9e48d98..2d99fd0 100644 --- a/test/unittest/phone/rtg_interface_test.cpp +++ b/test/unittest/phone/rtg_interface_test.cpp @@ -28,7 +28,7 @@ using namespace testing::ext; #define RTG_INTERFACE_SO_PATH "/system/lib/librtg_interface.z.so" -enum rtg_type { +enum rtg_type : int { VIP = 0, TOP_TASK_KEY, NORMAL_TASK, -- Gitee