feat: implement core Roku ECP adapter
Add SSDP discovery plus the main ECP app, state, and key control flows so Milestone 2 has a working Roku foundation with parser and key-mapping tests.
This commit is contained in:
+12
-11
@@ -14,7 +14,7 @@ Foundation scaffold is complete. Begin platform implementation work.
|
||||
|
||||
## In Progress
|
||||
|
||||
_Nothing in progress yet._
|
||||
- Roku adapter `dev_install()` and `dev_logs()` need developer-web credential handling plus real-device validation
|
||||
|
||||
---
|
||||
|
||||
@@ -28,18 +28,18 @@ _Completed 2026-04-14. See Completed below._
|
||||
## Milestone 2 — Roku Adapter
|
||||
_Goal: Can communicate with a real Roku TV over ECP._
|
||||
|
||||
- [ ] Implement Roku ECP adapter in `src/adapters/roku/`
|
||||
- [ ] `discover()` — SSDP scan returning Roku devices
|
||||
- [ ] `list_apps()` — fetch installed channel list via ECP
|
||||
- [ ] `launch()` — launch app by ECP channel ID
|
||||
- [ ] `stop_app()` — exit current app
|
||||
- [ ] `key()` — send ECP keypress
|
||||
- [ ] `sequence()` — send multiple keypresses
|
||||
- [ ] `state()` — query power state and active app
|
||||
- [x] 2026-04-14 — Implement core Roku ECP adapter in `src/adapters/roku/`
|
||||
- [x] 2026-04-14 — `discover()` — SSDP scan returning Roku devices
|
||||
- [x] 2026-04-14 — `list_apps()` — fetch installed channel list via ECP
|
||||
- [x] 2026-04-14 — `launch()` — launch app by ECP channel ID
|
||||
- [x] 2026-04-14 — `stop_app()` — exit current app
|
||||
- [x] 2026-04-14 — `key()` — send ECP keypress
|
||||
- [x] 2026-04-14 — `sequence()` — send multiple keypresses
|
||||
- [x] 2026-04-14 — `state()` — query power state and active app
|
||||
- [ ] `dev_install()` — zip upload via ECP dev mode
|
||||
- [ ] `dev_reload()` — reload sideloaded app
|
||||
- [x] 2026-04-14 — `dev_reload()` — reload the sideloaded app via `launch/dev`
|
||||
- [ ] `dev_logs()` — fetch dev logs
|
||||
- [ ] Key translation table (TvKey → Roku ECP key string)
|
||||
- [x] 2026-04-14 — Key translation table (TvKey → Roku ECP key string)
|
||||
- [ ] Manual integration test against real Roku device
|
||||
|
||||
---
|
||||
@@ -155,6 +155,7 @@ out of scope until Milestone 6 is complete and stable.
|
||||
- [x] 2026-04-14 — Create module skeleton and placeholder docs layout
|
||||
- [x] 2026-04-14 — Define the adapter contract and core shared data types
|
||||
- [x] 2026-04-14 — Compile the project cleanly with `cargo build`
|
||||
- [x] 2026-04-14 — Add Roku ECP discovery, input, app, and state adapter support with unit tests
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user