Skip to main content
2 of 2
added 90 characters in body
Mikael Patel
  • 8k
  • 2
  • 16
  • 21

How about this refactoring?

class CandleRack
{
  public:
    enum status_t
    {
      inactive = 0,
      candlesOn = 1,
      rewardAnimation = 2,
      tweetArrived = 3,
      partyMode = 4,      
    };    
    CandleRack(status_t status = inactive);
    ~CandleRack();
    void begin();
    void pushButton();
    void selectRandomCandle();
    void turnOnCandle(byte candlePosition);
    void burnCandlesForMs();
    void fadeOutCandle(byte candlePosition);

  private:
    Bounce *_debouncePushButton;
    byte _pushButtonPin;
    status_t _candleRackStatus;
    byte _candlePosition;
    byte _candleStatus[NUM_LEDS];
    elapsedMillis _candleTimeElapsed[NUM_LEDS];
    unsigned int _candleOnForMs;
};

And in a sketch with either the default setting (inactive)

CandleRack MyCandleRack;

or explicit

CandleRack MyCandleRack(CandleRack::candlesOn);

Cheers!

Mikael Patel
  • 8k
  • 2
  • 16
  • 21