From 3e41f63c62b37f767fa2ebdd6e4226b0b3fdef7d Mon Sep 17 00:00:00 2001 From: croneter Date: Fri, 23 Nov 2018 08:41:05 +0100 Subject: [PATCH] Move xbmc.Player() --- resources/lib/app/application.py | 2 ++ resources/lib/kodimonitor.py | 1 - resources/lib/playback.py | 6 +++--- resources/lib/playqueue.py | 2 +- resources/lib/plex_companion.py | 8 ++++---- resources/lib/plexbmchelper/listener.py | 2 +- resources/lib/plexbmchelper/subscribers.py | 2 -- resources/lib/service_entry.py | 1 + 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/resources/lib/app/application.py b/resources/lib/app/application.py index 2d1edb91..365b059f 100644 --- a/resources/lib/app/application.py +++ b/resources/lib/app/application.py @@ -34,6 +34,8 @@ class App(object): self.websocket_queue = Queue.Queue() # xbmc.Monitor() instance from kodimonitor.py self.monitor = None + # xbmc.Player() instance + self.player = None def load_settings(self): # Number of items to fetch and display in widgets diff --git a/resources/lib/kodimonitor.py b/resources/lib/kodimonitor.py index 5ab84258..8c7d2022 100644 --- a/resources/lib/kodimonitor.py +++ b/resources/lib/kodimonitor.py @@ -29,7 +29,6 @@ class KodiMonitor(xbmc.Monitor): PKC implementation of the Kodi Monitor class. Invoke only once. """ def __init__(self): - self.xbmcplayer = xbmc.Player() self._already_slept = False self.hack_replay = None xbmc.Monitor.__init__(self) diff --git a/resources/lib/playback.py b/resources/lib/playback.py index da451804..30376793 100644 --- a/resources/lib/playback.py +++ b/resources/lib/playback.py @@ -504,7 +504,7 @@ def process_indirect(key, offset, resolve=True): result.listitem = listitem pickler.pickle_me(result) else: - thread = Thread(target=app.APP.monitor.xmbcplayer.play, + thread = Thread(target=app.APP.player.play, args={'item': utils.try_encode(playurl), 'listitem': listitem}) thread.setDaemon(True) @@ -546,10 +546,10 @@ def threaded_playback(kodi_playlist, startpos, offset): """ Seek immediately after kicking off playback is not reliable. """ - app.APP.monitor.xmbcplayer.play(kodi_playlist, None, False, startpos) + app.APP.player.play(kodi_playlist, None, False, startpos) if offset and offset != '0': i = 0 - while not app.APP.monitor.xmbcplayer.isPlaying(): + while not app.APP.player.isPlaying(): app.APP.monitor.waitForAbort(0.1) i += 1 if i > 100: diff --git a/resources/lib/playqueue.py b/resources/lib/playqueue.py index e145255b..08000bc6 100644 --- a/resources/lib/playqueue.py +++ b/resources/lib/playqueue.py @@ -87,7 +87,7 @@ def init_playqueue_from_plex_children(plex_id, transient_token=None): PL.add_item_to_playlist(playqueue, i, plex_id=api.plex_id()) playqueue.plex_transient_token = transient_token LOG.debug('Firing up Kodi player') - app.APP.xbmcplayer.play(playqueue.kodi_pl, None, False, 0) + app.APP.player.play(playqueue.kodi_pl, None, False, 0) return playqueue diff --git a/resources/lib/plex_companion.py b/resources/lib/plex_companion.py index 48cf97f9..e7cc7a83 100644 --- a/resources/lib/plex_companion.py +++ b/resources/lib/plex_companion.py @@ -175,14 +175,14 @@ class PlexCompanion(backgroundthread.KillableThread): if 'audioStreamID' in data: index = playqueue.items[pos].kodi_stream_index( data['audioStreamID'], 'audio') - app.APP.monitor.xbmcplayer.setAudioStream(index) + app.APP.player.setAudioStream(index) elif 'subtitleStreamID' in data: if data['subtitleStreamID'] == '0': - app.APP.monitor.xbmcplayer.showSubtitles(False) + app.APP.player.showSubtitles(False) else: index = playqueue.items[pos].kodi_stream_index( data['subtitleStreamID'], 'subtitle') - app.APP.monitor.xbmcplayer.setSubtitleStream(index) + app.APP.player.setSubtitleStream(index) else: LOG.error('Unknown setStreams command: %s', data) @@ -267,7 +267,7 @@ class PlexCompanion(backgroundthread.KillableThread): # Start up instances request_mgr = httppersist.RequestMgr() subscription_manager = subscribers.SubscriptionMgr(request_mgr, - app.APP.monitor.xbmcplayer) + app.APP.player) self.subscription_manager = subscription_manager if utils.settings('plexCompanion') == 'true': diff --git a/resources/lib/plexbmchelper/listener.py b/resources/lib/plexbmchelper/listener.py index b1d387fd..807f96d4 100644 --- a/resources/lib/plexbmchelper/listener.py +++ b/resources/lib/plexbmchelper/listener.py @@ -134,7 +134,7 @@ class MyHandler(BaseHTTPRequestHandler): CLIENT_DICT[self.client_address[0]] = [] tracker = CLIENT_DICT[self.client_address[0]] tracker.append(self.client_address[1]) - while (not app.APP.monitor.xbmcplayer.isPlaying() and + while (not app.APP.player.isPlaying() and not app.APP.monitor.abortRequested() and sub_mgr.stop_sent_to_web and not (len(tracker) >= 4 and diff --git a/resources/lib/plexbmchelper/subscribers.py b/resources/lib/plexbmchelper/subscribers.py index d1c46410..0a6f7c27 100644 --- a/resources/lib/plexbmchelper/subscribers.py +++ b/resources/lib/plexbmchelper/subscribers.py @@ -124,8 +124,6 @@ class SubscriptionMgr(object): self.lastplayers = {} # In order to signal a stop to Plex Web ONCE on playback stop self.stop_sent_to_web = True - - self.xbmcplayer = player self.request_mgr = request_mgr def _server_by_host(self, host): diff --git a/resources/lib/service_entry.py b/resources/lib/service_entry.py index c2fec162..29b7b008 100644 --- a/resources/lib/service_entry.py +++ b/resources/lib/service_entry.py @@ -238,6 +238,7 @@ class Service(): app.init() # Some plumbing app.APP.monitor = kodimonitor.KodiMonitor() + app.APP.player = xbmc.Player() artwork.IMAGE_CACHING_SUSPENDS = [ app.SYNC.suspend_library_thread, app.SYNC.stop_sync,