Esempio n. 1
0
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._CanvasHWND = self._Screen._CanvasHWND

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        ps = BleInfoPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        #_AList is an object
        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()

        self._ConfirmPage1 = BleForgetConfirmPage()
        self._ConfirmPage1._Screen = self._Screen
        self._ConfirmPage1._Name = "ConfirmForget"
        self._ConfirmPage1._Parent = self
        self._ConfirmPage1.Init()
Esempio n. 2
0
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface(
                    (self._Screen._Width, self._BGheight + 50))

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        bgpng = MultiIconItem()
        bgpng._ImgSurf = MyIconPool.GiveIconSurface("about_bg")
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0)

        self._Icons["bg"] = bgpng

        self.CpuInfo()
        self.MemInfo()
        self.CpuMhz()
        self.Uname()

        self.LauncherVersion()
        self.OsImageVersion()

        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._HWND)
Esempio n. 3
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList()
        gobject.timeout_add(850,self.GObjectInterval)

        self._BGpng = IconItem()
        self._BGpng._ImgSurf = MyIconPool._Icons["heart"]
        self._BGpng._MyType = ICON_TYPES["STAT"]
        self._BGpng._Parent = self
        self._BGpng.AddLabel("my favourites", fonts["varela18"])
        self._BGpng.SetLableColor(pygame.Color(204,204,204))
        self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
Esempio n. 4
0
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._CanvasHWND = self._Screen._CanvasHWND

        self._PosX = self._Index*self._Screen._Width 
        self._Width = self._Screen._Width ## equal to screen width
        self._Height = self._Screen._Height

        ps = InfoPageSelector()
        ps._PosX = 11
        ps._Parent = self
        ps._Width = self._Width-10
        self._Ps = ps
        self._PsIndex = 0

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()
        
        self._ConfirmBox = DeleteCoreConfirmPage()
        self._ConfirmBox._Screen = self._Screen
        self._ConfirmBox._Name = "Confirm to Delete?"
        self._ConfirmBox._Parent = self
        self._ConfirmBox.Init()
Esempio n. 5
0
    def Init(self):

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        #self._CanvasHWND = pygame.Surface((self._Width,self._Height))
        self._CanvasHWND = self._Screen._CanvasHWND

        ps = BleListSelector()
        ps._Parent = self
        ps._Width = Width - 12

        self._Ps = ps
        self._PsIndex = 0

        msgbox = BleListMessageBox()
        msgbox._CanvasHWND = self._CanvasHWND
        msgbox.Init(" ", MyLangManager.TrFont("veramono15"))
        msgbox._Parent = self

        self._MsgBox = msgbox

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()

        self.GenNetworkList()

        self._InfoPage = BleInfoPage()
        self._InfoPage._Screen = self._Screen
        self._InfoPage._Name = "BluetoothInfo"
        self._InfoPage.Init()
Esempio n. 6
0
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface(
                    (self._Screen._Width, self._BGheight))

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        done = IconItem()
        done._ImgSurf = MyIconPool.GiveIconSurface("done")
        done._MyType = ICON_TYPES["STAT"]
        done._Parent = self
        self._Icons["done"] = done

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._HWND)
Esempio n. 7
0
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface( (self._Screen._Width,self._BGheight) )

        self._PosX = self._Index*self._Screen._Width 
        self._Width = self._Screen._Width ## equal to screen width
        self._Height = self._Screen._Height

        bgpng = IconItem()
        bgpng._ImgSurf = MyIconPool._Icons["about_bg"]
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0)

        self._Icons["bg"] = bgpng
        
        self.CpuInfo()
        self.MemInfo()
        self.CpuMhz()
        self.Uname()
        self.BatteryInfo()
        self.PortInfo1()
        self.PortInfo2()
        self.ThanksTimTam()
        
        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._HWND)
Esempio n. 8
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList()
        gobject.timeout_add(850, self.GObjectInterval)

        self._BGpng = IconItem()
        self._BGpng._ImgSurf = MyIconPool._Icons["heart"]
        self._BGpng._MyType = ICON_TYPES["STAT"]
        self._BGpng._Parent = self
        self._BGpng.AddLabel(MyLangManager.Tr("my favorite music"),
                             MyLangManager.TrFont("varela18"))
        self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled'))
        self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0)

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface(
                    (self._Screen._Width, self._BGheight))

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        DialogBoxs = MultiIconItem()
        DialogBoxs._ImgSurf = MyIconPool.GiveIconSurface("buttonslayout")
        DialogBoxs._MyType = ICON_TYPES["STAT"]
        DialogBoxs._Parent = self
        DialogBoxs._IconWidth = 300
        DialogBoxs._IconHeight = 150
        DialogBoxs.Adjust(0, 0, 134, 372, 0)
        self._Icons["DialogBoxs"] = DialogBoxs

        self.GenList()
        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._HWND)

        self._ConfirmPage = UpdateConfirmPage()
        self._ConfirmPage._LayoutMode = GetButtonsLayoutMode()
        self._ConfirmPage._Screen = self._Screen
        self._ConfirmPage._Name = "Overwrite RA conf"
        self._ConfirmPage._Parent = self
        self._ConfirmPage.Init()
Esempio n. 10
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = InfoPageSelector()
        ps._Parent = self
        ps._PosX = 2
        self._Ps = ps
        self._PsIndex = 0

        #                ""   pkgname, label
        alist = [["", "Airplane", "Airplane Mode"],
                 ["", "PowerOptions", "Power Options"], ["", "Wifi", "Wi-Fi"],
                 ["", "Bluetooth", "Bluetooth"], ["", "Sound", "Sound Volume"],
                 ["", "Brightness", "BackLight Brightness"],
                 ["", "Storage", ""], ["", "Time", "Timezone"],
                 ["", "Languages", "Languages"],
                 ["", "Notification", "Notification"], ["", "Update", ""],
                 ["", "About", "About"], ["", "PowerOFF", "Power off"],
                 ["", "ButtonsLayout", "Buttons Layout"],
                 ["", "LauncherGo", "Switch to LauncherGo"],
                 ["", "Lima", "GPU driver switch"],
                 ["", "GateWay", "Network gateway switch"]]

        start_x = 0
        start_y = 0

        sys.path.append(myvars.basepath)  # add self as import path
        for i, v in enumerate(alist):
            li = ListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y + i * ListItem._Height
            li._Width = Width
            li._Fonts["normal"] = self._ListFontObj

            if v[2] != "":
                li.Init(v[2])
            else:
                li.Init(v[1])

            #if v[1] == "Wifi" or v[1] == "Sound" or v[1] == "Brightness" or v[1] == "Storage" or v[1] == "Update" or v[1] == "About" or v[1] == "PowerOFF" or v[1] == "HelloWorld":
            if FileExists(myvars.basepath + "/" + v[1]):
                li._LinkObj = __import__(v[1])
                init_cb = getattr(li._LinkObj, "Init", None)
                if init_cb != None:
                    if callable(init_cb):
                        li._LinkObj.Init(self._Screen)

                self._MyList.append(li)

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
Esempio n. 11
0
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface( (self._Screen._Width,self._BGheight) )

        self._PosX = self._Index*self._Screen._Width 
        self._Width = self._Screen._Width ## equal to screen width
        self._Height = self._Screen._Height



        airwire = IconItem()
        airwire._ImgSurf = MyIconPool._Icons["airwire"]
        airwire._MyType = ICON_TYPES["STAT"]
        airwire._Parent = self
        airwire.Adjust(0,0,5,43,0)
        self._Icons["airwire"] = airwire

        GS = IconItem()
        GS._ImgSurf = MyIconPool._Icons["GS"]
        GS._MyType = ICON_TYPES["STAT"]
        GS._Parent = self
        GS.Adjust(0,0,72,95,0)
        self._Icons["GS"] = GS

        DialogBoxs = MultiIconItem()
        DialogBoxs._ImgSurf = MyIconPool._Icons["DialogBoxs"]
        DialogBoxs._MyType = ICON_TYPES["STAT"]
        DialogBoxs._Parent = self
        DialogBoxs._IconWidth = 134
        DialogBoxs._IconHeight = 93
        DialogBoxs.Adjust(0,0,134,372,0)
        self._Icons["DialogBoxs"] = DialogBoxs

        
        """
        bgpng = MultiIconItem()
        bgpng._ImgSurf = MyIconPool._Icons["about_bg"]
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
        self._Icons["bg"] = bgpng
        """
        
        
        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._HWND)
        
        self.OnLoadCb()
Esempio n. 12
0
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface(
                    (self._Screen._Width, self._BGheight))

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        done = IconItem()
        done._ImgSurf = MyIconPool.GiveIconSurface("done")
        done._MyType = ICON_TYPES["STAT"]
        done._Parent = self
        self._Icons["done"] = done

        ps = InfoPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._CanvasHWND)

        self._remove_page = YesCancelConfirmPage()
        self._remove_page._Screen = self._Screen
        self._remove_page._StartOrA_Event = self.RemoveGame

        self._remove_page._Name = "Are you sure?"
        self._remove_page.Init()

        self._Keyboard = Keyboard()
        self._Keyboard._Name = "Enter warehouse addr"
        self._Keyboard._FootMsg = ["Nav.", "Add", "ABC", "Backspace", "Enter"]
        self._Keyboard._Screen = self._Screen
        self._Keyboard.Init()
        self._Keyboard.SetPassword("github.com/clockworkpi/warehouse")
        self._Keyboard._Caller = self

        self._PreviewPage = ImageDownloadProcessPage()
        self._PreviewPage._Screen = self._Screen
        self._PreviewPage._Name = "Preview"
        self._PreviewPage.Init()

        self._LoadHousePage = LoadHousePage()
        self._LoadHousePage._Screen = self._Screen
        self._LoadHousePage._Name = "Warehouse"
        self._LoadHousePage._Caller = self
        self._LoadHousePage.Init()
