Platform-specific audio input creation function for Arduino
| 199 | |
| 200 | // Platform-specific audio input creation function for Arduino |
| 201 | fl::shared_ptr<audio::IInput> arduino_create_audio_input(const audio::Config& config, fl::string* error_message = nullptr) FL_NOEXCEPT { |
| 202 | if (config.is<audio::ConfigI2S>()) { |
| 203 | FL_WARN("Creating Arduino I2S audio source"); |
| 204 | audio::ConfigI2S i2s_config = config.get<audio::ConfigI2S>(); |
| 205 | return fl::make_shared<Arduino_I2S_Audio>(i2s_config); |
| 206 | } else if (config.is<audio::ConfigPdm>()) { |
| 207 | const char* ERROR_MESSAGE = "PDM audio not supported in Arduino I2S implementation"; |
| 208 | FL_WARN(ERROR_MESSAGE); |
| 209 | if (error_message) { |
| 210 | *error_message = ERROR_MESSAGE; |
| 211 | } |
| 212 | return fl::shared_ptr<audio::IInput>(); // Return null |
| 213 | } |
| 214 | |
| 215 | const char* ERROR_MESSAGE = "Unsupported audio configuration for Arduino"; |
| 216 | FL_WARN(ERROR_MESSAGE); |
| 217 | if (error_message) { |
| 218 | *error_message = ERROR_MESSAGE; |
| 219 | } |
| 220 | return fl::shared_ptr<audio::IInput>(); // Return null |
| 221 | } |
| 222 | |
| 223 | #else // !ARDUINO_I2S_FULLY_SUPPORTED |
| 224 |
no outgoing calls
no test coverage detected