void main(void) { app_init(); while(1){ out7seg(keyb()); } }
// 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; }
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; } }
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; }
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 } }