Esempio n. 13
0
    def Init(self):
        self._SubPage = SelectPage()
        self._SubPage._Screen = self._Screen
        self._SubPage._Name = "Select Branch"
        self._SubPage.Init()

        self._ListFontObj = MyLangManager.TrFont("varela15")
        self._ListSmFontObj = MySkinManager.GiveFont("varela12")
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = self._Screen._CanvasHWND
        
        self._PosX = self._Index*self._Screen._Width 
        self._Width = self._Screen._Width ## equal to screen width
        self._Height = self._Screen._Height

        ps = GamePageSelector()
        ps._Parent = self 

        self._Ps = ps
        self._PsIndex = 0

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()

        start_x  = 0
        start_y  = 0
        i = 0
        games = git.get_games()
        for game in games:
            li = InfoPageListItem()
            li._Parent = self
            li._PosX   = start_x
            li._PosY   = start_y + i*InfoPageListItem._Height

            li._Width  = Width
            li._Fonts["normal"] = self._ListFontObj
            
            li._Fonts["small"] = self._ListSmFontObj
            
            li._LinkObj = game

            li.Init( game.split("/")[-1] )
            
            sm_text = str(len(git.get_branches(game)[0]))
            li.SetSmallText(sm_text)
            
            li._PosX = 2
            self._MyList.append(li)

            i = i + 1
Esempio n. 14
0
    def Init(self):
        
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        #self._CanvasHWND = pygame.Surface((self._Width,self._Height))
        self._CanvasHWND = self._Screen._CanvasHWND

        ps = WifiListSelector()
        ps._Parent = self
        ps._Width = Width - 12
        
        self._Ps = ps
        self._PsIndex = 0
        
        msgbox = WifiListMessageBox()
        msgbox._CanvasHWND = self._CanvasHWND
        msgbox.Init(" ",fonts["veramono12"])
        msgbox._Parent = self
        
        self._MsgBox = msgbox 

        self._EncMethods = misc.LoadEncryptionMethods() # load predefined templates from /etc/wicd/...

        """
  {
    'fields': [],
    'name': 'WPA 1/2 (Passphrase)',
    'optional': [],
    'protected': [
      ['apsk', 'Preshared_Key'],
    ],
    'required': [
      ['apsk', 'Preshared_Key'],
    ],
    'type': 'wpa-psk',
  },
        """
        
        self.UpdateNetList(force_check=True,firstrun=True)

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()


        self._InfoPage = WifiInfoPage()
        self._InfoPage._Screen = self._Screen
        self._InfoPage._Name   = "Wifi info"
        self._InfoPage.Init()
Esempio n. 15
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        #                ""   pkgname, label
        alist = [["", "Wifi", "Wi-Fi"], ["", "Sound", "Sound Volume"],
                 ["", "Brightness",
                  "BackLight Brightness"], ["", "Storage", ""],
                 ["", "Update", ""], ["", "About", "About"],
                 ["", "PowerOFF", "Power off"]]

        start_x = 0
        start_y = 0

        sys.path.append(myvars.basepath)  # add self as import path

        for i, v in enumerate(alist):
            li = ListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y + i * ListItem._Height
            li._Width = Width
            li._Fonts["normal"] = self._ListFontObj

            if v[2] != "":
                li.Init(v[2])
            else:
                li.Init(v[1])

            if v[1] == "Wifi" or v[1] == "Sound" or v[1] == "Brightness" or v[
                    1] == "Storage" or v[1] == "Update" or v[
                        1] == "About" or v[1] == "PowerOFF":
                li._LinkObj = __import__(v[1])
                init_cb = getattr(li._LinkObj, "Init", None)
                if init_cb != None:
                    if callable(init_cb):
                        li._LinkObj.Init(self._Screen)
            self._MyList.append(li)

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
Esempio n. 16
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList(self._Emulator["ROM"])

        self._MyStack._Emulator = self._Emulator

        icon_for_list = MultiIconItem()
        icon_for_list._ImgSurf = self._Parent._Icons["sys"]
        icon_for_list._MyType = ICON_TYPES["STAT"]
        icon_for_list._Parent = self
        icon_for_list.Adjust(0, 0, 18, 18, 0)

        self._Icons["sys"] = icon_for_list

        bgpng = IconItem()
        bgpng._ImgSurf = MyIconPool._Icons["star"]
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.AddLabel(MyLangManager.Tr("MyFavGames"),
                       MyLangManager.TrFont("varela18"))
        bgpng.SetLableColor(MySkinManager.GiveColor('Disabled'))
        bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0)

        self._Icons["bg"] = bgpng

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()

        rom_so_confirm_page = RomSoConfirmPage()
        rom_so_confirm_page._Screen = self._Screen
        rom_so_confirm_page._Name = "Download Confirm"
        rom_so_confirm_page._Parent = self
        rom_so_confirm_page.Init()

        self._RomSoConfirmDownloadPage = rom_so_confirm_page
Esempio n. 17
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        start_x = 0
        start_y = 0

        if self.basepath not in sys.path:
            # add self as import path
            sys.path.append(self.basepath)

        for i, v in enumerate(self.MyPages):
            li = ListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y + i * ListItem._Height
            li._Width = Width
            li._Fonts["normal"] = self._ListFontObj

            if v[1] != "":
                li.Init(v[1])
            else:
                li.Init(v[0])

            if FileExists(self.basepath + "/" + v[0]):
                li._LinkObj = __import__(v[0])
                init_cb = getattr(li._LinkObj, "Init", None)
                if init_cb != None:
                    if callable(init_cb):
                        li._LinkObj.Init(self._Screen)

                self._MyList.append(li)

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
Esempio n. 18
0
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._CanvasHWND = self._Screen._CanvasHWND

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        ps = InfoPageSelector()
        ps._PosX = 11
        ps._Parent = self
        ps._Width = self._Width - 10
        self._Ps = ps
        self._PsIndex = 0

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()
Esempio n. 19
0
    def Init(self):
        self._ListFontObj = MyLangManager.TrFont("varela15")
        self._ListSmFontObj = MySkinManager.GiveFont("varela12")
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = self._Screen._CanvasHWND
        
        self._PosX = self._Index*self._Screen._Width 
        self._Width = self._Screen._Width ## equal to screen width
        self._Height = self._Screen._Height

        ps = GamePageSelector()
        ps._Parent = self 

        self._Ps = ps
        self._PsIndex = 0

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()
Esempio n. 20
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList("/")

        icon_for_list = MultiIconItem()
        icon_for_list._ImgSurf = MyIconPool._Icons["sys"]
        icon_for_list._MyType = ICON_TYPES["STAT"]
        icon_for_list._Parent = self
        
        icon_for_list.Adjust(0,0,18,18,0)        
        self._Icons["sys"] = icon_for_list


        self._BGpng = IconItem()
        self._BGpng._ImgSurf = MyIconPool._Icons["empty"]
        self._BGpng._MyType = ICON_TYPES["STAT"]
        self._BGpng._Parent = self
        self._BGpng.AddLabel("Please upload data over Wi-Fi", fonts["varela22"])
        self._BGpng.SetLableColor(SkinManager().GiveColor('Disabled'))
        self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)


        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
Esempio n. 21
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList("/usr/share/zoneinfo/posix")

        icon_for_list = MultiIconItem()
        icon_for_list._ImgSurf = MyIconPool._Icons["sys"]
        icon_for_list._MyType = ICON_TYPES["STAT"]
        icon_for_list._Parent = self
        
        icon_for_list.Adjust(0,0,18,18,0)        
        self._Icons["sys"] = icon_for_list


        self._BGpng = IconItem()
        self._BGpng._ImgSurf = MyIconPool._Icons["empty"]
        self._BGpng._MyType = ICON_TYPES["STAT"]
        self._BGpng._Parent = self
        self._BGpng.AddLabel("No timezones found on system!", MyLangManager.TrFont("varela22"))
        self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled'))
        self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)


        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
