rom_so_confirm_page.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import pygame
  4. import glob
  5. import shutil
  6. import gobject
  7. import validators
  8. #from pySmartDL import SmartDL
  9. from libs.roundrects import aa_round_rect
  10. from UI.confirm_page import ConfirmPage
  11. from UI.download_process_page import DownloadProcessPage
  12. from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
  13. from UI.multilabel import MultiLabel
  14. from UI.lang_manager import MyLangManager
  15. import config
  16. class RomSoConfirmPage(ConfirmPage):
  17. _ListFont = MyLangManager.TrFont("Eurostile15")
  18. _ConfirmText = MyLangManager.Tr("SetupGameEngineAutoQ")
  19. _MyDownloadPage = None
  20. def CheckBattery(self):
  21. try:
  22. f = open(config.Battery)
  23. except IOError:
  24. print( "RomSoConfirmPage open %s failed" % config.Battery)
  25. return 6
  26. else:
  27. with f:
  28. bat_uevent = {}
  29. content = f.readlines()
  30. content = [x.strip() for x in content]
  31. for i in content:
  32. pis = i.split("=")
  33. if len(pis) > 1:
  34. bat_uevent[pis[0]] = pis[1]
  35. if "POWER_SUPPLY_CAPACITY" in bat_uevent:
  36. cur_cap = int(bat_uevent["POWER_SUPPLY_CAPACITY"])
  37. else:
  38. cur_cap = 0
  39. return cur_cap
  40. return 0
  41. def Init(self):
  42. self._PosX = self._Index * self._Screen._Width
  43. self._Width = self._Screen._Width
  44. self._Height = self._Screen._Height
  45. self._CanvasHWND = self._Screen._CanvasHWND
  46. li = MultiLabel()
  47. li.SetCanvasHWND(self._CanvasHWND)
  48. li._Width = 160
  49. li.Init(self._ConfirmText,self._ListFont)
  50. li._PosX = (self._Width - li._Width)/2
  51. li._PosY = (self._Height - li._Height)/2
  52. self._BGPosX = li._PosX-20
  53. self._BGPosY = li._PosY-20
  54. self._BGWidth = li._Width+40
  55. self._BGHeight = li._Height+40
  56. self._MyList.append(li)
  57. def SnapMsg(self,msg):
  58. self._MyList[0].SetText(msg)
  59. self._Screen.Draw()
  60. self._Screen.SwapAndShow()
  61. self._MyList[0].SetText(self._ConfirmText)
  62. def OnReturnBackCb(self):
  63. self.ReturnToUpLevelPage()
  64. self._Screen.Draw()
  65. self._Screen.SwapAndShow()
  66. def KeyDown(self,event):
  67. if IsKeyMenuOrB(event.key):
  68. self.ReturnToUpLevelPage()
  69. self._Screen.Draw()
  70. self._Screen.SwapAndShow()
  71. if IsKeyStartOrA(event.key):
  72. if self.CheckBattery() < 5:
  73. self.SnapMsg(MyLangManager.Tr("BATOver5Pct"))
  74. else:
  75. if self._MyDownloadPage == None:
  76. self._MyDownloadPage = DownloadProcessPage()
  77. self._MyDownloadPage._Screen = self._Screen
  78. self._MyDownloadPage._Name = "Downloading"
  79. self._MyDownloadPage.Init()
  80. self._Screen.PushPage(self._MyDownloadPage)
  81. self._Screen.Draw()
  82. self._Screen.SwapAndShow()
  83. if config.CurKeySet == "PC":
  84. so_url = self._Parent._Emulator["SO_URL"] ## [rom/fav]_list_page is _Parent
  85. so_url = so_url.replace("armhf","x86_64")
  86. print(so_url)
  87. self._MyDownloadPage.StartDownload(so_url,os.path.dirname(self._Parent._Emulator["ROM_SO"]))
  88. else:
  89. self._MyDownloadPage.StartDownload(self._Parent._Emulator["SO_URL"],
  90. os.path.dirname(self._Parent._Emulator["ROM_SO"]))
  91. def Draw(self):
  92. self.ClearCanvas()
  93. self.DrawBG()
  94. for i in self._MyList:
  95. i.Draw()