示例#1
0
    def disableScreen(self):
        if (Configuration.isOpenDinguX()):
            return

        os.system('echo 0 > /proc/jz/backlight')
        self.displayDark = True
        TaskHandler.removePeriodicTask(self.brightnessTaskId)
示例#2
0
    def __init__(self, screen, titel, options):
        self.screen = screen           
       
        self.title = titel
        self.options = options
        self.setFooter(Footer.Footer([],[],(255,255,255)))

            

        if("textColor" in self.options):
            self.textColor = options["textColor"]
        else:
            self.textColor = (0,0,0)
        
        if("backgroundColor" in self.options):
            self.backgroundColor = options["backgroundColor"]
        else:
            self.backgroundColor = (221,221,221, 160)
               
        self.toggleSidebar("useSidebar" in options and options["useSidebar"])


        self.initSelection()

        TaskHandler.addAnimation(self.config["screenHeight"] - self.footer.getHeight(), self.config["screenHeight"], 600, self.updateFooterPos, 2500) 
示例#3
0
def runNativeMIPS(cmd, config):
    cmd = config["cmd"] if "cmd" in config else None
    screen = config["screen"] if "screen" in config else None
    overclock = config["overclock"] if "overclock" in config else None
    selection = config["selection"] if "selection" in config else ""
    params = config["params"] if "params" in config else None

    fileName = "run"

    file = open("/tmp/" + fileName, "w")
    file.write("#!/bin/sh\n")

    parent = os.path.abspath(os.path.join(cmd, os.pardir))
    file.write("cd \"" + parent + "\"\n")

    if (params != None):
        file.write(cmd + " " + params.replace("$f", "\"" + selection + "\"") +
                   "\n")
    else:
        file.write("\"" + cmd + "\" \"" + selection + "\"\n")

    file.close()
    st = os.stat('/tmp/' + fileName)
    os.chmod('/tmp/' + fileName, st.st_mode | stat.S_IEXEC)

    showLaunchImage()

    if (overclock != None):
        try:
            Overclock.setClock(overclock)
        except Exception as ex:
            pass

    TaskHandler.addPeriodicTask(0, sys.exit, delay=100)
示例#4
0
def runEmuMIPS(name, cmd, workdir, config, rom):
    name = config["name"]
    cmd = config["cmd"] if "cmd" in config else None
    workdir = config["workingDir"] if "workingDir" in config else None
    overclock = config["overclock"] if "overclock" in config else None
    params = config["params"] if "params" in config else None

    if (workdir == None and not cmd == None):
        workdir = os.path.abspath(os.path.join(cmd, os.pardir))

    fileName = "run"
    file = open("/tmp/" + fileName, "w")
    file.write("#!/bin/sh\n")

    file.write("cd \"" + workdir + "\"\n")

    if (params != None):
        file.write(cmd + " " + params.replace("$f", "\"" + rom + "\"") + "\n")
    else:
        file.write(cmd + " \"" + rom + "\"\n")

    file.close()

    st = os.stat('/tmp/' + fileName)
    os.chmod('/tmp/' + fileName, st.st_mode | stat.S_IEXEC)

    showLaunchImage()

    if (overclock != None and not Configuration.isOpenDinguX()):
        try:
            Overclock.setClock(overclock)
        except Exception as ex:
            pass

    TaskHandler.addPeriodicTask(0, sys.exit, delay=100)
示例#5
0
    def updateList(self):
        while self.proc.poll() is None:
            output = self.proc.stdout.readline()
            if (output != ""):
                print("stout: " + output.rstrip())
                self.data.append({"name": output.rstrip()})

            # output = self.proc.stderr.readline()
            # if(output != ""):
            #     print("sterr: " + output.rstrip())
            #     self.data.append({
            #         "name": output.rstrip()
            #     })

            self.initList()
            self.setSelection(len(self.data) - 1)

            RenderControl.setDirty()

        self.data.append({"name": ""})

        self.data.append({"name": "Task finished, press 'B' to go back"})

        self.initList()
        self.setSelection(len(self.data) - 1)

        RenderControl.setDirty()

        self.isTerminated = True
        TaskHandler.removePeriodicTask(self.updateTask)
