Another try for lag.

This commit is contained in:
Storm Dragon
2026-07-26 21:42:53 -04:00
parent 17b6e6f909
commit 186512f79a
2 changed files with 23 additions and 1 deletions
@@ -18,6 +18,7 @@ class driver(dectalkDriver.driver):
immediate_endpoint = 0x04 immediate_endpoint = 0x04
packet_size = 64 packet_size = 64
write_timeout = 1000 write_timeout = 1000
buffer_timeout_command = b"[:timeout 1]"
def __init__(self): def __init__(self):
super().__init__() super().__init__()
@@ -90,6 +91,11 @@ class driver(dectalkDriver.driver):
raise RuntimeError(f"DECtalk USB open failed: {error}") from error raise RuntimeError(f"DECtalk USB open failed: {error}") from error
self.usb_device = usb_device self.usb_device = usb_device
self._write_endpoint(
self.speech_endpoint,
self.buffer_timeout_command,
"buffer timeout",
)
self._is_initialized = True self._is_initialized = True
self._stop_worker = False self._stop_worker = False
self.worker_thread = threading.Thread( self.worker_thread = threading.Thread(
+17 -1
View File
@@ -107,7 +107,7 @@ def build_environment():
} }
def initialized_driver(monkeypatch): def initialized_driver(monkeypatch, clear_startup_writes=True):
device = FakeUsbDevice() device = FakeUsbDevice()
usb_core = FakeUsbCore(device) usb_core = FakeUsbCore(device)
usb_util = FakeUsbUtil() usb_util = FakeUsbUtil()
@@ -118,6 +118,8 @@ def initialized_driver(monkeypatch):
lambda: (usb_core, usb_util), lambda: (usb_core, usb_util),
) )
speech_driver.initialize(build_environment()) speech_driver.initialize(build_environment())
if clear_startup_writes:
device.writes.clear()
return speech_driver, device, usb_core, usb_util return speech_driver, device, usb_core, usb_util
@@ -142,6 +144,17 @@ def test_dectalk_usb_driver_finds_and_claims_native_device(monkeypatch):
assert usb_util.disposed == [device] assert usb_util.disposed == [device]
def test_dectalk_usb_driver_sets_low_buffer_timeout_on_initialize(monkeypatch):
speech_driver, device, _, _ = initialized_driver(
monkeypatch,
clear_startup_writes=False,
)
try:
assert device.writes[0] == (0x02, b"[:timeout 1]", 1000)
finally:
speech_driver.shutdown()
def test_dectalk_usb_driver_writes_commands_and_speech(monkeypatch): def test_dectalk_usb_driver_writes_commands_and_speech(monkeypatch):
speech_driver, device, _, _ = initialized_driver(monkeypatch) speech_driver, device, _, _ = initialized_driver(monkeypatch)
try: try:
@@ -212,6 +225,7 @@ def test_dectalk_usb_cancel_bypasses_blocked_normal_write(monkeypatch):
lambda: (usb_core, usb_util), lambda: (usb_core, usb_util),
) )
speech_driver.initialize(build_environment()) speech_driver.initialize(build_environment())
device.writes.clear()
normal_thread = threading.Thread( normal_thread = threading.Thread(
target=speech_driver._write_bytes, target=speech_driver._write_bytes,
args=(b"normal speech", "speech"), args=(b"normal speech", "speech"),
@@ -240,6 +254,8 @@ def test_dectalk_usb_cancel_stops_current_speech_upload(monkeypatch):
lambda: (usb_core, usb_util), lambda: (usb_core, usb_util),
) )
speech_driver.initialize(build_environment()) speech_driver.initialize(build_environment())
device.writes.clear()
device.first_normal_write_started.clear()
normal_thread = threading.Thread( normal_thread = threading.Thread(
target=speech_driver._write_bytes, target=speech_driver._write_bytes,
args=(b"x" * 192, "speech"), args=(b"x" * 192, "speech"),