Example #1
0
static enum color do_fourth_band_menu(void) 
{
    int band_selection = 0;
    enum color band_color_selection = 0;
            
    MENUITEM_STRINGLIST(colors_menu_fourth, "Fourth band colour:", NULL, 
                        "Gold", "Brown", "Red", "Silver", "(none)");
    band_selection = rb->do_menu(&colors_menu_fourth, &band_selection, NULL, 
                                false);
    switch(band_selection) {
        case 0: /* Gold */
            band_color_selection = RES_GOLD;
            break;
        case 1: /* Brown */
            band_color_selection = RES_BROWN;
            break;
        case 2: /* Red */
            band_color_selection = RES_RED;
            break;
        case 3: /* Silver */
            band_color_selection = RES_SILVER;
            break;
        case 4: /* (none) */
            band_color_selection = RES_NONE;
            break;
        default:
            band_color_selection = RES_INVALID;
            break;
    }
    return band_color_selection;
}
void set_frameskip(void)
{
    MENUITEM_STRINGLIST(smenu, "Frameskip", NULL, "0", "1", "2", "3", "4", "5");

    switch(rb->do_menu(&smenu, NULL, NULL, false))
    {
        case 0:
            FrameSkip = 0;
            return;
        case 1:
            FrameSkip = 1;
            return;
        case 2:
            FrameSkip = 2;
            return;
        case 3:
            FrameSkip = 3;
            return;
        case 4:
            FrameSkip = 4;
            return;
        case 5:
            FrameSkip = 5;
            return;
        default:
            return;
    }
}
Example #3
0
/************************************
 * General settings. Reset, save, etc
 ***********************************/
void menu_general_settings(void){
    int selection=0, result=0;

    MENUITEM_STRINGLIST(menu,"General Settings",NULL,
                        "Hour Format","Date Format","Show Counter",
                        "Reset Settings","Save Settings Now",
                        "Save On Exit","Backlight Settings",
                        "Idle Poweroff (temporary)");

    while(result>=0){
        result=rb->do_menu(&menu, &selection, NULL, false);
        switch(result){
            case 0:
                rb->set_option("Hour format",
                               &clock_settings.general.hour_format,
                               INT, hour_format_text, 2, NULL);
                break;
            case 1:
                rb->set_option("Date format",
                               &clock_settings.general.date_format,
                               INT, date_format_text, 4, NULL);
                break;
            case 2:
                rb->set_option("Show Counter", &clock_settings.general.show_counter,
                               BOOL, noyes_text, 2, NULL);
                break;
            case 3:
                confirm_reset();
                break;

            case 4:
                save_settings_wo_gui();
                rb->splash(HZ, "Settings saved");
                break;

            case 5:
                rb->set_option("Save On Exit",
                               &clock_settings.general.save_settings,
                               BOOL, noyes_text, 2, NULL);

                /* if we no longer save on exit,
                   we better save now to remember that */
                if(!clock_settings.general.save_settings)
                    save_settings_wo_gui();
                break;
            case 6:
                rb->set_option("Backlight Settings",
                               &clock_settings.general.backlight,
                               INT, backlight_settings_text, 3, NULL);
                apply_backlight_setting(clock_settings.general.backlight);
                break;

            case 7:
                rb->set_option("Idle Poweroff (temporary)",
                               &clock_settings.general.idle_poweroff,
                               BOOL, idle_poweroff_text, 2, NULL);
                break;
        }
    }
}
Example #4
0
static int plugins_menu(void* param)
{
    (void)param;
    MENUITEM_STRINGLIST(plugins_menu_items, ID2P(LANG_PLUGINS), NULL,
                        ID2P(LANG_PLUGIN_GAMES),
                        ID2P(LANG_PLUGIN_APPS), ID2P(LANG_PLUGIN_DEMOS));
    const char *folder;
    int retval = GO_TO_PREVIOUS;
    int selection = 0, current = 0;
    while (retval == GO_TO_PREVIOUS)
    {
        selection = do_menu(&plugins_menu_items, &current, NULL, false);
        switch (selection)
        {
            case 0:
                folder = PLUGIN_GAMES_DIR;
                break;
            case 1:
                folder = PLUGIN_APPS_DIR;
                break;
            case 2:
                folder = PLUGIN_DEMOS_DIR;
                break;
            default:
                return selection;
        }
        retval = rockbox_browse(folder, SHOW_PLUGINS);
    }
    return retval;
}
Example #5
0
/***************
 * Select a mode, returs true when the mode has been selected
 * (we go back to clock display then)
 **************/
bool menu_mode_selector(void){
    MENUITEM_STRINGLIST(menu,"Mode Selector",NULL, "Analog",
                        "Digital", "Binary");
    if(rb->do_menu(&menu, &clock_settings.mode, NULL, false) >=0)
        return(true);
    return(false);
}
static void tidy_lcd_menu(void)
{
    int selection = 0;
    struct simplelist_info list;

    MENUITEM_STRINGLIST(menu, "Disktidy Menu", NULL, "Start Cleaning",
                        "Files to Clean", "Quit");

    for(;;)
        switch(rb->do_menu(&menu, &selection, NULL, false))
        {
        default:
            user_abort = true;
        case 0:
            return; /* start cleaning */

        case 1:
            rb->simplelist_info_init(&list, "Files to Clean", tidy_type_count, NULL);
            list.get_icon = get_icon;
            list.get_name = get_name;
            list.action_callback = list_action_callback;
            rb->simplelist_show_list(&list);
            break;
        }
}
Example #7
0
/**********************
 * Analog settings menu
 *********************/
