Implement full NFC-URL streaming architecture

- rc522: add NDEF URL reading via WUPA+cascade anticoll+SELECT+TLV parse
- AudioPlayer: route http:// URIs to esp_player_http_music_play()
- CacheManager: download URLs async to /sdcard/cache/{hash}.{ext}
- TagPlayerControl: NDEF URL → cache-or-stream; fallback to UID local mapping
- RFIDInterface: wire ndef_callback, expose combined uid+url callback
- WebInterface: add /api/info, /api/storage, /api/playback, /api/bluetooth
- BluetoothInterface: stub for A2DP speaker mode
- Networking: WiFi connect with 30s timeout instead of blocking forever
- main.cpp: re-enable WiFi + web server, fix init order, add CacheManager
- www/: full SPA — playback controls, device info, storage, BT pairing
- .gitmodules: switch rc522 submodule URL to HTTPS

https://claude.ai/code/session_01MhAnh68DPNnTjcKqjNYDmk
This commit is contained in:
Claude committed 2026-06-12 19:44:54 +00:00
1 parent 98872d75df
commit bf9852c345
19 files changed
+1172 -318

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
#pragma once
/* Stub for Bluetooth A2DP speaker mode.
* When enabled the ESP32 advertises itself as a BT audio sink so a phone
* can pair and route music through the Kidsbox speaker.
* Full implementation requires the esp_bt + esp_a2dp components to be
* added to the build and CONFIG_BT_ENABLED=y in sdkconfig. */
class BluetoothInterface {
public:
BluetoothInterface();
bool isEnabled() const { return enabled; }
/* Toggle BT speaker mode on/off. Returns whether BT is now enabled. */
bool setEnabled(bool on);
private:
bool enabled = false;
};