Esempio n. 22
0
class RomListPage(Page):

    _Icons = {}
    _Selector = None
    _FootMsg = ["Nav", "Scan", "Del", "AddFav", "Run"]
    _MyList = []
    _ListFont = fonts["notosanscjk15"]
    _MyStack = None
    _Emulator = None
    _Parent = None

    _Scroller = None

    _Scrolled = 0

    _BGwidth = 56
    _BGheight = 70

    _RomSoConfirmDownloadPage = None

    def __init__(self):
        Page.__init__(self)

        self._Icons = {}
        self._CanvasHWND = None
        self._MyList = []
        self._MyStack = RomStack()
        self._Emulator = {}

    def GeneratePathList(self, path):
        if os.path.isdir(path) == False:
            return False

        files_path = glob.glob(path + "/*")

        ret = []

        for i, v in enumerate(files_path):
            dirmap = {}
            if os.path.isdir(
                    v) and self._Emulator["FILETYPE"] == "dir":  ## like DOSBOX
                gameshell_bat = self._Emulator["EXT"][0]

                stats = os.stat(v)
                if stats.st_gid == self._Parent._FavGID:  ##skip fav roms
                    continue

                if FileExists(v + "/" + gameshell_bat):
                    dirmap["gamedir"] = v.decode("utf8")
                    ret.append(dirmap)
            if os.path.isfile(v) and self._Emulator["FILETYPE"] == "file":
                stats = os.stat(v)
                if stats.st_gid == self._Parent._FavGID:  ##skip fav roms
                    continue

                bname = os.path.basename(v)  ### filter extension
                if len(bname) > 1:
                    is_excluded = False
                    for exclude_ext in self._Emulator[
                            "EXCLUDE"]:  ## only compares filename endswith ext in EXCLUDE,splited by ,
                        if len(exclude_ext) > 1 and bname.endswith(
                                exclude_ext):
                            is_excluded = True
                            break

                    if not is_excluded:
                        pieces = bname.split(".")
                        if len(pieces) > 1:
                            if pieces[len(pieces) -
                                      1].lower() in self._Emulator["EXT"]:
                                dirmap["file"] = v.decode("utf8")
                                ret.append(dirmap)
#            else:
#                print("not file or dir")

        return ret

    def SyncList(self, path):

        alist = self.GeneratePathList(path)

        if alist == False:
            print("listfiles return false")
            return

        self._MyList = []
        start_x = 0
        start_y = 0
        hasparent = 0
        if self._MyStack.Length() > 0:
            hasparent = 1
            li = ListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y
            li._Width = Width
            li._Fonts["normal"] = self._ListFont
            li._MyType = ICON_TYPES["DIR"]
            li._Parent = self
            li.Init("[..]")
            self._MyList.append(li)

        for i, v in enumerate(sorted(alist)):
            li = ListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y + (i + hasparent) * ListItem._Height
            li._Width = Width
            li._Fonts["normal"] = self._ListFont
            li._MyType = ICON_TYPES["FILE"]

            li._Parent = self

            if "directory" in v:
                li._MyType = ICON_TYPES["DIR"]
                li.Init(v["directory"])
            elif "file" in v:
                li.Init(v["file"])
            elif "gamedir" in v:
                li.Init(v["gamedir"])
            else:
                li.Init("NoName")

            self._MyList.append(li)

    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList(self._Emulator["ROM"])

        ### will also mkdir of the ***ROM self
        try:
            os.makedirs(self._Emulator["ROM"] + "/.Trash")
        except OSError:
            if not os.path.isdir(self._Emulator["ROM"] + "/.Trash"):
                raise

        try:
            os.makedirs(self._Emulator["ROM"] + "/.Fav")
        except OSError:
            if not os.path.isdir(self._Emulator["ROM"] + "/.Fav"):
                raise

        self._MyStack._Emulator = self._Emulator

        icon_for_list = MultiIconItem()
        icon_for_list._ImgSurf = self._Parent._Icons["sys"]
        icon_for_list._MyType = ICON_TYPES["STAT"]
        icon_for_list._Parent = self

        icon_for_list.Adjust(0, 0, 18, 18, 0)

        self._Icons["sys"] = icon_for_list

        bgpng = IconItem()
        bgpng._ImgSurf = MyIconPool._Icons["empty"]
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"),
                       MyLangManager.TrFont("varela22"))
        bgpng.SetLableColor(MySkinManager.GiveColor('Disabled'))
        bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0)

        self._Icons["bg"] = bgpng

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()

        rom_so_confirm_page = RomSoConfirmPage()
        rom_so_confirm_page._Screen = self._Screen
        rom_so_confirm_page._Name = "Download Confirm"
        rom_so_confirm_page._Parent = self
        rom_so_confirm_page.Init()

        self._RomSoConfirmDownloadPage = rom_so_confirm_page

    def ScrollUp(self):
        if len(self._MyList) == 0:
            return

        tmp = self._PsIndex
        self._PsIndex -= self._ScrollStep

        if self._PsIndex < 0:
            self._PsIndex = 0
        dy = tmp - self._PsIndex
        cur_li = self._MyList[self._PsIndex]
        if cur_li._PosY < 0:
            for i in range(0, len(self._MyList)):
                self._MyList[i]._PosY += self._MyList[i]._Height * dy
            self._Scrolled += dy

    def ScrollDown(self):
        if len(self._MyList) == 0:
            return
        tmp = self._PsIndex
        self._PsIndex += self._ScrollStep
        if self._PsIndex >= len(self._MyList):
            self._PsIndex = len(self._MyList) - 1

        dy = self._PsIndex - tmp
        cur_li = self._MyList[self._PsIndex]
        if cur_li._PosY + cur_li._Height > self._Height:
            for i in range(0, len(self._MyList)):
                self._MyList[i]._PosY -= self._MyList[i]._Height * dy
            self._Scrolled -= dy

    def SyncScroll(self):
        ##
        if self._Scrolled == 0:
            return

        if self._PsIndex < len(self._MyList):
            cur_li = self._MyList[self._PsIndex]
            if self._Scrolled > 0:
                if cur_li._PosY < 0:
                    for i in range(0, len(self._MyList)):
                        self._MyList[i]._PosY += self._Scrolled * self._MyList[
                            i]._Height
            elif self._Scrolled < 0:
                if cur_li._PosY + cur_li._Height > self._Height:
                    for i in range(0, len(self._MyList)):
                        self._MyList[i]._PosY += self._Scrolled * self._MyList[
                            i]._Height

    def Click(self):
        if len(self._MyList) == 0:
            return

        if self._PsIndex > len(self._MyList) - 1:
            return

        cur_li = self._MyList[self._PsIndex]

        if cur_li._MyType == ICON_TYPES["DIR"]:
            if cur_li._Path == "[..]":
                self._MyStack.Pop()
                self.SyncList(self._MyStack.Last())
                self._PsIndex = 0
            else:
                self._MyStack.Push(self._MyList[self._PsIndex]._Path)
                self.SyncList(self._MyStack.Last())
                self._PsIndex = 0

        if cur_li._MyType == ICON_TYPES["FILE"]:
            self._Screen._MsgBox.SetText("Launching")
            self._Screen._MsgBox.Draw()
            self._Screen.SwapAndShow()

            if self._Emulator["FILETYPE"] == "dir":
                path = cur_li._Path + "/" + self._Emulator["EXT"][0]
            else:
                path = cur_li._Path

            print("Run  ", path)

            if self._Emulator["FILETYPE"] == "dir":
                escaped_path = CmdClean(path)
            else:
                escaped_path = CmdClean(path)

            custom_config = ""
            if self._Emulator["RETRO_CONFIG"] != "" and len(
                    self._Emulator["RETRO_CONFIG"]) > 5:
                custom_config = " -c " + self._Emulator["RETRO_CONFIG"]

            cmdpath = " ".join(
                (self._Emulator["LAUNCHER"], self._Emulator["ROM_SO"],
                 custom_config, escaped_path))

            if self._Emulator[
                    "ROM_SO"] == "":  #empty means No needs for rom so
                pygame.event.post(pygame.event.Event(RUNEVT, message=cmdpath))
            else:
                if FileExists(self._Emulator["ROM_SO"]):
                    pygame.event.post(
                        pygame.event.Event(RUNEVT, message=cmdpath))
                else:
                    self._Screen.PushPage(self._RomSoConfirmDownloadPage)
                    self._Screen.Draw()
                    self._Screen.SwapAndShow()

            return

        self._Screen.Draw()
        self._Screen.SwapAndShow()

    def ReScan(self):
        if self._MyStack.Length() == 0:
            self.SyncList(self._Emulator["ROM"])
        else:
            self.SyncList(self._MyStack.Last())

        idx = self._PsIndex
        if idx > (len(self._MyList) - 1):
            idx = len(self._MyList)
            if idx > 0:
                idx -= 1
            elif idx == 0:  ##nothing in _MyList
                pass

        self._PsIndex = idx  ## sync PsIndex

        self.SyncScroll()

    def OnReturnBackCb(self):
        self.ReScan()
        self._Screen.Draw()
        self._Screen.SwapAndShow()

    def SpeedScroll(self, thekey):
        if self._Screen._LastKey == thekey:
            self._ScrollStep += 1
            if self._ScrollStep >= 5:
                self._ScrollStep = 5
        else:
            self._ScrollStep = 1

        cur_time = time.time()

        if cur_time - self._Screen._LastKeyDown > 0.3:
            self._ScrollStep = 1

    def KeyDown(self, event):

        if event.key == CurKeys["Menu"]:
            self.ReturnToUpLevelPage()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Right"]:
            self._Screen.PushCurPage()
            self._Screen.SetCurPage(self._Parent.FavListPage)
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Up"]:
            self.SpeedScroll(event.key)
            self.ScrollUp()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Down"]:
            self.SpeedScroll(event.key)
            self.ScrollDown()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Enter"]:
            self.Click()

        if event.key == CurKeys["A"]:
            if len(self._MyList) == 0:
                return

            cur_li = self._MyList[self._PsIndex]
            if cur_li.IsFile():
                # remove any dup first

                try:
                    os.system("chgrp " + self._Parent._FavGname + " " +
                              CmdClean(cur_li._Path))
                except:
                    pass

                self._Screen._MsgBox.SetText("AddFavList")
                self._Screen._MsgBox.Draw()
                self._Screen.SwapAndShow()

                pygame.time.delay(600)
                self.ReScan()
                self._Screen.Draw()
                self._Screen.SwapAndShow()

        if event.key == CurKeys["X"]:  #Scan current
            self.ReScan()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Y"]:  #del
            if len(self._MyList) == 0:
                return

            cur_li = self._MyList[self._PsIndex]
            if cur_li.IsFile():

                self._Parent.DeleteConfirmPage.SetFileName(cur_li._Path)
                self._Parent.DeleteConfirmPage.SetTrashDir(
                    self._Emulator["ROM"] + "/.Trash")

                self._Screen.PushCurPage()
                self._Screen.SetCurPage(self._Parent.DeleteConfirmPage)
                self._Screen.Draw()
                self._Screen.SwapAndShow()

    def Draw(self):
        self.ClearCanvas()
        if len(self._MyList) == 0:
            self._Icons["bg"].NewCoord(self._Width / 2, self._Height / 2)
            self._Icons["bg"].Draw()
        else:
            if len(self._MyList) * ListItem._Height > self._Height:
                self._Ps._Width = self._Width - 10
                self._Ps.Draw()

                for i in self._MyList:
                    if i._PosY > self._Height + self._Height / 2:
                        break

                    if i._PosY < 0:
                        continue
                    i.Draw()

                self._Scroller.UpdateSize(
                    len(self._MyList) * ListItem._Height,
                    self._PsIndex * ListItem._Height)
                self._Scroller.Draw()

            else:
                self._Ps._Width = self._Width
                self._Ps.Draw()
                for i in self._MyList:
                    i.Draw()
