7#include "platforms/wasm/io_wasm.h"
8#elif defined(FASTLED_TESTING) || defined(__linux__) || defined(__APPLE__) || defined(_WIN32)
9#include "platforms/io_native.h"
10#elif defined(ESP32) || defined(ESP8266)
11#include "platforms/esp/io_esp.h"
12#elif defined(__AVR__) && !defined(ARDUINO_ARCH_MEGAAVR)
13#include "platforms/avr/io_avr.h"
14#elif defined(__MKL26Z64__)
16#include "platforms/io_teensy_lc.h"
17#elif defined(__IMXRT1062__) || defined(__MK66FX1M0__) || defined(__MK64FX512__) || defined(__MK20DX256__) || defined(__MK20DX128__)
19#include "platforms/io_teensy.h"
21#include "platforms/io_arduino.h"
28static print_handler_t& get_print_handler() {
29 static print_handler_t handler;
33static println_handler_t& get_println_handler() {
34 static println_handler_t handler;
38static available_handler_t& get_available_handler() {
39 static available_handler_t handler;
43static read_handler_t& get_read_handler() {
44 static read_handler_t handler;
54 if (get_print_handler()) {
55 get_print_handler()(str);
62#elif defined(FASTLED_TESTING) || defined(__linux__) || defined(__APPLE__) || defined(_WIN32)
64#elif defined(ESP32) || defined(ESP8266)
66#elif defined(__AVR__) && !defined(ARDUINO_ARCH_MEGAAVR)
68#elif defined(__MKL26Z64__)
71#elif defined(__IMXRT1062__) || defined(__MK66FX1M0__) || defined(__MK64FX512__) || defined(__MK20DX256__) || defined(__MK20DX128__)
88 if (get_println_handler()) {
89 get_println_handler()(str);
96#elif defined(FASTLED_TESTING) || defined(__linux__) || defined(__APPLE__) || defined(_WIN32)
98#elif defined(ESP32) || defined(ESP8266)
100#elif defined(__AVR__) && !defined(ARDUINO_ARCH_MEGAAVR)
102#elif defined(__MKL26Z64__)
104 println_teensy_lc(str);
105#elif defined(__IMXRT1062__) || defined(__MK66FX1M0__) || defined(__MK64FX512__) || defined(__MK20DX256__) || defined(__MK20DX128__)
113 println_arduino(str);
118#ifdef FASTLED_TESTING
120 if (get_available_handler()) {
121 return get_available_handler()();
126 return available_wasm();
127#elif defined(FASTLED_TESTING) || defined(__linux__) || defined(__APPLE__) || defined(_WIN32)
128 return available_native();
129#elif defined(ESP32) || defined(ESP8266)
130 return available_esp();
131#elif defined(__AVR__) && !defined(ARDUINO_ARCH_MEGAAVR)
132 return available_avr();
133#elif defined(__MKL26Z64__)
135 return available_teensy_lc();
136#elif defined(__IMXRT1062__) || defined(__MK66FX1M0__) || defined(__MK64FX512__) || defined(__MK20DX256__) || defined(__MK20DX128__)
138 return available_teensy();
144 return available_arduino();
149#ifdef FASTLED_TESTING
151 if (get_read_handler()) {
152 return get_read_handler()();
158#elif defined(FASTLED_TESTING) || defined(__linux__) || defined(__APPLE__) || defined(_WIN32)
159 return read_native();
160#elif defined(ESP32) || defined(ESP8266)
162#elif defined(__AVR__) && !defined(ARDUINO_ARCH_MEGAAVR)
164#elif defined(__MKL26Z64__)
166 return read_teensy_lc();
167#elif defined(__IMXRT1062__) || defined(__MK66FX1M0__) || defined(__MK64FX512__) || defined(__MK20DX256__) || defined(__MK20DX128__)
169 return read_teensy();
175 return read_arduino();
179#ifdef FASTLED_TESTING
182void inject_print_handler(
const print_handler_t& handler) {
183 get_print_handler() = handler;
186void inject_println_handler(
const println_handler_t& handler) {
187 get_println_handler() = handler;
190void inject_available_handler(
const available_handler_t& handler) {
191 get_available_handler() = handler;
194void inject_read_handler(
const read_handler_t& handler) {
195 get_read_handler() = handler;
199void clear_io_handlers() {
200 get_print_handler() = print_handler_t{};
201 get_println_handler() = println_handler_t{};
202 get_available_handler() = available_handler_t{};
203 get_read_handler() = read_handler_t{};
207void clear_print_handler() {
208 get_print_handler() = print_handler_t{};
211void clear_println_handler() {
212 get_println_handler() = println_handler_t{};
215void clear_available_handler() {
216 get_available_handler() = available_handler_t{};
219void clear_read_handler() {
220 get_read_handler() = read_handler_t{};
void print(const char *str)
void println(const char *str)