Esempio n. 1
0
void main(void)
{
	app_init();
	while(1){
		out7seg(keyb());
	}
}
Esempio n. 2
0
// Example main function and loop
int main() {
  // Initialize the display with (pixel size, pixel padding) (pixel padding not
  // implemented yet)
  lcdsim_init(3, 0);

  // Ascii display example
  char *cp, test0[] = "Static test string", test1[] = "Another string";
  cp = test0;
  ascii_gotoxy(0,0);
  while (*cp)
    ascii_write_char(*cp++);
  cp = test1;
  ascii_gotoxy(0,1);
  while (*cp)
    ascii_write_char(*cp++);
  
  int i = 0;
  while(1) {
    keyb(c);

    // Show pressed down key
    draw_byte((c[0]) ? 0xFF : 0, 63, 3);
    draw_byte((c[1]) ? 0xFF : 0, 63, 5);
    draw_byte((c[2]) ? 0xFF : 0, 58, 4);
    draw_byte((c[3]) ? 0xFF : 0, 68, 4);

    // Moving byte
    draw_byte(0, (i % 128), 7);
    draw_byte(0xFF, (++i % 128), 7);

    delay_milli(40);    
  }
  return 0;
}
Esempio n. 3
0
void controls(void){
		if(keyb() == 0x7D){		// Move right
			SnakeSeg[0].dirx=4;
			SnakeSeg[0].diry=0;
		}
		else if(keyb() == 0x66){	// Move left
			SnakeSeg[0].dirx=-4;
			SnakeSeg[0].diry=0;
		}
		else if(keyb() == 0x5B){	// Move up
			SnakeSeg[0].diry=-4;
			SnakeSeg[0].dirx=0;
		}
		else if(keyb() == 0x7F){	// Move down
			SnakeSeg[0].diry=4;
			SnakeSeg[0].dirx=0;
		}
}
Esempio n. 4
0
File: test.c Progetto: mdurrer/cgd
int main(int argc, char **argv)
{
	int mbn, prev_mx = -1, prev_my = -1, prev_mbn = 0;

	if(parse_args(argc, argv) == -1) {
		return 1;
	}

	if(init() == -1) {
		return 1;
	}

	reset_timer();

	for(;;) {
        if(kbhit()) {
			if(keyb(getch()) == 0) {
				break;
            }
        }

		mbn = read_mouse(&mx, &my);
		if(mbn != prev_mbn) {
			mouse_button(mbn, mx, my);
			prev_mbn = mbn;
		}
		if(mx != prev_mx || my != prev_my) {
			if(mbn) {
				mouse_motion(mx, my);
			}
			prev_mx = mx;
			prev_my = my;
		}

		redraw();
	}

	shutdown();
	print_perf();
	return 0;
}
int main(int argc, char *argv[])
#endif
{
#ifdef USE_SDL
    if (SDL_Init(SDL_INIT_VIDEO) < 0)
    {
        report("Can't initialize SDL\n");
        return 1;
    }
// TODO fullscreen + get screen size
#ifndef __ANDROID__
    width=height=700;
#else
    width=320;
    height=480;
//     const SDL_VideoInfo* vinfo=SDL_GetVideoInfo();    
//     width = vinfo->current_w;
//     height = vinfo->current_h;
//     report("Detected %dx%d resolution.\n",width,height);
#endif

    window = SDL_CreateWindow("Bezier Fragment Shader Demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_RESIZABLE | SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);

    if(window == NULL)
    {
        report("Can't create window: %s\n", SDL_GetError());
        return -1;
    }

    glcontext = SDL_GL_CreateContext(window);

    if(glcontext == NULL)
    {
        report("Can't create context: %s\n", SDL_GetError());
        return -1;
    }

    SDL_GL_MakeCurrent(window, glcontext);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
#else
    glutInit(&argc,argv);
    glutInitWindowSize(700,700);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Bezier Fragment Shader Demo");
#endif
    

    glViewport(0, 0, width, height);

    glClearColor(0.0, 0.0, 0.0, 0.0);

    glEnable(GL_DEPTH_TEST);

    fshader = loadShader("bezier.glsl",GL_FRAGMENT_SHADER);
    vshader = loadShader("bezier-vertex.glsl",GL_VERTEX_SHADER);

    if (!(fshader&&vshader))
    {
        report("One of shaders failed, aborting.\n");
        return -1;
    }

    program = glCreateProgram();
    glAttachShader(program, fshader);
    glAttachShader(program, vshader);
    glBindAttribLocation(program, 0, "vertexPos");
    glBindAttribLocation(program, 1, "bezCoordsAttr");
    glLinkProgram(program);

    glGetProgramiv(program, GL_LINK_STATUS, &linked);

    if (!linked)
    {
        report("Can't link the shader\n");
        return -1;
    }

    glUseProgram(program);

    glUniform1i(glGetUniformLocation(program, "drawFill"), 1);
    glUniform1i(glGetUniformLocation(program, "useBezier"), 1);
    glUniform1i(glGetUniformLocation(program, "drawStroke"), 1);

#ifndef __ANDROID__
//     glEnableClientState(GL_VERTEX_ARRAY); // Why don't they work like glEnable(A|B) did before? or am I dumb?
//     glEnableClientState(GL_TEXTURE_COORD_ARRAY);
#endif

    glEnableVertexAttribArray(0);
    glEnableVertexAttribArray(1);
    createShapes();
    
#ifdef USE_SDL
    int running = 1;
    timemark=SDL_GetTicks();

    while(running)
    {
        if ( SDL_PollEvent(&event) > 0 )
        {
//         SDL_WaitEvent(&event);

            switch(event.type)
            {
                case SDL_KEYDOWN:
                    switch(event.key.keysym.sym)
                    {
                        #ifdef __ANDROID__
                        case SDLK_AC_SEARCH:
                        #endif  
                        case SDLK_F1: performanceReport(); break;
                        
                        #ifndef __ANDROID__
                            case SDLK_ESCAPE: running = 0;          break;
                        #else
                            case SDLK_AC_BACK: running = 0;         break;
                        #endif

                        case SDLK_LEFT:   Camera.beta += M_PI / 36; camera(); break;
                        case SDLK_RIGHT:  Camera.beta -= M_PI / 36; camera(); break;
                        case SDLK_UP:    Camera.alpha += M_PI / 36; camera(); break;
                        case SDLK_DOWN:  Camera.alpha -= M_PI / 36; camera(); break;
                        default: keyb(event.key.keysym.scancode);   break;
                    }
                break;

                case SDL_MOUSEWHEEL:
                    Camera.dist*= (event.wheel.y < 0)? 1.1 : 0.9;
                    camera();
                break;

                case SDL_MOUSEMOTION:
                    if(event.motion.state == 1) motion(event.motion.xrel, event.motion.yrel);
                break;

                // Note, the first frame flickers, TODO workaround
                // TODO: track the real sequence of WINDOWEVENT_ENTER and WINDOWEVENT_SIZE_CHANGED events 
                case SDL_WINDOWEVENT:
                    if (event.window.event==SDL_WINDOWEVENT_SIZE_CHANGED)
                        size(event.window.data1, event.window.data2);
                    camera();
                break;

                // handle touch events here

                case SDL_QUIT:
                    running = 0;
                break;
            }
        }

        draw();
    }
    
    performanceReport();
    
    SDL_GL_MakeCurrent(NULL, NULL);
    SDL_GL_DeleteContext(glcontext);
    SDL_DestroyWindow(window);
    SDL_Quit();
#else
    glutReshapeFunc(size);
    glutDisplayFunc(draw);
    glutIdleFunc(draw);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);
    glutSpecialFunc(keybs);
    glutKeyboardFunc(keyb);
    glutTimerFunc(TIMER_RESOLUTION,timer,0);
    glutMainLoop();
#endif
    
    return 0;
}
Esempio n. 6
0
int main(int argc, char **argv) {
	int lid = LID_UNKNOWN; 
	int power = PWR_UNKNOWN;
	int brightscr=1023;	//screen brightness on AC (default at start)
	int brightkeyb=512;	//keyboard brightness on AC
	int dimscr=512;		//screen brightness on battery
	int dimkeyb=300;		//keyboard brightness on battery
	int keyTimer = 0;

	system("echo -ne \"\\033[9;0]\" >/dev/tty0");	//set screen blank to never -- it doesn't blank the frame buffer so don't use it
					
	//intialize the keyboard lights	
	keyb(powerstate() == PWR_AC_CORD?brightkeyb:dimkeyb);			

	keys_timerid = create_timer(KEYS_TIMER, KEYS_TIMEOUT);
	lcd_timerid = create_timer(LCD_TIMER, LCD_TIMEOUT);
	power_timerid = create_timer(POWER_TIMER, 0);

	signal(SIGQUIT, _powerDown);
	signal(SIGINT, _suspend);
	signal(SIGUSR1, _newMsg);

	while(1) {		//main loop
			
		if( (!power || newMsg) && GetKeyPressed() == 1) //if there is power the timers are not active, so nothing needs to be done
		{	
			if(!power){
			//a key has been pressed -- reset the timers
				set_timer(keys_timerid, KEYS_TIMEOUT);
				set_timer(lcd_timerid, LCD_TIMEOUT);
			
				screenOn();
			}
			
			if(newMsg && valkeyb){
				//stop flashing the keyboard
				keyb(valkeyb);
				toggleLED(0);
				valkeyb = 0;
				newMsg = 0;
			}
		}

		if(newMsg){
			if(!valkeyb)
				valkeyb = getkeyb();
			
			toggleLED(flashKeyBrd);
			
			if(flashKeyBrd){
				keyb(valkeyb);
				flashKeyBrd=0;
			}
			else{
				keyb(0);
				flashKeyBrd=1;
			}
		}
		
		if(powerDown && !suspend)
		{
			set_timer(power_timerid, POWER_TIMEOUT);
			powerDown = 0;
		}		
			
		if(suspend)
		{
			set_timer(power_timerid, 0);

			suspend = 0;
			powerDown = 0;
		}		

		
		if(lid != lidstate()) 
		{	
			lid = lidstate();
			lightswitch(lid);
		}
		
		if(power != powerstate())
		{	//there has been a change in the powerstate
			keyTimer = 0;
			power = powerstate();
			if (power) {	//AC is plugged in
		//		system("echo -ne \"\\033[9;0]\" >/dev/tty0");	//set screen blank to never
				screenOn();
				
				set_timer(keys_timerid, 0);
				set_timer(lcd_timerid, 0);	
			
				dimscr = getscr();      //store current brightness  as dim values
				dimkeyb = getkeyb();
				keysOn();
				lcdb(brightscr);
				keyb(brightkeyb);	//and brighten lights
			}
			else{		//AC is unplugged
		//		system("echo -ne \"\\033[9;1]\" >/dev/tty0");	//set screen blank to 1 minutes

				set_timer(keys_timerid, KEYS_TIMEOUT);
				set_timer(lcd_timerid, LCD_TIMEOUT);	
			
				brightscr = getscr();   //store current brightness as bright
				brightkeyb = getkeyb();
				lcdb(dimscr);
				keyb(dimkeyb);	//and dim lights
			}
		}

		sleep(1);		//wait one second
	}
}