Esempio n. 23
0
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList(self._Emulator["ROM"])

        ### will also mkdir of the ***ROM self
        try:
            os.makedirs(self._Emulator["ROM"] + "/.Trash")
        except OSError:
            if not os.path.isdir(self._Emulator["ROM"] + "/.Trash"):
                raise

        try:
            os.makedirs(self._Emulator["ROM"] + "/.Fav")
        except OSError:
            if not os.path.isdir(self._Emulator["ROM"] + "/.Fav"):
                raise

        self._MyStack._Emulator = self._Emulator

        icon_for_list = MultiIconItem()
        icon_for_list._ImgSurf = self._Parent._Icons["sys"]
        icon_for_list._MyType = ICON_TYPES["STAT"]
        icon_for_list._Parent = self

        icon_for_list.Adjust(0, 0, 18, 18, 0)

        self._Icons["sys"] = icon_for_list

        bgpng = IconItem()
        bgpng._ImgSurf = MyIconPool._Icons["empty"]
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"),
                       MyLangManager.TrFont("varela22"))
        bgpng.SetLableColor(MySkinManager.GiveColor('Disabled'))
        bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0)

        self._Icons["bg"] = bgpng

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()

        rom_so_confirm_page = RomSoConfirmPage()
        rom_so_confirm_page._Screen = self._Screen
        rom_so_confirm_page._Name = "Download Confirm"
        rom_so_confirm_page._Parent = self
        rom_so_confirm_page.Init()

        self._RomSoConfirmDownloadPage = rom_so_confirm_page
Esempio n. 24
0
class AboutPage(Page):
    _FootMsg =  ["Nav.","","","Back",""]
    _MyList = []
    _ListFontObj = MyLangManager.TrFont("varela13")
    
    _AList = {}

    _Scrolled = 0
    
    _BGwidth = 480
    _BGheight = 272

    _DrawOnce = False
    _Scroller = None
    
    def __init__(self):
        Page.__init__(self)
        self._Icons = {}

    def Uname(self):
        
        out = {}
        out["key"]="uname"
        out["label"]= "Kernel:"
        st = subprocess.check_output(["uname","-srmo"])
        st = st.strip("\n")
        st = st.strip("\t")
        out["value"] = st
        self._AList["uname"] = out

        return
    
    def CpuMhz(self):

        try:
            with open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq") as f:
                content = f.readlines()
            content = [x.strip() for x in content]
            
        except:
            print("open %s failed" % "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq")
            content = ["0"]
        
        mhz = int(content[0]) / 1000.0

        cpuscalemhz = {}
        cpuscalemhz["key"] = "cpuscalemhz"
        cpuscalemhz["label"] = "CPU Mhz:"
        cpuscalemhz["value"] = str(mhz)
        self._AList["cpuscalemhz"] = cpuscalemhz
        
        return 
    
    def CpuInfo(self):
        last_processor = 0
        with open("/proc/cpuinfo") as f:
            for line in f:
                if line.startswith("processor"):
                    parts = line.split(":")
                    cur_processor_number = int( parts[1].strip())
                    if cur_processor_number > last_processor:
                        last_processor = cur_processor_number
                    
                if line.startswith("model name"):
                    parts = line.split(":")
#                    print( parts[1].strip() )
                    processor = {}
                    processor["key"]="processor"
                    processor["label"] = "Processor:"
                    processor["value"] = parts[1].strip()
                    
                    self._AList["processor"] = processor
                    
                if line.startswith("cpu MHz"):
                    parts = line.split(":")
#                    print(parts[1].strip() )
                    cpumhz = {}
                    cpumhz["key"] = "cpumhz"
                    cpumhz["label"] = "CPU MHz:"
                    cpumhz["value"] = parts[1].strip()

                    self._AList["cpumhz"] = cpumhz
                if line.startswith("cpu cores"):
                    parts = line.split(":")
#                    print(parts[1].strip() )
                    cpucores = {}
                    cpucores["key"] = "cpucores"
                    cpucores["label"] = "CPU cores:"
                    cpucores["value"] = parts[1].strip()
                    self._AList["cpucores"] = cpucores
                if line.startswith("Features"):
                    parts = line.split(":")
#                    print(parts[1].strip() )
                    f_ = {}
                    f_["key"] = "features"
                    f_["label"] = "Features:"
                    f_["value"] = parts[1].strip()
                    self._AList["features"] = f_
                    
                if line.startswith("flags"):
                    parts = line.split(":")
#                    print(parts[1].strip() )
                    flags = {}
                    flags["key"] = "flags"
                    flags["label"] = "Flags:"
                    flags["value"] = parts[1].strip()
                    self._AList["flags"] = flags
                    

        if last_processor > 0:
            arm_cores = {}
            arm_cores["key"]= "armcores"
            arm_cores["label"] = "CPU cores:"
            arm_cores["value"] = str(last_processor + 1)
            self._AList["armcores"] = arm_cores
        
    def MemInfo(self):

        with open("/proc/meminfo") as f:
            for line in f:
                if line.startswith("MemTotal"):
                    parts = line.split(":")
                    parts[1] = parts[1].replace("kB","")
                    print(   parts[1].strip() )

                    memory = {}
                    memory["key"] = "memory"
                    memory["label"] = "Memory:"
                    memory["value"] = str( int(parts[1].strip())/1000.0) +" MB"
                    self._AList["memory"] = memory                    
                    break
    def BatteryInfo(self):
        batteryinfo = {}
        batteryinfo["key"] = "batteryinfo"
        batteryinfo["label"] = "Battery:"
        charging_string = "Discharging"
        if BatteryAbstraction.IsCharging():
            charging_string = "Charging"

        batteryinfo["value"] = "{}/{} mAh, {}%, {}".format(
            BatteryAbstraction.CurrentVoltage(),
            BatteryAbstraction.MaxVoltage(),
            BatteryAbstraction.AsPercentage(),
            charging_string
        )
        self._AList["batteryinfo"] = batteryinfo




    def PortInfo1(self):
        portinfo = {}
        portinfo["key"] = "portinfo1"
        portinfo["label"] = "Originally created for ClockworkPi Gameshell."
        portinfo["value"] = ""
        self._AList["portinfo1"] = portinfo

    def PortInfo2(self):
        portinfo = {}
        portinfo["key"] = "portinfo2"
        portinfo["label"] = "Ported to Pocket CHIP by omgmog."
        portinfo["value"] = ""
        self._AList["portinfo2"] = portinfo


    def ThanksTimTam(self):
        thanks = {}
        thanks["key"] = "thankstimtam"
        thanks["label"] = "PocketCHIP Graphic created by TimTam"
        thanks["value"] = ""
        self._AList["thankstimtam"] = thanks


        

    def GenList(self):
        
        self._MyList = []
        
        start_x  = 0
        start_y  = 10
        last_height = 0

        for i,u in enumerate( ["cpuscalemhz","memory","uname", "batteryinfo", "portinfo1","portinfo2","thankstimtam"] ):
            if u not in self._AList:
                continue
            
            v = self._AList[u]
            
            li = InfoPageListItem()
            li._Parent = self
            li._PosX   = start_x
            li._PosY   = start_y + last_height
            li._Width  = Width
            li._Fonts["normal"] = self._ListFontObj
            li._Fonts["small"] = MySkinManager.GiveFont("varela12")
            
            if self._AList[u]["label"] != "":
                li.Init(  self._AList[u]["label"] )
            else:
                # li.Init( self._AList[u]["key"] )
                li.Init("")

            li._Flag = self._AList[u]["key"]

            if self._AList[u]["value"] != "":
                li.SetSmallText( self._AList[u]["value"] )
            else:
                li.SetSmallText("")
            
            last_height += li._Height
            
            self._MyList.append(li)
            
    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface( (self._Screen._Width,self._BGheight) )

        self._PosX = self._Index*self._Screen._Width 
        self._Width = self._Screen._Width ## equal to screen width
        self._Height = self._Screen._Height

        bgpng = IconItem()
        bgpng._ImgSurf = MyIconPool._Icons["about_bg"]
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0)

        self._Icons["bg"] = bgpng
        
        self.CpuInfo()
        self.MemInfo()
        self.CpuMhz()
        self.Uname()
        self.BatteryInfo()
        self.PortInfo1()
        self.PortInfo2()
        self.ThanksTimTam()
        
        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._HWND)
        
    def ScrollDown(self):
        dis = 10
        if abs(self._Scrolled) <  (self._BGheight - self._Height)/2 + 50:
            self._PosY -= dis
            self._Scrolled -= dis
        
    def ScrollUp(self):
        dis = 10
        if self._PosY < 0:
            self._PosY += dis
            self._Scrolled += dis

        
    def OnLoadCb(self):
        self._Scrolled = 0
        self._PosY = 0
        self._DrawOnce = False

    def OnReturnBackCb(self):
        self.ReturnToUpLevelPage()
        self._Screen.Draw()
        self._Screen.SwapAndShow()
        
    def KeyDown(self,event):
        if IsKeyMenuOrB(event.key):
            self.ReturnToUpLevelPage()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        # We don't need this page to be scrolly   

        # if event.key == CurKeys["Up"]:
        #     self.ScrollUp()
        #     self._Screen.Draw()
        #     self._Screen.SwapAndShow()
        # if event.key == CurKeys["Down"]:
        #     self.ScrollDown()
        #     self._Screen.Draw()
        #     self._Screen.SwapAndShow()
        
                                
    def Draw(self):

        if self._DrawOnce == False:
            self.ClearCanvas()
            #self._Ps.Draw()
        
            self._Icons["bg"].NewCoord(self._Width/2,self._Height/2 + (self._BGheight - Height)/2 + self._Screen._TitleBar._Height)
            self._Icons["bg"].Draw()

            for i in self._MyList:
                i.Draw()
                
            self._DrawOnce = True
            
        if self._HWND != None:
            # self._HWND.fill((255,255,255))
            
            self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) )
