
#include "main.h"
#include "libOLED/stm32_halDisplay.H"
#include "libOLED/fontclass.H"
#include "libOLED/displayDial.H"

namespace
{
  int const WIDTH = 128;
  int const HEIGHT = 64;
  int const DISPLAY_RAMWIDTH = 132;

}

uint8_t displayBuffer[dataSize (WIDTH, HEIGHT)];

stm32_halDisplay_t display1 (WIDTH, HEIGHT, DISPLAY_RAMWIDTH, displayBuffer,
			     &hspi1,

			     SPI_CD_GPIO_Port,
			     SPI_CD_Pin,
			     SPI_RESET_GPIO_Port,
			     SPI_RESET_Pin,
			     SPI_NSS1_GPIO_Port,
			     SPI_NSS1_Pin);


displayDial_t  dial (64, 64, 64);
int cnt = 0;


extern "C" void
cc_init ()
{
  display1.init();
  display1.clearDisplay ();

  dial.draw_scale (display1, 0 , 10 , 4, 15 ,2);

  display1.display ();
}


extern "C" void
cc_run()
{
	 if(cnt==0)
	   display1.clearDisplay();

	 display1.gotoxy(0,8);
	 display1.printString(small_font,"ABCDabcd",8,WHITE);

	 display1.gotoxy(0,16);
	 display1.printScaledString(small_font,"ABCD1234",8,128
	 			      ,WHITE);

	 display1.gotoxy(0,48);
	 display1.printScaledString(large_font,"ABCD1234",8,256
			      ,WHITE);
	 	 display1.drawLine(96,cnt,127,cnt,WHITE);
	 display1.display();
	 cnt++;
	 cnt%=64;
}
