power: introduce sleep-wait for iot-headless 90/266690/6
authorYoungjae Cho <y0.cho@samsung.com>
Wed, 17 Nov 2021 07:44:55 +0000 (16:44 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Fri, 19 Nov 2021 07:38:25 +0000 (16:38 +0900)
commitaf5412b3c231055715696b304214849c48b2341b
tree5c7c4b0eeecdf289a0a1a80270827c532ea49ddf
parent07c98b983e0ab3e075039455fbe75ff9b1536cbe
power: introduce sleep-wait for iot-headless

Sleep-wait defers wake unlock if somebody wants to defer sleep for a
short duration. For example, system might want to notify user that it
is going to sleep by alarming sound. To play sound, system must hold
running state for a moment.

One who wants to defer sleep must request sleep-wait. On receiving
signal that sleep is requested, it processes todo list before going to
sleep. And after finishing the job, it must confirm that it is OK to go
into sleep. For now, deviced waits maximum of 5 seconds, and after this
timeout, wake unlock even someone hasn't confirmed the sleep-wait.

Sleep-wait offers dbus methods.
   1. Adding sleep-wait for deferring sleep
      path       : /Org/Tizen/System/DeviceD/Power
      interface  : org.tizen.system.deviced.Power
      member     : AddSleepWait
      parameter  : no parameter
      return     : "(i)", 0 on success, negative on error.

   2. Removing sleep-wait
      path       : /Org/Tizen/System/DeviceD/Power
      interface  : org.tizen.system.deviced.Power
      member     : RemoveSleepWait
      parameter  : no parameter
      return     : no return

   3. Confirming sleep-wait, which notifies deviced that it is OK
      to go into sleep.
      path       : /Org/Tizen/System/DeviceD/Power
      interface  : org.tizen.system.deviced.Power
      member     : ConfirmSleepWait
      parameter  : "(i)", sleep id to confirm
      return     : "(i)", 0 on success, negative on error.

Change-Id: I58860ab7633c3863cc3ee06befc49b0e152934fe
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
plugins/iot-headless/power/power-control.c
plugins/iot-headless/power/sleep-wait.c [new file with mode: 0644]
plugins/iot-headless/power/sleep-wait.h [new file with mode: 0644]
src/display/display-dbus.c
src/shared/common.c
src/shared/common.h