示例#6
0
 def __init__(self, screen, initialText, callback):
     self.screen = screen
     self.initialText = initialText
     self.currentText = str(initialText)
     self.callback = callback
     self.initBackground()
     self.setFooter(Footer.Footer([],[],(255,255,255)))
     TaskHandler.addAnimation(self.config["screenHeight"] - self.footer.getHeight(), self.config["screenHeight"], 600, self.updateFooterPos, 1000) 
示例#7
0
    def resetAnimation(self):
        self.menuAlpha = 255
        if(self.animationId is not None):
            TaskHandler.stopAnimation(self.animationId)            

        self.animationId = TaskHandler.addAnimation(255, 20, 600, self.animationCallback, 1500)
        
        RenderControl.setDirty()
示例#8
0
    def addBrignessTask(self):
        if (self.brightnessTaskId is not None):
            TaskHandler.removePeriodicTask(self.brightnessTaskId)
        displayTimeout = self.config["options"]["displayTimeout"]
        if (displayTimeout == "off"):
            return

        self.brightnessTaskId = TaskHandler.addPeriodicTask(
            0, self.disableScreen,
            float(displayTimeout) * 1000)
示例#9
0
    def updatePreview(self):
        self.preview_final = self.previewPath

        self.anim = None
        self.image = None
        
        self.renderAnim = False
        TaskHandler.removePeriodicTask(self.animTask)
        self.animTask = TaskHandler.addPeriodicTask(1000, self.onShowAnim, 1000)
        RenderControl.setDirty()
示例#10
0
    def addSuspendTask(self):
        if (self.suspendTaskId is not None):
            TaskHandler.removePeriodicTask(self.suspendTaskId)
        suspendTime = self.config["options"]["suspendTimeout"]
        if (suspendTime == "off"):
            return

        self.suspendTaskId = TaskHandler.addPeriodicTask(
            0, self.suspend,
            float(suspendTime) * 1000 * 60)
示例#11
0
    def handleEvents(self, events):
        if (self.subComponent != None):
            self.subComponent.handleEvents(events)
            return

        if (self.overlay != None):
            self.overlay.handleEvents(events)
            return

        for event in events:
            if event.type == pygame.KEYDOWN:
                if event.key == Keys.DINGOO_BUTTON_DOWN:
                    if (self.selection == "band"):
                        self.selection = "power"
                        RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_UP:
                    if (self.selection == "power"
                            or self.selection == "settings"):
                        self.selection = "band"
                        RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_LEFT or event.key == Keys.DINGOO_BUTTON_L:
                    if (not self.inTransition and self.selection == "band"):
                        TaskHandler.addAnimation(0, 160, 200,
                                                 self.transitionCallback)
                        self.inTransition = True

                    if (self.selection == "power"):
                        self.selection = "settings"

                    RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_RIGHT or event.key == Keys.DINGOO_BUTTON_R:
                    if (not self.inTransition and self.selection == "band"):
                        TaskHandler.addAnimation(0, -160, 200,
                                                 self.transitionCallback)
                        self.inTransition = True

                    if (self.selection == "settings"):
                        self.selection = "power"

                    RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_SELECT:
                    self.openOptions()
                    RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_START:
                    if (self.selection == "band" and "useSelection"
                            in self.config["mainMenu"][self.currentIndex]
                            and self.config["mainMenu"][
                                self.currentIndex]["useSelection"] == False):
                        self.emulatorCallback("", Keys.DINGOO_BUTTON_START,
                                              True)
                        RenderControl.setDirty()
                    else:
                        self.select()
                if event.key == Keys.DINGOO_BUTTON_A:
                    self.select()
