#pragma once

#include "PWM_Output.h"
#include "OneButton.h"

enum RAMP_STATE { RampingUp = 0, RampingDown };

class RAMP_LIGHT {
public:
    RAMP_LIGHT(OneButton* button, PWM_Output* pwmOutput, int min, int max, float step);

private:
    PWM_Output* pwmOutput;
    OneButton* button;
    int min;
    int max;
    float step;
    float currentValue;
    bool IsOn = false;
    RAMP_STATE rampState;
    int tickCount;

    void tick();
    void singleClick();
    void longPressStart();
    void longPressStop();
    void duringLongPress();
};

