From 28619821bc90ed4c15844b2e6b6a5a2971ef5f2e Mon Sep 17 00:00:00 2001 From: Matthias Vogelgesang Date: Mon, 21 Feb 2011 15:06:42 +0100 Subject: Initial commit --- src/uca.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/uca.c (limited to 'src/uca.c') diff --git a/src/uca.c b/src/uca.c new file mode 100644 index 0000000..7889fe2 --- /dev/null +++ b/src/uca.c @@ -0,0 +1,49 @@ +#include + +#include "uca.h" + +#ifdef HAVE_PCO_EDGE +#include "cameras/uca_pco.h" +#endif + +#ifdef HAVE_PHOTON_FOCUS +#include "cameras/uca_pf.h" +#endif + +#ifdef HAVE_IPE_CAM +#include "cameras/uca_ipe.h" +#endif + + +struct uca_t *uca_init() +{ + struct uca_t *uca = (struct uca_t *) malloc(sizeof(struct uca_t)); + + uca_cam_init inits[] = { +#ifdef HAVE_PCO_EDGE + uca_pco_init, +#elif HAVE_PHOTON_FOCUS + uca_pf_init, +#elif HAVE_IPE_CAM + uca_ipe_init, +#endif + NULL }; + + int i = 0; + while (inits[i] != NULL) { + uca_cam_init init = inits[i]; + if (init(uca)) + return uca; + i++; + } + + /* No camera found then return nothing */ + free(uca); + return NULL; +} + +void uca_destroy(struct uca_t *uca) +{ + uca->cam_destroy(uca); + free(uca); +} -- cgit v1.2.3