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,11 +59,14 @@ 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",
},
"id": 1,
})))['result']['value']
if dev.startswith("ALSA:"): if dev.startswith("ALSA:"):
dev = dev.split("ALSA:")[1] dev = dev.split("ALSA:")[1]
if dev == "@": if dev == "@":
@ -73,8 +76,6 @@ def getAudioDevice():
else: else:
# not ALSA # not ALSA
return None return None
except:
return None
if dev.startswith("CARD="): if dev.startswith("CARD="):
dev = "plughw:" + dev dev = "plughw:" + dev
return dev return dev