__init__.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. #UI lib
  4. from UI.constants import RUNSYS
  5. from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
  6. from UI.confirm_page import ConfirmPage
  7. from UI.lang_manager import MyLangManager
  8. from UI.skin_manager import MySkinManager
  9. import config
  10. class PowerOffConfirmPage(ConfirmPage):
  11. _ConfirmText = MyLangManager.Tr("Awaiting Input")
  12. _FootMsg = ["Nav","Suspend","Reboot","Cancel","Shutdown"]
  13. def CheckBattery(self):
  14. try:
  15. f = open(config.Battery)
  16. except IOError:
  17. print( "PowerOFF open %s failed" % config.Battery)
  18. return 0
  19. else:
  20. with f:
  21. bat_uevent = {}
  22. content = f.readlines()
  23. content = [x.strip() for x in content]
  24. for i in content:
  25. pis = i.split("=")
  26. if len(pis) > 1:
  27. bat_uevent[pis[0]] = pis[1]
  28. if "POWER_SUPPLY_CAPACITY" in bat_uevent:
  29. cur_cap = int(bat_uevent["POWER_SUPPLY_CAPACITY"])
  30. else:
  31. cur_cap = 0
  32. return cur_cap
  33. return 0
  34. def KeyDown(self,event):
  35. if IsKeyMenuOrB(event.key):
  36. self.ReturnToUpLevelPage()
  37. self._Screen.Draw()
  38. self._Screen.SwapAndShow()
  39. if IsKeyStartOrA(event.key):
  40. if self.CheckBattery() < 20:
  41. cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("gameover.png")
  42. else:
  43. cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png")
  44. cmdpath += "sleep 3;"
  45. #cmdpath += "echo 'halt -p' > /tmp/halt_cmd"
  46. cmdpath += "sudo halt -p"
  47. pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))
  48. if event.key == CurKeys["X"]:
  49. cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png")
  50. cmdpath += "sleep 3;"
  51. cmdpath += "sudo reboot"
  52. pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))
  53. if event.key == CurKeys["Y"]:
  54. cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png")
  55. cmdpath += "sleep 3;"
  56. cmdpath += "sudo pm-suspend"
  57. pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))
  58. class APIOBJ(object):
  59. _StoragePage = None
  60. def __init__(self):
  61. pass
  62. def Init(self,main_screen):
  63. self._Page = PowerOffConfirmPage()
  64. self._Page._Screen = main_screen
  65. self._Page._Name ="Power OFF"
  66. self._Page.Init()
  67. def API(self,main_screen):
  68. if main_screen !=None:
  69. main_screen.PushPage(self._Page)
  70. main_screen.Draw()
  71. main_screen.SwapAndShow()
  72. OBJ = APIOBJ()
  73. def Init(main_screen):
  74. OBJ.Init(main_screen)
  75. def API(main_screen):
  76. OBJ.API(main_screen)