示例#12
0
文件: main.py 项目: JackD83/PyMenu
def init():
    lastRenderTime = 1

    Common.mountSD(True)

    # try:
    #     if(not Configuration.isOpenDinguX()):
    #         os.system('/usr/bin/retrofw network on')
    # except Exception as ex:
    #     pass

    realScreen = pygame.display.set_mode(
        (config["screenWidth"], config["screenHeight"]), HWSURFACE, 16)
    screen = pygame.Surface((config["screenWidth"], config["screenHeight"]))

    suspend = Suspend.Suspend()
    renderObject = MainMenu.MainMenu(screen, suspend)

    brightness = BrightnessVolumeControl.BrightnessVolume()

    while True:  # main game loop
        events = pygame.event.get()
        for event in events:
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        suspend.handleEvents(events)
        renderObject.handleEvents(events)
        brightness.handleEvents(events)

        if (RenderControl.isDirty()):
            start = int(round(time.time() * 1000))
            RenderControl.setDirty(False)
            renderObject.render(screen)
            brightness.render(screen)

            if ("showFPS" in config["options"]
                    and config["options"]["showFPS"]):
                if (lastRenderTime == 0):
                    lastRenderTime = 1
                textSurface = textFont.render(
                    str(int(round(1000 / lastRenderTime))) + "fps ~" +
                    str(lastRenderTime) + "ms", True, (255, 255, 255))
                screen.blit(textSurface, (0, 0))
                #print("render time: " + str(lastRenderTime))

            realScreen.blit(screen, (0, 0))

            pygame.display.update()
            lastRenderTime = int(round(time.time() * 1000)) - start

        TaskHandler.updateTasks()
        fpsClock.tick(Common.getFPS())
示例#13
0
    def handleEvents(self, events):
        for event in events:
            if event.type == pygame.KEYDOWN:
                self.keyDown = True

                if (not len(self.entryList) <= 1):
                    self.preview_final = None

                if event.key == Keys.DINGOO_BUTTON_UP:
                    if (not len(self.entryList) <= 1):
                        self.up()
                        self.onChange()
                        RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_DOWN:
                    if (not len(self.entryList) <= 1):
                        self.down()
                        self.onChange()
                        RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_L:
                    self.up(self.maxListEntries)
                    self.onChange()
                    RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_R:
                    self.down(self.maxListEntries)
                    self.onChange()
                    RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_A:
                    self.onSelect()
                    RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_B:
                    ResumeHandler.clearResume()
                    self.onExit()
                    RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_Y:
                    self.toggleSidebar(not self.useSidebar)
                    RenderControl.setDirty()
                if event.key == Keys.DINGOO_BUTTON_X:
                    self.previewEnabled = not self.previewEnabled
                    RenderControl.setDirty()
            if event.type == pygame.KEYUP:
                self.keyDown = False
                self.preview_final = self.previewPath

                self.anim = None
                self.image = None

                self.renderAnim = False
                TaskHandler.removePeriodicTask(self.animTask)
                self.animTask = TaskHandler.addPeriodicTask(
                    1000, self.onShowAnim, 1000)
                RenderControl.setDirty()
示例#14
0
def init():
    lastRenderTime = 1
    setVolume()
    if (Configuration.isRS97() and platform.processor() == ""):
        realScreen = pygame.display.set_mode((320, 240), HWSURFACE, 16)
        screen = pygame.Surface(
            (config["screenWidth"], config["screenHeight"]))
    else:
        realScreen = pygame.display.set_mode(
            (config["screenWidth"], config["screenHeight"]), HWSURFACE, 16)
        screen = realScreen

    renderObject = MainMenu.MainMenu(screen)

    suspend = Suspend.Suspend()
    brightness = BrightnessVolumeControl.BrightnessVolume()

    while True:  # main game loop
        events = pygame.event.get()
        for event in events:
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        suspend.handleEvents(events)
        renderObject.handleEvents(events)
        brightness.handleEvents(events)

        if (RenderControl.isDirty()):
            start = int(round(time.time() * 1000))
            RenderControl.setDirty(False)
            renderObject.render(screen)
            brightness.render(screen)

            if ("showFPS" in config["options"]
                    and config["options"]["showFPS"]):
                if (lastRenderTime == 0):
                    lastRenderTime = 1
                textSurface = textFont.render(
                    str(int(round(1000 / lastRenderTime))) + "fps ~" +
                    str(lastRenderTime) + "ms", True, (255, 255, 255))
                screen.blit(textSurface, (0, 0))
                print("render time: " + str(lastRenderTime))

            realScreen.blit(screen, (0, 0))

            pygame.display.update()
            lastRenderTime = int(round(time.time() * 1000)) - start

        TaskHandler.updateTasks()
        fpsClock.tick(Common.FPS)
示例#15
0
    def __init__(self, height):
        self.headerHeight = height
        self.updateHeader()

        try:
            self.usbDevice = open("/sys/devices/platform/musb_hdrc.0/uh_cable",
                                  "r")
            self.battery = open("/proc/jz/battery", "r")

            self.updateBattery()
        except Exception as ex:
            print("Could not open devices" + str(ex))

        TaskHandler.addPeriodicTask(1000, self.updateBattery)
