__init__.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. #UI lib
  4. from UI.constants import RUNSYS
  5. from UI.keys_def import CurKeys
  6. from UI.confirm_page import ConfirmPage
  7. import config
  8. class PowerOffConfirmPage(ConfirmPage):
  9. _ConfirmText = "Confirm Power OFF?"
  10. def CheckBattery(self):
  11. try:
  12. f = open(config.Battery)
  13. except IOError:
  14. print( "PowerOFF open %s failed" % config.Battery)
  15. return 0
  16. else:
  17. with f:
  18. bat_uevent = {}
  19. content = f.readlines()
  20. content = [x.strip() for x in content]
  21. for i in content:
  22. pis = i.split("=")
  23. if len(pis) > 1:
  24. bat_uevent[pis[0]] = pis[1]
  25. if "POWER_SUPPLY_CAPACITY" in bat_uevent:
  26. cur_cap = int(bat_uevent["POWER_SUPPLY_CAPACITY"])
  27. else:
  28. cur_cap = 0
  29. return cur_cap
  30. return 0
  31. def KeyDown(self,event):
  32. if event.key == CurKeys["Menu"] or event.key == CurKeys["A"]:
  33. self.ReturnToUpLevelPage()
  34. self._Screen.Draw()
  35. self._Screen.SwapAndShow()
  36. if event.key == CurKeys["B"]:
  37. if self.CheckBattery() < 20:
  38. cmdpath = "feh --bg-center gameshell/wallpaper/gameover.png;"
  39. else:
  40. cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;"
  41. cmdpath += "sleep 3;"
  42. #cmdpath += "echo 'halt -p' > /tmp/halt_cmd"
  43. cmdpath += "sudo halt -p"
  44. pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))
  45. class APIOBJ(object):
  46. _StoragePage = None
  47. def __init__(self):
  48. pass
  49. def Init(self,main_screen):
  50. self._Page = PowerOffConfirmPage()
  51. self._Page._Screen = main_screen
  52. self._Page._Name ="Power OFF"
  53. self._Page.Init()
  54. def API(self,main_screen):
  55. if main_screen !=None:
  56. main_screen.PushPage(self._Page)
  57. main_screen.Draw()
  58. main_screen.SwapAndShow()
  59. OBJ = APIOBJ()
  60. def Init(main_screen):
  61. OBJ.Init(main_screen)
  62. def API(main_screen):
  63. OBJ.API(main_screen)