#ifndef DS_BUTTON_H
#define DS_BUTTON_H

#include "stm32f0xx_hal.h"
#include <stdbool.h>

typedef struct DS_Button
{
    GPIO_TypeDef* Port;
    uint16_t Pin;
    bool Pressed, Released, PressedLong;
    uint32_t PrevTick, PressStartTick;
    uint8_t Storage;
}DS_Button;

void DS_ButtonInit(DS_Button* Button, GPIO_TypeDef* Port, uint16_t Pin);

void DS_ButtonUpdate(DS_Button* Button);

bool DS_ButtonPressed(DS_Button* Button);

bool DS_ButtonReleased(DS_Button* Button);

bool DS_Button_PressedLong(DS_Button* Button);

#endif //DS_BUTTON_H