#pragma once #if defined(CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT) #include "esphome/core/component.h" #include "esphome/core/helpers.h" #include namespace esphome::zephyr { class CdcAcm : public Component { public: CdcAcm(); void setup() override; template void add_on_rate_callback(F &&callback) { this->rate_callbacks_.add(std::forward(callback)); } protected: static void cdc_dte_rate_callback_(const device *device, uint32_t rate); CallbackManager rate_callbacks_; }; extern CdcAcm *global_cdc_acm; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables) } // namespace esphome::zephyr #endif