mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2025-02-26 11:05:45 +00:00
Merge pull request #5683 from guillaumelecerf/feature/chrome-use-pulseaudio
chrome: use pulseaudio when available
This commit is contained in:
commit
46f810894d
@ -73,13 +73,14 @@ case $RASTER_MODE in
|
||||
esac
|
||||
|
||||
# alsa
|
||||
if [ ! -z $ALSA_DEVICE ]; then
|
||||
chrome_OPTS="$chrome_OPTS --alsa-output-device=$ALSA_DEVICE"
|
||||
if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then
|
||||
# stop pulseaudio when using an Alsa device
|
||||
systemctl stop pulseaudio
|
||||
if [ ! -z $ALSA_DEVICE ]; then
|
||||
chrome_OPTS="$chrome_OPTS --alsa-output-device=$ALSA_DEVICE"
|
||||
fi
|
||||
fi
|
||||
|
||||
# HACK!!! to get sound at Chrome stop pulseaudio
|
||||
systemctl stop pulseaudio
|
||||
|
||||
# start chrome
|
||||
LD_PRELOAD=/usr/lib/libGL.so $ADDON_DIR/chrome-bin/chrome \
|
||||
$chrome_OPTS \
|
||||
@ -100,6 +101,8 @@ then
|
||||
chrome_OPTS="$chrome_OPTS --force-dark-mode"
|
||||
fi
|
||||
|
||||
# HACK!!! to get sound at Kodi start pulseaudio
|
||||
sleep 5
|
||||
systemctl start pulseaudio
|
||||
if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then
|
||||
# restart pulseaudio when using an Alsa device
|
||||
systemctl start pulseaudio
|
||||
fi
|
||||
|
@ -35,13 +35,17 @@ def startchrome(args):
|
||||
new_env['RASTER_MODE'] = __addon__.getSetting('RASTER_MODE')
|
||||
new_env['DARK_MODE'] = __addon__.getSetting('DARK_MODE')
|
||||
|
||||
new_env['ALSA_DEVICE'] = ''
|
||||
if __addon__.getSetting('USE_CUST_AUDIODEVICE') == 'true':
|
||||
alsa_device = __addon__.getSetting('CUST_AUDIODEVICE_STR')
|
||||
audio_device = __addon__.getSetting('CUST_AUDIODEVICE_STR')
|
||||
else:
|
||||
alsa_device = getAudioDevice()
|
||||
if not alsa_device == None and not alsa_device == '':
|
||||
new_env['ALSA_DEVICE'] = alsa_device
|
||||
audio_device = getAudioDevice()
|
||||
|
||||
new_env['AUDIO_DEVICE_TYPE'] = getAudioDeviceType(audio_device)
|
||||
if new_env['AUDIO_DEVICE_TYPE'] == "ALSA":
|
||||
new_env['ALSA_DEVICE'] = ''
|
||||
alsa_device = getAlsaAudioDevice(audio_device)
|
||||
if not alsa_device == None and not alsa_device == '':
|
||||
new_env['ALSA_DEVICE'] = alsa_device
|
||||
|
||||
chrome_params = args + ' ' + \
|
||||
__addon__.getSetting('HOMEPAGE')
|
||||
@ -57,7 +61,7 @@ def isRuning(pname):
|
||||
return False
|
||||
|
||||
def getAudioDevice():
|
||||
dev = json.loads(xbmc.executeJSONRPC(json.dumps({
|
||||
return json.loads(xbmc.executeJSONRPC(json.dumps({
|
||||
"jsonrpc": "2.0",
|
||||
"method": "Settings.GetSettingValue",
|
||||
"params": {
|
||||
@ -65,15 +69,20 @@ def getAudioDevice():
|
||||
},
|
||||
"id": 1,
|
||||
})))['result']['value']
|
||||
|
||||
def getAudioDeviceType(dev):
|
||||
if dev.startswith("ALSA:"):
|
||||
dev = dev.split("ALSA:")[1]
|
||||
if dev == "@":
|
||||
return None
|
||||
if dev.startswith("@:"):
|
||||
dev = dev.split("@:")[1]
|
||||
else:
|
||||
# not ALSA
|
||||
return "ALSA"
|
||||
if dev.startswith("PULSE:"):
|
||||
return "PULSE"
|
||||
return None
|
||||
|
||||
def getAlsaAudioDevice(dev):
|
||||
dev = dev.split("ALSA:")[1]
|
||||
if dev == "@":
|
||||
return None
|
||||
if dev.startswith("@:"):
|
||||
dev = dev.split("@:")[1]
|
||||
if dev.startswith("CARD="):
|
||||
dev = "plughw:" + dev
|
||||
return dev
|
||||
|
Loading…
x
Reference in New Issue
Block a user