Thomas Farstrike
29af03e6b3
stream_record.py: avoid seeking by writing large file size
2025-12-17 23:34:27 +01:00
Thomas Farstrike
d2f80dbfc9
stream_record.py: add periodic flushing
2025-12-17 23:00:08 +01:00
Thomas Farstrike
ddf8656943
Improve recording UX
2025-12-17 22:52:57 +01:00
Thomas Farstrike
9286260453
Fix delay when finalizing sound recording
2025-12-17 22:20:24 +01:00
Thomas Farstrike
da9f912ab7
AudioFlinger: add support for I2S microphone recording to WAV
2025-12-17 21:49:51 +01:00
Thomas Farstrike
e64b475b10
AudioFlinger: revert to threaded method
...
The TaskManager (asyncio) was jittery when under heavy CPU load.
2025-12-17 20:07:51 +01:00
Thomas Farstrike
4836db557b
stream_wav.py: back to 8192 chunk size
...
Still jitters during QuasiBird.
2025-12-17 19:36:32 +01:00
Thomas Farstrike
736b146eda
Increment version number
2025-12-17 19:14:29 +01:00
Thomas Farstrike
740f239acc
fix(ui/testing): use send_event for reliable label clicks in tests
...
click_label() now detects clickable parent containers and uses
send_event(lv.EVENT.CLICKED) instead of simulate_click() for more
reliable UI test interactions.
This fixes sporadic failures in test_graphical_imu_calibration_ui_bug.py
where clicking "Check IMU Calibration" would sometimes fail because
simulate_click() wasn't reliably triggering the click event on the
parent container.
- Add use_send_event parameter to click_label() (default: True)
- Detect clickable parent containers and send events directly to them
- Verified with 15 consecutive test runs (100% pass rate)
2025-12-17 19:09:40 +01:00
Thomas Farstrike
afe8434bc7
AudioFlinger: eliminate thread by using TaskManager (asyncio)
...
Also simplify, and move all testing mocks to a dedicated file.
2025-12-17 17:03:42 +01:00
Thomas Farstrike
23a8f92ea9
OSUpdate app: show download speed
...
DownloadManager: add support for download speed
2025-12-17 15:02:31 +01:00
Thomas Farstrike
5dd24090f4
Move download_url() to DownloadManager
2025-12-17 12:26:02 +01:00
Thomas Farstrike
ac7daa0018
WebSocket: fix asyncio task not always stopping
2025-12-15 12:00:27 +01:00
Thomas Farstrike
2d8a26b3cb
TaskManager: return task just like asyncio.create_task()
2025-12-15 11:59:47 +01:00
Thomas Farstrike
658b999929
TaskManager: comments
2025-12-12 09:58:34 +01:00
Thomas Farstrike
7b4d08d432
TaskManager: add disable() functionality and fix unit tests
2025-12-11 22:07:04 +01:00
Thomas Farstrike
3cd66da3c4
TaskManager: simplify
2025-12-11 21:11:59 +01:00
Thomas Farstrike
8a72f3f343
TaskManager: add stop and start functions
2025-12-11 21:01:29 +01:00
Thomas Farstrike
6a9ae7238e
Appstore app: allow time to update UI
2025-12-11 19:42:46 +01:00
Thomas Farstrike
e1964abfa2
Add /lib/aiorepl.py
2025-12-11 19:42:16 +01:00
Thomas Farstrike
70cd00b50e
Improve name of aiorepl coroutine
2025-12-11 19:29:50 +01:00
Thomas Farstrike
7ba45e692e
TaskManager: without new thread works but blocks REPL
...
aiorepl (asyncio REPL) works but it's pretty limited
It's probably fine for production, but it means the user has to sys.exit()
in aiorepl before landing on the real interactive REPL, with asyncio tasks stopped.
2025-12-11 19:02:40 +01:00
Thomas Farstrike
c0b9f68ae8
AppStore app: eliminate thread
2025-12-11 14:38:12 +01:00
Thomas Farstrike
5936dafd7e
TaskManager: normal stack size for asyncio thread
2025-12-11 14:37:41 +01:00
Thomas Farstrike
eec5c7ce3a
Comments
2025-12-11 14:25:12 +01:00