Mercurial > code > home > repos > racc
diff volume_linux.py @ 1:04c8a1b3976b
volume r/w on linux+osx
author | drewp@bigasterisk.com |
---|---|
date | Fri, 03 Mar 2023 21:24:53 -0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/volume_linux.py Fri Mar 03 21:24:53 2023 -0800 @@ -0,0 +1,30 @@ +from pulsectl_asyncio import PulseAsync + +_pulse = None + + +async def _init(): + global _pulse + if _pulse is not None: + return + _pulse = PulseAsync('racc') + await _pulse.connect() + + +async def _get_sink(): + [sink] = [ + s for s in (await _pulse.sink_list()) + if s.description == 'Built-in Audio Analog Stereo' + ] + return sink + + +async def get_volume(): + await _init() + return (await _get_sink()).volume.value_flat + + +async def set_volume(v: float): + await _init() + sync = await _get_sink() + await _pulse.volume_set_all_chans(sink, v)