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

61 lines
1.8 KiB
Python

import time
import xbmcgui
import player
import spotify
import utils
class Player(player.Player):
@utils.logged_method
def __init__(self, target, file, librespot):
super().__init__(target, file, librespot)
self._list_item = xbmcgui.ListItem(path=self.file)
self._list_item.setProperties(
{
"inputstream": "inputstream.ffmpeg",
}
)
self._info_tag_music = self._list_item.getMusicInfoTag()
self._is_paused = False
def _do_playing(self, paused, position=0.0, then=0.0, **_):
self._is_paused = paused
if self.is_playing_file():
self.do_seeked(position, then)
else:
self._position = position
self._then = then
self.play(self.file, self._list_item)
@utils.logged_method
def do_paused(self, **kwargs):
self._do_playing(True, **kwargs)
@utils.logged_method
def do_playing(self, **kwargs):
self._do_playing(False, **kwargs)
@utils.logged_method
def do_seeked(self, position=0.0, then=0.0, **_):
if self._is_paused:
self.seekTime(position)
self.pause()
else:
self.seekTime(position - then + time.time())
@utils.logged_method
def do_track_changed(self, album="", art="", artist="", duration=0.0, title="", **_):
fanart = spotify.get_fanart(art)
self._list_item.setArt({"fanart": fanart, "thumb": art})
self._info_tag_music.setAlbum(album)
self._info_tag_music.setArtist(artist)
self._info_tag_music.setDuration(duration)
self._info_tag_music.setTitle(title)
if self.is_playing_file():
self.updateInfoTag(self._list_item)
@utils.logged_method
def on_playback_started(self):
self.do_seeked(self._position, self._then)