Ejemplo n.º 1
0
int main(void)
{
  /* LEDS */
  DDRB=0xFF;

  /* uart*/
  uart_init();  

  //  kbd_init();
  scheduler_init();

  /* ajoute la scrutation du clavier */
  //  scheduler_add_periodical_event(kbd_get_pressed, 100);
  
  /* envoie les caracteres du clavier vers l'uart */
  //  kbd_register_event(menu_control);

  /* creation du device */
  fdevopen(  (int (*)(char)) uart0_send,
	     (int (*)(void))uart0_recv,
	     0);


  // se place sur le 1er fils
  menu_goto(menu_down(menu_current()));
  menu_print();

  sei();


  while(1);
  return 0;
}
Ejemplo n.º 2
0
void menu_control(uint8_t c)
{
  if(c == '0')
    menu_goto(menu_left(menu_current()));
  else if(c=='8')
    menu_goto(menu_right(menu_current()));
  else if(c=='*')
    {
      menu_goto(menu_up(menu_current()));
      if(menu_current() == 0)
	menu_goto(menu_down(menu_current()));
    }
  else if(c=='#')
    {
      if(menu_is_leaf(menu_current()))
	menu_action();
      else
	menu_goto(menu_down(menu_current()));
    }

  menu_print();
}
Ejemplo n.º 3
0
Archivo: i3.c Proyecto: ifbyair/input
int main(int ac, char *av[]){
    static struct termios origt,newt;
    volatile char c;

    printf("Welcome to the menu system\n");

    if( tcgetattr(STDIN_FILENO,&origt) < 0 )
        gtfo("tcgetattr failed!\n");

    newt = origt;

    newt.c_lflag &= ~(ICANON);

    if( tcsetattr(STDIN_FILENO, TCSANOW, &newt) < 0 ){
        tcsetattr(STDIN_FILENO, TCSANOW, &origt);
        gtfo("tcsetattr failed!\n");
    }

    menu *m1 = newMenu("Ultimate control",3);
    m1->items[0] = *newItem("Item 1", &item1);
    m1->items[1] = *newItem("Item 2", &item2);
    m1->items[2] = *newItem("Item 3", &item3);

// Do some useful shit
    while(1){
        c = getchar();
        if( c == 'q' )
            break;
        switch(c){
            case 'j':
                menu_down(m1);
                break;
            case 'k':
                menu_up(m1);
                break;
            case 'e':  // execute
                menu_execute(m1);
                break;
        }
    }
// Done with useful shit
    
    tcsetattr(STDIN_FILENO, TCSANOW, &origt);
    printf("We're done, bye!\n");
}
Ejemplo n.º 4
0
void processa_menu(Jogo* jogo, Menu* menu, ALLEGRO_EVENT ev){
	if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE)
		jogo->sair = true;
	else if (ev.type == ALLEGRO_EVENT_TIMER)
		jogo->redraw = true;
	else if (ev.type == ALLEGRO_EVENT_KEY_DOWN)
		switch (ev.keyboard.keycode){
			case ALLEGRO_KEY_DOWN:
				menu_down(menu);
				break;
			case ALLEGRO_KEY_UP:
				menu_up(menu);
				break;
			case ALLEGRO_KEY_SPACE: case ALLEGRO_KEY_ENTER:
				menu_enter(menu);
				break;
		}
}
void menu_class::update()
{
	set_menu_delay(5);
	
	//i need to use the key proxy...i gotta improve it first tho
	if (key[KEY_UP])
	{
		while (key[KEY_UP]) {}//only do action once key is released
		menu_up();
	}

	else if (key[KEY_DOWN])
	{
		while (key[KEY_DOWN]) {}//only do action once key is released
		menu_down();
	}

	if (key[KEY_LEFT])
	{
		while (key[KEY_LEFT]) {}//only do action once key is released
		menu_dec();
	}

	else if (key[KEY_RIGHT])
	{
		while (key[KEY_RIGHT]) {}//only do action once key is released
		menu_inc();
	}
	
	MainApp::Instance()->viewPathInfo = setToggleBoundries(0);
	MainApp::Instance()->viewClock = setToggleBoundries(1); 
	MainApp::Instance()->viewWorkoutTimer = setToggleBoundries(2);
	MainApp::Instance()->useImageMemory = setToggleBoundries(3);
	MainApp::Instance()->dirSelectionForDisplay = set_boundries(4, 1, 3);
	MainApp::Instance()->imageDisplayTimeLength = set_boundries(5, 3, 99);
	MainApp::Instance()->imageMemAmt = set_boundries(6, 0, 100);
}
Ejemplo n.º 6
0
int main( int argc, char *argv[] )
{
#ifdef __APPLE__
  char lofasz[1024];
  getwd(lofasz);
  printf("%s\n", lofasz);
  chdir(query_resource_directory());
  getwd(lofasz);
  printf("%s\n", lofasz);
#elif defined __HAIKU__
  chdir(dirname(argv[0]));
#endif

#ifdef __PSP__
    psp_init( );
#endif

  if( init() )
  {
    BOOL done, needrender, jletgoh, jletgov;

    paused = FALSE;
		jletgoh = FALSE;
		jletgov = FALSE;

    SDL_AddTimer( FPSTIME, timing, 0 );

    done = FALSE;
    needrender = FALSE;
    while( !done )
    {
      SDL_Event event;
      
      SDL_WaitEvent( &event );
      do {
        switch( event.type )
        {
					case SDL_JOYAXISMOTION:
						switch( what_are_we_doing )
  					{
						  case WAWD_GAME:
								switch( event.jaxis.axis )
							  {
								  case 0:
										if( event.jaxis.value < -3200 )
								  	{
										  jleft = TRUE;
											jright = FALSE;
										} else if( event.jaxis.value > 3200 ) {
											jleft = FALSE;
											jright = TRUE;
										} else {
											jleft = FALSE;
											jright = FALSE;
										}
										break;
								}

								gleft = pleft || jleft;
								gright = pright || jright;
								break;

              case WAWD_MENU:
								switch( event.jaxis.axis )
							  {
								  case 0:
										if( event.jaxis.value < -3200 )
									  {
										  if( !jletgoh ) menu_left();
											jletgoh = TRUE;
										} else if( event.jaxis.value > 3200 ) {
											if( !jletgoh ) menu_right();
                      jletgoh = TRUE;
										} else {
											jletgoh = FALSE;
										}
										break;
									
									case 1:
										if( event.jaxis.value < -3200 )
								  	{
										  if( !jletgov ) menu_up();
											jletgov = TRUE;
										} else if( event.jaxis.value > 3200 ) {
											if( !jletgov ) menu_down();
											jletgov = TRUE;
										} else {
											jletgov = FALSE;
										}
										break;
								}
								break;

	   				}
						break;
					
					case SDL_JOYBUTTONDOWN:
						switch( what_are_we_doing )
					  {
						  case WAWD_GAME:
								switch( event.jbutton.button )
								{
									case 0:
										jjump = TRUE;
										gjump = TRUE;
										break;									
								}
								break;
						}
						break;
					
					case SDL_JOYBUTTONUP:
						switch( what_are_we_doing )
					  {
						  case WAWD_GAME:
								switch( event.jbutton.button )
							  {
								  case 0:
										jjump = FALSE;
									  gjump = pjump;
										break;

									case 1:
										spacehit = TRUE;
										break;
									
									case 2:
										enterhit = TRUE;
										break;
								}
								break;
							
							case WAWD_TITLES:
								go_menus();
								break;

							case WAWD_MENU:
								done |= menu_do();
								break;

						  case WAWD_ENDING:
								if( endingstate < 9 )
								  endingstate = 11;
								break;
						}
						break;


					case SDL_MOUSEMOTION:
            mousx = event.motion.x/2;
            mousy = event.motion.y/2;
            break;

          case SDL_KEYDOWN:
            switch( what_are_we_doing )
            {
              case WAWD_TITLES:
                break;
              
              case WAWD_MENU:
                break;
              
              case WAWD_GAME:
                if( ( event.key.keysym.sym == keyleft ) ||
                    ( event.key.keysym.sym == keyleft2 ) )
                {
                  pleft = TRUE;
									gleft = TRUE;
                  break;
                }

                if( ( event.key.keysym.sym == keyright ) ||
                    ( event.key.keysym.sym == keyright2 ) )
                {
                  pright = TRUE;
									gright = TRUE;
                  break;
                }

                if( ( event.key.keysym.sym == keyjump ) ||
                    ( event.key.keysym.sym == keyjump2 ) )
                {
                  pjump = TRUE;
									gjump = TRUE;
                  break;
                }

                if( ( event.key.keysym.sym == keyuse ) ||
                    ( event.key.keysym.sym == keyuse2 ) )
                {
                  spacehit = TRUE;
                  break;
                }

                if( ( event.key.keysym.sym == keyhint ) ||
                    ( event.key.keysym.sym == keyhint2 ) )
                {
                  enterhit = TRUE;
                  break;
                }

                switch( event.key.keysym.sym )
                {
/*
									case 's':
                  case 'S':
                    {
                      FILE *f;
                      f = fopen( "deleteme.tmp", "wb" );
                      if( !f ) break;
                      fprintf( f, "%d %d", gid.x, gid.y );
                      fclose( f );
                    }
                    break;

                  case 'l':
                  case 'L':
                    {
                      FILE *f;
                      int x, y;
                      f = fopen( "deleteme.tmp", "rb" );
                      if( !f ) break;
                      if( fscanf( f, "%d %d", &x, &y ) == 2 )
                      {
                        gid.x = x;
                        gid.px = x>>8;
                        gid.y = y;
                        gid.py = y>>8;
                      }
                      fclose( f );
                      fgx = gid.px-160;
                      fgy = gid.py-140;
                    }
                    break;
*/

                  case SDLK_F11:
                  case SDLK_DELETE:   // Amiga keyboards have no F11, so also use DEL
                    if( musicon )
                    {
                      musicon = FALSE;
                      if( moozak ) Mix_FadeOutMusic( 500 );
                    } else {
                      musicon = TRUE;
                      if( moozak ) Mix_FadeInMusic( moozak, -1, 500 );
                    }
                    break;
                  
                  case SDLK_F12:
                  case SDLK_HELP:  // Amiga keyboards have no F12, so also use HELP
                    paused = !paused;
                    if( paused )
                      giddy_say( "Paused" );
                    break;
                  
                  default:
                    break;
                }
                break;
            }
            break;
          
          case SDL_KEYUP:
            switch( what_are_we_doing )
            {
						  case WAWD_ENDING:
								if( endingstate < 9 )
								  endingstate = 11;
								break;

							case WAWD_TITLES:
                go_menus();
                break;
              
              case WAWD_DEFINE_A_KEY:
                define_a_key( event.key.keysym.sym );
                break;

              case WAWD_MENU:
                switch( event.key.keysym.sym )
                {
                  case SDLK_UP:
                    menu_up();
                    break;
                  
                  case SDLK_DOWN:
                    menu_down();
                    break;
                  
                  case SDLK_LEFT:
                    menu_left();
                    break;
                  
                  case SDLK_RIGHT:
                    menu_right();
                    break;
                  
                  case SDLK_RETURN:
                  case SDLK_SPACE:
                    done |= menu_do();
                    break;
                  
                  case SDLK_ESCAPE:
                    done = TRUE;
                    break;
                  
                  default:
                    if( ( event.key.keysym.sym == keyjump ) || ( event.key.keysym.sym == keyjump2 ) ||
                        ( event.key.keysym.sym == keyhint ) || ( event.key.keysym.sym == keyhint2 ) ||
                        ( event.key.keysym.sym == keyuse  ) || ( event.key.keysym.sym == keyuse2  ) )
                    {
                      done |= menu_do();
                      break;
                    }
                    break;
                }
                break;
              
              case WAWD_GAME:
                if( ( event.key.keysym.sym == keyleft ) ||
                    ( event.key.keysym.sym == keyleft2 ) )
                {
                  pleft = FALSE;
									gleft = jleft;
                  break;
                }

                if( ( event.key.keysym.sym == keyright ) ||
                    ( event.key.keysym.sym == keyright2 ) )
                {
                  pright = FALSE;
									gright = jright;
                  break;
                }

                if( ( event.key.keysym.sym == keyjump ) ||
                    ( event.key.keysym.sym == keyjump2 ) )
                {
                  pjump = FALSE;
									gjump = jjump;
                  break;
                }

                switch( event.key.keysym.sym )
                {
                  case SDLK_ESCAPE:
                    titlestate = 0;
                    what_are_we_doing = WAWD_TITLES;
                    break;
                  
                  default:
                    break;
                }
                break;
            }
            break;

          case SDL_QUIT:
            done = TRUE;
            break;

          case SDL_USEREVENT:
            needrender = TRUE;
            break;
        }
      } while( SDL_PollEvent( &event ) );

      if( needrender )
      {
        needrender = FALSE;
        switch( what_are_we_doing )
        {
          case WAWD_TITLES:
          case WAWD_MENU:
          case WAWD_DEFINE_A_KEY:
            done |= render_titles();
            break;

          case WAWD_GAME:
            done |= render();
            break;
				
				  case WAWD_ENDING:
						done |= render_ending();
					  break;
        }
      }
    }
  }
  shut();
  return 0;
}
Ejemplo n.º 7
0
Archivo: main.c Proyecto: j-a-r-i/stm32
int main(int argc, char** argv)
{
#define SIZE 5
	queue_t queue;
	uint8_t data[SIZE];
	uint8_t i, ch;
	uint8_t running;
	menu_t menu1;
	nmenu_t menu2;

	queue_init(&queue,SIZE,data);
#if 0
	for (i=1; i<8; i++)
		queue_push(&queue, i);

	while (queue_some(queue)) {
		printf("%d\n", queue_pop(&queue));
	}
#endif

#if 0
	running = 1;
	menu_init(&menu1, menu1data, 3);
	while (running) {
		ch = getchar();
		printf("%c %d\n", ch, ch);
		switch (ch) {
		case '1':
			menu_up(&menu1);
			break;
		case '2':
			menu_down(&menu1);
			break;
		case '3':
			menu_select(&menu1);
			break;
		case 'q':
			running=0;
			break;
		}
	}
#endif

	running = 1;
	nmenu_init(&menu2, 4, 1,2,3,4);
	while (running) {
		ch = getchar();
		//printf("%c %d\n", ch, ch);
		switch (ch) {
		case '1':
			nmenu_up(&menu2);
			break;
		case '2':
			nmenu_down(&menu2);
			break;
		case '3':
			if (nmenu_select(&menu2) == MENU_DONE) {
				running=0;
			}
			break;
		case 'q':
			running=0;
			break;
		}
	}
}
Ejemplo n.º 8
0
int save_map(){
	int i = 0, j = 115, tru = 1;
	char Key;
	buffer[0] = '\0';
	int x1 = 100, y1 = 2, x2 = 145, y2 = 17, min = 115, max = 130, mv = 8, ind1 = 4;
	FILE  *saved_maps;

	print_border(y1, x1, y2, x2);
	mvprintw(y1 + 1, x1 + 15, " S A V E  M A P  A S");
	mvprintw(y1 + 6, x1 + 2, " Map Name :  _______________");
	mvprintw(y1 + 13, x1 + 2, "ESC : Return to main menu ");
	attron(COLOR_WHITE | A_REVERSE);
	mvprintw(y1 + 11, x1 + 1, " Max. 15 characters(letters & num allowed!)");
	attroff(COLOR_WHITE | A_REVERSE);
	refresh();
	while (tru)
	{

		switch (Key = getch()){
		case KEY_UP: case KEY_DOWN: case KEY_LEFT: case KEY_RIGHT:  break;
		case ENTER:if (buffer[0] == '\0') name_it(); else  tru = check_if_legit(buffer); break;
		default: if (j < max) 
		{ buffer[i++] = Key; buffer[i] = '\0'; mvaddch(y1 + 6, j++, Key); 
		}; refresh(); break;
		case BACKSPACE: if (j > min) 
		{ 
			buffer[--i] = '\0'; mvaddch(y1 + 6, --j, '_'); 
		}; refresh(); break;
		case ESC: delete_menu(y1, x1, y2, x2); return 1; break;
		}
	}
	buffer[i] = '.'; buffer[i + 1] = buffer[i + 3] = 't'; buffer[i + 2] = 'x'; buffer[i + 4] = '\0';
	save_it();
	if (!(saved_maps = fopen("saved_maps.txt", "r+"))) saved_maps = fopen("saved_maps.txt", "w");
	i = 0;
	while ((Key = fgetc(saved_maps)) != EOF){   // does this map already exist in the file?
		while (Key == buffer[i])
		{
			Key = fgetc(saved_maps);
			i++;
		}
		if (i == strlen(buffer)) break; else i = 0;
	}
	if (i == strlen(buffer)) fclose(saved_maps); else // if it does->do nothing, if it doesn't, then save it in the file;
	{
		fprintf(saved_maps, "%s\n", buffer);
		fclose(saved_maps);
	}

	delete_menu(y1, x1, y2, x2);
	print_border(y1, x1, y2, x2);
	mvprintw(y1 + 4, x1 + 2, " Continue with editting this map?");
	attron(COLOR_PAIR(8));
	mvprintw(y1 + 6, x1 + 18, " Yes ");
	attroff(COLOR_PAIR(8));
	mvprintw(y1 + 8, x1 + 18, " No ");
	refresh();
	while (1){
		switch (getch()){
		case KEY_UP: menu_up(&mv, y1 + 6, &ind1, x1 + 18); break;
		case KEY_DOWN: menu_down(&mv, y1 + 8, &ind1, x1 + 18); break;
		case ENTER: if (mv == 8)
		{
			delete_menu(y1, x1, y2, x2); return 0;
		}
					else
					{
						delete_menu(y1, x1, y2, x2); return 1;
					}
					break;
		}
	}


}