5#include "platforms/is_platform.h"
11#include "platforms/audio_input_null.hpp"
18#include "platforms/arm/teensy/audio_input_teensy_config.h"
21#ifndef FASTLED_USES_ARDUINO_AUDIO_INPUT
22 #if defined(FL_IS_ESP32) && !defined(FL_IS_ESP8266)
23 #define FASTLED_USES_ARDUINO_AUDIO_INPUT 0
24 #elif defined(FL_IS_WASM)
25 #define FASTLED_USES_ARDUINO_AUDIO_INPUT 0
26 #elif defined(FL_IS_TEENSY)
28 #define FASTLED_USES_ARDUINO_AUDIO_INPUT 0
29 #elif FL_HAS_INCLUDE(<Arduino.h>)
30 #define FASTLED_USES_ARDUINO_AUDIO_INPUT 1
32 #define FASTLED_USES_ARDUINO_AUDIO_INPUT 0
36#if !FASTLED_USES_ARDUINO_AUDIO_INPUT
37#if defined(FL_IS_ESP32) && !defined(FL_IS_ESP8266)
38#define FASTLED_USES_ESP32_AUDIO_INPUT 1
40#define FASTLED_USES_ESP32_AUDIO_INPUT 0
43#define FASTLED_USES_ESP32_AUDIO_INPUT 0
47#if !FASTLED_USES_ARDUINO_AUDIO_INPUT && !FASTLED_USES_ESP32_AUDIO_INPUT
48#if defined(FL_IS_WASM)
49#define FASTLED_USES_WASM_AUDIO_INPUT 1
51#define FASTLED_USES_WASM_AUDIO_INPUT 0
54#define FASTLED_USES_WASM_AUDIO_INPUT 0
59#if FASTLED_USES_TEENSY_AUDIO_INPUT
60#define FASTLED_TEENSY_AUDIO_INPUT_HEADER \
61 "platforms/arm/teensy/audio_input_teensy.h"
62#include FASTLED_TEENSY_AUDIO_INPUT_HEADER
63#undef FASTLED_TEENSY_AUDIO_INPUT_HEADER
64#elif FASTLED_USES_ARDUINO_AUDIO_INPUT
65#include "platforms/arduino/audio_input.hpp"
66#elif FASTLED_USES_ESP32_AUDIO_INPUT
67#include "platforms/esp/32/audio/audio_impl.hpp"
68#elif FASTLED_USES_WASM_AUDIO_INPUT
69#include "platforms/wasm/audio_input_wasm.hpp"
76#if FASTLED_USES_TEENSY_AUDIO_INPUT
79 return teensy_create_audio_input(config, error_message);
81#elif FASTLED_USES_ARDUINO_AUDIO_INPUT
84 return arduino_create_audio_input(config, error_message);
86#elif FASTLED_USES_ESP32_AUDIO_INPUT
89 return esp32_create_audio_input(config, error_message);
91#elif FASTLED_USES_WASM_AUDIO_INPUT
94 return wasm_create_audio_input(config, error_message);
101 *error_message =
"AudioInput not supported on this platform.";
112 input->setGain(config.
getGain());
fl::UIAudio audio("Audio Input")
float getGain() const FL_NOEXCEPT
FL_LINK_WEAK fl::shared_ptr< IInput > platform_create_audio_input(const Config &config, fl::string *error_message)
shared_ptr< T > make_shared(Args &&... args) FL_NOEXCEPT
Base definition for an LED controller.