示例#16
0
    def __init__(self, screen, titel, options):
        self.screen = screen

        self.title = titel
        self.options = options
        self.setFooter(Footer.Footer([], [], (255, 255, 255)))

        if ("textColor" in self.options):
            self.textColor = options["textColor"]
        else:
            self.textColor = (0, 0, 0)

        if ("backgroundColor" in self.options):
            self.backgroundColor = options["backgroundColor"]
        else:
            self.backgroundColor = (221, 221, 221, 160)

        if ("sideColor" not in self.options):
            self.options["sideColor"] = (57, 58, 59, 255)

        if ("headerColor" not in self.options):
            self.options["headerColor"] = (57, 58, 59, 255)

        if ("headerFontColor" not in self.options):
            self.options["headerFontColor"] = (255, 255, 255)

        if ("selectionColor" not in self.options):
            self.options["selectionColor"] = (55, 55, 55, 120)

        if ("descriptionFontColor" not in self.options):
            self.options["descriptionFontColor"] = (255, 255, 255)

        if ("scrollbarColor" not in self.options):
            self.options["scrollbarColor"] = (0, 105, 105)

        self.toggleSidebar("useSidebar" in options and options["useSidebar"])

        self.initSelection()

        TaskHandler.addAnimation(
            self.config["screenHeight"] - self.footer.getHeight(),
            self.config["screenHeight"], 600, self.updateFooterPos, 2500)
示例#17
0
    def __init__(self, height):
        self.headerHeight = height
        self.updateHeader()      

        try:

            if(not Configuration.isOpenDinguX()):
                self.usbDevice = open("/sys/devices/platform/musb_hdrc.0/uh_cable", "r")
            
            if(Configuration.isOpenDinguX()):
                self.battery = open("/sys/class/power_supply/battery/voltage_now", "r")
                self.usbDevice = open("/sys/devices/platform/gpio-charger.1/power_supply/usb/online", "r")
            else:
                self.battery = open("/proc/jz/battery", "r")    



               
         
            self.updateBattery()
        except Exception as ex:
            print("Could not open devices" + str(ex))

        TaskHandler.addPeriodicTask(1000, self.updateBattery)
示例#18
0
def apply_full(roles_dir):
    returncode = 0
    LOGGER.info('-> Applying full configuration')
    runbook = role_file_parser('{}/runbook.yml'.format(roles_dir), 'all')
    task_handler = TaskHandler.TaskHandler(runbook=runbook, roles_dir=roles_dir)
    for task in runbook['tasks']:
        LOGGER.info('-> Starting Task: {}'.format(task['name']))
        LOGGER.debug('>>> {}'.format(task))
        try:
            output = task_handler.handle_task(task)
            LOGGER.info(output)
        except Exception as e:
            LOGGER.warn(e)
            returncode = 1
    return returncode
示例#19
0
    def runCMD(self, cmd):
        os.environ['PYTHONUNBUFFERED'] = "1"
        self.proc = subprocess.Popen(cmd,
                                     shell=True,
                                     bufsize=1,
                                     stdout=subprocess.PIPE,
                                     stderr=subprocess.STDOUT,
                                     universal_newlines=True)

        thread = Thread(target=self.updateList, args=())
        thread.start()
        RenderControl.setDirty()

        self.updateTask = TaskHandler.addPeriodicTask(100,
                                                      RenderControl.setDirty,
                                                      delay=0)
示例#20
0
 def suspend(self):
     try:
         subprocess.Popen(["poweroff"])
         TaskHandler.removePeriodicTask(self.suspendTaskId)
     except Exception as identifier:
         pass
示例#21
0
  def onShowAnim(self):
      self.renderAnim = True
 
      TaskHandler.removePeriodicTask(self.animTask)
      RenderControl.setDirty()
示例#22
0
 def disableSuspend(self):
     if (self.suspendTaskId is not None):
         TaskHandler.removePeriodicTask(self.suspendTaskId)
示例#23
0
        description='''
        PTT tracker
    ''')
    parser.add_argument('-c', '--config', help='config path')
    parser.add_argument('-v',
                        '--version',
                        action='version',
                        version='%(prog)s ' + __version__)

    args = parser.parse_args()

    params = {}

    if args.config:
        params['configPath'] = args.config

    return params


