int main(int argc, char** argv) { SYSLOG(LOG_INFO, "***** plugin started"); PDL_Init(0); SYSLOG(LOG_INFO, "***** plugin initialized PDL"); atexit(PDL_Quit); SDL_Init(SDL_INIT_VIDEO); SYSLOG(LOG_INFO, "***** plugin initialized SDL"); atexit(SDL_Quit); SYSLOG(LOG_INFO, "***** plugin initialized"); // register the js callback PDL_RegisterJSHandler("hello_world", hello_world); PDL_RegisterJSHandler("acl_license", PDL_acl_license); PDL_JSRegistrationComplete(); PDL_CallJS("ready", NULL, 0); while(1) loop(); // Cleanup PDL_Quit(); SYSLOG(LOG_INFO, "***** plugin exiting"); }
int main(int argc, char** argv) { if (!fork_out(argv[0])) { return 1; // Error while creating child processes } // Initialize the SDL library with the Video subsystem SDL_Init(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE); // start the PDL library PDL_Init(0); // Tell it to use OpenGL version 2.0 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); // Set the video mode to full screen with OpenGL-ES support Surface = SDL_SetVideoMode(320, 480, 0, SDL_OPENGL); // Event descriptor SDL_Event Event; do { while (SDL_PollEvent(&Event)) { switch (Event.type) { // List of keys that have been pressed case SDL_KEYDOWN: switch (Event.key.keysym.sym) { // Escape forces us to quit the app // This is also sent when the user makes a back gesture case SDLK_ESCAPE: Event.type = SDL_QUIT; break; default: break; } break; default: break; } } } while (Event.type != SDL_QUIT); // We exit anytime we get a request to quit the app // Cleanupp PDL_Quit(); SDL_Quit(); termination_handler(); return 0; }
int Register() { PDL_Err err; err = PDL_Init(0); Worm_OpenLog("wormp3_plugin", LOG_PID | LOG_PERROR, LOG_USER); ReportError("*****************TEST***********************"); if (err != PDL_NOERROR) { ReportError1("PDL_Init failed, err = %s", PDL_GetError()); return 1; } err = PDL_RegisterJSHandler("Ping", Ping); if (err != PDL_NOERROR) { ReportError1("PDL_Init failed, err = %s", PDL_GetError()); return 1; } err = PDL_RegisterJSHandler("GetCurrentDirLS", GetCurrentDirLS); if (err != PDL_NOERROR) { ReportError1("PDL_Init failed, err = %s", PDL_GetError()); return 1; } err = PDL_RegisterJSHandler("Play", Play); err = PDL_RegisterJSHandler("Pause", Pause); err = PDL_RegisterJSHandler("Open", Open); err = PDL_RegisterJSHandler("SetNext", SetNext); err = PDL_RegisterJSHandler("SetBass", SetBass); err = PDL_RegisterJSHandler("SetTreble", SetTreble); err = PDL_RegisterJSHandler("SetMid", SetMid); err = PDL_RegisterJSHandler("GetCurTime", GetCurTime); err = PDL_RegisterJSHandler("GetMetadata", GetMetadata); err = PDL_RegisterJSHandler("GetEndTime", GetEndTime); err = PDL_RegisterJSHandler("SetSpeed", SetSpeed); err = PDL_RegisterJSHandler("SetVol", SetVol); err = PDL_RegisterJSHandler("Seek", Seek); err = PDL_RegisterJSHandler("Quit", PluginQuit); err = PDL_RegisterJSHandler("SetEQ", SetEQ); err = PDL_RegisterJSHandler("SetCrossfade", SetCrossfade); err = PDL_RegisterJSHandler("StartIndex", StartIndex); err = PDL_RegisterJSHandler("SetMetadataPath", SetMetadataPath); err = PDL_RegisterJSHandler("GetBPM", GetBPM); err = PDL_RegisterJSHandler("SetNoNext", SetNoNext); err = PDL_RegisterJSHandler("GetFreqString", GetFreqString); err = PDL_RegisterJSHandler("GetAvgMagString", GetAvgMagString); err = PDL_RegisterJSHandler("CheckPathForImg", CheckPathForImg); err = PDL_JSRegistrationComplete(); if (err != PDL_NOERROR) { ReportError1("PDL_Init failed, err = %s", PDL_GetError()); return 1; } return 0; }
int main (int argc, char *argv[]) { SDL_Surface *screen; int before = 0; int delta = 0; if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER) != 0) { fprintf (stderr, "Failed to init SDL: %s\n", SDL_GetError ()); return -1; } atexit (SDL_Quit); PDL_Init (0); atexit (PDL_Quit); screen = SDL_SetVideoMode (0, 0, 0, SDL_SWSURFACE); if (!screen) { fprintf (stderr, "Failed to set video mode: %s\n", SDL_GetError ()); return -1; } SDL_Event event; while (true) { if (paused) { //switch to WaitEvent on pause because it blocks SDL_WaitEvent (&event); if (event.type == SDL_ACTIVEEVENT && event.active.gain == 1 && event.active.state & SDL_APPACTIVE) { paused = false; continue; } //while not active the OS may ask us to draw anyway, don't ignore it if (event.type == SDL_VIDEOEXPOSE) { draw_frame (screen); } } else { before = SDL_GetTicks (); while (SDL_PollEvent (&event)) { process_event (event); } draw_frame (screen); //we don't want to draw too fast, limit framerate delta = SDL_GetTicks () - before; while (delta < TICKS_PER_FRAME) { //we setup a timer that sends a user (custom) event SDL_TimerID timer = SDL_AddTimer (TICKS_PER_FRAME - delta, limiter, NULL); //clear the event type and wait for another event event.type = -1; SDL_WaitEvent (&event); //if it wasn't the user event process it and loop SDL_RemoveTimer (timer); if (event.type != SDL_USEREVENT) { process_event (event); //some time has passed, reset delta delta = SDL_GetTicks () - before; } else { break; } } printf ("FPS: %d\n", 1000 / (SDL_GetTicks () - before)); } } return 0; }
void initialize() { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE); PDL_Init(0); }
int main(int argc, char** argv) { int result; int fd; fz_context *ctx; char buf[10]; int c; int pagewidth, pageheight; result = SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER); if(result != 0) { printf("Could not init SDL: %s\n", SDL_GetError()); exit(1); } PDL_Init(0); PDL_SetOrientation(PDL_ORIENTATION_0); PDL_RegisterJSHandler("flipPage",flip_page); PDL_RegisterJSHandler("panPage",pan_page); // PDL_RegisterJSHandler("pause", pause); // PDL_RegisterJSHandler("resume", resume); PDL_JSRegistrationComplete(); PDL_CallJS("ready", NULL, 0); memset(&pitch_action, 0, sizeof(PDF_Pitch_t)); //gesture_data = (Gesture_Event *)malloc(sizeof(Gesture_Event)); memset(&gesture_data, 0, sizeof(Gesture_Event)); pitch_action.scale = 1.0; Surface = SDL_SetVideoMode(0, 0, 0, SDL_SWSURFACE); SDL_FillRect(Surface, NULL, 0xF0F0F); SDL_Flip(Surface); ctx = fz_new_context(NULL, FZ_STORE_DEFAULT); pdfapp_init(ctx, &app); app.scrw = 1024; app.scrh = 768; app.pageno = 10; src.x = 20; src.y = 20; src.w = 1024; src.h = 768; dest.x = 0; dest.y = 0; fd = open(argv[1], O_RDONLY, 0666); if (fd < 0) { printf("cannot open file\n"); fz_throw(app.ctx, "cannot open file '%s'", argv[1]); } pdfapp_open(&app,argv[1],fd,0); //app.rotate = 90 * 3; pdfapp_showpage(&app,1,1,1); draw_pdf(); #if 0 content = SDL_CreateRGBSurfaceFrom(app.image->samples, app.image->w, app.image->h, 32, app.image->w * 4, 0x00, 0x00, 0x00, 0x00); SDL_BlitSurface(content,NULL, Surface, NULL); SDL_Flip(Surface); #endif SDL_Event Event; Event.type = SDL_NOEVENT; int temp1, temp2; do { if (Paused) { SDL_WaitEvent(&Event); if (Event.type == SDL_ACTIVEEVENT) { if ((Event.active.state & SDL_APPACTIVE) && (Event.active.gain == 1)) { Paused = SDL_FALSE; } } } else { while(SDL_PollEvent(&Event)) { handle_events(Event); // switch (Event.type) { #if 0 case SDL_MOUSEBUTTONDOWN: fingerNum = Event.button.which + 1; mouse_state = SDL_MOUSEBUTTONDOWN; printf("%2d fingers touch down\n",Event.button.which); break; case SDL_MOUSEBUTTONUP: if(fingerNum == 2) { memset(&pitch_action, 0, sizeof(PDF_Pitch_t)-sizeof(float32)); pinch = SDL_FALSE; //pitch_action.scale = 1.0; } if(fingerNum == 1 && mouse_state == SDL_MOUSEBUTTONDOWN) { if(Event.button.x > (app.image->h / 2)) { buf[0] = '.'; } else { buf[0] = ','; } pdfapp_onkey(&app,buf[0]); printf("Flip page\n"); draw_pdf(); } // printf("%2d fingers touching\n",fingerNum); mouse_state = NULL; printf("%2d fingers touch up\n",Event.button.which); if(fingerNum > 0) fingerNum -= 1; break; case SDL_MOUSEMOTION: if(fingerNum == 2) { if(Event.motion.which == 0) { pitch_action.x0 = Event.motion.x; pitch_action.y0 = Event.motion.y; } if(Event.motion.which == 1) { pitch_action.x1 = Event.motion.x; pitch_action.y1 = Event.motion.y; } pitch_action.cx = (pitch_action.x0 + pitch_action.x1)/2; pitch_action.cy = (pitch_action.y0 + pitch_action.y1)/2; temp1 = pow((pitch_action.x0 - pitch_action.x1),2); temp2 = pow((pitch_action.y0 - pitch_action.y1),2); pitch_action.distance1 = sqrt(temp1 + temp2); pitch_action.offset = pitch_action.distance1 - pitch_action.distance0; pitch_action.distance0 = pitch_action.distance1; pitch_action.offset = (int)pitch_action.offset; // printf("cx:%4d, cy:%4d, offset:%4f \n",pitch_action.cx, // pitch_action.cy, pitch_action.offset); #if 1 if(pitch_action.offset > 0 && pitch_action.offset < 5) { #if 0 app.resolution *= (Uint16)pitch_action.offset; if (app.resolution > MAXRES) app.resolution = MAXRES; pdfapp_showpage(&app, 0, 1, 0); draw_pdf(); #endif pinch = SDL_TRUE; pitch_action.scale += 0.008; if(pitch_action.scale > 2) pitch_action.scale = 2; printf("-------------------------------------pinch out\n"); } else if(pitch_action.offset < 0) { #if 0 app.resolution /=(Uint16)( abs(pitch_action.offset)); if (app.resolution < MINRES) app.resolution = MINRES; pdfapp_showpage(&app, 0, 1, 0); draw_pdf(); #endif pinch = SDL_TRUE; pitch_action.scale -= 0.008; if(pitch_action.scale < 0.9) pitch_action.scale = 0.9; printf("----------------------------------pinch in\n"); } else { pinch = SDL_FALSE; } #endif } //printf("which: %d, x = %4d, y = %4d \n",Event.motion.which, // Event.motion.x, Event.motion.y); mouse_state = SDL_MOUSEMOTION; printf("Finger move \n"); break; #endif /* // handle deactivation by pausing our animation case SDL_ACTIVEEVENT: if ((Event.active.state & SDL_APPACTIVE) && (Event.active.gain == 0)) { Paused = SDL_TRUE; } break; default: break; // } */ } #if 1 if(pinch) { #if 1 if(pitch_action.scale == 1.4) { app.resolution = 72 * 1.4; pdfapp_showpage(&app,0,1,1); draw_pdf(); printf("----increase pdf resolution \n"); } if(pitch_action.scale == 1) { app.resolution = 72; pdfapp_showpage(&app,0,1,1); draw_pdf(); } content = zoomSurface(page_copy,pitch_action.scale,pitch_action.scale,SMOOTHING_OFF); SDL_FillRect(Surface, NULL, SDL_MapRGBA(Surface->format, 45, 45, 45, 0)); SDL_BlitSurface(content,NULL, Surface, NULL); SDL_Flip(Surface); SDL_FreeSurface(content); #else app.resolution *= pitch_action.scale; if(app.resolution > MAXRES) app.resolution = MAXRES; if (app.resolution < MINRES) app.resolution = MINRES; pdfapp_showpage(&app, 0, 1, 1); draw_pdf(); #endif } #endif SDL_Delay(0); } }while(Event.type != SDL_QUIT); //cleanup SDL_FreeSurface(content); SDL_FreeSurface(Surface); pdfapp_close(&app); PDL_Quit(); SDL_Quit(); return 0; }