Esempio n. 25
0
class GPUDriverPage(Page):
    _FootMsg = ["Nav", "", "", "Back", "Select"]
    _MyList = []
    _ListFont = MyLangManager.TrFont("notosanscjk12")

    _AList = {}

    _Scrolled = 0

    _BGwidth = 320
    _BGheight = 240 - 24 - 20

    _DrawOnce = False
    _Scroller = None
    _InfoPage = None

    def __init__(self):
        Page.__init__(self)
        self._Icons = {}

    def GenList(self):

        self._MyList = []

        start_x = 0
        start_y = 0
        last_height = 0

        drivers = [["fbturbo", "FBTURBO driver (Software Rendering)"],
                   [
                       "modesetting",
                       "LIMA driver (Experimental Hardware Rendering)"
                   ]]

        for i, u in enumerate(drivers):
            #print(i,u)
            li = PageListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y + last_height
            li._Width = Width
            li._Fonts["normal"] = self._ListFont
            li._Active = False
            li._Value = u[0]
            li.Init(u[1])

            last_height += li._Height

            self._MyList.append(li)

    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface(
                    (self._Screen._Width, self._BGheight))

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        done = IconItem()
        done._ImgSurf = MyIconPool.GiveIconSurface("done")
        done._MyType = ICON_TYPES["STAT"]
        done._Parent = self
        self._Icons["done"] = done

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._HWND)

    def Click(self):
        if len(self._MyList) == 0:
            return

        cur_li = self._MyList[self._PsIndex]
        if cur_li._Active == True:
            return

        print(cur_li._Value)

        if "arm" in platform.machine():
            for i in self._MyList:
                i._Active = False

            cur_li._Active = True
            self._Screen._MsgBox.SetText("Applying")
            self._Screen._MsgBox.Draw()
            self._Screen.SwapAndShow()

            if "modesetting" in cur_li._Value:  ## enable lima
                os.system("touch %s/.lima" % os.path.expanduser('~'))
                ArmSystem(
                    "sudo mv /usr/lib/xorg/modules/drivers/modesetting_drv.so.lima  /usr/lib/xorg/modules/drivers/modesetting_drv.so"
                )
                ArmSystem(
                    "sudo sed -i '/^#.*lima/s/^#//' /etc/ld.so.conf.d/00-arm-linux-gnueabihf.conf"
                )
                ArmSystem("sudo ldconfig")
            else:  #disable lima
                os.system("rm %s/.lima" % os.path.expanduser('~'))
                ArmSystem(
                    "sudo mv /usr/lib/xorg/modules/drivers/modesetting_drv.so /usr/lib/xorg/modules/drivers/modesetting_drv.so.lima"
                )
                ArmSystem(
                    "sudo sed -i 's/^[^#]*lima/#&/' /etc/ld.so.conf.d/00-arm-linux-gnueabihf.conf"
                )
                ArmSystem("sudo ldconfig")

            pygame.time.delay(800)
            os.system("sudo reboot")

        else:
            self._Screen._MsgBox.SetText("Do it in GameShell")
            self._Screen._MsgBox.Draw()
            self._Screen.SwapAndShow()

    def OnLoadCb(self):
        self._Scrolled = 0
        self._PosY = 0
        self._DrawOnce = False

        ## grep Driver /etc/xorg.conf | tr -s " " | cut -d " " -f3
        ## "fbturbo"
        ## "modesetting"
        thedrv = ""

        if "arm" in platform.machine():
            if FileExists("%s/.lima" % os.path.expanduser('~')):
                thedrv = "modesetting"
            else:
                thedrv = "fbturbo"

        if thedrv == "":
            thedrv = "fbturbo"

        for i in self._MyList:
            i._Active = False

        for i in self._MyList:
            if thedrv in i._Value:
                i._Active = True

    def OnReturnBackCb(self):
        pass
        """
        self.ReturnToUpLevelPage()
        self._Screen.Draw()
        self._Screen.SwapAndShow()
        """

    def KeyDown(self, event):
        if IsKeyMenuOrB(event.key):
            self.ReturnToUpLevelPage()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if IsKeyStartOrA(event.key):
            self.Click()

        if event.key == CurKeys["Up"]:
            self.ScrollUp()
            self._Screen.Draw()
            self._Screen.SwapAndShow()
        if event.key == CurKeys["Down"]:
            self.ScrollDown()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

    def Draw(self):

        self.ClearCanvas()
        if len(self._MyList) == 0:
            return

        else:
            if len(self._MyList) * PageListItem._Height > self._Height:
                self._Ps._Width = self._Width - 11
                self._Ps.Draw()
                for i in self._MyList:
                    if i._PosY > self._Height + self._Height / 2:
                        break
                    if i._PosY < 0:
                        continue
                    i.Draw()
                self._Scroller.UpdateSize(
                    len(self._MyList) * PageListItem._Height,
                    self._PsIndex * PageListItem._Height)
                self._Scroller.Draw()

            else:
                self._Ps._Width = self._Width
                self._Ps.Draw()
                for i in self._MyList:
                    if i._PosY > self._Height + self._Height / 2:
                        break
                    if i._PosY < 0:
                        continue
                    i.Draw()

        if self._HWND != None:
            self._HWND.fill(MySkinManager.GiveColor("White"))

            self._HWND.blit(
                self._CanvasHWND,
                (self._PosX, self._PosY, self._Width, self._Height))
Esempio n. 26
0
class FavListPage(Page):

    _Icons = {}
    _Selector = None
    _FootMsg = ["Nav", "Scan", "Remove", "", "Run"]
    _MyList = []
    _ListFont = fonts["notosanscjk15"]
    _MyStack = None
    _Emulator = None
    _Parent = None
    _Scroller = None
    _Scrolled = 0
    _BGwidth = 75
    _BGheight = 73
    _RomSoConfirmDownloadPage = None

    def __init__(self):
        Page.__init__(self)
        self._Icons = {}
        self._CanvasHWND = None
        self._MyList = []
        self._MyStack = FavStack()
        self._Emulator = {}

    def GeneratePathList(self, path):
        if os.path.isdir(path) == False:
            return False

        files_path = glob.glob(path + "/*")

        ret = []

        for i, v in enumerate(files_path):
            dirmap = {}
            if os.path.isdir(
                    v) and self._Emulator["FILETYPE"] == "dir":  ## like DOSBOX
                gameshell_bat = self._Emulator["EXT"][0]
                if FileExists(v + "/" + gameshell_bat):
                    stats = os.stat(v)
                    if stats.st_gid != self._Parent._FavGID:  ## only favs
                        continue

                    dirmap["gamedir"] = v.decode("utf8")
                    ret.append(dirmap)
            if os.path.isfile(v) and self._Emulator["FILETYPE"] == "file":
                stats = os.stat(v)
                if stats.st_gid != self._Parent._FavGID:  ## only favs
                    continue
                bname = os.path.basename(v)  ### filter extension
                if len(bname) > 1:
                    pieces = bname.split(".")
                    if len(pieces) > 1:
                        if pieces[len(pieces) -
                                  1].lower() in self._Emulator["EXT"]:
                            dirmap["file"] = v.decode("utf8")
                            ret.append(dirmap)

#            else:
#                print("not file or dir")

        return ret

    def SyncList(self, path):

        alist = self.GeneratePathList(path)

        if alist == False:
            print("listfiles return false")
            return
