0
0
mirror of https://github.com/libretro/Lakka-LibreELEC.git synced 2025-02-07 20:59:51 +00:00
2024-11-14 22:22:38 +01:00

83 lines
2.0 KiB
Python

import xbmc
import utils
class Player(xbmc.Player):
@utils.logged_method
def __init__(self, target, file, librespot):
self._target = target
self.file = file
self._librespot = librespot
self._dnd_kodi = utils.get_setting("dnd_kodi") == "true"
self._was_playing_file = False
if not self._dnd_kodi or not self.isPlaying():
self._librespot.start()
def _on_playback_ended(self):
was_playing_file = self._was_playing_file
self._was_playing_file = False
if was_playing_file:
self._librespot.restart()
else:
self._librespot.start()
def is_playing_file(self):
return self.isPlaying() and self.getPlayingFile() == self.file
@utils.logged_method
def onAVStarted(self):
if self.is_playing_file():
self._was_playing_file = True
self.on_playback_started()
else:
self._was_playing_file = False
if self._dnd_kodi:
self._librespot.stop()
else:
self._librespot.start()
@utils.logged_method
def onPlayBackEnded(self):
self._on_playback_ended()
@utils.logged_method
def onPlayBackError(self):
self._on_playback_ended()
@utils.logged_method
def onPlayBackStopped(self):
self._on_playback_ended()
def on_playback_started(self):
pass
def do_paused(self, **_):
pass
def do_playing(self, **_):
pass
def do_position_correction(self, **_):
pass
def do_seeked(self, **_):
pass
@utils.logged_method
def do_stopped(self, **_):
if self._was_playing_file:
self._was_playing_file = False
self.stop()
@utils.logged_method
def do_track_changed(self, album="", art="", artist="", title="", **_):
if not self.isPlaying():
utils.notification(title, artist if artist else album, art)
def on_librespot_started(self):
pass
def on_librespot_stopped(self):
pass