ELEC2645 (2018/19) / Mbed 2 deprecated el17ebs

Dependencies:   mbed FATFileSystem

Menu/Menu.h

Committer:
ellisbhastroud
Date:
2019-04-08
Revision:
4:035448357749
Parent:
3:a8960004d261
Child:
5:0b31909caf7f

File content as of revision 4:035448357749:

#ifndef MENU_H
#define MENU_H

#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"


/** Menu Class
* @brief Library for navigating menu options
* @author Ellis Blackford Stroud
* @date May, 2018
*/

class Menu {

public:

    /** Constructor */
    Menu();

    /** Destructor */
    ~Menu();
    
    void init();

    /** Prints opening message */
    void print_welcome(N5110 &lcd);
    
    /** Prints menu screen */
    void print_menu(N5110 &lcd);
    
    /** Prints start screen */
    bool check_start(N5110 &lcd, Gamepad &pad);
    
     /** Prints highscore screen */
    void print_highscores(N5110 &lcd, Gamepad &pad);
    
     /** Prints settings screen */
    void print_settings(N5110 &lcd, Gamepad &pad);
    
    void draw_settings(N5110 &lcd, Gamepad &pad);
    
    /** Changes screen to menu choice and returns start game message 
    * @returns a bool: true to start game, false to stay in menu
    */
    bool menu_change(N5110 &lcd, Gamepad &pad);
    
    /** Returns to menu screen */
    void menu_return(N5110 &lcd, Gamepad &pad);

    /** Updates cursor and returns menu choice
    * @returns an enum: START, HIGHSCORES, SETTINGS
    */
    void menu_select(Gamepad &pad, N5110 &lcd);    
    
    void set_frame_rate(int frame_rate);
    
    void set_contrast(float contrast);
    
    void set_brightness(float brightness);
    
    int get_frame_rate();
    
    float get_contrast();
    
    float get_brightness();
    
    
private:

    
    void draw_cursor(N5110 &lcd);
    
    void move_cursor(N5110 &lcd);
    
    int _cursor_pos;
    
    float _pot;
    
    float _contrast; 
    
    float _brightness;
    
    int _frame_rate;
    
    Direction _joy_direction;
    
    

};

#endif