diff --git a/.claude-context/00-overview.md b/.claude-context/00-overview.md new file mode 100644 index 0000000..60e1346 --- /dev/null +++ b/.claude-context/00-overview.md @@ -0,0 +1,30 @@ +# Moonlight Drive-In + +NFC-triggered video player for a home "drive-in" theatre: scanning a tag plays the mapped movie on a seamless dual-MPV player, with a web remote, network NFC clients and relay-controlled effects. + +**Repository:** https://gitea.hideawaygaming.com.au/jessikitty/moonlight-drive-in + +## Architecture +- **Player:** `mpv_seamless_player.py` / `web_mpv_main.py` — two MPV instances for gapless transitions; anti-repeat logic; manual and auto-cycle modes +- **Web:** `web_interface.py` — Flask + SocketIO remote/gallery on port 8547; API `POST /api/video/play` `{"nfc_id": ...}`, `POST /api/video/skip`, `GET /api/stats` +- **Mappings:** `key_mapping.txt` (tag → video), `folder_mapping.txt` (tag → folder sequence), `gallery_config.json` (web UI) +- **Clients:** `clients/` — GUI/CLI/auto-connect network NFC clients with global input capture (`pynput`) +- **Effects:** `esp32_relay_controller.py` + `theatre_automation.py` — ESP32 Bluetooth relay +- **Deploy:** Windows host, runs from `E:\DriveIn\`, batch launchers + +## Related Repos +- `lego-dimensions-reader` — LEGO Dimensions portal as a multi-pad NFC reader with LED effects (planned replacement for the ACR122) +- `video-player-log-analyzer` — HTML log analysis/report tool +- `esp32-bluetooth-relay` — relay firmware + +## Conventions +- Tkinter updates from threads go through `root.after(0, ...)` +- Console output is ASCII-only (`[WEB]`, `[VIDEO]`) — no emoji +- Don't commit IPs beyond the LAN default; VPN addresses are `` + +## Session Log +- 2025-12-15 — ESP32 Bluetooth Relay Theatre Automation — Added relay driver and theatre automation layer over Bluetooth serial +- 2025-12-24 — NFC Network Client, Global Input Capture and Smart Connect — Remote NFC clients, focus-independent scanning, verified smart connect and 5-second CLI auto-start + +--- +*Created by: Jess Rogerson (yelling commands at Claude.AI)*