/* * Copyright (c) 2025 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 #include #include "display_manager_lite_proxy.h" namespace OHOS::Rosen { // generated by IDisplayManagerLite.idl ErrCode DisplayManagerLiteProxy::RegisterDisplayManagerAgent( const sptr& displayManagerAgent, uint32_t type, int32_t& dmError) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (displayManagerAgent == nullptr) { TLOGE(WmsLogTag::DMS, "displayManagerAgent is nullptr!"); return ERR_INVALID_DATA; } if (!data.WriteRemoteObject(displayManagerAgent->AsObject())) { TLOGE(WmsLogTag::DMS, "Write [displayManagerAgent] failed!"); return ERR_INVALID_DATA; } if (!data.WriteUint32(type)) { TLOGE(WmsLogTag::DMS, "Write [type] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_REGISTER_DISPLAY_MANAGER_AGENT), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_REGISTER_DISPLAY_MANAGER_AGENT)); return errCode; } if (!reply.ReadInt32(dmError)) { TLOGE(WmsLogTag::DMS, "Read dmError failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::UnregisterDisplayManagerAgent( const sptr& displayManagerAgent, uint32_t type, int32_t& dmError) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (displayManagerAgent == nullptr) { TLOGE(WmsLogTag::DMS, "displayManagerAgent is nullptr!"); return ERR_INVALID_DATA; } if (!data.WriteRemoteObject(displayManagerAgent->AsObject())) { TLOGE(WmsLogTag::DMS, "Write [displayManagerAgent] failed!"); return ERR_INVALID_DATA; } if (!data.WriteUint32(type)) { TLOGE(WmsLogTag::DMS, "Write [type] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_UNREGISTER_DISPLAY_MANAGER_AGENT), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_UNREGISTER_DISPLAY_MANAGER_AGENT)); return errCode; } if (!reply.ReadInt32(dmError)) { TLOGE(WmsLogTag::DMS, "Read dmError failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetDefaultDisplayInfo( sptr& displayInfo) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_DEFAULT_DISPLAY_INFO), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_DEFAULT_DISPLAY_INFO)); return errCode; } displayInfo = sptr(reply.ReadParcelable()); if (!displayInfo) { TLOGE(WmsLogTag::DMS, "Read [DisplayInfo] failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetDisplayInfoById( uint64_t displayId, sptr& displayInfo) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint64(displayId)) { TLOGE(WmsLogTag::DMS, "Write [displayId] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_DISPLAY_INFO_BY_ID), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_DISPLAY_INFO_BY_ID)); return errCode; } displayInfo = sptr(reply.ReadParcelable()); if (!displayInfo) { TLOGE(WmsLogTag::DMS, "Read [DisplayInfo] failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetCutoutInfo( uint64_t displayId, sptr& cutoutInfo) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint64(displayId)) { TLOGE(WmsLogTag::DMS, "Write [displayId] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_CUTOUT_INFO), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_CUTOUT_INFO)); return errCode; } cutoutInfo = sptr(reply.ReadParcelable()); if (!cutoutInfo) { TLOGE(WmsLogTag::DMS, "Read [CutoutInfo] failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::WakeUpBegin( uint32_t reason, bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint32(reason)) { TLOGE(WmsLogTag::DMS, "Write [reason] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_WAKE_UP_BEGIN), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_WAKE_UP_BEGIN)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::WakeUpEnd( bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_WAKE_UP_END), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_WAKE_UP_END)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::SuspendBegin( uint32_t reason, bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint32(reason)) { TLOGE(WmsLogTag::DMS, "Write [reason] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_SUSPEND_BEGIN), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_SUSPEND_BEGIN)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::SuspendEnd( bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_SUSPEND_END), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_SUSPEND_END)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::SetSpecifiedScreenPower( uint64_t screenId, uint32_t screenPowerState, uint32_t reason, bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint64(screenId)) { TLOGE(WmsLogTag::DMS, "Write [screenId] failed!"); return ERR_INVALID_DATA; } if (!data.WriteUint32(screenPowerState)) { TLOGE(WmsLogTag::DMS, "Write [screenPowerState] failed!"); return ERR_INVALID_DATA; } if (!data.WriteUint32(reason)) { TLOGE(WmsLogTag::DMS, "Write [reason] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_SET_SPECIFIED_SCREEN_POWER), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_SET_SPECIFIED_SCREEN_POWER)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::SetScreenPowerForAll( uint32_t screenPowerState, uint32_t reason, bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint32(screenPowerState)) { TLOGE(WmsLogTag::DMS, "Write [screenPowerState] failed!"); return ERR_INVALID_DATA; } if (!data.WriteUint32(reason)) { TLOGE(WmsLogTag::DMS, "Write [reason] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_SET_SCREEN_POWER_FOR_ALL), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_SET_SCREEN_POWER_FOR_ALL)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetScreenPower( uint64_t dmsScreenId, uint32_t& screenPowerState) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint64(dmsScreenId)) { TLOGE(WmsLogTag::DMS, "Write [dmsScreenId] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_SCREEN_POWER), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_SCREEN_POWER)); return errCode; } if (!reply.ReadUint32(screenPowerState)) { TLOGE(WmsLogTag::DMS, "Read [screenPowerState] failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::SetDisplayState( uint32_t displayState, bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint32(displayState)) { TLOGE(WmsLogTag::DMS, "Write [displayState] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_SET_DISPLAY_STATE), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_SET_DISPLAY_STATE)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetDisplayState( uint64_t displayId, uint32_t& displayState) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint64(displayId)) { TLOGE(WmsLogTag::DMS, "Write [displayId] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_DISPLAY_STATE), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_DISPLAY_STATE)); return errCode; } if (!reply.ReadUint32(displayState)) { TLOGE(WmsLogTag::DMS, "Read [displayState] failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::TryToCancelScreenOff( bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_TRY_TO_CANCEL_SCREEN_OFF), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_TRY_TO_CANCEL_SCREEN_OFF)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetAllDisplayIds( std::vector& displayIds) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_ALL_DISPLAY_IDS), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_ALL_DISPLAY_IDS)); return errCode; } int32_t displayIdsSize = 0; if (!reply.ReadInt32(displayIdsSize)) { TLOGE(WmsLogTag::DMS, "Read displayIdsSize failed!"); return ERR_INVALID_DATA; } if (displayIdsSize > static_cast(VECTOR_MAX_SIZE)) { TLOGE(WmsLogTag::DMS, "The vector/array size exceeds the security limit!"); return ERR_INVALID_DATA; } for (int32_t i1 = 0; i1 < displayIdsSize; ++i1) { uint64_t value1 = reply.ReadUint64(); displayIds.push_back(value1); } return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetAllScreenInfos( std::vector>& screenInfos, int32_t& dmError) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_ALL_SCREEN_INFOS), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_ALL_SCREEN_INFOS)); return errCode; } int32_t screenInfosSize = 0; if (!reply.ReadInt32(screenInfosSize)) { TLOGE(WmsLogTag::DMS, "Read screenInfosSize failed!"); return ERR_INVALID_DATA; } if (screenInfosSize > static_cast(VECTOR_MAX_SIZE)) { TLOGE(WmsLogTag::DMS, "The vector/array size exceeds the security limit!"); return ERR_INVALID_DATA; } for (int32_t i2 = 0; i2 < screenInfosSize; ++i2) { sptr value2 = sptr(reply.ReadParcelable()); if (!value2) { TLOGE(WmsLogTag::DMS, "Read [ScreenInfo] failed!"); return ERR_INVALID_DATA; } screenInfos.push_back(value2); } if (!reply.ReadInt32(dmError)) { TLOGE(WmsLogTag::DMS, "Read dmError failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetScreenInfoById( uint64_t screenId, sptr& screenInfo) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint64(screenId)) { TLOGE(WmsLogTag::DMS, "Write [screenId] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_SCREEN_INFO_BY_ID), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_SCREEN_INFO_BY_ID)); return errCode; } screenInfo = sptr(reply.ReadParcelable()); if (!screenInfo) { TLOGE(WmsLogTag::DMS, "Read [ScreenInfo] failed!"); return ERR_INVALID_DATA; } return ERR_OK; } ErrCode DisplayManagerLiteProxy::SetScreenBrightness( uint64_t screenId, uint32_t level, bool& isSucc) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint64(screenId)) { TLOGE(WmsLogTag::DMS, "Write [screenId] failed!"); return ERR_INVALID_DATA; } if (!data.WriteUint32(level)) { TLOGE(WmsLogTag::DMS, "Write [level] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_SET_SCREEN_BRIGHTNESS), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_SET_SCREEN_BRIGHTNESS)); return errCode; } int32_t isSuccInt = 0; if (!reply.ReadInt32(isSuccInt)) { TLOGE(WmsLogTag::DMS, "Read [isSucc] failed!"); return ERR_INVALID_DATA; } isSucc = isSuccInt == 1; return ERR_OK; } ErrCode DisplayManagerLiteProxy::GetScreenBrightness( uint64_t screenId, uint32_t& level) { MessageParcel data; MessageParcel reply; MessageOption option(MessageOption::TF_SYNC); if (!data.WriteInterfaceToken(GetDescriptor())) { TLOGE(WmsLogTag::DMS, "Write interface token failed!"); return ERR_INVALID_VALUE; } if (!data.WriteUint64(screenId)) { TLOGE(WmsLogTag::DMS, "Write [screenId] failed!"); return ERR_INVALID_DATA; } sptr remote = Remote(); if (!remote) { TLOGE(WmsLogTag::DMS, "Remote is nullptr!"); return ERR_INVALID_DATA; } int32_t result = remote->SendRequest( static_cast(IDisplayManagerIpcCode::COMMAND_GET_SCREEN_BRIGHTNESS), data, reply, option); if (FAILED(result)) { TLOGE(WmsLogTag::DMS, "Send request failed!"); return result; } ErrCode errCode = ERR_OK; if (!reply.ReadInt32(errCode)) { TLOGE(WmsLogTag::DMS, "Read result failed!"); return ERR_INVALID_DATA; } if (FAILED(errCode)) { TLOGE(WmsLogTag::DMS, "Result is: %{public}d, code is: %{public}d.", errCode, static_cast(IDisplayManagerIpcCode::COMMAND_GET_SCREEN_BRIGHTNESS)); return errCode; } if (!reply.ReadUint32(level)) { TLOGE(WmsLogTag::DMS, "Read [level] failed!"); return ERR_INVALID_DATA; } return ERR_OK; } } // namespace OHOS::Rosen