10#pragma GCC diagnostic ignored "-Wunused-variable"
11#pragma GCC diagnostic ignored "-Wunused-function"
12#pragma GCC diagnostic ignored "-Wvla"
13#pragma GCC diagnostic ignored "-Wsign-compare"
14#pragma GCC diagnostic ignored "-Woverloaded-virtual"
15#pragma GCC diagnostic ignored "-Wdouble-promotion"
17#define AUDIOTOOLS_VERSION "1.2.4"
18#define AUDIOTOOLS_MAJOR_VERSION 1
19#define AUDIOTOOLS_MINOR_VERSION 2
30#if __has_include("AudioConfigLocal.h")
31#include "AudioConfigLocal.h"
35#ifndef AUDIO_INCLUDE_CORE
36# define AUDIO_INCLUDE_CORE true
40#ifndef USE_AUDIOTOOLS_NS
41# define USE_AUDIOTOOLS_NS true
52#ifndef USE_AUDIO_LOGGING
53# define USE_AUDIO_LOGGING true
57# define LOG_LEVEL AudioLogger::Warning
61# define LOG_STREAM Serial
64#ifndef LOG_PRINTF_BUFFER_SIZE
65# define LOG_PRINTF_BUFFER_SIZE 303
69# define LOG_METHOD __PRETTY_FUNCTION__
73#ifndef USE_CHECK_MEMORY
74# define USE_CHECK_MEMORY false
79# define USE_OBSOLETE false
86#ifndef DEFAULT_BUFFER_SIZE
87# define DEFAULT_BUFFER_SIZE 1024
90#ifndef DEFAULT_SAMPLE_RATE
91# define DEFAULT_SAMPLE_RATE 44100
94#ifndef DEFAULT_CHANNELS
95# define DEFAULT_CHANNELS 2
98#ifndef DEFAULT_BITS_PER_SAMPLE
99# define DEFAULT_BITS_PER_SAMPLE 16
102#ifndef I2S_DEFAULT_PORT
103# define I2S_DEFAULT_PORT 0
106#ifndef I2S_BUFFER_SIZE
107# define I2S_BUFFER_SIZE 512
110#ifndef I2S_BUFFER_COUNT
111# define I2S_BUFFER_COUNT 6
114#ifndef ANALOG_BUFFER_SIZE
115# define ANALOG_BUFFER_SIZE 512
118#ifndef ANALOG_BUFFER_COUNT
119# define ANALOG_BUFFER_COUNT 6
122#ifndef A2DP_BUFFER_SIZE
123# define A2DP_BUFFER_SIZE 512
126#ifndef A2DP_BUFFER_COUNT
127# define A2DP_BUFFER_COUNT 30
130#ifndef CODEC_DELAY_MS
131# define CODEC_DELAY_MS 10
134#ifndef COPY_DELAY_ON_NODATA
135# define COPY_DELAY_ON_NODATA 10
138#ifndef COPY_RETRY_LIMIT
139# define COPY_RETRY_LIMIT 20
142#ifndef MAX_SINGLE_CHARS
143# define MAX_SINGLE_CHARS 8
148# define HTTP_MAX_LEN 1024
152#ifndef HTTP_CHUNKED_SIZE_MAX_LEN
153# define HTTP_CHUNKED_SIZE_MAX_LEN 80
157#ifndef USE_RESAMPLE_BUFFER
158# define USE_RESAMPLE_BUFFER true
164#ifndef PWM_BUFFER_SIZE
165# define PWM_BUFFER_SIZE 1024
168#ifndef PWM_BUFFER_COUNT
169# define PWM_BUFFER_COUNT 4
172#ifndef PWM_AUDIO_FREQUENCY
173# define PWM_AUDIO_FREQUENCY 30000
177#ifndef AUDIOTOOLS_METADATA_ICY_ASCII_ONLY
178#define AUDIOTOOLS_METADATA_ICY_ASCII_ONLY true
181#ifndef AUDIOTOOLS_METADATA_ICY_LIMIT
182#define AUDIOTOOLS_METADATA_ICY_LIMIT 400
210#if (defined(ARDUINO_SEEED_XIAO_NRF52840_SENSE) || defined(ARDUINO_ARDUINO_NANO33BLE) ) && !defined(ARDUINO_ARCH_ZEPHYR)
215#if defined(ARDUINO_ARCH_MBED_RP2040)
221#if defined(ARDUINO_ARCH_RP2040) && !defined(ARDUINO_ARCH_MBED)
231#if defined(ARDUINO_ARCH_STM32) || defined(STM32)
236#ifdef ARDUINO_ARCH_SAMD
242#if defined(ARDUINO_GIGA)
248#if defined(ARDUINO_ARCH_MBED_PORTENTA)
254#if defined(ARDUINO_ARCH_RENESAS) || defined(_RENESAS_RA_)
260#include <zephyr/kernel.h>
261#include <zephyr/sys/util.h>
268#ifndef VS1053_DEFINED
270# define VS1053_DCS 16
271# define VS1053_DREQ 4
272# define VS1053_RESET 15
273# define VS1053_CS_SD -1
279#define VS1053_DEFAULT_VOLUME 0.7
286#ifndef PREFER_FIXEDPOINT
287# define PREFER_FIXEDPOINT false
291# define USE_STREAM_WRITE_OVERRIDE
294#ifndef ANALOG_MAX_SAMPLE_RATE
295# define ANALOG_MAX_SAMPLE_RATE 44100
298#ifndef PWM_MAX_SAMPLE_RATE
299# define PWM_MAX_SAMPLE_RATE 8000
302#ifndef URL_CLIENT_TIMEOUT
303# define URL_CLIENT_TIMEOUT 60000;
306#ifndef URL_HANDSHAKE_TIMEOUT
307# define URL_HANDSHAKE_TIMEOUT 120000
311# define USE_TASK false
314#ifndef USE_SERVER_ACCEPT
315# define USE_SERVER_ACCEPT false
319# define USE_ALLOCATOR false
322#ifndef USE_ESP32_LOGGER
323# define USE_ESP32_LOGGER false
327#ifndef USE_PRINT_FLUSH
328# define USE_PRINT_FLUSH true
331#ifndef ESP_IDF_VERSION_VAL
332# define ESP_IDF_VERSION_VAL(a, b , c) 0
335#ifdef USE_NO_MEMACCESS
336#pragma GCC diagnostic ignored "-Wclass-memaccess"
339#ifdef USE_INITIALIZER_LIST
340#pragma GCC diagnostic ignored "-Wnarrowing"
344# define CHECK_MEMORY() checkMemory(true)
346# define CHECK_MEMORY()
If you want to use the framework w/o Arduino you need to provide the implementation of a couple of cl...