Signed-off-by: myperworld <myperworld@126.com>

This commit is contained in:
myperworld committed 2025-10-06 12:34:26 +08:00
1 parent 0986832fd1
commit aacd052c06
3403 files changed
+597376 -12

No files matched your search

@@ -0,0 +1,56 @@
#pragma once
#include "fl/stdint.h"
#include "crgb.h"
#include "detail/draw_context.h"
#include "detail/transition.h"
#include "fl/namespace.h"
#include "fl/memory.h"
#include "fl/str.h"
#include "fl/unused.h"
namespace fl {
FASTLED_SMART_PTR(Fx);
// Abstract base class for effects on a strip/grid of LEDs.
class Fx {
public:
// Alias DrawContext for use within Fx
using DrawContext = _DrawContext;
Fx(uint16_t numLeds) : mNumLeds(numLeds) {}
/// @param now The current time in milliseconds. Fx writers are encouraged
/// to use this instead of millis() directly as this will more deterministic
/// behavior.
virtual void
draw(DrawContext context) = 0; // This is the only function that needs to be
// implemented everything else is optional.
// If true then this fx has a fixed frame rate and the fps parameter will be
// set to the frame rate.
virtual bool hasFixedFrameRate(float *fps) const {
FASTLED_UNUSED(fps);
return false;
}
// Get the name of the current fx.
virtual fl::string fxName() const = 0;
// Called when the fx is paused, usually when a transition has finished.
virtual void pause(fl::u32 now) { FASTLED_UNUSED(now); }
virtual void resume(fl::u32 now) {
FASTLED_UNUSED(now);
} // Called when the fx is resumed after a pause,
// usually when a transition has started.
uint16_t getNumLeds() const { return mNumLeds; }
protected:
virtual ~Fx() {} // Protected destructor
uint16_t mNumLeds;
};
} // namespace fl