Exemplo n.º 1
0
int main(int argc, char *argv[])
{
    struct video_config * camera;
    if(argc == 1)
    {
        printf(" *** Usage ***\n");
        printf("./testquickcam DEVICE [ -r | -m | -l ] [ -0 | -1 | -2 | -3 | -4 | -5 ]\n\n");
        printf(" -r reads one frame via read() from the camera\n");
        printf(" -m reads one frame via mmap() from the camera\n");
        printf(" -l read() loop...good for debugging gain etc \n");
        printf(" -0-5 set resulution\n");
        exit(1);
    }

    camera = init_video_config(324,248);
    if(open_camera(camera,argv[1]) == 1)
    {
        get_camera_info(camera);
        print_camera_info(camera);
        read_loop(camera);
        close_camera(camera);
    }
    delete_video_config(camera);
    exit(1);
}
Exemplo n.º 2
0
int main(int argc, char *argv[])
{
	static struct Camera camera;
	pthread_t draw_thread, grab_thread, tele_thread;

	init_camera(&camera);

	if(argc >= 2 && strcmp(argv[1], "GPS_ON") == 0)  camera.gpson = TRUE;

	//init threads
	g_thread_init(NULL);
	gdk_threads_init();
	//init gtk
	gtk_init(&argc, &argv);
	//Init gdk_rgb
	gdk_rgb_init();
	//Init semaphore
	sem_init(&sem_draw, 0, 0);
	sem_init(&sem_grab, 0, 1);

	open_camera(&camera);
	set_camera_info(&camera);
	get_camera_info(&camera);

//	print_camera_info(&camera);

	create_window(&camera);

	if(camera.gpson) {
		camera_antennaimg_change(&camera, "0");
		pthread_create(&tele_thread, NULL, (void*)&camera_gps_tel, &camera);
	}
	pthread_create(&draw_thread, NULL, (void*)&preview_camera, &camera);
	pthread_create(&grab_thread, NULL, (void*)&grab_image_camera, &camera);

	gdk_threads_enter();
	gtk_main();
	gdk_threads_leave();

	camera.quit = 1;
	if(camera.gpson) pthread_join(tele_thread, NULL);
	pthread_join(grab_thread, NULL);
	pthread_join(draw_thread, NULL);
	sem_post(&sem_draw);	
	sem_post(&sem_grab);
	sem_destroy(&sem_draw);
	sem_destroy(&sem_grab);

	close_camera(&camera);

	return 0;
}