示例#1
0
文件: clip.c 项目: kai4785/LM
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");
}
示例#2
0
文件: wormp3.cpp 项目: thewbman/wAMP
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;
}
示例#3
0
文件: tp_main.c 项目: flyingsnow/TPP
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;
}