From f3bd3fab9e0713488072ab4aedd7c22bb8946fca Mon Sep 17 00:00:00 2001 From: awiouy Date: Sun, 18 Mar 2018 10:38:15 +0100 Subject: [PATCH 1/2] snapclient: always restart service --- packages/addons/service/snapclient/changelog.txt | 5 +++++ packages/addons/service/snapclient/package.mk | 2 +- .../addons/service/snapclient/source/bin/snapclient.start | 6 ++++-- .../addons/service/snapclient/source/resources/settings.xml | 2 +- .../snapclient/source/system.d/service.snapclient.service | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/addons/service/snapclient/changelog.txt b/packages/addons/service/snapclient/changelog.txt index ffbebe8438..506b29b22d 100644 --- a/packages/addons/service/snapclient/changelog.txt +++ b/packages/addons/service/snapclient/changelog.txt @@ -1,2 +1,7 @@ +101 +- Always restart service +- Improve latency setting +- Keep daemon state + 100 - Initial addon diff --git a/packages/addons/service/snapclient/package.mk b/packages/addons/service/snapclient/package.mk index f152b1d6ad..8320360062 100644 --- a/packages/addons/service/snapclient/package.mk +++ b/packages/addons/service/snapclient/package.mk @@ -18,7 +18,7 @@ PKG_NAME="snapclient" PKG_VERSION="0.13.0" -PKG_REV="100" +PKG_REV="101" PKG_ARCH="any" PKG_LICENSE="GPLv3" PKG_DEPENDS_TARGET="toolchain snapcast" diff --git a/packages/addons/service/snapclient/source/bin/snapclient.start b/packages/addons/service/snapclient/source/bin/snapclient.start index 5901fb9295..c3d8103082 100644 --- a/packages/addons/service/snapclient/source/bin/snapclient.start +++ b/packages/addons/service/snapclient/source/bin/snapclient.start @@ -43,9 +43,11 @@ esac [ -n "$sc_h" ] && sc_H="--hostID $sc_h" [ -n "$sc_s" ] && sc_S="--soundcard $sc_s" +HOME="$ADDON_HOME" \ +nice -n "$sc_n" \ snapclient \ - --daemon "$sc_n" \ $sc_H \ --latency "$sc_l" \ --port "$sc_p" \ - $sc_S + $sc_S \ + > /dev/null diff --git a/packages/addons/service/snapclient/source/resources/settings.xml b/packages/addons/service/snapclient/source/resources/settings.xml index fdbdf00ddf..cac0b3e312 100644 --- a/packages/addons/service/snapclient/source/resources/settings.xml +++ b/packages/addons/service/snapclient/source/resources/settings.xml @@ -6,7 +6,7 @@ - + diff --git a/packages/addons/service/snapclient/source/system.d/service.snapclient.service b/packages/addons/service/snapclient/source/system.d/service.snapclient.service index 3d472614c6..2c40b7db41 100644 --- a/packages/addons/service/snapclient/source/system.d/service.snapclient.service +++ b/packages/addons/service/snapclient/source/system.d/service.snapclient.service @@ -4,8 +4,8 @@ After=kodi.service network-online.target sound.target Requires=kodi.service network-online.target sound.target [Service] -Type=forking ExecStart=/bin/sh /storage/.kodi/addons/service.snapclient/bin/snapclient.start +Restart=always [Install] WantedBy=kodi.target From db6d5abd8af32e96a8b6ac31c43280d89d0fff42 Mon Sep 17 00:00:00 2001 From: awiouy Date: Wed, 21 Mar 2018 18:50:24 +0100 Subject: [PATCH 2/2] snapserver: add streaming from kodi --- .../addons/service/snapserver/changelog.txt | 5 +++ packages/addons/service/snapserver/package.mk | 3 +- .../snapserver/source/bin/snapserver.start | 41 +++++++++++++++---- .../snapserver/source/config/pulseaudio.conf | 6 +++ .../resources/language/English/strings.po | 6 +-- .../snapserver/source/resources/settings.xml | 5 +-- .../snapserver/source/settings-default.xml | 3 +- .../system.d/service.snapserver.service | 2 +- 8 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 packages/addons/service/snapserver/source/config/pulseaudio.conf diff --git a/packages/addons/service/snapserver/changelog.txt b/packages/addons/service/snapserver/changelog.txt index ffbebe8438..b2c0fa1580 100644 --- a/packages/addons/service/snapserver/changelog.txt +++ b/packages/addons/service/snapserver/changelog.txt @@ -1,2 +1,7 @@ +101 +- Add streaming from Kodi +- Keep daemon state +- Rework settings + 100 - Initial addon diff --git a/packages/addons/service/snapserver/package.mk b/packages/addons/service/snapserver/package.mk index 74d6fc6bb4..4598ecbcf3 100644 --- a/packages/addons/service/snapserver/package.mk +++ b/packages/addons/service/snapserver/package.mk @@ -18,7 +18,7 @@ PKG_NAME="snapserver" PKG_VERSION="0.13.0" -PKG_REV="100" +PKG_REV="101" PKG_ARCH="any" PKG_LICENSE="GPLv3" PKG_DEPENDS_TARGET="toolchain shairport-sync snapcast" @@ -30,6 +30,7 @@ PKG_AUTORECONF="no" PKG_IS_ADDON="yes" PKG_ADDON_NAME="Snapserver" PKG_ADDON_TYPE="xbmc.service" +PKG_ADDON_REQUIRES="service.librespot:0.0.0" PKG_MAINTAINER="Anton Voyl (awiouy)" make_target() { diff --git a/packages/addons/service/snapserver/source/bin/snapserver.start b/packages/addons/service/snapserver/source/bin/snapserver.start index 3cc71a6609..2741d2d581 100644 --- a/packages/addons/service/snapserver/source/bin/snapserver.start +++ b/packages/addons/service/snapserver/source/bin/snapserver.start @@ -20,20 +20,43 @@ . /etc/profile oe_setup_addon service.snapserver -case "$ss_ps" in +config="pulseaudio.conf" +link="/storage/.config/pulse-daemon.conf.d/50-snapserver.conf" +mkdir -p "$(dirname $link)" +ln -sf "$ADDON_HOME/$config" "$link" +if [ ! -e "$ADDON_HOME/$config" ]; then + cp "$ADDON_DIR/config/$config" "$ADDON_HOME" +fi + +file="/tmp/snapkodi" +sink_name="Snapserver" +if [ -z "$(pactl list short | grep $sink_name)" ]; then + pactl load-module module-pipe-sink \ + file="$file" \ + rate=48000 \ + sink_name="$sink_name" \ + sink_properties=device.description="$sink_name" +fi + +case "$ss_st" in Default) - ss_us="--stream pipe:///tmp/snapfifo?name=Default" + stream="pipe:///tmp/snapfifo?name=Default" ;; - Airplay) - ss_us="--stream airplay:///shairport-sync?name=Airplay" + Kodi) + stream="pipe://$file?name=Kodi" ;; Spotify) - ss_us="--stream spotify:///librespot?name=Spotify" + stream="spotify:///librespot?name=Spotify" + ;; + *) + stream="airplay:///shairport-sync?name=AirPlay" ;; esac +HOME="$ADDON_HOME" \ +nice -n "$ss_ni" \ snapserver \ - --controlPort "$ss_cp" \ - --daemon "$ss_ni" \ - --port "$ss_sp" \ - $ss_us + --controlPort "$ss_cp" \ + --port "$ss_sp" \ + --stream "$stream" \ + > /dev/null diff --git a/packages/addons/service/snapserver/source/config/pulseaudio.conf b/packages/addons/service/snapserver/source/config/pulseaudio.conf new file mode 100644 index 0000000000..a797abef70 --- /dev/null +++ b/packages/addons/service/snapserver/source/config/pulseaudio.conf @@ -0,0 +1,6 @@ +### Pulseaudio reads this file when it starts-up +### Uncomment or add options if you know what you are doing + +#resample-method = soxr-vhq +#default-sample-format = s16le +#default-sample-rate = 48000 diff --git a/packages/addons/service/snapserver/source/resources/language/English/strings.po b/packages/addons/service/snapserver/source/resources/language/English/strings.po index 2ee26e3825..e05d5b99d3 100644 --- a/packages/addons/service/snapserver/source/resources/language/English/strings.po +++ b/packages/addons/service/snapserver/source/resources/language/English/strings.po @@ -6,7 +6,7 @@ msgid "" msgstr "" msgctxt "#30000" -msgid "Snapserver" +msgid "Configuration" msgstr "" msgctxt "#30001" @@ -22,9 +22,5 @@ msgid "Priority" msgstr "" msgctxt "#30004" -msgid "Preset" -msgstr "" - -msgctxt "#30005" msgid "Stream" msgstr "" diff --git a/packages/addons/service/snapserver/source/resources/settings.xml b/packages/addons/service/snapserver/source/resources/settings.xml index 2a1ea8583a..ddf0e292e6 100644 --- a/packages/addons/service/snapserver/source/resources/settings.xml +++ b/packages/addons/service/snapserver/source/resources/settings.xml @@ -3,8 +3,7 @@ - - - + + diff --git a/packages/addons/service/snapserver/source/settings-default.xml b/packages/addons/service/snapserver/source/settings-default.xml index c414a13335..f171ffd427 100644 --- a/packages/addons/service/snapserver/source/settings-default.xml +++ b/packages/addons/service/snapserver/source/settings-default.xml @@ -1,7 +1,6 @@ - - + diff --git a/packages/addons/service/snapserver/source/system.d/service.snapserver.service b/packages/addons/service/snapserver/source/system.d/service.snapserver.service index 09232a23f5..2f83b72754 100644 --- a/packages/addons/service/snapserver/source/system.d/service.snapserver.service +++ b/packages/addons/service/snapserver/source/system.d/service.snapserver.service @@ -4,8 +4,8 @@ After=kodi.service network-online.target sound.target Requires=kodi.service network-online.target sound.target [Service] -Type=forking ExecStart=/bin/sh /storage/.kodi/addons/service.snapserver/bin/snapserver.start +Restart=always [Install] WantedBy=kodi.target