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); }
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; }