void menu_analog_settings(void)
{
    int selection=0, result=0;

    MENUITEM_STRINGLIST(menu,"Analog Mode Settings",NULL,"Show Date",
                        "Show Second Hand","Show Border");

    while(result>=0){
        result=rb->do_menu(&menu, &selection, NULL, false);
        switch(result){
            case 0:
                rb->set_option("Show Date", &clock_settings.analog.show_date,
                               BOOL, noyes_text, 2, NULL);
                break;
            case 1:
                rb->set_option("Show Second Hand",
                               &clock_settings.analog.show_seconds,
                               BOOL, noyes_text, 2, NULL);
                break;
            case 2:
                rb->set_option("Show Border",
                               &clock_settings.analog.show_border,
                               BOOL, noyes_text, 2, NULL);
                break;
        }
    }
}
Example #8
0
static int chopMenu(int menunum)
{
    int result = 0;
    int res = 0;
    bool menu_quit = false;

    static const struct opt_items levels[2] = {
        { "Normal", -1 },
        { "Steep", -1 },
    };
    
    MENUITEM_STRINGLIST(menu,"Chopper Menu",chopMenuCb,
                        "Resume Game","Start New Game",
                        "Level","Playback Control","Quit");
    _ingame = (menunum!=0);

#ifdef HAVE_LCD_COLOR
    rb->lcd_set_foreground(LCD_WHITE);
    rb->lcd_set_background(LCD_BLACK);
#elif LCD_DEPTH == 2
    rb->lcd_set_foreground(LCD_BLACK);
    rb->lcd_set_background(LCD_WHITE);
#endif

    rb->lcd_clear_display();
    rb->button_clear_queue();

    while (!menu_quit) {
        switch(rb->do_menu(&menu, &result, NULL, false))
        {
            case 0:     /* Resume Game */
                menu_quit=true;
                res = -1;
                break;
            case 1:     /* Start New Game */
                menu_quit=true;
                chopper_load(true);
                res = -1;
                break;
            case 2:
                rb->set_option("Level", &iLevelMode, INT, levels, 2, NULL);
                break;
            case 3:
                playback_control(NULL);
                break;
            case 4:
                menu_quit=true;
                res = PLUGIN_OK;
                break;
            case MENU_ATTACHED_USB:
                menu_quit=true;
                res = PLUGIN_USB_CONNECTED;
                break;
        }
    }
    rb->lcd_clear_display();
    return res;
}
Example #9
0
static void game_init(void)
{
    int selection = 0;

    static const struct opt_items type_options[] = {
        { "Type A", -1 },
        { "Type B", -1 },
    };

    MENUITEM_STRINGLIST(menu, "Snake2 Menu", NULL,
                        "Start New Game",
                        "Game Type", "Select Maze", "Speed",
                        "High Scores",
                        "Playback Control", "Quit");

    rb->button_clear_queue();

    dead = 0;
    apple = 0;
    score = 0;
    applecount = 0;

    while (1) {
        switch (rb->do_menu(&menu, &selection, NULL, false)) {
            case 0:
                speed = level*20;
                return;
            case 1:
                rb->set_option("Game Type", &game_type, INT,
                               type_options, 2, NULL);
                break;
            case 2:
                select_maze();
                if(quit) return;
                break;
            case 3:
                rb->set_int("Speed", "", UNIT_INT, &level,
                            NULL, 1, 1, 10, NULL);
                break;
            case 4:
                highscore_show(-1, highscores, NUM_SCORES, true);
                break;
            case 5:
                playback_control(NULL);
                break;
            case 6:
                quit = 1;
                return;
            case MENU_ATTACHED_USB:
                quit = 2;
                return;
            default:
                break;
        }
    }
}
Example #10
0
static enum color do_third_band_menu(void) 
{
    int band_selection = 0;
    enum color band_color_selection = 0;
            
