Example #1
0
 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
Example #2
0
 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
Example #3
0
 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
Example #4
0
 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()
Example #5
0
 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()
Example #6
0
 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()