#        print("fav list alist: ")
#        print(alist)

        self._MyList = []
        start_x = 0
        start_y = 0
        hasparent = 0
        if self._MyStack.Length() > 0:
            hasparent = 1
            li = ListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y
            li._Width = Width
            li._Fonts["normal"] = self._ListFont
            li._MyType = ICON_TYPES["DIR"]
            li._Parent = self
            li.Init("[..]")
            self._MyList.append(li)

        for i, v in enumerate(sorted(alist)):
            li = ListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y + (i + hasparent) * ListItem._Height
            li._Width = Width
            li._Fonts["normal"] = self._ListFont
            li._MyType = ICON_TYPES["FILE"]
            li._Parent = self
            if "directory" in v:
                li._MyType = ICON_TYPES["DIR"]
                li.Init(v["directory"])
            elif "file" in v:
                li.Init(v["file"])

            elif "gamedir" in v:
                li.Init(v["gamedir"])
            else:
                li.Init("NoName")

            self._MyList.append(li)

    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = ListPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        self.SyncList(self._Emulator["ROM"])

        self._MyStack._Emulator = self._Emulator

        icon_for_list = MultiIconItem()
        icon_for_list._ImgSurf = self._Parent._Icons["sys"]
        icon_for_list._MyType = ICON_TYPES["STAT"]
        icon_for_list._Parent = self
        icon_for_list.Adjust(0, 0, 18, 18, 0)

        self._Icons["sys"] = icon_for_list

        bgpng = IconItem()
        bgpng._ImgSurf = MyIconPool._Icons["star"]
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.AddLabel("my favourites games", fonts["varela18"])
        bgpng.SetLableColor(SkinManager().GiveColor('Disabled'))
        bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0)

        self._Icons["bg"] = bgpng

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()

        rom_so_confirm_page = RomSoConfirmPage()
        rom_so_confirm_page._Screen = self._Screen
        rom_so_confirm_page._Name = "Download Confirm"
        rom_so_confirm_page._Parent = self
        rom_so_confirm_page.Init()

        self._RomSoConfirmDownloadPage = rom_so_confirm_page

    def ScrollUp(self):
        if len(self._MyList) == 0:
            return

        self._PsIndex -= 1
        if self._PsIndex < 0:
            self._PsIndex = 0

        cur_li = self._MyList[self._PsIndex]
        if cur_li._PosY < 0:
            for i in range(0, len(self._MyList)):
                self._MyList[i]._PosY += self._MyList[i]._Height

            self._Scrolled += 1

    def ScrollDown(self):
        if len(self._MyList) == 0:
            return

        self._PsIndex += 1
        if self._PsIndex >= len(self._MyList):
            self._PsIndex = len(self._MyList) - 1

        cur_li = self._MyList[self._PsIndex]
        if cur_li._PosY + cur_li._Height > self._Height:
            for i in range(0, len(self._MyList)):
                self._MyList[i]._PosY -= self._MyList[i]._Height
            self._Scrolled -= 1

    def SyncScroll(self):
        ##
        if self._Scrolled == 0:
            return

        if self._PsIndex < len(self._MyList):
            cur_li = self._MyList[self._PsIndex]
            if self._Scrolled > 0:
                if cur_li._PosY < 0:
                    for i in range(0, len(self._MyList)):
                        self._MyList[i]._PosY += self._Scrolled * self._MyList[
                            i]._Height
            elif self._Scrolled < 0:
                if cur_li._PosY + cur_li._Height > self._Height:
                    for i in range(0, len(self._MyList)):
                        self._MyList[i]._PosY += self._Scrolled * self._MyList[
                            i]._Height

    def Click(self):

        if len(self._MyList) == 0:
            return

        if self._PsIndex > len(self._MyList) - 1:
            return

        cur_li = self._MyList[self._PsIndex]

        if cur_li._MyType == ICON_TYPES["DIR"]:
            return

        if cur_li._MyType == ICON_TYPES["FILE"]:  ## add to playlist only
            self._Screen._MsgBox.SetText("Launching...")
            self._Screen._MsgBox.Draw()
            self._Screen.SwapAndShow()
            if self._Emulator["FILETYPE"] == "dir":
                path = cur_li._Path + "/" + self._Emulator["EXT"][0]
            else:
                path = cur_li._Path

            print("Run ", path)

            if self._Emulator["FILETYPE"] == "dir":
                escaped_path = CmdClean(path)
            else:
                escaped_path = CmdClean(path)

            custom_config = ""
            if self._Emulator["RETRO_CONFIG"] != "" and len(
                    self._Emulator["RETRO_CONFIG"]) > 5:
                custom_config = " -c " + self._Emulator["RETRO_CONFIG"]

            cmdpath = " ".join(
                (self._Emulator["LAUNCHER"], self._Emulator["ROM_SO"],
                 custom_config, escaped_path))

            if self._Emulator[
                    "ROM_SO"] == "":  #empty means No needs for rom so
                pygame.event.post(pygame.event.Event(RUNEVT, message=cmdpath))
            else:
                if FileExists(self._Emulator["ROM_SO"]):
                    pygame.event.post(
                        pygame.event.Event(RUNEVT, message=cmdpath))
                else:
                    self._Screen.PushPage(self._RomSoConfirmDownloadPage)
                    self._Screen.Draw()
                    self._Screen.SwapAndShow()

            return

        self._Screen.Draw()
        self._Screen.SwapAndShow()

    def ReScan(self):
        if self._MyStack.Length() == 0:
            self.SyncList(self._Emulator["ROM"])
        else:
            self.SyncList(self._MyStack.Last())

        idx = self._PsIndex
        if idx > (len(self._MyList) - 1):
            idx = len(self._MyList)
            if idx > 0:
                idx -= 1
            elif idx == 0:  ##nothing in _MyList
                pass

        self._PsIndex = idx  ## sync PsIndex

        self.SyncScroll()

    def OnReturnBackCb(self):
        self.ReScan()
        self._Screen.Draw()
        self._Screen.SwapAndShow()

    def OnLoadCb(self):
        self.ReScan()
        self._Screen.Draw()
        self._Screen.SwapAndShow()

    def KeyDown(self, event):

        if event.key == CurKeys["Menu"] or event.key == CurKeys["Left"]:
            self.ReturnToUpLevelPage()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Up"]:
            self.ScrollUp()
            self._Screen.Draw()
            self._Screen.SwapAndShow()
        if event.key == CurKeys["Down"]:
            self.ScrollDown()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Enter"]:
            self.Click()

        if event.key == CurKeys["X"]:  #Scan current
            self.ReScan()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Y"]:  #del
            if len(self._MyList) == 0:
                return

            cur_li = self._MyList[self._PsIndex]
            if cur_li.IsFile():
                """
                #self._Parent.FavDeleteConfirmPage.SetFileName(cur_li._Path)
                #self._Parent.FavDeleteConfirmPage.SetTrashDir(self._Emulator["ROM"])## Fav delete,return to ROM dir,not .Trash
                #self._Screen.PushCurPage()
                #self._Screen.SetCurPage(self._Parent.FavDeleteConfirmPage)
                #self._Screen.Draw()
                #self._Screen.SwapAndShow()
                """

                #delete directly without confirm dialog
                stats = os.stat(cur_li._Path)
                os.chown(
                    cur_li._Path, stats.st_uid,
                    stats.st_uid)  ## normally uid and gid should be the same
                self._Screen._MsgBox.SetText("Deleting...")
                self._Screen._MsgBox.Draw()
                self._Screen.SwapAndShow()
                pygame.time.delay(600)
                self.ReScan()
                self._Screen.Draw()
                self._Screen.SwapAndShow()

    def Draw(self):
        self.ClearCanvas()

        if len(self._MyList) == 0:
            self._Icons["bg"].NewCoord(self._Width / 2, self._Height / 2)
            self._Icons["bg"].Draw()
        else:
            if len(self._MyList) * ListItem._Height > self._Height:
                self._Ps._Width = self._Width - 10
                self._Ps.Draw()

                for i in self._MyList:
                    if i._PosY > self._Height + self._Height / 2:
                        break

                    if i._PosY < 0:
                        continue

                    i.Draw()

                self._Scroller.UpdateSize(
                    len(self._MyList) * ListItem._Height,
                    self._PsIndex * ListItem._Height)
                self._Scroller.Draw()

            else:
                self._Ps._Width = self._Width
                self._Ps.Draw()
                for i in self._MyList:
                    i.Draw()