    MENUITEM_STRINGLIST(colors_menu_third, "Third band colour:", NULL, 
                        "Black", "Brown", "Red", "Orange", "Yellow",
                         "Green", "Blue", "Violet", "Grey", "White",
                         "Silver", "Gold");
    band_selection = rb->do_menu(&colors_menu_third, &band_selection, NULL, 
                                false);
    switch(band_selection) {
        case 0: /* Black */
            band_color_selection = RES_BLACK;
            break;
        case 1: /* Brown */
            band_color_selection = RES_BROWN;
            break;
        case 2: /* Red */
            band_color_selection = RES_RED;
            break;
        case 3: /* Orange */
            band_color_selection = RES_ORANGE;
            break;
        case 4: /* Yellow */
            band_color_selection= RES_YELLOW;
            break;
        case 5: /* Green */
            band_color_selection = RES_GREEN;
            break;
        case 6: /* Blue */
            band_color_selection = RES_BLUE;
            break;
        case 7: /* Violet */
            band_color_selection = RES_VIOLET;
            break;
        case 8: /* Grey */
            band_color_selection = RES_GREY;
            break;
        case 9: /* White */
            band_color_selection = RES_WHITE;
            break;
        case 10: /* Silver */
            band_color_selection = RES_SILVER;
            break;
        case 11: /* Gold */
            band_color_selection= RES_GOLD;
            break;
        default:
            band_color_selection = RES_INVALID;
            break;
    }
    return band_color_selection;
}
Example #11
0
static int clix_menu(struct clix_game_state_t* state, bool ingame)
{
    rb->button_clear_queue();
    int choice = 0;
    bool leave_menu=false;
    int ret=0;

    _ingame = ingame;

    MENUITEM_STRINGLIST (main_menu, "Clix Menu", clix_menu_cb,
                             "Resume Game",
                             "Start New Game",
                             "Help",
                             "High Scores",
                             "Playback Control",
                             "Quit");

    while (!leave_menu) {

        switch (rb->do_menu(&main_menu, &choice, NULL, false)) {
            case 0:
                leave_menu=true;
                ret = 0;
                break;
            case 1:
                clix_init(state);
                leave_menu=true;
                ret = 0;
                break;
            case 2:
                if (clix_help()) {
                    leave_menu=true;
                    ret = 1;
                }
                break;
            case 3:
                highscore_show(-1, highscores, NUM_SCORES, true);
                break;
            case 4:
                playback_control(NULL);
                break;
            case 5:
            case MENU_ATTACHED_USB:
                leave_menu=true;
                ret = 1;
                break;
            default:
                break;
        }
    }

    return ret;
}
Example #12
0
static void
do_options_menu (void)
{
    int selection;
    bool done = false;

    MENUITEM_STRINGLIST (options_menu, "Options Menu", NULL,
                         "Show Child Variations?",
                         "Disable Idle Poweroff?",
                         "Idle Autosave Time",
                         "Automatically Show Comments?");

    while (!done)
    {
        selection = rb->do_menu (&options_menu, &selection, NULL, false);

        switch (selection)
        {
        case OMENU_SHOW_VARIATIONS:
            rb->set_bool("Draw Variations?", &draw_variations);
            clear_marks_display ();
            set_all_marks_sgf ();
            if (draw_variations)
            {
                mark_child_variations_sgf ();
            }
            break;

        case OMENU_DISABLE_POWEROFF:
            rb->set_bool("Disable Idle Poweroff?", &disable_shutdown);
            break;

        case OMENU_AUTOSAVE_TIME:
            rb->set_int("Idle Autosave Time", "minutes", UNIT_INT,
                        &autosave_time, NULL, 1, 0, MAX_AUTOSAVE,
                        &autosave_formatter);
            autosave_counter = 0;
            break;

        case OMENU_AUTO_COMMENT:
            rb->set_bool("Auto Show Comments?", &auto_show_comments);
            break;

        case GO_TO_ROOT:
        case GO_TO_PREVIOUS:
        case MENU_ATTACHED_USB:
        default:
            done = true;
            break;
        };
    }

}
Example #13
0
/* welcome screen where player can chose mine percentage */
enum minesweeper_status menu( void )
{
    int selection = 0, result = MINESWEEPER_QUIT;
    bool menu_quit = false;

    MENUITEM_STRINGLIST( menu, "Minesweeper Menu", NULL, "Play Minesweeper",
                         "Mine Percentage", "Number of Rows",
                         "Number of Columns", "Playback Control", "Quit" );

#ifdef HAVE_LCD_COLOR
    rb->lcd_set_foreground( rb->global_settings->fg_color );
    rb->lcd_set_background( rb->global_settings->bg_color );
#endif

    while( !menu_quit )
    {
        switch( rb->do_menu( &menu, &selection, NULL, false ) )
        {
        case 0:
            result = MINESWEEPER_WIN; /* start playing */
            menu_quit = true;
            break;

        case 1:
            rb->set_int( "Mine Percentage", "%", UNIT_INT, &percent, NULL,
                         1, 2, 98, NULL );
            break;

        case 2:
            rb->set_int( "Number of Rows", "", UNIT_INT, &height, NULL,
                         1, 1, MAX_HEIGHT, NULL );
            break;

        case 3:
            rb->set_int( "Number of Columns", "", UNIT_INT, &width, NULL,
                         1, 1, MAX_WIDTH, NULL );
            break;

        case 4:
            playback_control( NULL );
            break;

        default:
            result = MINESWEEPER_QUIT; /* quit program */
            menu_quit = true;
            break;
        }
    }

    return result;
}
Example #14
0
enum plugin_status plugin_start(const void* nothing) 
{
    (void)nothing;
    rb->lcd_clear_display();
    rb->lcd_update();
    int main_menu_selection = 0;
    bool menuquit = false;

    display = rb->screens[0];
    rb->viewport_set_defaults(&screen_vp,0);
    rb->viewport_set_defaults(&text_vp,0);
    rb->viewport_set_defaults(&bitmap_vp,0);
#ifndef USE_TEXT_ONLY
    bitmap_vp.y = RESISTOR_BMP_Y + screen_vp.y;
    bitmap_vp.height = BMPHEIGHT_resistor;
    text_vp.y = bitmap_vp.y + bitmap_vp.height;
    text_vp.height = screen_vp.height - text_vp.y;
#endif