if __name__ == '__main__':

    argParams = parseArgments()

    if 'configPath' in argParams:
        jsonParams = Utils.ParseJson(argParams['configPath'])
    else:
        jsonParams = Utils.ParseJson()

    handler = TaskHandler.Handler(jsonParams)
    handler.Dispatch()
示例#24
0
 def disableScreen(self):
     os.system('echo 0 > /proc/jz/lcd_backlight')
     self.displayDark = True
     TaskHandler.removePeriodicTask(self.brightnessTaskId)
示例#25
0
    def callback(dbSet):
        #异步载入数据库,需要验证session是否仍然有效,有可能下线了
        db = dbSet['player']
        if session.isValid() == False or session.player:
            return False

        if len(db.result) == 0:
            ffext.dump('no this role')
            return False
        else:
            player = PlayerModel.Player(db.result[0])
            #ffext.dump(dbSet)
            session.setPlayer(player)
            if x != 0 and y != 0:
                player.x = x
                player.y = y

            #载入数据
            ffext.dump('load player =%s' % (session.player.name))
            session.verify_id(session.player.uid)
            dbTask = dbSet['task']
            dbitem = dbSet['item']
            dbFriend = dbSet['friend']
            dbEnemy = dbSet['enemy']
            dbGuild = dbSet['guild']
            dbPet = dbSet['pet']
            dbMail = dbSet['mail']
            dbLoginAct = dbSet['login_activity']
            if dbTask.isOk():
                player.taskCtrl.fromData(dbTask.result)
            if dbitem.isOk():
                player.itemCtrl.fromData(dbitem.result)
                #TaskHandler.processQueryTask(session)
            #初始化好友信息、仇人信息,屏蔽信息
            if dbFriend.isOk():
                player.friendCtrl.fromDataFriend(dbFriend.result)
            if dbEnemy.isOk():
                player.friendCtrl.fromDataEnemy(dbEnemy.result)
            #初始化行会信息
            if dbGuild.isOk():
                player.guildCtrl.fromData(dbGuild.result)
            player.petCtrl.fromData(dbPet.result)
            if dbMail.isOk():
                player.mailCtrl.fromData(dbMail.result)
            if dbLoginAct.isOk():
                player.loginActCtrl.fromData(dbLoginAct.result)
        # 发送属性数据
        PlayerModel.sendPropUpdateMsg(player)
        #发消息通知,通知上线
        tmpReq = MsgDef.EnterMapReq(player.mapname, player.x, player.y)
        processEnterMapReq(session, tmpReq, True)
        #发送技能数据
        SkillHandler.processQuerySkill(session)
        #发送包裹数据
        ItemHandler.processQueryPkg(session)
        #发送装备数据
        ItemHandler.processQueryEquip(session)
        #发送任务数据
        TaskHandler.processQueryTask(session)
        #发送好友数据
        FriendHandler.processListFriend(
            session,
            MsgDef.FriendListMsgReq(MsgDef.FriendListClientCmd.GET_FRIENDLIST))
        #发送行会数据
        GuildHandler.processGuildInfo(session)
        #发送结义数据
        TeamHandler.processBrotherOps(
            session,
            MsgDef.BrotherOpsReq(MsgDef.BrotherClientCmd.GET_BROTHERLIST))
        #发送安全码
        processMoneyBankOps(session)
        processQueryPet(session)
        from handler import MarryHandler
        MarryHandler.processMarryOPS(
            session,
            MsgDef.MarriageOpsReq(MsgDef.MarriageClientCmd.MARRY_QUERY_STATUS))
        SkillHandler.processAttackModeReq(session)  #发送攻击模式
        from handler import MailHandler
        MailHandler.processMarryOPS(session, MsgDef.MailOpsReq(0))
        #msg = MsgDef.UpdateSkillPosReq({320:1})
        #SkillHandler.processUpdateSkillPosReq(session, msg)
        #结义数据
        # if player.brotherCtrl:
        #     BrotherModel.handleQueryBrother(player)

        player.checkTimeAfterInit()
        # 登录(old)-记录log
        LogModel.logLoginData(accountid, player.uid, player.name,
                              LogModel.LoginOpType.LOGIN_PLAYER,
                              LogModel.LoginReason.OLD_LOGIN)
        return