53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
#!/usr/bin/python3
|
|
|
|
|
|
import os
|
|
import time
|
|
import utils
|
|
import typing
|
|
import subprocess
|
|
|
|
|
|
def start_PA() -> bool:
|
|
# Ensure pulseaudio is available
|
|
retcode = os.system('pulseaudio --check')
|
|
if retcode == 0:
|
|
utils.log('Stopping pulse audio...')
|
|
retcode = os.system('pulseaudio --kill')
|
|
if retcode != 0:
|
|
utils.log(f'pulseaudio failed to stop, exit code: {retcode}')
|
|
# return False
|
|
|
|
# Wait 5 second
|
|
utils.log('Waiting 5s for pulseaudio stop...')
|
|
time.sleep(5.0)
|
|
|
|
utils.log('Starting pulseaudio...')
|
|
retcode = os.system('pulseaudio --start')
|
|
if retcode != 0:
|
|
utils.log(f'pulseaudio failed to start, exit code: {retcode}')
|
|
return False
|
|
|
|
# Check if module-bluetooth-discover is available
|
|
retcode, output = subprocess.getstatusoutput('/usr/bin/pacmd list modules | /usr/bin/grep module-bluetooth-discover')
|
|
if retcode == 0:
|
|
if 'module-bluetooth-discover' in output:
|
|
utils.log('PA module-bluetooth-discover is loaded already.')
|
|
return True
|
|
else:
|
|
utils.log('PA module-bluetooth-discover is not loaded yet.')
|
|
|
|
utils.log('Attempt to load module-bluetooth-discover...')
|
|
retcode = os.system('pacmd load-module module-bluetooth-discover')
|
|
if retcode != 0:
|
|
utils.log_error(f' Failed to load module-bluetooth-discover, exit code: {retcode}')
|
|
return False
|
|
else:
|
|
utils.log(' Load success.')
|
|
|
|
return True
|
|
|
|
if __name__ == '__main__':
|
|
start_PA()
|
|
|