// Spotify Connect (cspot). Project code; GPL-3.0 through cspot. #pragma once #include #include #include "esp_err.h" #ifdef __cplusplus extern "C" { #endif typedef enum { SPOTIFY_EV_PLAY, // playback (re)started or resumed SPOTIFY_EV_PAUSE, SPOTIFY_EV_FLUSH, // skip, seek, new track: drop buffered audio SPOTIFY_EV_VOLUME, // value: 0..65535 } spotify_event_t; // PCM from Spotify: 44.1 kHz stereo s16 interleaved. Return the frames taken (may block). typedef size_t (*spotify_pcm_cb_t)(const int16_t *pcm, size_t frames); typedef void (*spotify_event_cb_t)(spotify_event_t ev, int value); // Registers the zeroconf endpoints (/spotify_info) and, when source.mode is spotify/auto and the // client credentials are set, advertises the device and starts the session task. esp_err_t spotify_init(spotify_pcm_cb_t pcm, spotify_event_cb_t event); // Current state for status.spotify_state. const char *spotify_state(void); #ifdef __cplusplus } #endif