/*
* 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.
*/
sequenceable OHOS.IRemoteObject;
sequenceable RunningLockInfo..OHOS.PowerMgr.RunningLockInfo;
sequenceable RunningLockInfo..OHOS.PowerMgr.VectorPair;
interface OHOS.PowerMgr.IPowerStateCallback;
interface OHOS.PowerMgr.ISyncSleepCallback;
interface OHOS.PowerMgr.ISyncHibernateCallback;
interface OHOS.PowerMgr.IPowerModeCallback;
interface OHOS.PowerMgr.IScreenOffPreCallback;
interface OHOS.PowerMgr.ITakeOverShutdownCallback;
interface OHOS.PowerMgr.IAsyncShutdownCallback;
interface OHOS.PowerMgr.ISyncShutdownCallback;
interface OHOS.PowerMgr.IPowerRunninglockCallback;
interface OHOS.PowerMgr.IPowerMgrAsync;
interface OHOS.PowerMgr.ITakeOverSuspendCallback;
interface OHOS.PowerMgr.IAsyncUlsrCallback;
interface OHOS.PowerMgr.IRunningLockChangedCallback;
interface OHOS.PowerMgr.IPowerMgr {
[ipccode 0] void CreateRunningLockIpc(
[in] IRemoteObject remoteObj, [in] RunningLockInfo runningLockInfo,
[out] int powerError);
void ReleaseRunningLockIpc([in] IRemoteObject remoteObj, [in] String name);
void IsRunningLockTypeSupportedIpc([in] int lockType, [out] boolean lockTypesSupported);
[oneway] void UpdateWorkSourceIpc([in] IRemoteObject remoteObj, [in] int[] workSources);
void LockIpc([in] IRemoteObject remoteObj, [in] int timeOutMs, [out] int powerError);
void UnLockIpc([in] IRemoteObject remoteObj, [in] String name, [out] int powerError);
void QueryRunningLockListsIpc([in] unsigned long displayId, [out] OrderedMap<String, RunningLockInfo> runningLockLists);
void IsUsedIpc([in] IRemoteObject remoteObj, [out] boolean isUsed);
void ProxyRunningLockIpc([in] boolean isProxied, [in] int pid, [in] int uid);
void ProxyRunningLocksIpc([in] boolean isProxied, [in] VectorPair vectorPairInfos);
void ResetRunningLocksIpc();
// Used for power state machine.
void RebootDeviceIpc([in] String reason, [out] int powerError);
void RebootDeviceForDeprecatedIpc([in] String reason, [out] int powerError);
void ForceRebootDeviceIpc([in] String reason, [out] int powerError);
void ShutDownDeviceIpc([in] String reason, [out] int powerError);
void SetSuspendTagIpc([in] String tag, [out] int powerError);
void SuspendDeviceIpc([in] long callTimeMs, [in] int reasonValue, [in] boolean suspendImmed, [in] String apiVersion,
[out] int powerError);
void WakeupDeviceIpc([in] long callTimeMs, [in] int reasonValue, [in] String details, [in] String apiVersion,
[out] int powerError);
[oneway] void WakeupDeviceAsyncIpc([in] long callTimeMs, [in] int reasonValue, [in] String details,
[in] String apiVersion);
void RefreshActivityIpc([in] long callTimeMs, [in] int activityType, [in] boolean needChangeBacklight);
void OverrideScreenOffTimeIpc([in] long timeout, [in] String apiVersion, [out] int powerError);
void RestoreScreenOffTimeIpc([in] String apiVersion, [out] int powerError);
void GetStateIpc([out] int powerState);
void IsScreenOnIpc([in] boolean needPrintLog, [out] boolean isScreenOn);
void IsFoldScreenOnIpc([out] boolean screenOn);
void IsCollaborationScreenOnIpc([out] boolean collaborationScreenOn);
[oneway] void ForceSuspendDeviceIpc([in] long callTimeMs, [in] String apiVersion, [in] IPowerMgrAsync powerProxy);
void RegisterPowerStateCallbackIpc([in] IPowerStateCallback powerCallback, [in] boolean isSync);
void UnRegisterPowerStateCallbackIpc([in] IPowerStateCallback powerCallback);
void RegisterSyncSleepCallbackIpc([in] ISyncSleepCallback powerCallback, [in] int priorityValue);
void UnRegisterSyncSleepCallbackIpc([in] ISyncSleepCallback powerCallback);
void RegisterSuspendTakeoverCallbackIpc([in] ITakeOverSuspendCallback takeOverSuspendCallback, [in] int priority);
void UnRegisterSuspendTakeoverCallbackIpc([in] ITakeOverSuspendCallback takeOverSuspendCallback);
void RegisterSyncHibernateCallbackIpc([in] ISyncHibernateCallback powerCallback, [in] int priorityValue);
void UnRegisterSyncHibernateCallbackIpc([in] ISyncHibernateCallback powerCallback);
// Used for Callback registration upon power mode.
void RegisterPowerModeCallbackIpc([in] IPowerModeCallback powerCallback);
void UnRegisterPowerModeCallbackIpc([in] IPowerModeCallback powerCallback);
void RegisterScreenStateCallbackIpc([in] int remainTime, [in] IScreenOffPreCallback powerCallback);
void UnRegisterScreenStateCallbackIpc([in] IScreenOffPreCallback powerCallback);
void SetDisplaySuspendIpc([in] boolean enable);
[oneway] void HibernateIpc([in] boolean clearMemory, [in] String reason, [in] String apiVersion,
[in] IPowerMgrAsync powerProxy);
void SetDeviceModeIpc([in] int modeValue, [out] int powerError);
void GetDeviceModeIpc([out] int powerMode);
void ShellDumpIpc([in] String[] args, [in] unsigned int argc, [out] String returnDump);
void IsStandbyIpc([out] boolean isStandby, [out] int powerError);
void SetForceTimingOutIpc([in] boolean enabled, [in] IRemoteObject token, [out] int powerError);
void LockScreenAfterTimingOutIpc([in] boolean enabledLockScreen, [in] boolean checkLock,
[in] boolean sendScreenOffEvent, [in] IRemoteObject token, [out] int powerError);
void LockScreenAfterTimingOutWithAppidIpc([in] int appid, [in] boolean lockScreen, [in] IRemoteObject token,
[out] int powerError);
void RegisterShutdownCallbackIpc([in] ITakeOverShutdownCallback powerCallback, [in] int priorityValue);
void UnRegisterShutdownCallbackIpc([in] ITakeOverShutdownCallback powerCallback);
void RegisterShutdownCallbackIpc([in] IAsyncShutdownCallback powerCallback, [in] int priorityValue);
void UnRegisterShutdownCallbackIpc([in] IAsyncShutdownCallback powerCallback);
void RegisterShutdownCallbackIpc([in] ISyncShutdownCallback powerCallback, [in] int priorityValue);
void UnRegisterShutdownCallbackIpc([in] ISyncShutdownCallback powerCallback);
void RegisterRunningLockCallbackIpc([in] IPowerRunninglockCallback powerCallback);
void UnRegisterRunningLockCallbackIpc([in] IPowerRunninglockCallback powerCallback);
void IsRunningLockEnabledIpc([in] int lockType, [in] unsigned long displayId, [out] boolean lockEnabledResult, [out] int powerError);
void IsForceSleepingIpc([out] boolean isForceSleeping);
void RefreshActivityIpc([in] long callTimeMs, [in] int activityType, [in] String refreshReason,
[out] int powerError);
void SetPowerKeyFilteringStrategyIpc([in] int strategy, [out] int powerError);
void GetShutdownReasonIpc([out] String reason, [out] int powerError);
void RegisterUlsrCallbackIpc([in] IAsyncUlsrCallback ulsrCallback, [out] int powerError);
void UnRegisterUlsrCallbackIpc([in] IAsyncUlsrCallback ulsrCallback, [out] int powerError);
void RegisterAsyncShutdownCallbackIpc([in] IAsyncShutdownCallback powerCallback, [in] int priorityValue, [out] int powerError);
void UnRegisterAsyncShutdownCallbackIpc([in] IAsyncShutdownCallback powerCallback, [out] int powerError);
void SetProxFilteringStrategyIpc([in] int strategy, [in] IRemoteObject token, [out] int powerError);
void GetPowerConfigIpc([in] String sceneName, [out] String configVal, [out] int powerError);
void SetPowerConfigIpc([in] String sceneName, [in] String configVal, [out] int powerError);
void RegisterRunningLockChangedCallbackIpc([in] IRunningLockChangedCallback powerCallback,
[in] unsigned long displayId, [out] int powerError);
void UnRegisterRunningLockChangedCallbackIpc([in] IRunningLockChangedCallback powerCallback,
[in] unsigned long displayId, [out] int powerError);
}