#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <wiringPi.h>
#include <lcd.h>


// Prototype de la procédure d'affichage du nom de la machine
void Affiche_Host(void);


int main (void)
{

    int lcd1 ;		// Déclaration de l'afficheur



	/* Test du mode "root" et de l'intallation correcte de WiringPi*/
      if(getuid()!=0) //wiringPi requires root privileges
      {
        printf("Error:wiringPi must be run as root.\n");
        return 1;
      }
      if(wiringPiSetup()==-1)
      {
        printf("Error:wiringPi setup failed.\n");
        return 1;
      }
	/**************************************************************/

	// Initialisation de l'afficheur
	lcd1 = lcdInit (2, 16, 4, 8, 9, 0,1,2,3,0,0,0,0) ;

	/* Test de la bonne initialisation de l'afficheur*/
	if (lcd1 == -1)
		{
			printf ("lcdInit failed\n") ;
			return 1 ;
		}
	/************************************************/

	delay(80);

	/* Ecran d'acceuil */
    printf("Programme d'affichage sur écran LCD\n");
    lcdPosition (lcd1, 0, 0) ; lcdPuts (lcd1, "TSTI2D 2012/2013") ;
    lcdPosition (lcd1, 0, 1) ; lcdPuts (lcd1, "  Raspberry Pi  ") ;
    delay(3000);
    lcdClear(lcd1);
    delay(80);

    // Appel de la procédure d'affichage du nom de la machine
    Affiche_Host();
	while(1);

  return 0 ;
}


/********************************************************/
/*     Procédure d'affichage du nom de la Raspberry     */
/********************************************************/
void Affiche_Host(void)
{
    char host[15];	// Déclaration d'un tableau de stockage du nom
    int lcd1 ;		// Déclaration de l'afficheur

	gethostname(host,15); // Récupération du nom de la machine

	// Affichage du nom de la machine

	printf("Nom de machine: %s\n", host);

 }
/********************************************************/