Esempio n. 27
0
class ListPage(Page):

    _Icons = {}
    _Selector=None
    
    _FootMsg = ["Nav","","","Back","Enter"]
    _MyList = []
    _ListFontObj = MyLangManager.TrFont("varela15")

    _Scroller = None
    
    def __init__(self):
        Page.__init__(self)
        self._Icons = {}
        self._CanvasHWND = None
        self._MyList = []
        
    def Init(self):
        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        self._CanvasHWND = self._Screen._CanvasHWND

        ps = InfoPageSelector()
        ps._Parent = self
        ps._PosX = 2
        self._Ps = ps
        self._PsIndex = 0
        
        #                ""   pkgname, label
        alist         = [["","Airplane","Airplane Mode"],
                         ["","PowerOptions","Power Options"],
                         ["","Wifi","Wi-Fi"],
                         ["","Bluetooth","Bluetooth"],
                         ["","Sound","Sound Volume"],
                         ["","Brightness","BackLight Brightness"],
                         ["","Storage",""],
                         ["","Time","Timezone"],
                         ["","Languages","Languages"],
                         ["","Notification","Notification"],
                         ["","Update", ""],
                         ["","About",  "About"],
                         ["","PowerOFF","Power OFF"],
                         ["","ButtonsLayout","Buttons Layout"],
                         ["","LauncherGo","Switch to LauncherGo"],
                         ["","Lima","GPU driver switch"],
                         ["","GateWay","Network gateway switch"]]

        start_x  = 0
        start_y  = 0

        
        sys.path.append(myvars.basepath)# add self as import path
        for i,v in enumerate(alist):
            li = ListItem()
            li._Parent = self
            li._PosX   = start_x
            li._PosY   = start_y + i*ListItem._Height
            li._Width  = Width
            li._Fonts["normal"] = self._ListFontObj

            if v[2] != "":
                li.Init(v[2])
            else:
                li.Init(v[1])
            
            #if v[1] == "Wifi" or v[1] == "Sound" or v[1] == "Brightness" or v[1] == "Storage" or v[1] == "Update" or v[1] == "About" or v[1] == "PowerOFF" or v[1] == "HelloWorld":
            if FileExists(myvars.basepath+"/"+ v[1]):
                li._LinkObj = __import__(v[1])
                init_cb   = getattr(li._LinkObj,"Init",None)
                if init_cb != None:
                    if callable(init_cb):
                        li._LinkObj.Init(self._Screen)
                
                self._MyList.append(li)

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()

    def Click(self):
        cur_li = self._MyList[self._PsIndex]
        if cur_li._LinkObj != None:
            api_cb = getattr(cur_li._LinkObj,"API",None)
            if api_cb != None:
                if callable(api_cb):
                    cur_li._LinkObj.API(self._Screen)

        
    def KeyDown(self,event):
        if IsKeyMenuOrB(event.key):
            self.ReturnToUpLevelPage()
            self._Screen.Draw()
            self._Screen.SwapAndShow()
        
        if event.key == CurKeys["Up"]:
            self.ScrollUp()
            self._Screen.Draw()
            self._Screen.SwapAndShow()
        if event.key == CurKeys["Down"]:
            self.ScrollDown()
            self._Screen.Draw()
            self._Screen.SwapAndShow()
        

        if IsKeyStartOrA(event.key):
            self.Click()
            
    def Draw(self):
        self.ClearCanvas()

        if len(self._MyList) * ListItem._Height > self._Height:
            self._Ps._Width = self._Width - 11
            
            self._Ps.Draw()
            
            for i in self._MyList:
                i.Draw()
        
            self._Scroller.UpdateSize( len(self._MyList)*ListItem._Height, self._PsIndex*ListItem._Height)
            self._Scroller.Draw()
        else:
            self._Ps._Width = self._Width
            self._Ps.Draw()
            for i in self._MyList:
                i.Draw()
Esempio n. 28
0
class BleInfoPage(Page):
    _FootMsg = ["Nav", "Forget", "Disconnect", "Back", ""]
    _MyList = []
    _ListFontObj = MyLangManager.TrFont("varela15")
    _ListSmFontObj = MySkinManager.GiveFont("varela12")  # small font
    _ListSm2FontObj = MySkinManager.GiveFont("varela11")

    _AList = {}
    _Path = ""

    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._CanvasHWND = self._Screen._CanvasHWND

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        ps = BleInfoPageSelector()
        ps._Parent = self
        self._Ps = ps
        self._PsIndex = 0

        #_AList is an object
        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()

        self._ConfirmPage1 = BleForgetConfirmPage()
        self._ConfirmPage1._Screen = self._Screen
        self._ConfirmPage1._Name = "ConfirmForget"
        self._ConfirmPage1._Parent = self
        self._ConfirmPage1.Init()

    def GenList(self):
        if self._AList == None:
            return
        self._MyList = []
        self._PsIndex = 0
        start_x = 0
        start_y = 0

        for i, v in enumerate(self._AList):
            #print(i,v) # (0, dbus.String(u'AddressType'))

            li = InfoPageListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y + i * InfoPageListItem._Height
            li._Width = Width
            li._Fonts["normal"] = self._ListFontObj

            if v == "UUIDs":
                li._Fonts["small"] = self._ListSm2FontObj
            else:
                li._Fonts["small"] = self._ListSmFontObj

            li.Init(str(v))
            li._Flag = v

            if v == "UUIDs":
                if len(self._AList[v]) > 1:
                    pp(self._AList[v][0])
                    sm_text = str(self._AList[v][0])
                else:
                    sm_text = "<empty>"
            else:
                sm_text = str(self._AList[v])

            if sm_text == "0":
                sm_text = "No"
            elif sm_text == "1":
                sm_text = "Yes"

            sm_text = sm_text[:20]
            li.SetSmallText(sm_text)

            li._PosX = 2
            self._MyList.append(li)

    def TryToForget(self):
        global adapter
        proxy_obj = bus.get_object("org.bluez", self._Path)
        dev = dbus.Interface(proxy_obj, "org.bluez.Device1")

        self._Screen._MsgBox.SetText("Forgeting")
        self._Screen._MsgBox.Draw()
        self._Screen.SwapAndShow()

        try:
            adapter.RemoveDevice(dev)
        except Exception, e:
            err_name = e.get_dbus_name()
            if err_name == "org.freedesktop.DBus.Error.NoReply":
                self._Screen._MsgBox.SetText("DBus noreply")
            else:
                self._Screen._MsgBox.SetText("Forget failed")

            self._Screen._MsgBox.Draw()
            self._Screen.SwapAndShow()

        pygame.time.delay(500)

        self.ReturnToUpLevelPage()
        self._Screen.Draw()
        self._Screen.SwapAndShow()
Esempio n. 29
0
class BluetoothPage(Page):
    _MyList = []
    #Wicd dbus part
    _Adapter = None
    _Dbus = None
    _Devices = None

    _BlePassword = ""
    _Connecting = False
    _Scanning = False

    _PrevState = None
    _Selector = None

    _ShowingMessageBox = False
    _MsgBox = None
    _ConnectTry = 0
    _BlockCb = None

    _LastStatusMsg = ""
    _FootMsg = ["Nav", "Info", "Scan", "Back", "TryConnect"]
    _Scroller = None
    _ListFontObj = MyLangManager.TrFont("notosanscjk15")

    _InfoPage = None

    _ADAPTER_DEV = "hci0"

    _Offline = False

    _Leader = None

    def __init__(self):
        Page.__init__(self)
        self._MyList = []
        self._CanvasHWND = None

    def ShowBox(self, msg):

        self._MsgBox._Text = msg
        self._ShowingMessageBox = True
        self._Screen.Draw()
        self._MsgBox.Draw()
        self._Screen.SwapAndShow()

    def HideBox(self):
        self.Draw()
        self._ShowingMessageBox = False
        self._Screen.SwapAndShow()

    def Init(self):

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width
        self._Height = self._Screen._Height

        #self._CanvasHWND = pygame.Surface((self._Width,self._Height))
        self._CanvasHWND = self._Screen._CanvasHWND

        ps = BleListSelector()
        ps._Parent = self
        ps._Width = Width - 12

        self._Ps = ps
        self._PsIndex = 0

        msgbox = BleListMessageBox()
        msgbox._CanvasHWND = self._CanvasHWND
        msgbox.Init(" ", MyLangManager.TrFont("veramono15"))
        msgbox._Parent = self

        self._MsgBox = msgbox

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = 2
        self._Scroller._PosY = 2
        self._Scroller.Init()

        self.GenNetworkList()

        self._InfoPage = BleInfoPage()
        self._InfoPage._Screen = self._Screen
        self._InfoPage._Name = "BluetoothInfo"
        self._InfoPage.Init()

    def print_normal(self, address, properties):
        print("[ " + address + " ]")

        for key in properties.keys():
            value = properties[key]
            if type(value) is dbus.String:
                value = unicode(value).encode('ascii', 'replace')
            if (key == "Class"):
                print("    %s = 0x%06x" % (key, value))
            else:
                print("    %s = %s" % (key, value))

        print()

        properties["Logged"] = True

    def skip_dev(self, old_dev, new_dev):
        if not "Logged" in old_dev:
            return False
        if "Name" in old_dev:
            return True
        if not "Name" in new_dev:
            return True
        return False

    def DbusPropertiesChanged(self, interface, changed, invalidated, path):
        global devices
        print("DbusPropertiesChanged")
        if interface != "org.bluez.Device1":
            return

        if path in devices:
            dev = devices[path]

            if self.skip_dev(dev, changed):
                return
            devices[path] = dict(devices[path].items() + changed.items())
        else:
            devices[path] = changed

        if "Address" in devices[path]:
            address = devices[path]["Address"]
        else:
            address = "<unknown>"

        self._Devices = devices
        self.print_normal(address, devices[path])

        self.RefreshDevices()
        self.GenNetworkList()
        self._Screen.Draw()
        self._Screen.SwapAndShow()

    def ShutDownConnecting(self):
        print("Bluetooth Shutdown connecting...")

    def AbortedAndReturnToUpLevel(self):
        self.HideBox()
        self._Screen._FootBar.ResetNavText()
        self.ReturnToUpLevelPage()
        self._Screen.Draw()
        self._Screen.SwapAndShow()

    def CheckIfBluetoothConnecting(self):
        return True

    def TryConnect(self):
        global bus

        if self._PsIndex >= len(self._MyList):
            return

        cur_li = self._MyList[self._PsIndex]
        print(cur_li._Path)

        if "Connected" in cur_li._Atts:
            if cur_li._Atts["Connected"] == 1:
                return

        proxy_obj = bus.get_object("org.bluez", cur_li._Path)
        dev = dbus.Interface(proxy_obj, "org.bluez.Device1")

        self._Screen._FootBar.UpdateNavText("Connecting")
        self.ShowBox(MyLangManager.Tr("Connecting"))

        self._Leader._MyAgent.device_obj = dev
        self._Leader._MyAgent.dev_path = cur_li._Path

        try:
            dev.Pair(reply_handler=self._Leader._MyAgent.pair_reply,
                     error_handler=self._Leader._MyAgent.pair_error,
                     timeout=60000)
        except Exception, e:
            print(str(e))