    MENUITEM_STRINGLIST(main_menu, "Resistor Code Calculator:", NULL, 
                        "Colours -> Resistance", "Resistance -> Colours", 
                        "LED resistor calculator", "Help", "Exit");
    while (!menuquit) {
        display->set_viewport(&screen_vp);
        main_menu_selection = rb->do_menu(&main_menu, &main_menu_selection, 
                                          NULL, false);
        switch(main_menu_selection) {
            case 0:
                color_to_resistance();
                break;
            case 1:
                resistance_to_color();
                break;
            case 2:
                led_resistance_calc();
                break;
            case 3:
                display_helpfile();
                break;
            case 4:
                menuquit = true;
                break;
            case MENU_ATTACHED_USB:
                return PLUGIN_USB_CONNECTED;
        }
    }
    return PLUGIN_OK;
}
void sound_onoff(void)
{
    MENUITEM_STRINGLIST(smenu, "Sound", NULL, "On", "Off");

    switch(rb->do_menu(&smenu, NULL, NULL, false))
    {
        case 0:
	    sound_on = true;
            return;
        case 1:
            sound_on = false;
            return;
        default:
            return;
    }
}
void video_menu(void)
{
    MENUITEM_STRINGLIST(smenu, "Video", NULL, "Display Size", "Frameskip");

    switch(rb->do_menu(&smenu, NULL, NULL, false))
    {
        case 0:
            set_display_mode();
            break;
        case 1:
            set_frameskip();
            break;
        default:
            break;
    }
}
Example #17
0
static int rockblox_menu(void)
{
    int selected = 0;

    MENUITEM_STRINGLIST(main_menu, "Rockblox Menu", rockblox_menu_cb,
                        "Resume Game", "Start New Game",
                        "Help", "High Scores", "Playback Control",
                        "Quit without Saving", "Quit");

    rb->button_clear_queue();
    while (true) {
        switch (rb->do_menu(&main_menu, &selected, NULL, false)) {
            case 0:
                if(resume_file)
                    rb->remove(RESUME_FILE);
                init_rockblox(true);
                return 0;
            case 1:
                init_rockblox(false);
                return 0;
            case 2:
                if (rockblox_help())
                    return 1;
                break;
            case 3:
                highscore_show(-1, highscores, NUM_SCORES, true);
                break;
            case 4:
                if (playback_control(NULL))
                    return 1;
                break;
            case 5:
                return 1;
            case 6:
                if (resume) {
                    rb->splash(HZ*1, "Saving game ...");
                    dump_resume();
                }
                return 1;
            case MENU_ATTACHED_USB:
                return 1;
            default:
                return 1;
                break;
        }
    }
}
Example #18
0
/***********
 * Main menu
 **********/
bool main_menu(void){
    int selection=0;
    bool done = false;
    bool exit_clock=false;

    MENUITEM_STRINGLIST(menu,"Clock Menu",NULL,"View Clock","Mode Selector",
                        "Mode Settings","General Settings","Playback Control",
                        "Quit");

    while(!done){
        switch(rb->do_menu(&menu, &selection, NULL, false)){
            case 0:
                done = true;
                break;

            case 1:
                done=menu_mode_selector();
                break;

            case 2:
                switch(clock_settings.mode){
                    case ANALOG: menu_analog_settings();break;
                    case DIGITAL: menu_digital_settings();break;
                    case BINARY: /* no settings */;break;
                }
                break;

            case 3:
                menu_general_settings();
                break;

            case 4:
                playback_control(NULL);
                break;

            case 5:
                exit_clock = true;
                done = true;
                break;

            default:
                done=true;
                break;
        }
    }
    return(exit_clock);
}
Example #19
0
/*****************************************************************************
* plugin entry point.
******************************************************************************/
enum plugin_status plugin_start(const void* parameter)
{
    enum plugin_status rc = PLUGIN_CONTINUE;
    int selection = 0;

    (void)parameter;

    rb->lcd_clear_display();

#if LCD_DEPTH > 1
    rb->lcd_set_backdrop(NULL);
#endif
    rb->lcd_setfont(FONT_SYSFIXED);

    remote_control_setcolors();

    MENUITEM_STRINGLIST(menu, "Remote Control", NULL, "Desktop", "Presentation",
            "Media Player", "Quit");
    while(rc == PLUGIN_CONTINUE)
    {
        switch (rb->do_menu(&menu, &selection, NULL, false))
        {
            case 0: /* Desktop */
                rc = menu_desktop();
                break;
            case 1: /* Presentation */
                rc = menu_presentation();
                break;
            case 2: /* Media Player */
                rc = menu_media_player();
                break;
            case 3: /* Quit */
            case GO_TO_PREVIOUS:
                rc = PLUGIN_OK;
                break;
            case MENU_ATTACHED_USB:
                rc = PLUGIN_USB_CONNECTED;
                break;
            default:
                break;
        }
    }
    rb->lcd_setfont(FONT_UI);

