#ifndef DCCD_USER_FORCE_H_
#define DCCD_USER_FORCE_H_

/**** Includes ****/
#include <stdint.h>
#include "dccd_hw.h"

namespace dccd {

/**** Public definitions ****/
class UserForce
{
	public:	
	UserForce(void);
	~UserForce(void);
	
	void init(dccd::DccdHw* dccd_hw);
	void cfg_debounce(uint16_t dbnc_time);
	void cfg_pot(uint16_t dead_bot, uint16_t dead_top);
	
	uint16_t btn_repeat_time;
	uint8_t pot_mode;
	uint8_t btn_step;
	
	uint8_t force;
	uint8_t is_new_btn_force;
	
	uint8_t process(void);
	void write_force(uint8_t force);
	
	#ifdef TESTING
	protected:
	#endif
	dccd::DccdHw* hardware;
	uint8_t btn_force;
};

/**** Public function declarations ****/

#ifdef TESTING
#endif

} //namespace

#endif /* DCCD_USER_FORCE_H_ */