From d4c688745ec6d28e08646d3fb371985bc100f8ff Mon Sep 17 00:00:00 2001 From: jml Date: Sat, 18 Nov 2023 03:10:20 +0000 Subject: [PATCH 01/13] =?UTF-8?q?=E9=9C=80=E6=B1=82=20=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E5=B1=8F=E5=B9=95=E4=B8=8A=E4=B8=8B=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jml --- dm/include/display_manager_adapter.h | 1 + dm/src/display_manager_adapter.cpp | 6 ++++ dm/src/screen_manager.cpp | 6 ++++ dmserver/include/display_manager_interface.h | 2 ++ dmserver/include/display_manager_proxy.h | 1 + dmserver/include/display_manager_service.h | 1 + dmserver/src/display_manager_proxy.cpp | 29 +++++++++++++++ dmserver/src/display_manager_service.cpp | 7 ++++ dmserver/src/display_manager_stub.cpp | 7 ++++ interfaces/innerkits/dm/screen_manager.h | 10 ++++++ .../include/screen_session_manager.h | 1 + .../zidl/screen_session_manager_interface.h | 1 + .../zidl/screen_session_manager_proxy.h | 1 + .../src/screen_session_manager.cpp | 26 ++++++++++++++ .../src/zidl/screen_session_manager_proxy.cpp | 35 +++++++++++++++++++ .../src/zidl/screen_session_manager_stub.cpp | 7 ++++ .../unittest/screen_session_manager_test.cpp | 18 ++++++++++ 17 files changed, 159 insertions(+) diff --git a/dm/include/display_manager_adapter.h b/dm/include/display_manager_adapter.h index 7cd54d4705..8f3e640ebd 100644 --- a/dm/include/display_manager_adapter.h +++ b/dm/include/display_manager_adapter.h @@ -98,6 +98,7 @@ public: virtual DMError DestroyVirtualScreen(ScreenId screenId); virtual DMError SetVirtualScreenSurface(ScreenId screenId, sptr surface); virtual DMError SetVirtualMirrorScreenBufferRotation(ScreenId screenId, bool bufferRotation); + virtual bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason); virtual bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason); virtual ScreenPowerState GetScreenPower(ScreenId dmsScreenId); virtual DMError SetOrientation(ScreenId screenId, Orientation orientation); diff --git a/dm/src/display_manager_adapter.cpp b/dm/src/display_manager_adapter.cpp index 7c8b2c1e06..e000604bc6 100644 --- a/dm/src/display_manager_adapter.cpp +++ b/dm/src/display_manager_adapter.cpp @@ -159,6 +159,12 @@ DMError ScreenManagerAdapter::IsScreenRotationLocked(bool& isLocked) return displayManagerServiceProxy_->IsScreenRotationLocked(isLocked); } +bool ScreenManagerAdapter::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) +{ + INIT_PROXY_CHECK_RETURN(false); + return displayManagerServiceProxy_->SetSpecifiedScreenPower(screenId, state, reason); +} + bool ScreenManagerAdapter::SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) { INIT_PROXY_CHECK_RETURN(false); diff --git a/dm/src/screen_manager.cpp b/dm/src/screen_manager.cpp index f6d89a6e59..cdcd7499b2 100644 --- a/dm/src/screen_manager.cpp +++ b/dm/src/screen_manager.cpp @@ -563,6 +563,12 @@ DMError ScreenManager::SetVirtualMirrorScreenBufferRotation(ScreenId screenId, b return SingletonContainer::Get().SetVirtualMirrorScreenBufferRotation(screenId, rotation); } +bool ScreenManager::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) +{ + WLOGFI("screenId:%{public}" PRIu64", state:%{public}u, reason:%{public}u", screenId, state, reason); + return SingletonContainer::Get().SetSpecifiedScreenPower(screenId, state, reason); +} + bool ScreenManager::SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) { WLOGFI("state:%{public}u, reason:%{public}u", state, reason); diff --git a/dmserver/include/display_manager_interface.h b/dmserver/include/display_manager_interface.h index c9a8c587a3..2033215d43 100644 --- a/dmserver/include/display_manager_interface.h +++ b/dmserver/include/display_manager_interface.h @@ -47,6 +47,7 @@ public: TRANS_ID_SUSPEND_BEGIN, TRANS_ID_SUSPEND_END, TRANS_ID_SET_SCREEN_POWER_FOR_ALL, + TRANS_ID_SET_SPECIFIED_SCREEN_POWER, TRANS_ID_GET_SCREEN_POWER, TRANS_ID_SET_DISPLAY_STATE, TRANS_ID_GET_DISPLAY_STATE, @@ -138,6 +139,7 @@ public: virtual bool WakeUpEnd() = 0; virtual bool SuspendBegin(PowerStateChangeReason reason) = 0; virtual bool SuspendEnd() = 0; + virtual bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason)= 0; virtual bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) = 0; virtual ScreenPowerState GetScreenPower(ScreenId dmsScreenId) = 0; virtual bool SetDisplayState(DisplayState state) = 0; diff --git a/dmserver/include/display_manager_proxy.h b/dmserver/include/display_manager_proxy.h index 478301aaac..3156f36707 100644 --- a/dmserver/include/display_manager_proxy.h +++ b/dmserver/include/display_manager_proxy.h @@ -62,6 +62,7 @@ public: bool WakeUpEnd() override; bool SuspendBegin(PowerStateChangeReason reason) override; bool SuspendEnd() override; + bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) override; bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) override; ScreenPowerState GetScreenPower(ScreenId dmsScreenId) override; bool SetDisplayState(DisplayState state) override; diff --git a/dmserver/include/display_manager_service.h b/dmserver/include/display_manager_service.h index 68a39086db..dca9c3227a 100644 --- a/dmserver/include/display_manager_service.h +++ b/dmserver/include/display_manager_service.h @@ -79,6 +79,7 @@ public: bool WakeUpEnd() override; bool SuspendBegin(PowerStateChangeReason reason) override; bool SuspendEnd() override; + bool SetSpecifiedScreenPower(ScreenId, ScreenPowerState, PowerStateChangeReason) override; bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) override; ScreenPowerState GetScreenPower(ScreenId dmsScreenId) override; bool SetDisplayState(DisplayState state) override; diff --git a/dmserver/src/display_manager_proxy.cpp b/dmserver/src/display_manager_proxy.cpp index 3d71a8e329..68856097ce 100644 --- a/dmserver/src/display_manager_proxy.cpp +++ b/dmserver/src/display_manager_proxy.cpp @@ -644,6 +644,35 @@ bool DisplayManagerProxy::SetScreenPowerForAll(ScreenPowerState state, PowerStat return reply.ReadBool(); } +bool DisplayManagerProxy::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + if (!data.WriteInterfaceToken(GetDescriptor())) { + WLOGFE("WriteInterfaceToken failed"); + return false; + } + if (!data.WriteUint32(static_cast(screenId))) { + WLOGFE("Write ScreenId failed"); + return false; + } + if (!data.WriteUint32(static_cast(state))) { + WLOGFE("Write ScreenPowerState failed"); + return false; + } + if (!data.WriteUint32(static_cast(reason))) { + WLOGFE("Write PowerStateChangeReason failed"); + return false; + } + if (Remote()->SendRequest(static_cast(DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER), + data, reply, option) != ERR_NONE) { + WLOGFW("SendRequest failed"); + return false; + } + return reply.ReadBool(); +} + ScreenPowerState DisplayManagerProxy::GetScreenPower(ScreenId dmsScreenId) { MessageParcel data; diff --git a/dmserver/src/display_manager_service.cpp b/dmserver/src/display_manager_service.cpp index 4914485116..f4085d02f8 100644 --- a/dmserver/src/display_manager_service.cpp +++ b/dmserver/src/display_manager_service.cpp @@ -434,6 +434,13 @@ bool DisplayManagerService::SuspendEnd() EventStatus::END); } +bool DisplayManagerService::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) +{ + WLOGFE("Attempt to SetSpecifiedScreenPower without SceneBoard: screen:%{public}" PRIu64", state:%{public}u", + screenId, state); + return false; +} + bool DisplayManagerService::SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) { WLOGFI("SetScreenPowerForAll"); diff --git a/dmserver/src/display_manager_stub.cpp b/dmserver/src/display_manager_stub.cpp index 9499917e19..0f63437c72 100644 --- a/dmserver/src/display_manager_stub.cpp +++ b/dmserver/src/display_manager_stub.cpp @@ -155,6 +155,13 @@ int32_t DisplayManagerStub::OnRemoteRequest(uint32_t code, MessageParcel &data, reply.WriteBool(SetScreenPowerForAll(state, reason)); break; } + case DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER: { + ScreenId screenId = static_cast(data.ReadUint32()); + ScreenPowerState state = static_cast(data.ReadUint32()); + PowerStateChangeReason reason = static_cast(data.ReadUint32()); + reply.WriteBool(SetSpecifiedScreenPower(screenId, state, reason)); + break; + } case DisplayManagerMessage::TRANS_ID_GET_SCREEN_POWER: { ScreenId dmsScreenId; if (!data.ReadUint64(dmsScreenId)) { diff --git a/interfaces/innerkits/dm/screen_manager.h b/interfaces/innerkits/dm/screen_manager.h index 7adcb74dae..dfc57f8a58 100644 --- a/interfaces/innerkits/dm/screen_manager.h +++ b/interfaces/innerkits/dm/screen_manager.h @@ -205,6 +205,16 @@ public: */ DMError SetVirtualMirrorScreenBufferRotation(ScreenId screenId, bool bufferRotation); + /** + * @brief Set the screen power states for the specified screens. + * + * @param screenId Screen id. + * @param state Screen power state. + * @param reason Reason for power state change. + * @return True means set success, false means set failed. + */ + bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason); + /** * @brief Set the screen power states for all screens. * diff --git a/window_scene/session_manager/include/screen_session_manager.h b/window_scene/session_manager/include/screen_session_manager.h index c8b15557d3..9985f59cb5 100644 --- a/window_scene/session_manager/include/screen_session_manager.h +++ b/window_scene/session_manager/include/screen_session_manager.h @@ -68,6 +68,7 @@ public: bool SetDisplayState(DisplayState state) override; DisplayState GetDisplayState(DisplayId displayId) override; bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) override; + bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) override; ScreenPowerState GetScreenPower(ScreenId screenId) override; void NotifyDisplayEvent(DisplayEvent event) override; diff --git a/window_scene/session_manager/include/zidl/screen_session_manager_interface.h b/window_scene/session_manager/include/zidl/screen_session_manager_interface.h index 5ba0c8797a..b9296f01a9 100644 --- a/window_scene/session_manager/include/zidl/screen_session_manager_interface.h +++ b/window_scene/session_manager/include/zidl/screen_session_manager_interface.h @@ -74,6 +74,7 @@ public: virtual bool WakeUpEnd() override { return false; } virtual bool SuspendBegin(PowerStateChangeReason reason) override { return false; } virtual bool SuspendEnd() override { return false; } + virtual bool SetSpecifiedScreenPower(ScreenId, ScreenPowerState, PowerStateChangeReason) override { return false; } virtual bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) override { return false; } virtual ScreenPowerState GetScreenPower(ScreenId dmsScreenId) override { return ScreenPowerState::INVALID_STATE; } virtual bool SetDisplayState(DisplayState state) override { return false; } diff --git a/window_scene/session_manager/include/zidl/screen_session_manager_proxy.h b/window_scene/session_manager/include/zidl/screen_session_manager_proxy.h index b00a5f209e..ae922c48f8 100644 --- a/window_scene/session_manager/include/zidl/screen_session_manager_proxy.h +++ b/window_scene/session_manager/include/zidl/screen_session_manager_proxy.h @@ -50,6 +50,7 @@ public: virtual bool WakeUpEnd() override; virtual bool SuspendBegin(PowerStateChangeReason reason) override; virtual bool SuspendEnd() override; + virtual bool SetSpecifiedScreenPower(ScreenId, ScreenPowerState, PowerStateChangeReason) override; virtual bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) override; virtual ScreenPowerState GetScreenPower(ScreenId dmsScreenId) override; virtual bool SetDisplayState(DisplayState state) override; diff --git a/window_scene/session_manager/src/screen_session_manager.cpp b/window_scene/session_manager/src/screen_session_manager.cpp index 463267fc30..9ac273b03a 100644 --- a/window_scene/session_manager/src/screen_session_manager.cpp +++ b/window_scene/session_manager/src/screen_session_manager.cpp @@ -687,6 +687,32 @@ void ScreenSessionManager::NotifyScreenshot(DisplayId displayId) } } +bool ScreenSessionManager::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) +{ + WLOGFI("SetSpecifiedScreenPower: screen id:%{public}" PRIu64", state:%{public}u", screenId, state); + + ScreenPowerStatus status; + switch (state) { + case ScreenPowerState::POWER_ON: { + status = ScreenPowerStatus::POWER_STATUS_ON; + break; + } + case ScreenPowerState::POWER_OFF: { + status = ScreenPowerStatus::POWER_STATUS_OFF; + break; + } + default: { + WLOGFW("SetScreenPowerStatus state not support"); + return false; + } + } + + rsInterface_.SetScreenPowerStatus(screenId, status); + + return NotifyDisplayPowerEvent(state == ScreenPowerState::POWER_ON ? DisplayPowerEvent::DISPLAY_ON : + DisplayPowerEvent::DISPLAY_OFF, EventStatus::END); +} + bool ScreenSessionManager::SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) { std::lock_guard lock(mutex_); diff --git a/window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp index f16494abb6..f5f5fff7ad 100644 --- a/window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -423,6 +423,41 @@ bool OHOS::Rosen::ScreenSessionManagerProxy::SetDisplayState(DisplayState state) return reply.ReadBool(); } +bool OHOS::Rosen::ScreenSessionManagerProxy::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) +{ + sptr remote = Remote(); + if (remote == nullptr) { + WLOGFE("SetSpecifiedScreenPower remote is nullptr"); + return false; + } + + MessageParcel data; + MessageParcel reply; + MessageOption option; + if (!data.WriteInterfaceToken(GetDescriptor())) { + WLOGFE("WriteInterfaceToken failed"); + return false; + } + if (!data.WriteUint32(static_cast(screenId))) { + WLOGFE("Write ScreenId failed"); + return false; + } + if (!data.WriteUint32(static_cast(state))) { + WLOGFE("Write ScreenPowerState failed"); + return false; + } + if (!data.WriteUint32(static_cast(reason))) { + WLOGFE("Write PowerStateChangeReason failed"); + return false; + } + if (remote->SendRequest(static_cast(DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER), + data, reply, option) != ERR_NONE) { + WLOGFW("SendRequest failed"); + return false; + } + return reply.ReadBool(); +} + bool OHOS::Rosen::ScreenSessionManagerProxy::SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) { sptr remote = Remote(); diff --git a/window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp b/window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp index 22099299d6..688c079dc6 100644 --- a/window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp +++ b/window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp @@ -85,6 +85,13 @@ int32_t ScreenSessionManagerStub::OnRemoteRequest(uint32_t code, MessageParcel& reply.WriteBool(SetScreenPowerForAll(state, reason)); break; } + case DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER: { + ScreenId screenId = static_cast(data.ReadUint32()); + ScreenPowerState state = static_cast(data.ReadUint32()); + PowerStateChangeReason reason = static_cast(data.ReadUint32()); + reply.WriteBool(SetSpecifiedScreenPower(screenId, state, reason)); + break; + } case DisplayManagerMessage::TRANS_ID_GET_DISPLAY_STATE: { DisplayState state = GetDisplayState(data.ReadUint64()); reply.WriteUint32(static_cast(state)); diff --git a/window_scene/test/unittest/screen_session_manager_test.cpp b/window_scene/test/unittest/screen_session_manager_test.cpp index f20a7ffc4a..0ff187aa4d 100644 --- a/window_scene/test/unittest/screen_session_manager_test.cpp +++ b/window_scene/test/unittest/screen_session_manager_test.cpp @@ -887,6 +887,24 @@ HWTEST_F(ScreenSessionManagerTest, HasImmersiveWindow, Function | SmallTest | Le ASSERT_EQ(DMError::DM_OK, ssm_->HasImmersiveWindow(immersive)); } +/** + * @tc.name: SetSpecifiedScreenPower + * @tc.desc: ScreenSessionManager screen power + * @tc.type: FUNC + */ + HWTEST_F(ScreenSessionManagerTest, SetSpecifiedScreenPower, Function | SmallTest | Level3) + { + ScreenId mainScreenId(DEFAULT_SCREEN_ID); + PowerStateChangeReason reason = PowerStateChangeReason::POWER_BUTTON; + ScreenPowerState state = ScreenPowerState::POWER_ON; + DisplayState displayState = DisplayState::ON; + + ASSERT_EQ(true, ssm_->SetSpecifiedScreenPower(mainScreenId, state, reason)); + + ASSERT_EQ(false, ssm_->SetDisplayState(displayState)); + ASSERT_EQ(DisplayState::ON, ssm_->GetDisplayState(0)); + } + } } // namespace Rosen } // namespace OHOS -- Gitee From d41b6d8534980acbb2edc0466fb807cf603e9314 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:28:08 +0000 Subject: [PATCH 02/13] update dm/src/screen_manager.cpp. Signed-off-by: jml --- dm/src/screen_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dm/src/screen_manager.cpp b/dm/src/screen_manager.cpp index cdcd7499b2..4e8fc3d79b 100644 --- a/dm/src/screen_manager.cpp +++ b/dm/src/screen_manager.cpp @@ -565,7 +565,7 @@ DMError ScreenManager::SetVirtualMirrorScreenBufferRotation(ScreenId screenId, b bool ScreenManager::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) { - WLOGFI("screenId:%{public}" PRIu64", state:%{public}u, reason:%{public}u", screenId, state, reason); + WLOGFI("screenId:%{public}" PRIu64 ", state:%{public}u, reason:%{public}u", screenId, state, reason); return SingletonContainer::Get().SetSpecifiedScreenPower(screenId, state, reason); } -- Gitee From e76bba17e7b947aeca83f4097da91d5531113552 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:30:32 +0000 Subject: [PATCH 03/13] update dmserver/include/display_manager_interface.h. Signed-off-by: jml --- dmserver/include/display_manager_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dmserver/include/display_manager_interface.h b/dmserver/include/display_manager_interface.h index 2033215d43..ec51766ef9 100644 --- a/dmserver/include/display_manager_interface.h +++ b/dmserver/include/display_manager_interface.h @@ -46,8 +46,8 @@ public: TRANS_ID_WAKE_UP_END, TRANS_ID_SUSPEND_BEGIN, TRANS_ID_SUSPEND_END, - TRANS_ID_SET_SCREEN_POWER_FOR_ALL, TRANS_ID_SET_SPECIFIED_SCREEN_POWER, + TRANS_ID_SET_SCREEN_POWER_FOR_ALL, TRANS_ID_GET_SCREEN_POWER, TRANS_ID_SET_DISPLAY_STATE, TRANS_ID_GET_DISPLAY_STATE, -- Gitee From 9b5770d09e815c2d8b6077ccb6c67112f8705521 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:32:09 +0000 Subject: [PATCH 04/13] update dmserver/include/display_manager_interface.h. Signed-off-by: jml --- dmserver/include/display_manager_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dmserver/include/display_manager_interface.h b/dmserver/include/display_manager_interface.h index ec51766ef9..008c585e47 100644 --- a/dmserver/include/display_manager_interface.h +++ b/dmserver/include/display_manager_interface.h @@ -139,7 +139,7 @@ public: virtual bool WakeUpEnd() = 0; virtual bool SuspendBegin(PowerStateChangeReason reason) = 0; virtual bool SuspendEnd() = 0; - virtual bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason)= 0; + virtual bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) = 0; virtual bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) = 0; virtual ScreenPowerState GetScreenPower(ScreenId dmsScreenId) = 0; virtual bool SetDisplayState(DisplayState state) = 0; -- Gitee From 2ae331bb95bfdba07a7c9c5c61af16802f62a457 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:34:04 +0000 Subject: [PATCH 05/13] update dmserver/src/display_manager_proxy.cpp. Signed-off-by: jml --- dmserver/src/display_manager_proxy.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dmserver/src/display_manager_proxy.cpp b/dmserver/src/display_manager_proxy.cpp index 68856097ce..bf81147390 100644 --- a/dmserver/src/display_manager_proxy.cpp +++ b/dmserver/src/display_manager_proxy.cpp @@ -653,10 +653,10 @@ bool DisplayManagerProxy::SetSpecifiedScreenPower(ScreenId screenId, ScreenPower WLOGFE("WriteInterfaceToken failed"); return false; } - if (!data.WriteUint32(static_cast(screenId))) { + if (!data.WriteUint32(static_cast(screenId))) { WLOGFE("Write ScreenId failed"); return false; - } + } if (!data.WriteUint32(static_cast(state))) { WLOGFE("Write ScreenPowerState failed"); return false; @@ -666,7 +666,7 @@ bool DisplayManagerProxy::SetSpecifiedScreenPower(ScreenId screenId, ScreenPower return false; } if (Remote()->SendRequest(static_cast(DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER), - data, reply, option) != ERR_NONE) { + data, reply, option) != ERR_NONE) { WLOGFW("SendRequest failed"); return false; } -- Gitee From ff722bfe8521d2346a0ea9ada3a34f89e3e3beac Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:36:27 +0000 Subject: [PATCH 06/13] update dmserver/src/display_manager_service.cpp. Signed-off-by: jml --- dmserver/src/display_manager_service.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dmserver/src/display_manager_service.cpp b/dmserver/src/display_manager_service.cpp index f4085d02f8..eca5892b5d 100644 --- a/dmserver/src/display_manager_service.cpp +++ b/dmserver/src/display_manager_service.cpp @@ -436,7 +436,7 @@ bool DisplayManagerService::SuspendEnd() bool DisplayManagerService::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) { - WLOGFE("Attempt to SetSpecifiedScreenPower without SceneBoard: screen:%{public}" PRIu64", state:%{public}u", + WLOGFE("DMS not support SetSpecifiedScreenPower: screen:%{public}" PRIu64 ", state:%{public}u", screenId, state); return false; } -- Gitee From 08a3cb2c70a540e6f416d738a80992b126093443 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:37:25 +0000 Subject: [PATCH 07/13] update dmserver/src/display_manager_stub.cpp. Signed-off-by: jml --- dmserver/src/display_manager_stub.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dmserver/src/display_manager_stub.cpp b/dmserver/src/display_manager_stub.cpp index 0f63437c72..50dde99064 100644 --- a/dmserver/src/display_manager_stub.cpp +++ b/dmserver/src/display_manager_stub.cpp @@ -149,17 +149,17 @@ int32_t DisplayManagerStub::OnRemoteRequest(uint32_t code, MessageParcel &data, reply.WriteBool(SuspendEnd()); break; } - case DisplayManagerMessage::TRANS_ID_SET_SCREEN_POWER_FOR_ALL: { + case DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER: { + ScreenId screenId = static_cast(data.ReadUint32()); ScreenPowerState state = static_cast(data.ReadUint32()); PowerStateChangeReason reason = static_cast(data.ReadUint32()); - reply.WriteBool(SetScreenPowerForAll(state, reason)); + reply.WriteBool(SetSpecifiedScreenPower(screenId, state, reason)); break; } - case DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER: { - ScreenId screenId = static_cast(data.ReadUint32()); + case DisplayManagerMessage::TRANS_ID_SET_SCREEN_POWER_FOR_ALL: { ScreenPowerState state = static_cast(data.ReadUint32()); PowerStateChangeReason reason = static_cast(data.ReadUint32()); - reply.WriteBool(SetSpecifiedScreenPower(screenId, state, reason)); + reply.WriteBool(SetScreenPowerForAll(state, reason)); break; } case DisplayManagerMessage::TRANS_ID_GET_SCREEN_POWER: { -- Gitee From 54dc2f0cbef1b0448e8318a8c3ff371a1b646b73 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:38:51 +0000 Subject: [PATCH 08/13] update interfaces/innerkits/dm/screen_manager.h. Signed-off-by: jml --- interfaces/innerkits/dm/screen_manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/innerkits/dm/screen_manager.h b/interfaces/innerkits/dm/screen_manager.h index dfc57f8a58..558e57a3bf 100644 --- a/interfaces/innerkits/dm/screen_manager.h +++ b/interfaces/innerkits/dm/screen_manager.h @@ -206,7 +206,7 @@ public: DMError SetVirtualMirrorScreenBufferRotation(ScreenId screenId, bool bufferRotation); /** - * @brief Set the screen power states for the specified screens. + * @brief Set the screen power state on the specified screen. * * @param screenId Screen id. * @param state Screen power state. -- Gitee From 4790c5e305b0815573a210069086a25d1cef8ac9 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:39:50 +0000 Subject: [PATCH 09/13] update window_scene/session_manager/include/screen_session_manager.h. Signed-off-by: jml --- window_scene/session_manager/include/screen_session_manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/session_manager/include/screen_session_manager.h b/window_scene/session_manager/include/screen_session_manager.h index 9985f59cb5..f29c7e5368 100644 --- a/window_scene/session_manager/include/screen_session_manager.h +++ b/window_scene/session_manager/include/screen_session_manager.h @@ -67,8 +67,8 @@ public: bool SuspendEnd() override; bool SetDisplayState(DisplayState state) override; DisplayState GetDisplayState(DisplayId displayId) override; - bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) override; bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) override; + bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason) override; ScreenPowerState GetScreenPower(ScreenId screenId) override; void NotifyDisplayEvent(DisplayEvent event) override; -- Gitee From 85dfbeb2e09bf2038ecf41866339474bd0de7d82 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:40:46 +0000 Subject: [PATCH 10/13] update window_scene/session_manager/src/screen_session_manager.cpp. Signed-off-by: jml --- window_scene/session_manager/src/screen_session_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/session_manager/src/screen_session_manager.cpp b/window_scene/session_manager/src/screen_session_manager.cpp index 9ac273b03a..2a3c01fa9f 100644 --- a/window_scene/session_manager/src/screen_session_manager.cpp +++ b/window_scene/session_manager/src/screen_session_manager.cpp @@ -689,7 +689,7 @@ void ScreenSessionManager::NotifyScreenshot(DisplayId displayId) bool ScreenSessionManager::SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason) { - WLOGFI("SetSpecifiedScreenPower: screen id:%{public}" PRIu64", state:%{public}u", screenId, state); + WLOGFI("SetSpecifiedScreenPower: screen id:%{public}" PRIu64 ", state:%{public}u", screenId, state); ScreenPowerStatus status; switch (state) { -- Gitee From 6a123da4c69cf0d1bae82a934881c0a8b37abbee Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:41:44 +0000 Subject: [PATCH 11/13] update window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp. Signed-off-by: jml --- .../session_manager/src/zidl/screen_session_manager_proxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp index f5f5fff7ad..052205d65c 100644 --- a/window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -451,7 +451,7 @@ bool OHOS::Rosen::ScreenSessionManagerProxy::SetSpecifiedScreenPower(ScreenId sc return false; } if (remote->SendRequest(static_cast(DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER), - data, reply, option) != ERR_NONE) { + data, reply, option) != ERR_NONE) { WLOGFW("SendRequest failed"); return false; } -- Gitee From bafd2d4515afac2ce2b5357ca3eb3a854083e013 Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:42:30 +0000 Subject: [PATCH 12/13] update window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp. Signed-off-by: jml --- .../src/zidl/screen_session_manager_stub.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp b/window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp index 688c079dc6..89df6951a0 100644 --- a/window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp +++ b/window_scene/session_manager/src/zidl/screen_session_manager_stub.cpp @@ -79,17 +79,17 @@ int32_t ScreenSessionManagerStub::OnRemoteRequest(uint32_t code, MessageParcel& reply.WriteBool(SetDisplayState(state)); break; } - case DisplayManagerMessage::TRANS_ID_SET_SCREEN_POWER_FOR_ALL: { + case DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER: { + ScreenId screenId = static_cast(data.ReadUint32()); ScreenPowerState state = static_cast(data.ReadUint32()); PowerStateChangeReason reason = static_cast(data.ReadUint32()); - reply.WriteBool(SetScreenPowerForAll(state, reason)); + reply.WriteBool(SetSpecifiedScreenPower(screenId, state, reason)); break; } - case DisplayManagerMessage::TRANS_ID_SET_SPECIFIED_SCREEN_POWER: { - ScreenId screenId = static_cast(data.ReadUint32()); + case DisplayManagerMessage::TRANS_ID_SET_SCREEN_POWER_FOR_ALL: { ScreenPowerState state = static_cast(data.ReadUint32()); PowerStateChangeReason reason = static_cast(data.ReadUint32()); - reply.WriteBool(SetSpecifiedScreenPower(screenId, state, reason)); + reply.WriteBool(SetScreenPowerForAll(state, reason)); break; } case DisplayManagerMessage::TRANS_ID_GET_DISPLAY_STATE: { -- Gitee From ce87863b473023a9cc0a22e26a77ca498f34d8fb Mon Sep 17 00:00:00 2001 From: jml Date: Tue, 21 Nov 2023 04:45:07 +0000 Subject: [PATCH 13/13] update window_scene/test/unittest/screen_session_manager_test.cpp. Signed-off-by: jml --- window_scene/test/unittest/screen_session_manager_test.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/window_scene/test/unittest/screen_session_manager_test.cpp b/window_scene/test/unittest/screen_session_manager_test.cpp index 0ff187aa4d..773218e889 100644 --- a/window_scene/test/unittest/screen_session_manager_test.cpp +++ b/window_scene/test/unittest/screen_session_manager_test.cpp @@ -895,14 +895,10 @@ HWTEST_F(ScreenSessionManagerTest, HasImmersiveWindow, Function | SmallTest | Le HWTEST_F(ScreenSessionManagerTest, SetSpecifiedScreenPower, Function | SmallTest | Level3) { ScreenId mainScreenId(DEFAULT_SCREEN_ID); - PowerStateChangeReason reason = PowerStateChangeReason::POWER_BUTTON; ScreenPowerState state = ScreenPowerState::POWER_ON; - DisplayState displayState = DisplayState::ON; + PowerStateChangeReason reason = PowerStateChangeReason::POWER_BUTTON; ASSERT_EQ(true, ssm_->SetSpecifiedScreenPower(mainScreenId, state, reason)); - - ASSERT_EQ(false, ssm_->SetDisplayState(displayState)); - ASSERT_EQ(DisplayState::ON, ssm_->GetDisplayState(0)); } } -- Gitee