mirror of
https://github.com/sweidac/kidsbox.git
synced 2026-10-28 06:52:57 +01:00
- 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
30 lines
655 B
C++
30 lines
655 B
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <esp_player_wrapper.h>
|
|
|
|
class AudioPlayer {
|
|
void* playerHandle;
|
|
std::string lastUri;
|
|
|
|
public:
|
|
AudioPlayer();
|
|
|
|
/* Play URI. http:// / https:// URIs stream via HTTP; anything else plays from SD card.
|
|
* Re-placing the same URI resumes rather than restarting. */
|
|
void play(const std::string& uri);
|
|
|
|
void pause();
|
|
void stop();
|
|
|
|
int getVolume();
|
|
void setVolume(int vol);
|
|
|
|
bool isPlaying() const;
|
|
const std::string& getCurrentUri() const { return lastUri; }
|
|
|
|
private:
|
|
bool isHttpUri(const std::string& uri) const;
|
|
bool isLastUri(const std::string& uri) const;
|
|
};
|