AirsoftTimer software based on mbed

Dependencies:   mbed TextLCD keypad

board/Board.h

Committer:
sillevl
Date:
2015-05-23
Revision:
19:2eba101d9c2c
Parent:
18:abcebc4d0da0
Child:
20:b89791ecceec

File content as of revision 19:2eba101d9c2c:

#ifndef BOARD_H
#define BOARD_H

#include "LCD.h" 
#include "Leds.h"
#include "Key.h"
#include "Buzzer.h"
#include "Button.h"
#include "Keyboard.h"

#include "FPointer.h"

#include <vector>

// class for debug leds
// class for eeprom memory
// class for wireless (nordic chip or xbee)

struct Pinouts{
    PinName button;
    PinName key;
    LedPins leds;
    PinName buzzer;
    KeyboardPins keyboard;
    LcdPins lcd;
};

/*class ButtonListener
{
  public:
  uint32_t buttonEvent(uint32_t c){
        return 0;
    };
};*/

class Board{
    public:
    Board(Pinouts pinouts);
    
    LCD* lcd;
    Leds* leds;
    Key* key;
    Button* button;
    Keyboard* keyboard;
    Buzzer* buzzer;
    
    //vector < ButtonListener * > listeners;
    uint32_t keyboardButton(uint32_t index);
    
    //void attach(ButtonListener *bl);
    //void attach(uint32_t (*fptr)(uint32_t));
        template<class T> 
    void attach(T* item, uint32_t(T::*method)(uint32_t)){
        _callback.attach(item, method);
    }
    
    protected:
    //void buttonEvent(char c);
    
    FPointer         _callback; // Called after each input

    
};

#endif