def previousFile(self): if not globalVars.play.isDeviceOk(): return False if self.shuffleCtrl == None: ret = listManager.previous(self.playingList) else: ret = self.shuffleCtrl.previous(self.playingList) if ret == False: if self.playError() == constants.DIALOG_PE_CONTINUE: self.playingList = constants.PLAYLIST self.errorSkipCount += 1 if self.endErrorSkip(): return False ret = self.previousFile() else: self.stop() return False elif ret == errorCodes.END: if self.repeatLoopFlag == 2 and len( globalVars.app.hMainView.playlistView) >= 1: #ループ再生 globalVars.app.hMainView.playlistView.setPointer( len(globalVars.app.hMainView.playlistView) - 1) return self.play() if globalVars.play.getStatus() == PLAYER_STATUS_PLAYING: view_manager.buttonSetPause() else: view_manager.buttonSetPlay() return False else: return True
def forcePlay(self, source): if not globalVars.play.isDeviceOk(): return False #デバイス異常時は処理を中止 sc = None if re.search("https?://.+\..+", source) != None: #URLの場合は中にURLがないか確認 sc = self.inUrlCheck(source) if sc == None: sc = source if globalVars.play.setSource(sc): if globalVars.play.play(): ret = True self.playingList = constants.NOLIST # リストではない globalVars.listInfo.playingTmp = (source, os.path.basename(source), 0) listManager.setTag(constants.NOLIST) globalVars.app.hMainView.menu.hFunctionMenu.Enable( menuItemsStore.getRef("ABOUT_PLAYING"), True) else: ret = False else: ret = False if ret: self.errorSkipCount = 0 #エラースキップのカウンタをリセット view_manager.buttonSetPause() globalVars.app.hMainView.menu.hFunctionMenu.Enable( menuItemsStore.getRef("ABOUT_PLAYING"), True) self.refreshTagInfo() globalVars.app.hMainView.tagInfoTimer.Start(10000) view_manager.setFileStaticInfoView() #スクリーンリーダ用リストとウィンドウ情報更新 else: view_manager.buttonSetPlay() globalVars.app.hMainView.menu.hFunctionMenu.Enable( menuItemsStore.getRef("ABOUT_PLAYING"), False) view_manager.clearStaticInfoView() #スクリーンリーダ用リストとウィンドウ情報更新 view_manager.changeListLabel(globalVars.app.hMainView.playlistView) view_manager.changeListLabel(globalVars.app.hMainView.queueView) return ret
def play(self, listPorQ=constants.PLAYLIST): if not globalVars.play.isDeviceOk(): return False #デバイス異常時は処理を中止 if globalVars.play.getStatus() == PLAYER_STATUS_DEVICEERROR: return False t = listManager.getTuple(listPorQ, True) if listPorQ == constants.QUEUE: globalVars.listInfo.playingTmp = t #キュー再生の時はタプルを一時退避 sc = None if re.search("https?://.+\..+", t[constants.ITEM_PATH]) != None: #URLの場合は中にURLがないか確認 sc = self.inUrlCheck(t[constants.ITEM_PATH]) if sc == None: sc = t[constants.ITEM_PATH] if globalVars.play.setSource(sc): ret = globalVars.play.play() else: ret = False if ret: self.errorSkipCount = 0 #エラースキップのカウンタをリセット self.playingList = listPorQ if ret: view_manager.buttonSetPause() listManager.setTag(listPorQ) globalVars.app.hMainView.menu.hFunctionMenu.Enable( menuItemsStore.getRef("ABOUT_PLAYING"), True) self.refreshTagInfo() globalVars.app.hMainView.tagInfoTimer.Start(10000) view_manager.setFileStaticInfoView() #スクリーンリーダ用リストとウィンドウ情報更新 if not ret: view_manager.buttonSetPlay() globalVars.app.hMainView.menu.hFunctionMenu.Enable( menuItemsStore.getRef("ABOUT_PLAYING"), False) view_manager.clearStaticInfoView() #スクリーンリーダ用リストとウィンドウ情報更新 view_manager.changeListLabel(globalVars.app.hMainView.playlistView) view_manager.changeListLabel(globalVars.app.hMainView.queueView) return ret
def stop(self): self.errorSkipCount = 0 #エラースキップのカウンタをリセット view_manager.clearStaticInfoView() #スクリーンリーダ用リストの更新 globalVars.app.hMainView.playlistView.setPointer(-1) globalVars.play.stop() view_manager.buttonSetPlay() globalVars.app.hMainView.menu.hFunctionMenu.Enable( menuItemsStore.getRef("ABOUT_PLAYING"), False) globalVars.app.hMainView.viewTitle.SetLabel(_("タイトル") + " : ") globalVars.app.hMainView.viewTagInfo.SetLabel("") globalVars.app.hMainView.tagInfoTimer.Stop()
def playButtonControl(self): # 再生・一時停止を実行 s = globalVars.play.getStatus() if not globalVars.play.isDeviceOk(): globalVars.app.hMainView.notification.show(_("再生デバイスに問題があります。\n設定、または接続を確認してください。"), 4) globalVars.app.say(_("再生デバイスに問題があります。\n設定、または接続を確認してください。")) return if s == PLAYER_STATUS_PLAYING: self.pause() elif globalVars.play.getStatus() == PLAYER_STATUS_PAUSED: self.pause(False) # 停止中であればファイルを再生 elif globalVars.play.getStatus() == PLAYER_STATUS_STOPPED: self.nextFile() else: if globalVars.play.play(): view_manager.buttonSetPause() else: view_manager.buttonSetPlay()
def pause(self, pause=True, force=False): if pause == True: #一時停止 if globalVars.play.pause() or force: view_manager.buttonSetPlay() else: #一時停止解除 if globalVars.play.play(): view_manager.buttonSetPause()