mirror of
https://github.com/esphome/esphome.git
synced 2026-06-24 11:07:33 +00:00
Mark user-configurable classes as final (part 8/21)
Add the C++ `final` specifier to leaf, user-configurable component classes and automation action/trigger/condition primitives so that classes meant to be terminal cannot be subclassed by external components. Only classes never used as a base anywhere in the tree are marked. Part 8 of 21, split alphabetically by component (hm3301 .. integration).
This commit is contained in:
@@ -9,7 +9,7 @@ namespace esphome::hm3301 {
|
||||
|
||||
static const uint8_t SELECT_COMM_CMD = 0x88;
|
||||
|
||||
class HM3301Component : public PollingComponent, public i2c::I2CDevice {
|
||||
class HM3301Component final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
HM3301Component() = default;
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ enum HMC5883LRange {
|
||||
HMC5883L_RANGE_810_UT = 0b111,
|
||||
};
|
||||
|
||||
class HMC5883LComponent : public PollingComponent, public i2c::I2CDevice {
|
||||
class HMC5883LComponent final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
namespace esphome::homeassistant {
|
||||
|
||||
class HomeassistantBinarySensor : public binary_sensor::BinarySensor, public Component {
|
||||
class HomeassistantBinarySensor final : public binary_sensor::BinarySensor, public Component {
|
||||
public:
|
||||
void set_entity_id(const char *entity_id) { this->entity_id_ = entity_id; }
|
||||
void set_attribute(const char *attribute) { this->attribute_ = attribute; }
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::homeassistant {
|
||||
|
||||
class HomeassistantNumber : public number::Number, public Component {
|
||||
class HomeassistantNumber final : public number::Number, public Component {
|
||||
public:
|
||||
void set_entity_id(const char *entity_id) { this->entity_id_ = entity_id; }
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
namespace esphome::homeassistant {
|
||||
|
||||
class HomeassistantSensor : public sensor::Sensor, public Component {
|
||||
class HomeassistantSensor final : public sensor::Sensor, public Component {
|
||||
public:
|
||||
void set_entity_id(const char *entity_id) { this->entity_id_ = entity_id; }
|
||||
void set_attribute(const char *attribute) { this->attribute_ = attribute; }
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
namespace esphome::homeassistant {
|
||||
|
||||
class HomeassistantSwitch : public switch_::Switch, public Component {
|
||||
class HomeassistantSwitch final : public switch_::Switch, public Component {
|
||||
public:
|
||||
void set_entity_id(const char *entity_id) { this->entity_id_ = entity_id; }
|
||||
void setup() override;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
namespace esphome::homeassistant {
|
||||
|
||||
class HomeassistantTextSensor : public text_sensor::TextSensor, public Component {
|
||||
class HomeassistantTextSensor final : public text_sensor::TextSensor, public Component {
|
||||
public:
|
||||
void set_entity_id(const char *entity_id) { this->entity_id_ = entity_id; }
|
||||
void set_attribute(const char *attribute) { this->attribute_ = attribute; }
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
namespace esphome::honeywell_hih_i2c {
|
||||
|
||||
class HoneywellHIComponent : public PollingComponent, public i2c::I2CDevice {
|
||||
class HoneywellHIComponent final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void dump_config() override;
|
||||
void loop() override;
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
namespace esphome::honeywellabp {
|
||||
|
||||
class HONEYWELLABPSensor : public PollingComponent,
|
||||
public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW,
|
||||
spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_200KHZ> {
|
||||
class HONEYWELLABPSensor final : public PollingComponent,
|
||||
public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW,
|
||||
spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_200KHZ> {
|
||||
public:
|
||||
void set_pressure_sensor(sensor::Sensor *pressure_sensor) { pressure_sensor_ = pressure_sensor; }
|
||||
void set_temperature_sensor(sensor::Sensor *temperature_sensor) { temperature_sensor_ = temperature_sensor; }
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace esphome::honeywellabp2_i2c {
|
||||
|
||||
enum ABP2TRANFERFUNCTION { ABP2_TRANS_FUNC_A = 0, ABP2_TRANS_FUNC_B = 1 };
|
||||
|
||||
class HONEYWELLABP2Sensor : public PollingComponent, public i2c::I2CDevice {
|
||||
class HONEYWELLABP2Sensor final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void set_pressure_sensor(sensor::Sensor *pressure_sensor) { this->pressure_sensor_ = pressure_sensor; };
|
||||
void set_temperature_sensor(sensor::Sensor *temperature_sensor) { this->temperature_sensor_ = temperature_sensor; };
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::host {
|
||||
|
||||
class HostGPIOPin : public InternalGPIOPin {
|
||||
class HostGPIOPin final : public InternalGPIOPin {
|
||||
public:
|
||||
void set_pin(uint8_t pin) { pin_ = pin; }
|
||||
void set_inverted(bool inverted) { inverted_ = inverted; }
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
namespace esphome::host {
|
||||
|
||||
class HostTime : public time::RealTimeClock {
|
||||
class HostTime final : public time::RealTimeClock {
|
||||
public:
|
||||
void update() override {}
|
||||
};
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::hrxl_maxsonar_wr {
|
||||
|
||||
class HrxlMaxsonarWrComponent : public sensor::Sensor, public Component, public uart::UARTDevice {
|
||||
class HrxlMaxsonarWrComponent final : public sensor::Sensor, public Component, public uart::UARTDevice {
|
||||
public:
|
||||
// Nothing really public.
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
namespace esphome::hte501 {
|
||||
|
||||
/// This class implements support for the hte501 of temperature i2c sensors.
|
||||
class HTE501Component : public PollingComponent, public i2c::I2CDevice {
|
||||
class HTE501Component final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void set_temperature_sensor(sensor::Sensor *temperature_sensor) { temperature_sensor_ = temperature_sensor; }
|
||||
void set_humidity_sensor(sensor::Sensor *humidity_sensor) { humidity_sensor_ = humidity_sensor; }
|
||||
|
||||
@@ -311,7 +311,7 @@ inline HttpReadResult http_read_fully(HttpContainer *container, uint8_t *buffer,
|
||||
return {HttpReadStatus::OK, 0};
|
||||
}
|
||||
|
||||
class HttpRequestResponseTrigger : public Trigger<std::shared_ptr<HttpContainer>, std::string &> {
|
||||
class HttpRequestResponseTrigger final : public Trigger<std::shared_ptr<HttpContainer>, std::string &> {
|
||||
public:
|
||||
void process(const std::shared_ptr<HttpContainer> &container, std::string &response_body) {
|
||||
this->trigger(container, response_body);
|
||||
@@ -447,7 +447,7 @@ class HttpRequestComponent : public Component {
|
||||
uint32_t watchdog_timeout_{0};
|
||||
};
|
||||
|
||||
template<typename... Ts> class HttpRequestSendAction : public Action<Ts...> {
|
||||
template<typename... Ts> class HttpRequestSendAction final : public Action<Ts...> {
|
||||
public:
|
||||
HttpRequestSendAction(HttpRequestComponent *parent) : parent_(parent) {}
|
||||
TEMPLATABLE_VALUE(std::string, url)
|
||||
|
||||
@@ -46,7 +46,7 @@ class HttpContainerArduino : public HttpContainer {
|
||||
size_t chunk_remaining_{0}; ///< Bytes remaining in current chunk
|
||||
};
|
||||
|
||||
class HttpRequestArduino : public HttpRequestComponent {
|
||||
class HttpRequestArduino final : public HttpRequestComponent {
|
||||
public:
|
||||
#ifdef USE_ESP8266
|
||||
void set_tls_buffer_size_rx(uint16_t size) { this->tls_buffer_size_rx_ = size; }
|
||||
|
||||
@@ -16,7 +16,7 @@ class HttpContainerHost : public HttpContainer {
|
||||
std::vector<uint8_t> response_body_{};
|
||||
};
|
||||
|
||||
class HttpRequestHost : public HttpRequestComponent {
|
||||
class HttpRequestHost final : public HttpRequestComponent {
|
||||
public:
|
||||
std::shared_ptr<HttpContainer> perform(const std::string &url, const std::string &method, const std::string &body,
|
||||
const std::vector<Header> &request_headers,
|
||||
|
||||
@@ -26,7 +26,7 @@ class HttpContainerIDF : public HttpContainer {
|
||||
esp_http_client_handle_t client_;
|
||||
};
|
||||
|
||||
class HttpRequestIDF : public HttpRequestComponent {
|
||||
class HttpRequestIDF final : public HttpRequestComponent {
|
||||
public:
|
||||
void dump_config() override;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
namespace esphome::http_request {
|
||||
|
||||
template<typename... Ts> class OtaHttpRequestComponentFlashAction : public Action<Ts...> {
|
||||
template<typename... Ts> class OtaHttpRequestComponentFlashAction final : public Action<Ts...> {
|
||||
public:
|
||||
OtaHttpRequestComponentFlashAction(OtaHttpRequestComponent *parent) : parent_(parent) {}
|
||||
TEMPLATABLE_VALUE(std::string, md5_url)
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace esphome::htu21d {
|
||||
|
||||
enum HTU21DSensorModels { HTU21D_SENSOR_MODEL_HTU21D = 0, HTU21D_SENSOR_MODEL_SI7021, HTU21D_SENSOR_MODEL_SHT21 };
|
||||
|
||||
class HTU21DComponent : public PollingComponent, public i2c::I2CDevice {
|
||||
class HTU21DComponent final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void set_temperature(sensor::Sensor *temperature) { temperature_ = temperature; }
|
||||
void set_humidity(sensor::Sensor *humidity) { humidity_ = humidity; }
|
||||
@@ -34,7 +34,7 @@ class HTU21DComponent : public PollingComponent, public i2c::I2CDevice {
|
||||
HTU21DSensorModels sensor_model_{HTU21D_SENSOR_MODEL_HTU21D};
|
||||
};
|
||||
|
||||
template<typename... Ts> class SetHeaterLevelAction : public Action<Ts...>, public Parented<HTU21DComponent> {
|
||||
template<typename... Ts> class SetHeaterLevelAction final : public Action<Ts...>, public Parented<HTU21DComponent> {
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint8_t, level)
|
||||
|
||||
@@ -45,7 +45,7 @@ template<typename... Ts> class SetHeaterLevelAction : public Action<Ts...>, publ
|
||||
}
|
||||
};
|
||||
|
||||
template<typename... Ts> class SetHeaterAction : public Action<Ts...>, public Parented<HTU21DComponent> {
|
||||
template<typename... Ts> class SetHeaterAction final : public Action<Ts...>, public Parented<HTU21DComponent> {
|
||||
public:
|
||||
TEMPLATABLE_VALUE(bool, status)
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
namespace esphome::htu31d {
|
||||
|
||||
class HTU31DComponent : public PollingComponent, public i2c::I2CDevice {
|
||||
class HTU31DComponent final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void setup() override; /// Setup (reset) the sensor and check connection.
|
||||
void update() override; /// Update the sensor values (temperature+humidity).
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace esphome::hub75 {
|
||||
using esphome::display::ColorBitness;
|
||||
using esphome::display::ColorOrder;
|
||||
|
||||
class HUB75Display : public display::Display {
|
||||
class HUB75Display final : public display::Display {
|
||||
public:
|
||||
// Constructor accepting config
|
||||
explicit HUB75Display(const Hub75Config &config);
|
||||
@@ -51,7 +51,7 @@ class HUB75Display : public display::Display {
|
||||
bool enabled_{false};
|
||||
};
|
||||
|
||||
template<typename... Ts> class SetBrightnessAction : public Action<Ts...>, public Parented<HUB75Display> {
|
||||
template<typename... Ts> class SetBrightnessAction final : public Action<Ts...>, public Parented<HUB75Display> {
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint8_t, brightness)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ enum HX711Gain : uint8_t {
|
||||
HX711_GAIN_64 = 3,
|
||||
};
|
||||
|
||||
class HX711Sensor : public sensor::Sensor, public PollingComponent {
|
||||
class HX711Sensor final : public sensor::Sensor, public PollingComponent {
|
||||
public:
|
||||
void set_dout_pin(GPIOPin *dout_pin) { dout_pin_ = dout_pin; }
|
||||
void set_sck_pin(GPIOPin *sck_pin) { sck_pin_ = sck_pin; }
|
||||
|
||||
@@ -32,7 +32,7 @@ static const uint8_t NUM_SENSORS = 1;
|
||||
|
||||
#define HYDREON_RGXX_IGNORE_LIST(F, SEP) F("Emitters") SEP F("Event") SEP F("Reset")
|
||||
|
||||
class HydreonRGxxComponent : public PollingComponent, public uart::UARTDevice {
|
||||
class HydreonRGxxComponent final : public PollingComponent, public uart::UARTDevice {
|
||||
public:
|
||||
void set_sensor(sensor::Sensor *sensor, int index) { this->sensors_[index] = sensor; }
|
||||
#ifdef USE_BINARY_SENSOR
|
||||
@@ -86,7 +86,7 @@ class HydreonRGxxComponent : public PollingComponent, public uart::UARTDevice {
|
||||
int sensors_received_ = -1;
|
||||
};
|
||||
|
||||
class HydreonRGxxBinaryComponent : public Component {
|
||||
class HydreonRGxxBinaryComponent final : public Component {
|
||||
public:
|
||||
HydreonRGxxBinaryComponent(HydreonRGxxComponent *parent) {}
|
||||
};
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::hyt271 {
|
||||
|
||||
class HYT271Component : public PollingComponent, public i2c::I2CDevice {
|
||||
class HYT271Component final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void set_temperature(sensor::Sensor *temperature) { temperature_ = temperature; }
|
||||
void set_humidity(sensor::Sensor *humidity) { humidity_ = humidity; }
|
||||
|
||||
@@ -14,7 +14,7 @@ enum RecoveryCode {
|
||||
RECOVERY_COMPLETED,
|
||||
};
|
||||
|
||||
class ArduinoI2CBus : public InternalI2CBus, public Component {
|
||||
class ArduinoI2CBus final : public InternalI2CBus, public Component {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -14,7 +14,7 @@ enum RecoveryCode {
|
||||
RECOVERY_COMPLETED,
|
||||
};
|
||||
|
||||
class IDFI2CBus : public InternalI2CBus, public Component {
|
||||
class IDFI2CBus final : public InternalI2CBus, public Component {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
namespace esphome::i2c {
|
||||
|
||||
class HostI2CBus : public I2CBus, public Component {
|
||||
class HostI2CBus final : public I2CBus, public Component {
|
||||
public:
|
||||
~HostI2CBus() override;
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ struct device; // NOLINT(readability-identifier-naming) - forward decl of Zephy
|
||||
|
||||
namespace esphome::i2c {
|
||||
|
||||
class ZephyrI2CBus : public InternalI2CBus, public Component {
|
||||
class ZephyrI2CBus final : public InternalI2CBus, public Component {
|
||||
public:
|
||||
explicit ZephyrI2CBus(const device *i2c_dev) : i2c_dev_(i2c_dev) {}
|
||||
void setup() override;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
namespace esphome::i2c_device {
|
||||
|
||||
class I2CDeviceComponent : public Component, public i2c::I2CDevice {
|
||||
class I2CDeviceComponent final : public Component, public i2c::I2CDevice {
|
||||
public:
|
||||
void dump_config() override;
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ class I2SAudioIn : public I2SAudioBase {};
|
||||
|
||||
class I2SAudioOut : public I2SAudioBase {};
|
||||
|
||||
class I2SAudioComponent : public Component {
|
||||
class I2SAudioComponent final : public Component {
|
||||
public:
|
||||
i2s_std_gpio_config_t get_pin_config() const {
|
||||
return {.mclk = (gpio_num_t) this->mclk_pin_,
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
namespace esphome::i2s_audio {
|
||||
|
||||
class I2SAudioMicrophone : public I2SAudioIn, public microphone::Microphone, public Component {
|
||||
class I2SAudioMicrophone final : public I2SAudioIn, public microphone::Microphone, public Component {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -14,7 +14,7 @@ enum class I2SCommFmt : uint8_t {
|
||||
|
||||
/// @brief Standard I2S speaker implementation.
|
||||
/// Outputs PCM audio data directly to an I2S DAC using the standard I2S protocol.
|
||||
class I2SAudioSpeaker : public I2SAudioSpeakerBase {
|
||||
class I2SAudioSpeaker final : public I2SAudioSpeakerBase {
|
||||
public:
|
||||
void dump_config() override;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::iaqcore {
|
||||
|
||||
class IAQCore : public PollingComponent, public i2c::I2CDevice {
|
||||
class IAQCore final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void set_co2(sensor::Sensor *co2) { co2_ = co2; }
|
||||
void set_tvoc(sensor::Sensor *tvoc) { tvoc_ = tvoc; }
|
||||
|
||||
@@ -44,7 +44,7 @@ enum ImprovSerialType : uint8_t {
|
||||
static const uint16_t IMPROV_SERIAL_TIMEOUT = 100;
|
||||
static const uint8_t IMPROV_SERIAL_VERSION = 1;
|
||||
|
||||
class ImprovSerialComponent : public Component, public improv_base::ImprovBase {
|
||||
class ImprovSerialComponent final : public Component, public improv_base::ImprovBase {
|
||||
public:
|
||||
void setup() override;
|
||||
void loop() override;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
namespace esphome::ina219 {
|
||||
|
||||
class INA219Component : public PollingComponent, public i2c::I2CDevice {
|
||||
class INA219Component final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -40,7 +40,7 @@ union ConfigurationRegister {
|
||||
} __attribute__((packed));
|
||||
};
|
||||
|
||||
class INA226Component : public PollingComponent, public i2c::I2CDevice {
|
||||
class INA226Component final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::ina260 {
|
||||
|
||||
class INA260Component : public PollingComponent, public i2c::I2CDevice {
|
||||
class INA260Component final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::ina2xx_i2c {
|
||||
|
||||
class INA2XXI2C : public ina2xx_base::INA2XX, public i2c::I2CDevice {
|
||||
class INA2XXI2C final : public ina2xx_base::INA2XX, public i2c::I2CDevice {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
namespace esphome::ina2xx_spi {
|
||||
|
||||
class INA2XXSPI : public ina2xx_base::INA2XX,
|
||||
public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_TRAILING,
|
||||
spi::DATA_RATE_1MHZ> {
|
||||
class INA2XXSPI final : public ina2xx_base::INA2XX,
|
||||
public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW,
|
||||
spi::CLOCK_PHASE_TRAILING, spi::DATA_RATE_1MHZ> {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::ina3221 {
|
||||
|
||||
class INA3221Component : public PollingComponent, public i2c::I2CDevice {
|
||||
class INA3221Component final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
namespace esphome::inkbird_ibsth1_mini {
|
||||
|
||||
class InkbirdIbstH1Mini : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class InkbirdIbstH1Mini final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ static constexpr uint8_t LUTB[16] = {0xFF, 0xFD, 0xF7, 0xF5, 0xDF, 0xDD, 0xD7, 0
|
||||
static constexpr uint8_t PIXEL_MASK_LUT[8] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80};
|
||||
static constexpr uint8_t PIXEL_MASK_GLUT[2] = {0x0F, 0xF0};
|
||||
|
||||
class Inkplate : public display::DisplayBuffer, public i2c::I2CDevice {
|
||||
class Inkplate final : public display::DisplayBuffer, public i2c::I2CDevice {
|
||||
public:
|
||||
void set_greyscale(bool greyscale) {
|
||||
this->greyscale_ = greyscale;
|
||||
|
||||
@@ -22,7 +22,7 @@ enum IntegrationMethod {
|
||||
INTEGRATION_METHOD_RIGHT,
|
||||
};
|
||||
|
||||
class IntegrationSensor : public sensor::Sensor, public Component {
|
||||
class IntegrationSensor final : public sensor::Sensor, public Component {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
@@ -71,12 +71,12 @@ class IntegrationSensor : public sensor::Sensor, public Component {
|
||||
float last_value_{0.0f};
|
||||
};
|
||||
|
||||
template<typename... Ts> class ResetAction : public Action<Ts...>, public Parented<IntegrationSensor> {
|
||||
template<typename... Ts> class ResetAction final : public Action<Ts...>, public Parented<IntegrationSensor> {
|
||||
public:
|
||||
void play(const Ts &...x) override { this->parent_->reset(); }
|
||||
};
|
||||
|
||||
template<typename... Ts> class SetValueAction : public Action<Ts...>, public Parented<IntegrationSensor> {
|
||||
template<typename... Ts> class SetValueAction final : public Action<Ts...>, public Parented<IntegrationSensor> {
|
||||
public:
|
||||
TEMPLATABLE_VALUE(float, value)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user