#pragma once #include #include #include #include #include class MDNSService { public: MDNSService(); ~MDNSService(); void begin(); esp_err_t getStatus(httpd_req_t *request); esp_err_t queryServices(httpd_req_t *request, api_Request *protoReq); esp_err_t getSettings(httpd_req_t *request); esp_err_t updateSettings(httpd_req_t *request, api_Request *protoReq); private: static constexpr const char *TAG = "MDNSService"; void onSettingsChanged(const api_MDNSSettings &newSettings); MDNSSettings _settings = MDNSSettings_defaults(); EventBus::Handle _settingsHandle; bool _started {false}; void reconfigureMDNS(); void startMDNS(); void stopMDNS(); void addServices(); };