From ec3d23ef10ea1cd77b3e9a357bd2169711322622 Mon Sep 17 00:00:00 2001 From: Giorgio Micotti Date: Mon, 9 Sep 2013 12:30:27 +0200 Subject: [PATCH] Split suspend-resume logic --- frontend/ui/device.lua | 16 ++++++++++++++-- frontend/ui/inputevent.lua | 6 +++--- frontend/ui/uimanager.lua | 2 ++ kobo_suspend.sh | 19 ++----------------- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/frontend/ui/device.lua b/frontend/ui/device.lua index 925ad55e9..5e1f38dac 100644 --- a/frontend/ui/device.lua +++ b/frontend/ui/device.lua @@ -155,19 +155,31 @@ end function Device:Suspend() UIManager:show(InfoMessage:new{ text = _("Standby"), - timeout = 4, + timeout = 2, }) if self.fl ~= nil then self.fl:sleep() end - os.execute("./kobo_suspend.sh &") + self.screen_saver_mode = true + os.execute("./kobo_suspend.sh") end function Device:Resume() + --util.usleep(1500000) + os.execute("echo 0 > /sys/power/state-extended") if self.fl ~= nil then self.fl:resume() end -- Screen:refresh(0) + self.screen_saver_mode = false +end + +function Device:Power() + if self.screen_saver_mode == true then + Device:Resume() + else + Device:Suspend() + end end function Device:usbPlugIn() diff --git a/frontend/ui/inputevent.lua b/frontend/ui/inputevent.lua index 2c90770c2..ccba48612 100644 --- a/frontend/ui/inputevent.lua +++ b/frontend/ui/inputevent.lua @@ -385,7 +385,7 @@ function Input:adjustKindle4EventMap() end function Input:adjustKoboEventMap() - self.event_map[53] = "Power" + self.event_map[59] = "Power_SleepCover" self.event_map[90] = "Light" self.event_map[116] = "Power" end @@ -424,7 +424,7 @@ function Input:handleKeyBoardEv(ev) end -- Kobo sleep - if keycode == "Power" then + if keycode == "Power_SleepCover" then if ev.value == EVENT_VALUE_KEY_PRESS then return "Suspend" else @@ -433,7 +433,7 @@ function Input:handleKeyBoardEv(ev) end if ev.value == EVENT_VALUE_KEY_RELEASE - and keycode == "Light" then + and (keycode == "Light" or keycode == "Power") then return keycode end diff --git a/frontend/ui/uimanager.lua b/frontend/ui/uimanager.lua index 7de709092..bd321517e 100644 --- a/frontend/ui/uimanager.lua +++ b/frontend/ui/uimanager.lua @@ -293,6 +293,8 @@ function UIManager:run() Device:usbPlugOut() elseif input_event == "Light" then Device:getFrontlight():toggle() + elseif input_event == "Power" then + Device:Power() elseif input_event == "Suspend" then Device:Suspend() elseif input_event == "Resume" then diff --git a/kobo_suspend.sh b/kobo_suspend.sh index 1aa3abd38..4d0037cda 100644 --- a/kobo_suspend.sh +++ b/kobo_suspend.sh @@ -1,17 +1,7 @@ #!/bin/sh export PATH=$PATH:/sbin:/usr/sbin -ts_file=/tmp/back_from_suspend - -if test -e $ts_file ; then - sec_back_suspend=$(stat -t $ts_file | awk '{print $13}' ) - delta_sec=$(( $(date +%s) - $sec_back_suspend )) - echo sec_back_suspend=$sec_back_suspend delta_sec=$delta_sec >> /tmp/event_test.txt - test $delta_sec -gt 2 || exit -fi - -sleep 1 - +#disable wifi if lsmod | grep -q sdio_wifi_pwr ; then wlarm_le -i eth0 down ifconfig eth0 down @@ -19,12 +9,7 @@ if lsmod | grep -q sdio_wifi_pwr ; then /sbin/rmmod -r sdio_wifi_pwr fi - -sleep 1 - +#go to sleep sync echo 1 > /sys/power/state-extended echo mem > /sys/power/state -echo 0 > /sys/power/state-extended - -touch $ts_file