9#include <mlab/any_of.hpp>
10#include <mlab/bin_data.hpp>
27 class any_fx :
public mlab::uniquely_tracked {
52 std::chrono::milliseconds elapsed, std::vector<rgb> recycle_buffer = {},
57 class any_fx_config :
public mlab::any_of<fx_type, any_fx_config_data> {
64 [[nodiscard]] std::string
to_string()
const;
Definition: any_fx.hpp:57
std::string to_string() const
Definition: any_fx.cpp:53
void apply(any_fx &fx) const
Definition: any_fx.cpp:65
any_fx_config()
Definition: any_fx.hpp:101
Definition: any_fx.hpp:27
solid_fx const & s_fx() const
Definition: any_fx.hpp:85
gradient_fx _g_fx
Definition: any_fx.hpp:30
matrix_fx _m_fx
Definition: any_fx.hpp:31
gradient_fx const & g_fx() const
Definition: any_fx.hpp:88
void set_type(fx_type t)
Definition: any_fx.hpp:98
any_fx & operator=(any_fx &&other) noexcept
Definition: any_fx.cpp:13
solid_fx _s_fx
Definition: any_fx.hpp:29
std::atomic< fx_type > _type
Definition: any_fx.hpp:28
matrix_fx const & m_fx() const
Definition: any_fx.hpp:91
std::vector< rgb > render_frame(transmittable_rgb_strip &strip, rmt_channel_t channel, std::chrono::milliseconds elapsed, std::vector< rgb > recycle_buffer={}, blending_method method=blend_linear) const
Definition: any_fx.cpp:36
std::function< void(std::chrono::milliseconds)> make_steady_timer_callback(transmittable_rgb_strip &strip, rmt_channel_t channel, blending_method method=blend_linear) const
Definition: any_fx.cpp:24
fx_type type() const
Definition: any_fx.hpp:95
Definition: gradient_fx.hpp:20
Definition: gradient.hpp:86
Definition: matrix_fx.hpp:21
Definition: solid_fx.hpp:15
Definition: any_fx.cpp:81
mlab::bin_stream & operator>>(mlab::bin_stream &s, neo::any_fx_config &fx_cfg)
Definition: any_fx.cpp:83
rgb(&)(rgb l, rgb r, float t) blending_method
Definition: gradient.hpp:13
fx_type
Definition: any_fx.hpp:17
rgb blend_linear(rgb l, rgb r, float t)
Definition: gradient.cpp:96
any_fx_config_data(gradient_fx_config cfg)
Definition: any_fx.hpp:76
any_fx_config_data(matrix_fx_config cfg)
Definition: any_fx.hpp:82
any_fx_config_data(solid_fx_config cfg)
Definition: any_fx.hpp:70
Definition: any_fx.hpp:25
Definition: gradient_fx.hpp:53
Definition: matrix_fx.hpp:79
Definition: solid_fx.hpp:37