示例#1
0
uint8_t
OSD::write(uint8_t c)
{
    if(c == '|')
    {
        close_panel(); //It does all needed to finish auto increment and change current row
        open_panel(); //It does all needed to re-enable auto increment
    }
    else
    {
        spi->take_spi_right(&spi_dev_max7456);

        spi->write(MAX7456_DMDI_reg);
        spi->write(c);

        spi->release_spi_right();
    }
    return 1;
}
示例#2
0
// call this when one of the mode buttons is pressed
// see also close_any_edit_window() in g_game.c
void mode_button(int mode_pressed)
{

// if (inter.mode_button_available [mode_pressed] == 0)
//  return;

#define MODE_BUTTON_SAMPLE SAMPLE_BLIP4
#define MODE_BUTTON_TONE_OPEN TONE_3C
#define MODE_BUTTON_TONE_CLOSE TONE_2G

 switch(mode_pressed)
 {
	 case MODE_BUTTON_SYSTEM:
	 	if (panel[PANEL_SYSMENU].open)
			{
				close_panel(PANEL_SYSMENU, 1);
    play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_CLOSE);
// 	 	panel[PANEL_SYSMENU].element [FPE_SYSMENU_CONFIRM_QUIT].open = 0; this is now done by close_panel
			}
			  else
					{
						open_panel(PANEL_SYSMENU);
      play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_OPEN);
					}
			break;
	 case MODE_BUTTON_EDITOR:
	 	if (panel[PANEL_EDITOR].open)
			{
    play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_CLOSE);
				close_panel(PANEL_EDITOR, 1);
			}
			  else
					{
      play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_OPEN);
						open_panel(PANEL_EDITOR);
					}
			break;
	 case MODE_BUTTON_DESIGN:
	 	if (panel[PANEL_DESIGN].open)
			{
    play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_CLOSE);
				close_panel(PANEL_DESIGN, 1);
			}
			  else
					{
      play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_OPEN);
						open_panel(PANEL_DESIGN);
					}
			break;
	 case MODE_BUTTON_TEMPLATES:
	 	if (panel[PANEL_TEMPLATE].open)
			{
    play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_CLOSE);
				close_panel(PANEL_TEMPLATE, 1);
			}
			  else
					{
      play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_OPEN);
						open_panel(PANEL_TEMPLATE);
					}
			break;
	 case MODE_BUTTON_BCODE:
	 	if (panel[PANEL_BCODE].open)
			{
    play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_CLOSE);
				close_panel(PANEL_BCODE, 1);
			}
			  else
					{
      play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_OPEN);
						open_panel(PANEL_BCODE);
					}
			break;
	 case MODE_BUTTON_CLOSE:
//	 	if (inter.mode_buttons_maximised)
   if (panel[PANEL_DESIGN].open
				|| panel[PANEL_EDITOR].open
				|| panel[PANEL_TEMPLATE].open
				|| panel[PANEL_BCODE].open
				|| panel[PANEL_SYSMENU].open)
			{
    play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_CLOSE);
	 	 close_all_panels();
			}
				else
				{
      play_interface_sound(MODE_BUTTON_SAMPLE, MODE_BUTTON_TONE_OPEN);
      int opened_any = 0;
      int i;
      for (i = 1; i < PANEL_BCODE+1; i ++) // note i starts at 1
						{
							if (inter.panel_restore [i])
							{
  						open_panel(i);
  						opened_any = 1;
							}
						}
					 if (!opened_any)
							open_panel(PANEL_SYSMENU);
				}
//			 else
//					inter.mode_buttons_maximised = 1;
			break;
//		case MODE_BUTTON_MIN_MAX:
//			inter.mode_buttons_maximised ^= 1;
//			break;

 }

}