    return rc;
}
Example #20
0
static int menu_media_player(void)
{
    int selection = 0;

    MENUITEM_STRINGLIST(menu, "Media Player", NULL, "Play", "Stop", "Next",
            "Previous", "Volume Up", "Volume Down", "Mute");
    while(1)
    {
        int id = HID_CONSUMER_USAGE_UNASSIGNED;

        switch (rb->do_menu(&menu, &selection, NULL, false))
        {
            case 0: /* Play */
                id = HID_CONSUMER_USAGE_PLAY_PAUSE;
                break;
            case 1: /* Stop */
                id = HID_CONSUMER_USAGE_STOP;
                break;
            case 2: /* Next */
                id = HID_CONSUMER_USAGE_SCAN_NEXT_TRACK;
                break;
            case 3: /* Previous */
                id = HID_CONSUMER_USAGE_SCAN_PREVIOUS_TRACK;
                break;
            case 4: /* Volume Up */
                id = HID_CONSUMER_USAGE_VOLUME_INCREMENT;
                break;
            case 5: /* Volume Down */
                id = HID_CONSUMER_USAGE_VOLUME_DECREMENT;
                break;
            case 6: /* Mute */
                id = HID_CONSUMER_USAGE_MUTE;
                break;
            case MENU_ATTACHED_USB:
                return PLUGIN_USB_CONNECTED;
            case GO_TO_PREVIOUS:
                return PLUGIN_CONTINUE;
            default:
                break;
        }

        if (id != HID_CONSUMER_USAGE_UNASSIGNED)
            rb->usb_hid_send(HID_USAGE_PAGE_CONSUMER, id);
    }
}
Example #21
0
static int menu_presentation(void)
{
    int selection = 0;

    MENUITEM_STRINGLIST(menu, "Presentation", NULL, "Next Slide", "Prev Slide",
            "Start Slideshow", "Leave Slideshow", "Black Screen",
            "White Screen");
    while(1)
    {
        int id = HID_GENERIC_DESKTOP_UNDEFINED;

        switch (rb->do_menu(&menu, &selection, NULL, false))
        {
            case 0: /* Next Slide */
                id = HID_KEYBOARD_N;
                break;
            case 1: /* Prev Slide */
                id = HID_KEYBOARD_P;
                break;
            case 2: /* Start Slideshow */
                id = HID_KEYBOARD_F5;
                break;
            case 3: /* Leave Slideshow */
                id = HID_KEYBOARD_ESCAPE;
                break;
            case 4: /* Black Screen */
                id = HID_KEYBOARD_DOT;
                break;
            case 5: /* White Screen */
                id = HID_KEYBOARD_COMMA;
                break;
            case MENU_ATTACHED_USB:
                return PLUGIN_USB_CONNECTED;
            case GO_TO_PREVIOUS:
                return PLUGIN_CONTINUE;
            default:
                break;
        }

        if (id != HID_GENERIC_DESKTOP_UNDEFINED)
            rb->usb_hid_send(HID_USAGE_PAGE_KEYBOARD_KEYPAD, id);
    }
}
void set_display_mode(void)
{
    MENUITEM_STRINGLIST(smenu, "Display Size", NULL, "Stretch", "Centered", "Half Size");

    switch(rb->do_menu(&smenu, NULL, NULL, false))
    {
        case 0:
            DisplaySize = scale;
            return;
        case 1:
            DisplaySize = center;
            return;
        case 2:
            DisplaySize = half;
            return;
        default:
            return;
    }
}
Example #23
0
static int snake_game_menu(void)
{
    MENUITEM_STRINGLIST(main_menu,"Snake Menu",snake_menu_cb,
                        "Resume Game",
                        "Start New Game",
                        "Snake Speed",
                        "High Score",
                        "Playback Control",
                        "Quit");
    int selected = 0;

    rb->button_clear_queue();

    while (true) {
        switch (rb->do_menu(&main_menu, &selected, NULL, false)) {
            case 0:
                snake_redraw();
                return 0;
            case 1:
                snake_game_init();
                return 0;
            case 2:
                rb->set_int("Snake Speed", "", UNIT_INT, &level,
                            NULL, 1, 1, 9, NULL);
                break;
            case 3:
                highscore_show(-1, highscores, NUM_SCORES, true);
                rb->lcd_setfont(FONT_UI);
                break;
            case 4:
                playback_control(NULL);
                break;
            case 5:
                return 1;
            case MENU_ATTACHED_USB:
                return 1;
            default:
                break;
        }
    }
}
void menu(void)
{
    MENUITEM_STRINGLIST(menu, "Menu", NULL, "Start Button", "Load", "Save", "Video", "Sound", "Quit", "MENU function");

    switch (rb->do_menu(&menu, NULL, NULL, false))
    {
        case 0:
            dwPad1 |= 1 << 3;
        case 1:
            load();
            break;
        case 2:
            save();
            break;
        case 3:
            video_menu();
            break;
        case 4:
            sound_onoff();
            break;
        case 5:
            dwSystem|=PAD_SYS_QUIT;
            quit=1;
            break;
        case 6:
if (NES_BUTTON_B == BUTTON_MENU ) 
{
            NES_BUTTON_B = BUTTON_NONE;
            NES_BUTTON_UP = BUTTON_MENU;
            break;   }
else {
            NES_BUTTON_UP = BUTTON_NONE;
            NES_BUTTON_B = BUTTON_MENU; }


        default:
            break;	
    }
    return;
}
Example #25
0
static int menu_desktop(void)
{
    int selection = 0;

    MENUITEM_STRINGLIST(menu, "Desktop", NULL, "Escape", "Windows", "F10",
            "Page Up", "Page Down");
    while(1)
    {
        int id = HID_GENERIC_DESKTOP_UNDEFINED;

        switch (rb->do_menu(&menu, &selection, NULL, false))
        {
            case 0: /* Escape */
                id = HID_KEYBOARD_ESCAPE;
                break;
            case 1: /* Windows */
                /* Not sure whether this is the right key */
                id = HID_KEYBOARD_LEFT_GUI;
                break;
            case 2: /* F10 */
                id = HID_KEYBOARD_F10;
                break;
            case 3: /* Page Up */
                id = HID_KEYBOARD_PAGE_UP;
                break;
            case 4: /* Page Down */
                id = HID_KEYBOARD_PAGE_DOWN;
                break;
            case MENU_ATTACHED_USB:
                return PLUGIN_USB_CONNECTED;
            case GO_TO_PREVIOUS:
                return PLUGIN_CONTINUE;
            default:
                break;
        }

        if (id != HID_GENERIC_DESKTOP_UNDEFINED)
            rb->usb_hid_send(HID_USAGE_PAGE_KEYBOARD_KEYPAD, id);
    }
}
Example #26
0
/***********************
 * Digital settings menu
 **********************/
