Skip to content

Instantly share code, notes, and snippets.

@kelexel
Forked from anonymous/ESPLedDriver.cpp
Last active November 16, 2016 16:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kelexel/ab5687cf83e376c709e49fbfbcfc100b to your computer and use it in GitHub Desktop.
Save kelexel/ab5687cf83e376c709e49fbfbcfc100b to your computer and use it in GitHub Desktop.
How to reference Class methods in a Struct ?
void ESPLedDriver::colorwaves()
{
// ...
}
void ESPLedDriver::palettetest()
{
// ...
}
void ESPLedDriver::setPatterns()
{
// const uint8_t patternCount;
_patterns = {
// ERROR: src/ESPLedDriver.cpp:225:3: error: cannot convert 'ESPLedDriver::colorwaves' from type 'void (ESPLedDriver::)()' to type 'ESPLedDriver::Pattern {aka void (*)()}'
{ colorwaves, "Color Waves" },
// ERROR: src/ESPLedDriver.cpp:225:3: error: cannot convert 'ESPLedDriver::palettetest' from type 'void (ESPLedDriver::)()' to type 'ESPLedDriver::Pattern {aka void (*)()}'
{ this->palettetest, "Palette Test" },
};
}
#include "FastLED.h"
class ESPLedDriver
{
public:
ESPLedDriver();
// ...
private:
void setPatterns();
typedef void (*Pattern)();
typedef Pattern PatternList[];
typedef struct {
Pattern pattern;
String name;
} PatternAndName;
typedef PatternAndName PatternAndNameList[];
/* Patterns */
void colorwaves();
void palettetest();
PatternAndNameList _patterns;
uint8_t _patternCount;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment