|
|
|
@ -16,6 +16,7 @@ from openpilot.common.realtime import Ratekeeper |
|
|
|
|
from openpilot.common.swaglog import cloudlog |
|
|
|
|
|
|
|
|
|
SAMPLE_RATE = 48000 |
|
|
|
|
SAMPLE_BUFFER = 4096 # (approx 100ms) |
|
|
|
|
MAX_VOLUME = 1.0 |
|
|
|
|
MIN_VOLUME = 0.1 |
|
|
|
|
CONTROLS_TIMEOUT = 5 # 5 seconds |
|
|
|
@ -133,11 +134,11 @@ class Soundd: |
|
|
|
|
if TICI: |
|
|
|
|
micd.wait_for_devices(sd) # wait for alsa to be initialized on device |
|
|
|
|
|
|
|
|
|
with sd.OutputStream(channels=1, samplerate=SAMPLE_RATE, callback=self.callback) as stream: |
|
|
|
|
with sd.OutputStream(channels=1, samplerate=SAMPLE_RATE, callback=self.callback, blocksize=SAMPLE_BUFFER) as stream: |
|
|
|
|
rk = Ratekeeper(20) |
|
|
|
|
sm = messaging.SubMaster(['controlsState', 'microphone']) |
|
|
|
|
|
|
|
|
|
cloudlog.info(f"soundd stream started: {stream.samplerate=} {stream.channels=} {stream.dtype=} {stream.device=}") |
|
|
|
|
cloudlog.info(f"soundd stream started: {stream.samplerate=} {stream.channels=} {stream.dtype=} {stream.device=}, {stream.blocksize=}") |
|
|
|
|
while True: |
|
|
|
|
sm.update(0) |
|
|
|
|
|
|
|
|
|