void menu_digital_settings(void){
    int selection=0, result=0;

    MENUITEM_STRINGLIST(menu,"Digital Mode Settings",NULL,"Show Seconds",
                        "Blinking Colon");

    while(result>=0){
        result=rb->do_menu(&menu, &selection, NULL, false);
        switch(result){
            case 0:
                rb->set_option("Show Seconds",
                               &clock_settings.digital.show_seconds,
                               BOOL, noyes_text, 2, NULL);
                break;
            case 1:
                rb->set_option("Blinking Colon",
                               &clock_settings.digital.blinkcolon,
                               BOOL, noyes_text, 2, NULL);
                break;
        }
    }
}
Example #27
0
unsigned tv_display_menu(void)
{
    unsigned result = TV_MENU_RESULT_EXIT_MENU;

    MENUITEM_STRINGLIST(menu, "Viewer Menu", NULL,
                        "Return", "Viewer Options",
                        "Show Playback Menu", "Select Bookmark",
                        "Global Settings", "Quit");

    switch (rb->do_menu(&menu, NULL, NULL, false))
    {
        case 0: /* return */
            break;
        case 1: /* change settings */
            tv_copy_preferences(&new_prefs);
            result = tv_options_menu();
            tv_set_preferences(&new_prefs);
            break;
        case 2: /* playback control */
            playback_control(NULL);
            break;
        case 3: /* select bookmark */
            tv_select_bookmark();
            result = TV_MENU_RESULT_MOVE_PAGE;
            break;
        case 4: /* change global settings */
            if (!tv_load_global_settings(&new_prefs))
                tv_set_default_preferences(&new_prefs);

            result = tv_options_menu();
            tv_save_global_settings(&new_prefs);
            break;
        case 5: /* quit */
            result = TV_MENU_RESULT_EXIT_PLUGIN;
            break;
    }
    return result;
}
Example #28
0
static int run_timer(int nr)
{
    char buf[40];
    char player_info[13];
    long last_tick;
    bool done=false;
    int retval=CHCL_OK;
    long max_ticks=timer_holder[nr].total_time*HZ-timer_holder[nr].used_time;
    long ticks=0;
    bool round_time=false;

    show_pause_mode(chesspause);

    if (settings.round_time*HZ<max_ticks) {
        max_ticks=settings.round_time*HZ;
        round_time=true;
    }
    rb->snprintf(player_info, sizeof(player_info), "Player %d", nr+1);
    rb->lcd_puts(0, FIRST_LINE, (unsigned char *)player_info);
    last_tick=*rb->current_tick;

    while (!done) {
        int button;
        long now;
        if (ticks>=max_ticks) {
            if (round_time)
                rb->lcd_puts(0, FIRST_LINE+1, (unsigned char *)"ROUND UP!");
            else
                rb->lcd_puts(0, FIRST_LINE+1, (unsigned char *)"TIME OUT!");
            rb->backlight_on();
            ticks = max_ticks;
        } else {
            now=*rb->current_tick;
            if (!chesspause) {
                ticks+=now-last_tick;
                if ((max_ticks-ticks)/HZ == 10) {
                     /* Backlight on if 10 seconds remain */
                    rb->backlight_on();
                }
            }
            last_tick=now;
            if (round_time) {
                rb->snprintf(buf, sizeof(buf), "%s/",
                             show_time((max_ticks-ticks+HZ-1)/HZ));
                /* Append total time */
                rb->strcpy(&buf[rb->strlen(buf)],
                           show_time((timer_holder[nr].total_time*HZ-
                                      timer_holder[nr].used_time-
                                      ticks+HZ-1)/HZ));
                rb->lcd_puts(0, FIRST_LINE+1, (unsigned char *)buf);
            } else {
                rb->lcd_puts(0, FIRST_LINE+1,
                             (unsigned char *)show_time((max_ticks-ticks+HZ-1)/HZ));
            }
        }
        rb->lcd_update();

        button = rb->button_get(false);
        switch (button) {
            /* OFF/ON key to exit */
            case CHC_QUIT:
                return CHCL_CANCEL; /* Indicate exit */

            /* PLAY = Stop/Start toggle */
            case CHC_STARTSTOP:
                chesspause=!chesspause;
                show_pause_mode(chesspause);
                break;

            /* LEFT = Reset timer */
            case CHC_RESET:
                ticks=0;
                break;

                /* MENU  */
            case CHC_MENU:
            {
                MENUITEM_STRINGLIST(menu, "Menu", NULL,
                                    "Delete player", "Restart round",
                                    "Set round time", "Set total time",
                                    "Playback Control");

                int val, res;
                switch(rb->do_menu(&menu, NULL, NULL, false))
                {
                    case 0:
                        /* delete player */
                        timer_holder[nr].hidden=true;
                        retval = CHCL_NEXT;
                        done=true;
                        break;
                    case 1:
                        /* restart */
                        ticks=0;
                        last_tick=*rb->current_tick;
                        break;
                    case 2:
                        /* set round time */
                        val=(max_ticks-ticks)/HZ;
                        res=chessclock_set_int("Round time",
                                               &val, 10, 0, MAX_TIME,
                                               FLAGS_SET_INT_SECONDS);
                        if (res==CHCL_USB) {
                            retval = CHCL_USB;
                            done=true;
                        } else if (res==CHCL_OK) {
                            ticks=max_ticks-val*HZ;
                            last_tick=*rb->current_tick;
                        }
                        break;
                    case 3:
                        /* set total time */
                        val=timer_holder[nr].total_time;
                        res=chessclock_set_int("Total time",
                                               &val,
                                               10, 0, MAX_TIME,
                                               FLAGS_SET_INT_SECONDS);
                        if (res==CHCL_USB) {
                            retval = CHCL_USB;
                            done=true;
                        } else if (res==CHCL_OK) {
                            timer_holder[nr].total_time=val;
                        }
                        break;
                    case 4:
                        playback_control(NULL);
                        break;
                    case MENU_ATTACHED_USB:
                        retval = CHCL_USB;
                        done=true;
                        break;
                }
                rb->lcd_clear_display();
                show_pause_mode(chesspause);
                rb->lcd_puts(0, FIRST_LINE, (unsigned char *)player_info);
            }
            break;

            /* UP (RIGHT/+) = Scroll Lap timer up */
            case CHC_SETTINGS_INC:
                retval = CHCL_NEXT;
                done = true;
                break;

            /* DOWN (LEFT/-) = Scroll Lap timer down */
            case CHC_SETTINGS_DEC:
                retval = CHCL_PREV;
                done = true;
                break;

            default:
                if (rb->default_event_handler(button) == SYS_USB_CONNECTED) {
                    retval = CHCL_USB;
                    done = true;
                }
                break;
        }
        rb->sleep(HZ/4); /* Sleep 1/4 of a second */
    }

    timer_holder[nr].used_time+=ticks;

    return retval;
}
Example #29
0
static void resistance_to_color(void) 
{
    backlight_ignore_timeout();
    int menu_selection;
    int menu_selection_tol;
    int button_press;
    int i;
    bool quit = false;
    char kbd_buffer [10];
    int kbd_input_int;
    int temp;
    int in_resistance_int;
    
    int power_ten=0;
    int first_band_int = 0;
    int second_band_int = 0;
    
    enum color first_band;
    enum color second_band;
    enum color multiplier;
    enum color fourth_band = 0;
    enum color units_used = 0;
    
    char out_str[20];
    
    for(i=0; i<=10; i++) { kbd_buffer[i] = 0; }
    /* This cleans out the mysterious garbage that appears */
    rb->lcd_clear_display();
    rb->splash(HZ/2, "Resistance to Colour");
    MENUITEM_STRINGLIST(r_to_c_menu, "Select unit to use:", NULL, 
                        "Ohms", "Kiloohms (KOhms)", "Megaohms (MOhms)",
                        "Gigaohms (GOhms)");
    MENUITEM_STRINGLIST(r_to_c_menu_tol, "Tolerance to display:", NULL,
                        "5%", "10%", "1%", "2%", "20%");
      
    while(!quit) {
        int ret;
        ret=menu_selection = rb->do_menu(&r_to_c_menu, &menu_selection,
                                     NULL, false);
        if(ret<0) break;
        
        rb->kbd_input(kbd_buffer, sizeof(kbd_buffer));
        /* As stated above somewhere, we (I) need to make a calculator-like
           keypad, that keyboard isn't all that fun to use. */
        ret = rb->do_menu(&r_to_c_menu_tol, &menu_selection_tol,
                                         NULL, false);
        if(ret<0) break;

        switch(menu_selection_tol) {
            case 0: /* 5% */
                fourth_band = RES_GOLD;
                break;
            case 1: /* 10% */
                fourth_band = RES_SILVER;
                break;
            case 2: /* 1% */
                fourth_band = RES_BROWN;
                break;
            case 3: /* 2% */
                fourth_band = RES_RED;
                break;
            case 4: /* 20% */
                fourth_band = RES_NONE;
                break;
        }
            
        kbd_input_int = rb->atoi(kbd_buffer);
        in_resistance_int = kbd_input_int;
        
        switch(menu_selection) {
            case 0:
                power_ten=0;
                units_used = RES_BLACK;
                break;
            case 1: /* KOhms */
                power_ten=3;
                units_used = RES_ORANGE;
                break;
            case 2: /* MOhms */
                power_ten=6;
                units_used = RES_BLUE;
                break;
            case 3: /* GOhms */
                power_ten=9;
                units_used = RES_WHITE;
                break;
        }

        temp=kbd_input_int;
        while(temp>=100) {
            temp/=10;
            power_ten++;
        }
        first_band_int=temp/10;
        second_band_int=temp%10;

        first_band = get_band_rtoc(first_band_int);
        second_band = get_band_rtoc(second_band_int);
        multiplier = get_band_rtoc(power_ten);

        if( first_band == RES_INVALID
         || second_band == RES_INVALID
         || multiplier == RES_INVALID) {
            rb->splashf(HZ, "%d %s can not be represented",
                        in_resistance_int,band_data[units_used].unit);
            return;
        }
        
        rb->lcd_clear_display();
        lineno = INITIAL_TEXT_Y;
#ifndef USE_TEXT_ONLY
        draw_resistor(first_band, second_band, multiplier, fourth_band);
#endif                     
        draw_resistor_text(first_band, second_band, multiplier, fourth_band);
        
        rb->snprintf(out_str, sizeof(out_str), "Input: %d %s", in_resistance_int,
                     band_data[units_used].unit);
        display->set_viewport(&text_vp);
        rb->lcd_puts_scroll(r_to_c_out_str_x, lineno++, out_str);
        rb->lcd_update();
        
        button_press = rb->button_get(true);
        switch(button_press) {
            case PLA_SELECT:
                break;
            default:
                quit = true;
                backlight_use_settings();
                break;
        }
    }
    display->set_viewport(&text_vp);
    rb->lcd_stop_scroll();
    display->set_viewport(&screen_vp);
    rb->lcd_clear_display();
}
Example #30
0
/* ------------------------------------------------------------------------*/
static int select_bookmark(const char* bookmark_file_name, bool show_dont_resume, char** selected_bookmark)
{
    struct bookmark_list* bookmarks;
    struct gui_synclist list;
    int item = 0;
    int action;
    size_t size;
    bool exit = false;
    bool refresh = true;
    int ret = BOOKMARK_FAIL;

    bookmarks = plugin_get_buffer(&size);
    bookmarks->buffer_size = size;
    bookmarks->show_dont_resume = show_dont_resume;
    bookmarks->filename = bookmark_file_name;
    bookmarks->start = 0;
    bookmarks->show_playlist_name
        = strcmp(bookmark_file_name, RECENT_BOOKMARK_FILE) == 0;
    gui_synclist_init(&list, &get_bookmark_info, (void*) bookmarks, false, 2, NULL);
    if(global_settings.talk_menu)
        gui_synclist_set_voice_callback(&list, bookmark_list_voice_cb);
    gui_synclist_set_title(&list, str(LANG_BOOKMARK_SELECT_BOOKMARK), 
        Icon_Bookmark);

    while (!exit)
    {
        
        if (refresh)
        {
            int count = get_bookmark_count(bookmark_file_name);
            bookmarks->total_count = count;

            if (bookmarks->total_count < 1)
            {
                /* No more bookmarks, delete file and exit */
                splash(HZ, ID2P(LANG_BOOKMARK_LOAD_EMPTY));
                remove(bookmark_file_name);
                *selected_bookmark = NULL;
                return BOOKMARK_FAIL;
            }

            if (bookmarks->show_dont_resume)
            {
                count++;
                item++;
            }

            gui_synclist_set_nb_items(&list, count * 2);

            if (item >= count)
            {
                /* Selected item has been deleted */
                item = count - 1;
                gui_synclist_select_item(&list, item * 2);
            }

            buffer_bookmarks(bookmarks, bookmarks->start);
            gui_synclist_draw(&list);
            cond_talk_ids_fq(VOICE_EXT_BMARK);
            gui_synclist_speak_item(&list);
            refresh = false;
        }

        list_do_action(CONTEXT_BOOKMARKSCREEN, HZ / 2,
                       &list, &action, LIST_WRAP_UNLESS_HELD);
        item = gui_synclist_get_sel_pos(&list) / 2;

        if (bookmarks->show_dont_resume)
        {
            item--;
        }

        if (action == ACTION_STD_CONTEXT)
        {
            MENUITEM_STRINGLIST(menu_items, ID2P(LANG_BOOKMARK_CONTEXT_MENU),
                NULL, ID2P(LANG_BOOKMARK_CONTEXT_RESUME), 
                ID2P(LANG_BOOKMARK_CONTEXT_DELETE));
            static const int menu_actions[] = 
            {
                ACTION_STD_OK, ACTION_BMS_DELETE
            };
            int selection = do_menu(&menu_items, NULL, NULL, false);
            
            refresh = true;

            if (selection >= 0 && selection <= 
                (int) (sizeof(menu_actions) / sizeof(menu_actions[0])))
            {
                action = menu_actions[selection];
            }
        }

        switch (action)
        {
        case ACTION_STD_OK:
            if (item >= 0)
            {
                talk_shutup();
                *selected_bookmark = bookmarks->items[item - bookmarks->start];
                return BOOKMARK_SUCCESS;
            }
            exit = true;
            ret = BOOKMARK_SUCCESS;
            break;

        case ACTION_TREE_WPS:
        case ACTION_STD_CANCEL:
            exit = true;
            break;

        case ACTION_BMS_DELETE:
            if (item >= 0)
            {                
                const char *lines[]={
                    ID2P(LANG_REALLY_DELETE)
                };
                const char *yes_lines[]={
                    ID2P(LANG_DELETING)
                };

                const struct text_message message={lines, 1};
                const struct text_message yes_message={yes_lines, 1};

                if(gui_syncyesno_run(&message, &yes_message, NULL)==YESNO_YES)
                {                    
                    delete_bookmark(bookmark_file_name, item);
                    bookmarks->reload = true;
                }
                refresh = true;
            }
            break;

        default:
            if (default_event_handler(action) == SYS_USB_CONNECTED)
            {
                ret = BOOKMARK_USB_CONNECTED;
                exit = true;
            }

            break;
        }
    }

    talk_shutup();
    *selected_bookmark = NULL;
    return ret;
}