Ejemplo n.º 1
0
int decodeloop(struct avdata *av, struct nd_image *img)
{
	struct xdata guidata;
	struct decodedata ddata;
	struct playbackstate pbs;
	AVRational tmpr;

	tmpr = av->s->streams[av->vstreamid]->avg_frame_rate;

///////////////////////////////////////////////////////////////////////////////
	if (pbstateinit(&pbs, (double) tmpr.num / tmpr.den) < 0)
		return 1;
///////////////////////////////////////////////////////////////////////////////
	
	
	initgui(&guidata, drawimg->w, drawimg->h);

	ddata.av = av;
	ddata.img = img;
	ddata.pbs = &pbs;
	ddata.drawimg = drawimg;
	ddata.guidata = &guidata;

	guidata.defaultcallback = decode;
	guidata.drawcallback = draw;
	guidata.keypresscallback = NULL;
	guidata.motioncallback = NULL;
	guidata.buttonpresscallback = NULL;
	guidata.buttonreleasecallback = NULL;
	
	mainloop(&guidata, &ddata);

	fprintf(stderr, "Unexpexted loop quit\n");
	return (-1);
}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
	if (!loaddata()) exit(1);
	if (!readconfig()) exit(1);
	
	buildnodelist();
	EZ_Initialize(argc,argv,0);
	initgui();

	EZ_EventMainLoop();

	return 0;
}
Ejemplo n.º 3
0
int main(int argc, char **argv) {
	initchip();
	initgui();

	if(!strcmp("--audio", argv[1])) {
		loadfile(argv[2]);

        char *pcmname = (argc > 2) ? argv[3] : "audio" ;
        FILE *f = fopen(pcmname, "w");

        startplaysong(0);

        while(playsong) {
            u8 res = interrupthandler();
            fwrite(&res, 1, 1, f);
        }
        fclose(f);
	} else {
		if(argc != 2) {
			err(1, "usage: %s <filename>\n", argv[0]);
		}

	    SDL_AudioSpec requested, obtained;
    	SDL_Init(SDL_INIT_AUDIO);
	    atexit(SDL_Quit);

		requested.freq = 16000;
		requested.format = AUDIO_U8;
		requested.samples = 256;
		requested.callback = audiocb;
		requested.channels = 1;
		if(SDL_OpenAudio(&requested, &obtained) == -1) {
			err(1, "SDL_OpenAudio");
		}
		
		fprintf(stderr, "freq %d\n", obtained.freq);
		fprintf(stderr, "samples %d\n", obtained.samples);
		
		loadfile(argv[1]);
		SDL_PauseAudio(0);
		guiloop();
	}
	
	return 0;
}