From 6de83f98c5f4d5fb696f413aa9dbe49ab4515661 Mon Sep 17 00:00:00 2001 From: Matthias Vogelgesang Date: Thu, 17 Mar 2011 15:38:38 +0100 Subject: Expose grab-by-callback via camera and add asynchronous grabbing example --- test/grab-async.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/grab-async.c (limited to 'test/grab-async.c') diff --git a/test/grab-async.c b/test/grab-async.c new file mode 100644 index 0000000..8086d92 --- /dev/null +++ b/test/grab-async.c @@ -0,0 +1,46 @@ + +#include +#include +#include +#include "uca.h" +#include "uca-cam.h" + +void grab_callback(uint32_t image_number, void *buffer) +{ + printf("got picture number %i\n", image_number); +} + +int main(int argc, char *argv[]) +{ + struct uca *u = uca_init(NULL); + if (u == NULL) { + printf("Couldn't find a camera\n"); + return 1; + } + + /* take first camera */ + struct uca_camera *cam = u->cameras; + + uint32_t val = 1; + cam->set_property(cam, UCA_PROP_EXPOSURE, &val); + val = 0; + cam->set_property(cam, UCA_PROP_DELAY, &val); + val = 10; + cam->set_property(cam, UCA_PROP_FRAMERATE, &val); + + uint32_t width, height, bits; + cam->get_property(cam, UCA_PROP_WIDTH, &width, 0); + cam->get_property(cam, UCA_PROP_HEIGHT, &height, 0); + cam->get_property(cam, UCA_PROP_BITDEPTH, &bits, 0); + + uca_cam_alloc(cam, 10); + + cam->register_callback(cam, &grab_callback); + cam->start_recording(cam); + printf("waiting for 10 seconds\n"); + sleep(10); + cam->stop_recording(cam); + + uca_destroy(u); + return 0; +} -- cgit v1.2.3