diff --git a/packages/addons/service/snapclient/changelog.txt b/packages/addons/service/snapclient/changelog.txt
index d26d5da3be..4e382115df 100644
--- a/packages/addons/service/snapclient/changelog.txt
+++ b/packages/addons/service/snapclient/changelog.txt
@@ -1,3 +1,7 @@
+106
+- Fixed issue when listing sound cards
+- Added the option to specify the snapcast server host address
+
105
- aixlog: update to 1.5.0
- snapcast: update to 0.24.0
diff --git a/packages/addons/service/snapclient/package.mk b/packages/addons/service/snapclient/package.mk
index 1693d88435..883d558d46 100644
--- a/packages/addons/service/snapclient/package.mk
+++ b/packages/addons/service/snapclient/package.mk
@@ -3,7 +3,7 @@
PKG_NAME="snapclient"
PKG_VERSION="0.24.0"
-PKG_REV="105"
+PKG_REV="106"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"
PKG_DEPENDS_TARGET="toolchain alsa-plugins snapcast"
diff --git a/packages/addons/service/snapclient/source/addon.py b/packages/addons/service/snapclient/source/addon.py
index 3866e1adb1..7ba889c28a 100644
--- a/packages/addons/service/snapclient/source/addon.py
+++ b/packages/addons/service/snapclient/source/addon.py
@@ -9,9 +9,10 @@ import xbmcgui
SNAPCLIENT = os.path.join(
xbmcaddon.Addon().getAddonInfo('path'), 'bin', 'snapclient')
+line = ''
card = ''
cards = []
-lines = subprocess.check_output([SNAPCLIENT, '--list']).splitlines()
+lines = subprocess.run([SNAPCLIENT, '--list'], capture_output=True, text=True).stdout.splitlines()
for line in lines:
if line != '':
@@ -20,6 +21,10 @@ for line in lines:
cards.append(card)
card = ''
+# If last line was not empty, make sure to add the last card
+if line != '' and card != '':
+ cards.append(card)
+
dialog = xbmcgui.Dialog()
dialog.select(xbmcaddon.Addon().getLocalizedString(30015), cards)
del dialog
diff --git a/packages/addons/service/snapclient/source/bin/snapclient.start b/packages/addons/service/snapclient/source/bin/snapclient.start
index fd23b8f5e7..f46d6f046d 100644
--- a/packages/addons/service/snapclient/source/bin/snapclient.start
+++ b/packages/addons/service/snapclient/source/bin/snapclient.start
@@ -28,12 +28,14 @@ esac
[ -n "$sc_h" ] && sc_H="--hostID $sc_h"
[ -n "$sc_s" ] && sc_S="--soundcard $sc_s"
+[ -n "$sc_addr" ] && HOST="--host $sc_addr"
HOME="$ADDON_HOME" \
nice -n "$sc_n" \
snapclient \
$sc_H \
--latency "$sc_l" \
+ $HOST \
--port "$sc_p" \
$sc_S \
> /dev/null
diff --git a/packages/addons/service/snapclient/source/resources/language/English/strings.po b/packages/addons/service/snapclient/source/resources/language/English/strings.po
index 12eb6aa994..b346779ae5 100644
--- a/packages/addons/service/snapclient/source/resources/language/English/strings.po
+++ b/packages/addons/service/snapclient/source/resources/language/English/strings.po
@@ -68,3 +68,7 @@ msgstr ""
msgctxt "#30015"
msgid "Available sound cards"
msgstr ""
+
+msgctxt "#30016"
+msgid "Server"
+msgstr ""
diff --git a/packages/addons/service/snapclient/source/resources/settings.xml b/packages/addons/service/snapclient/source/resources/settings.xml
index cac0b3e312..59c01539ba 100644
--- a/packages/addons/service/snapclient/source/resources/settings.xml
+++ b/packages/addons/service/snapclient/source/resources/settings.xml
@@ -3,8 +3,9 @@
-
+
+
diff --git a/packages/addons/service/snapclient/source/settings-default.xml b/packages/addons/service/snapclient/source/settings-default.xml
index 77fb284747..52121932d9 100644
--- a/packages/addons/service/snapclient/source/settings-default.xml
+++ b/packages/addons/service/snapclient/source/settings-default.xml
@@ -4,6 +4,7 @@
false
0
-3
+
1704
0