Esempio n. 30
0
class AboutPage(Page):
    _FootMsg = ["Nav.", "", "", "Back", ""]
    _MyList = []
    _ListFontObj = MyLangManager.TrFont("varela13")

    _AList = {}

    _Scrolled = 0

    _BGwidth = 320
    _BGheight = 300

    _DrawOnce = False
    _Scroller = None

    def __init__(self):
        Page.__init__(self)
        self._Icons = {}

    def Uname(self):

        out = {}
        out["key"] = "uname"
        out["label"] = "Kernel:"
        st = subprocess.check_output(["uname", "-srmo"])
        st = st.strip("\n")
        st = st.strip("\t")
        out["value"] = st
        self._AList["uname"] = out

        return

    def CpuMhz(self):

        try:
            with open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"
                      ) as f:
                content = f.readlines()
            content = [x.strip() for x in content]

        except:
            print("open %s failed" %
                  "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq")
            content = ["0"]

        mhz = int(content[0]) / 1000.0

        cpuscalemhz = {}
        cpuscalemhz["key"] = "cpuscalemhz"
        cpuscalemhz["label"] = "CPU Mhz:"
        cpuscalemhz["value"] = str(mhz)
        self._AList["cpuscalemhz"] = cpuscalemhz

        return

    def CpuInfo(self):
        last_processor = 0
        with open("/proc/cpuinfo") as f:
            for line in f:
                if line.startswith("processor"):
                    parts = line.split(":")
                    cur_processor_number = int(parts[1].strip())
                    if cur_processor_number > last_processor:
                        last_processor = cur_processor_number

                if line.startswith("model name"):
                    parts = line.split(":")
                    #                    print( parts[1].strip() )
                    processor = {}
                    processor["key"] = "processor"
                    processor["label"] = "Processor:"
                    processor["value"] = parts[1].strip()

                    self._AList["processor"] = processor

                if line.startswith("cpu MHz"):
                    parts = line.split(":")
                    #                    print(parts[1].strip() )
                    cpumhz = {}
                    cpumhz["key"] = "cpumhz"
                    cpumhz["label"] = "CPU MHz:"
                    cpumhz["value"] = parts[1].strip()

                    self._AList["cpumhz"] = cpumhz
                if line.startswith("cpu cores"):
                    parts = line.split(":")
                    #                    print(parts[1].strip() )
                    cpucores = {}
                    cpucores["key"] = "cpucores"
                    cpucores["label"] = "CPU cores:"
                    cpucores["value"] = parts[1].strip()
                    self._AList["cpucores"] = cpucores
                if line.startswith("Features"):
                    parts = line.split(":")
                    #                    print(parts[1].strip() )
                    f_ = {}
                    f_["key"] = "features"
                    f_["label"] = "Features:"
                    f_["value"] = parts[1].strip()
                    self._AList["features"] = f_

                if line.startswith("flags"):
                    parts = line.split(":")
                    #                    print(parts[1].strip() )
                    flags = {}
                    flags["key"] = "flags"
                    flags["label"] = "Flags:"
                    flags["value"] = parts[1].strip()
                    self._AList["flags"] = flags

        if last_processor > 0:
            arm_cores = {}
            arm_cores["key"] = "armcores"
            arm_cores["label"] = "CPU cores:"
            arm_cores["value"] = str(last_processor + 1)
            self._AList["armcores"] = arm_cores

    def MemInfo(self):

        with open("/proc/meminfo") as f:
            for line in f:
                if line.startswith("MemTotal"):
                    parts = line.split(":")
                    parts[1] = parts[1].replace("kB", "")
                    print(parts[1].strip())

                    memory = {}
                    memory["key"] = "memory"
                    memory["label"] = "Memory:"
                    memory["value"] = str(
                        int(parts[1].strip()) / 1000.0) + " MB"
                    self._AList["memory"] = memory
                    break

    def LauncherVersion(self):
        launcher_version = {}
        launcher_version["key"] = "launcher_ver"
        launcher_version["label"] = "Launcher:"
        launcher_version["value"] = VERSION
        self._AList["launcher_ver"] = launcher_version

    def OsImageVersion(self):
        if FileExists("/etc/clockworkpi_os_image_version"):
            try:
                with open("/etc/clockworkpi_os_image_version") as f:
                    content = f.readlines()
                content = [x.strip() for x in content]

            except:
                print("open %s failed" % "/etc/clockworkpi_os_image_version")
                content = None

            if content != None and len(content) > 0:
                os_image_ver = {}
                os_image_ver["key"] = "os_image_ver"
                os_image_ver["label"] = "OS Image:"
                os_image_ver["value"] = content[0][:12]
                self._AList["os_image_ver"] = os_image_ver

    def GenList(self):

        self._MyList = []

        start_x = 0
        start_y = 10
        last_height = 0

        for i, u in enumerate([
                "processor", "armcores", "cpuscalemhz", "features", "memory",
                "uname", "launcher_ver", "os_image_ver"
        ]):
            #for i,u in enumerate( ["processor","cpucores","cpumhz","flags","memory","uname"] ):
            if u not in self._AList:
                continue

            v = self._AList[u]

            li = InfoPageListItem()
            li._Parent = self
            li._PosX = start_x
            li._PosY = start_y + last_height
            li._Width = Width
            li._Fonts["normal"] = self._ListFontObj
            li._Fonts["small"] = MySkinManager.GiveFont("varela12")

            if self._AList[u]["label"] != "":
                li.Init(self._AList[u]["label"])
            else:
                li.Init(self._AList[u]["key"])

            li._Flag = self._AList[u]["key"]

            li.SetSmallText(self._AList[u]["value"])

            last_height += li._Height

            self._MyList.append(li)

    def Init(self):
        if self._Screen != None:
            if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
                self._HWND = self._Screen._CanvasHWND
                self._CanvasHWND = pygame.Surface(
                    (self._Screen._Width, self._BGheight + 50))

        self._PosX = self._Index * self._Screen._Width
        self._Width = self._Screen._Width  ## equal to screen width
        self._Height = self._Screen._Height

        bgpng = MultiIconItem()
        bgpng._ImgSurf = MyIconPool.GiveIconSurface("about_bg")
        bgpng._MyType = ICON_TYPES["STAT"]
        bgpng._Parent = self
        bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0)

        self._Icons["bg"] = bgpng

        self.CpuInfo()
        self.MemInfo()
        self.CpuMhz()
        self.Uname()

        self.LauncherVersion()
        self.OsImageVersion()

        self.GenList()

        self._Scroller = ListScroller()
        self._Scroller._Parent = self
        self._Scroller._PosX = self._Width - 10
        self._Scroller._PosY = 2
        self._Scroller.Init()
        self._Scroller.SetCanvasHWND(self._HWND)

    def ScrollDown(self):
        dis = 10
        if abs(self._Scrolled) < (self._BGheight - self._Height) / 2 + 100:
            self._PosY -= dis
            self._Scrolled -= dis

    def ScrollUp(self):
        dis = 10
        if self._PosY < 0:
            self._PosY += dis
            self._Scrolled += dis

    def OnLoadCb(self):
        self._Scrolled = 0
        self._PosY = 0
        self._DrawOnce = False

    def OnReturnBackCb(self):
        self.ReturnToUpLevelPage()
        self._Screen.Draw()
        self._Screen.SwapAndShow()

    def KeyDown(self, event):
        if IsKeyMenuOrB(event.key):
            self.ReturnToUpLevelPage()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

        if event.key == CurKeys["Up"]:
            self.ScrollUp()
            self._Screen.Draw()
            self._Screen.SwapAndShow()
        if event.key == CurKeys["Down"]:
            self.ScrollDown()
            self._Screen.Draw()
            self._Screen.SwapAndShow()

    def Draw(self):

        if self._DrawOnce == False:
            self.ClearCanvas()
            #self._Ps.Draw()

            for i in self._MyList:
                i.Draw()

            self._DrawOnce = True

            self._Icons["bg"].DrawRect((230, 0, 82, 184), (228, 0, 82, 184))

            y = self._MyList[len(self._MyList) - 1]._PosY + 30

            self._Icons["bg"].DrawRect(((self._Width - 191) / 2, y, 191, 68),
                                       (65, 232, 191, 68))

        if self._HWND != None:
            self._HWND.fill(MySkinManager.GiveColor("White"))

            self._HWND.blit(
                self._CanvasHWND,
                (self._PosX, self._PosY, self._Width, self._Height))

            self._Scroller.UpdateSize(self._BGheight, abs(self._Scrolled) * 3)
            self._Scroller.Draw()