#ifndef INCLUDE_TM1650_H_
#define INCLUDE_TM1650_H_

#include <SmingCore.h>

#define LED_NUM   4

typedef enum {
  Sym_0 = 0x3f,
  Sym_1 = 0x06,
  Sym_2 = 0x5b,
  Sym_3 = 0x4f,
  Sym_4 = 0x66,
  Sym_5 = 0x6d,
  Sym_6 = 0x7d,
  Sym_7 = 0x07,
  Sym_8 = 0x7f,
  Sym_9 = 0x6f,
  Sym_A = 0x77,
  Sym_B = 0x7c,
  Sym_C = 0x39,
  Sym_D = 0x5e,
  Sym_E = 0x79,
  Sym_F = 0x71,
  Sym_Dot = 0x80,
  Sym_Minus = 0x40,
  Sym_Plus = 0x46,
  Sym_H = 0x76,
  Sym_r = 0x60,
  Sym_o = 0x63,
  Sym_Off = 0x00
} tm1650_sym_t;

typedef enum {
  Dig_1 = 0x0,
  Dig_2 = 0x1,
  Dig_3 = 0x2,
  Dig_4 = 0x3,
} tm1650_pos_t;

/* Exported Functions */
void TM1650_Init(void);
void TM1650_Out(uint8_t i1, uint8_t i2, uint8_t i3, uint8_t i4);
void TM1650_Out1(tm1650_sym_t value);
void TM1650_Out2(tm1650_sym_t value);
void TM1650_Out3(tm1650_sym_t value);
void TM1650_Out4(tm1650_sym_t value);
void TM1650_DotSet(tm1650_pos_t pos);
void TM1650_DotRes(tm1650_pos_t pos);
void TM1650_Bright(uint8_t bright);

#endif /* INCLUDE_TM1650_H_ */
