From c45e2ec1599b06dd558b5d6c2bac504b8af31fbb Mon Sep 17 00:00:00 2001 From: mglae Date: Tue, 24 Nov 2020 19:32:14 +0100 Subject: [PATCH] chrome: fix getting default audio device Setting "audiooutput.audiodevice" was not found any more because settings format has be changed to version 2. Read the setting value via Kodi json RPC. --- .../addons/browser/chrome/source/default.py | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/addons/browser/chrome/source/default.py b/packages/addons/browser/chrome/source/default.py index 67a9607524..522ac38e7b 100644 --- a/packages/addons/browser/chrome/source/default.py +++ b/packages/addons/browser/chrome/source/default.py @@ -7,7 +7,7 @@ import sys import time import xbmcaddon import subprocess -from xml.dom.minidom import parse +import json sys.path.append('/usr/share/kodi/addons/service.libreelec.settings') @@ -59,21 +59,22 @@ def isRuning(pname): return False def getAudioDevice(): - try: - dom = parse("/storage/.kodi/userdata/guisettings.xml") - audiooutput=dom.getElementsByTagName('audiooutput') - for node in audiooutput: - dev = node.getElementsByTagName('audiodevice')[0].childNodes[0].nodeValue - if dev.startswith("ALSA:"): - dev = dev.split("ALSA:")[1] - if dev == "@": - return None - if dev.startswith("@:"): - dev = dev.split("@:")[1] - else: - # not ALSA + dev = json.loads(xbmc.executeJSONRPC(json.dumps({ + "jsonrpc": "2.0", + "method": "Settings.GetSettingValue", + "params": { + "setting": "audiooutput.audiodevice", + }, + "id": 1, + })))['result']['value'] + if dev.startswith("ALSA:"): + dev = dev.split("ALSA:")[1] + if dev == "@": return None - except: + if dev.startswith("@:"): + dev = dev.split("@:")[1] + else: + # not ALSA return None if dev.startswith("CARD="): dev = "plughw:" + dev