/******************************************************************************!
 * \file mp3client-button.c
 * \author Sebastien Beaugrand
 * \sa http://beaugrand.chez.com/
 * \copyright CeCILL 2.1 Free Software license
 ******************************************************************************/
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <wiringPi.h>
#include "mp3client.h"
#include "common.h"

const unsigned int BOUTON_HALT = 8;
const unsigned int BOUTON_RAND = 9;
const unsigned int BOUTON_OK = 2;
const unsigned int BOUTON_GAUCHE = 0;
const unsigned int BOUTON_DROITE = 15;
const unsigned int BOUTON_HAUT = 3;
const unsigned int BOUTON_BAS = 7;

/******************************************************************************!
 * \fn keypadInit
 ******************************************************************************/
void keypadInit()
{
    pinMode(BOUTON_HALT, INPUT);
    pinMode(BOUTON_RAND, INPUT);
    pinMode(BOUTON_OK, INPUT);
    pinMode(BOUTON_GAUCHE, INPUT);
    pinMode(BOUTON_DROITE, INPUT);
    pinMode(BOUTON_HAUT, INPUT);
    pinMode(BOUTON_BAS, INPUT);
    pullUpDnControl(BOUTON_HALT, PUD_UP);
    pullUpDnControl(BOUTON_RAND, PUD_UP);
    pullUpDnControl(BOUTON_OK, PUD_UP);
    pullUpDnControl(BOUTON_GAUCHE, PUD_UP);
    pullUpDnControl(BOUTON_DROITE, PUD_UP);
    pullUpDnControl(BOUTON_HAUT, PUD_UP);
    pullUpDnControl(BOUTON_BAS, PUD_UP);
}

/******************************************************************************!
 * \fn keypadRead
 ******************************************************************************/
void keypadRead()
{
}

/******************************************************************************!
 * \fn keypadInit
 ******************************************************************************/
void keypadQuit()
{
}

/******************************************************************************!
 * \fn leftButton
 ******************************************************************************/
int leftButton()
{
    return digitalRead(BOUTON_GAUCHE) == LOW;
}

/******************************************************************************!
 * \fn downButton
 ******************************************************************************/
int downButton()
{
    return digitalRead(BOUTON_BAS) == LOW;
}

/******************************************************************************!
 * \fn rightButton
 ******************************************************************************/
int rightButton()
{
    return digitalRead(BOUTON_DROITE) == LOW;
}

/******************************************************************************!
 * \fn upButton
 ******************************************************************************/
int upButton()
{
    return digitalRead(BOUTON_HAUT) == LOW;
}

/******************************************************************************!
 * \fn okButton
 ******************************************************************************/
int okButton()
{
    return digitalRead(BOUTON_OK) == LOW;
}

/******************************************************************************!
 * \fn randButton
 ******************************************************************************/
int randButton()
{
    return digitalRead(BOUTON_RAND) == LOW;
}

/******************************************************************************!
 * \fn haltButton
 ******************************************************************************/
int haltButton()
{
    return digitalRead(BOUTON_HALT) == LOW;
}

/******************************************************************************!
 * \fn backButton
 ******************************************************************************/
int backButton()
{
    return 0;
}

/******************************************************************************!
 * \fn undefinedButton
 ******************************************************************************/
int undefinedButton()
{
    return 0;
}