MCPcopy Create free account
hub / github.com/FastLED/FastLED / FL_TEST_FILE

Function FL_TEST_FILE

tests/fl/fx/video.cpp:24–301  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22#include "FastLED.h"
23
24FL_TEST_FILE(FL_FILEPATH) {
25
26#define FPS 30
27#define FRAME_TIME 1000 / FPS
28#define VIDEO_WIDTH 10
29#define VIDEO_HEIGHT 10
30#define LEDS_PER_FRAME VIDEO_WIDTH *VIDEO_HEIGHT
31
32FASTLED_SHARED_PTR(FakeFilebuf);
33
34
35class FakeFilebuf : public fl::filebuf {
36 public:
37 virtual ~FakeFilebuf() {}
38 bool is_open() const override { return true; }
39 bool available() const override { return mPos < data.size(); }
40 size_t size() const override { return data.size(); }
41
42 size_t writeData(const uint8_t *src, size_t len) {
43 data.insert(data.end(), src, src + len);
44 return len;
45 }
46 size_t writeCRGB(const CRGB *src, size_t len) {
47 size_t bytes_written = writeData((const uint8_t *)src, len * 3);
48 return bytes_written / 3;
49 }
50 size_t read(char *dst, size_t bytesToRead) override {
51 size_t bytesRead = 0;
52 while (bytesRead < bytesToRead && mPos < data.size()) {
53 dst[bytesRead] = static_cast<char>(data[mPos]);
54 bytesRead++;
55 mPos++;
56 }
57 return bytesRead;
58 }
59 using fl::filebuf::read; // u8 overload
60 size_t write(const char *dat, size_t count) override {
61 (void)dat; (void)count;
62 return 0;
63 }
64 size_t tell() override { return mPos; }
65 const char *path() const override { return "fake"; }
66 bool seek(size_t pos, fl::seek_dir dir) override {
67 if (dir == fl::seek_dir::beg) { this->mPos = pos; }
68 else if (dir == fl::seek_dir::cur) { this->mPos += pos; }
69 else { this->mPos = data.size() + pos; }
70 return true;
71 }
72 using fl::filebuf::seek; // single-arg overload
73 void close() override {}
74 bool is_eof() const override { return mPos >= data.size(); }
75 bool has_error() const override { return false; }
76 void clear_error() override {}
77 int error_code() const override { return 0; }
78 const char *error_message() const override { return "No error"; }
79
80 fl::vector<uint8_t> data;
81 size_t mPos = 0;

Callers

nothing calls this directly

Calls 7

CRGBClass · 0.50
setFadeMethod · 0.45
writeCRGBMethod · 0.45
beginMethod · 0.45
drawMethod · 0.45
durationMicrosMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected