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.
This commit is contained in:
mglae 2020-11-24 19:32:14 +01:00
parent 1b2f78956b
commit c45e2ec159

View File

@ -7,7 +7,7 @@ import sys
import time import time
import xbmcaddon import xbmcaddon
import subprocess import subprocess
from xml.dom.minidom import parse import json
sys.path.append('/usr/share/kodi/addons/service.libreelec.settings') sys.path.append('/usr/share/kodi/addons/service.libreelec.settings')
@ -59,21 +59,22 @@ def isRuning(pname):
return False return False
def getAudioDevice(): def getAudioDevice():
try: dev = json.loads(xbmc.executeJSONRPC(json.dumps({
dom = parse("/storage/.kodi/userdata/guisettings.xml") "jsonrpc": "2.0",
audiooutput=dom.getElementsByTagName('audiooutput') "method": "Settings.GetSettingValue",
for node in audiooutput: "params": {
dev = node.getElementsByTagName('audiodevice')[0].childNodes[0].nodeValue "setting": "audiooutput.audiodevice",
if dev.startswith("ALSA:"): },
dev = dev.split("ALSA:")[1] "id": 1,
if dev == "@": })))['result']['value']
return None if dev.startswith("ALSA:"):
if dev.startswith("@:"): dev = dev.split("ALSA:")[1]
dev = dev.split("@:")[1] if dev == "@":
else:
# not ALSA
return None return None
except: if dev.startswith("@:"):
dev = dev.split("@:")[1]
else:
# not ALSA
return None return None
if dev.startswith("CARD="): if dev.startswith("CARD="):
dev = "plughw:" + dev dev = "plughw:" + dev