Added lamp
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
namespace esphome {
|
||||
namespace xiaomi {
|
||||
namespace bslamp2 {
|
||||
|
||||
/**
|
||||
* This is an interface definition that is used to extend the LightState
|
||||
* class with functionality for disco actions (immediate light updates,
|
||||
* not publishing or saving the light state).
|
||||
*
|
||||
* This interface is required by the DiscoAction class.
|
||||
*/
|
||||
class LightStateDiscoSupport {
|
||||
public:
|
||||
/**
|
||||
* Stop the disco, by restoring the previously remembered light state.
|
||||
*/
|
||||
virtual void disco_stop() = 0;
|
||||
|
||||
/**
|
||||
* Do not wait until the next loop() call for the light to write the
|
||||
* requested state to the light output, but write the new state
|
||||
* right away.
|
||||
*
|
||||
* This allows us to update the state of the light, even when we are
|
||||
* being called in the middle of another component's loop().
|
||||
*/
|
||||
virtual void disco_apply() = 0;
|
||||
|
||||
/**
|
||||
* Create a light::LightCall object, with some properties already
|
||||
* configured for using it as a disco call.
|
||||
*/
|
||||
virtual light::LightCall make_disco_call(bool save_and_publish) = 0;
|
||||
};
|
||||
|
||||
} // namespace bslamp2
|
||||
} // namespace xiaomi
|
||||
} // namespace esphome
|
||||
Reference in New Issue
Block a user