diff --git a/packages/addons/service/librespot/changelog.txt b/packages/addons/service/librespot/changelog.txt index 6c3d139237..fc23063611 100644 --- a/packages/addons/service/librespot/changelog.txt +++ b/packages/addons/service/librespot/changelog.txt @@ -1,3 +1,7 @@ +108 +- Correct bug which prevented disabling the service from Kodi +- Place named pipe in /var/run/librespot + 107 - Update to ddfc28f diff --git a/packages/addons/service/librespot/package.mk b/packages/addons/service/librespot/package.mk index 1bc01193bd..fe498ce23c 100644 --- a/packages/addons/service/librespot/package.mk +++ b/packages/addons/service/librespot/package.mk @@ -19,7 +19,7 @@ PKG_NAME="librespot" PKG_VERSION="ddfc28f" -PKG_REV="107" +PKG_REV="108" PKG_ARCH="any" PKG_LICENSE="MIT" PKG_SITE="https://github.com/plietar/$PKG_NAME/" diff --git a/packages/addons/service/librespot/source/bin/librespot.start b/packages/addons/service/librespot/source/bin/librespot.start index c496dc61c8..edc8b701f5 100755 --- a/packages/addons/service/librespot/source/bin/librespot.start +++ b/packages/addons/service/librespot/source/bin/librespot.start @@ -119,6 +119,6 @@ if [ -z "$(pactl list short modules | grep source=$LS_SINK.monitor)" ]; then destination_ip=127.0.0.1 port="$LS_PORT" source_ip=127.0.0.1 > /dev/null fi -export LS_FIFO="$ADDON_DIR/rc" +export LS_FIFO="/var/run/librespot" eval $LIBRESPOT diff --git a/packages/addons/service/librespot/source/default.py b/packages/addons/service/librespot/source/default.py index c5e98fe35d..fd044fd7d1 100644 --- a/packages/addons/service/librespot/source/default.py +++ b/packages/addons/service/librespot/source/default.py @@ -25,6 +25,7 @@ import xbmc import xbmcaddon import xbmcgui + PORT = '6666' SINK = 'librespot_sink' @@ -38,7 +39,7 @@ def systemctl(command): class Controller(threading.Thread): - FIFO = os.path.join(xbmcaddon.Addon().getAddonInfo('path'), 'rc') + FIFO = '/var/run/librespot' def __init__(self, player): super(Controller, self).__init__() @@ -65,13 +66,15 @@ class Controller(threading.Thread): self.player.play() elif command[0] == 'stop': self.player.stop() - - def stop(self): try: os.unlink(self.FIFO) except OSError: pass + def stop(self): + with open(self.FIFO, 'w') as fifo: + fifo.close() + class Player(xbmc.Player): @@ -79,7 +82,6 @@ class Player(xbmc.Player): def __init__(self): super(Player, self).__init__(self) - self.window = xbmcgui.Window(12006) if self.isPlaying(): self.onPlayBackStarted() @@ -104,7 +106,7 @@ class Player(xbmc.Player): listitem.setArt({'thumb': xbmcaddon.Addon().getAddonInfo('icon')}) super(Player, self).play(self.ITEM, listitem) del listitem - self.window.show() + xbmcgui.Window(12006).show() def stop(self): suspendSink('1') @@ -130,3 +132,4 @@ if __name__ == '__main__': controller.start() Monitor(player).waitForAbort() controller.stop() + controller.join()