summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@ipe.fzk.de>2011-02-28 16:53:29 +0100
committerMatthias Vogelgesang <matthias.vogelgesang@ipe.fzk.de>2011-02-28 16:53:29 +0100
commitf6f2bafe19fd57c56201e79be6b7692f16f16099 (patch)
treea10a1da5d9873c3d9427bbd6b905e024024aacbe
parent9d4f8e270d27556f277a14c567d516b3c090a027 (diff)
downloaduca-f6f2bafe19fd57c56201e79be6b7692f16f16099.tar.gz
uca-f6f2bafe19fd57c56201e79be6b7692f16f16099.tar.bz2
uca-f6f2bafe19fd57c56201e79be6b7692f16f16099.tar.xz
uca-f6f2bafe19fd57c56201e79be6b7692f16f16099.zip
Add grab example
-rw-r--r--src/grabbers/me4.c8
-rw-r--r--test/CMakeLists.txt6
-rw-r--r--test/enum.c (renamed from test/test.c)0
-rw-r--r--test/grab.c27
4 files changed, 38 insertions, 3 deletions
diff --git a/src/grabbers/me4.c b/src/grabbers/me4.c
index 54ac060..5b46c79 100644
--- a/src/grabbers/me4.c
+++ b/src/grabbers/me4.c
@@ -39,8 +39,14 @@ uint32_t uca_me4_alloc(struct uca_grabber_t *grabber, uint32_t n_buffers)
uint32_t width, height;
uca_me4_get_property(grabber, FG_WIDTH, &width);
uca_me4_get_property(grabber, FG_HEIGHT, &height);
+
/* FIXME: get size of pixel */
- ((struct uca_me4_grabber_t *) grabber->user)->mem = Fg_AllocMemEx(GET_FG(grabber), n_buffers*width*height*sizeof(uint16_t), n_buffers);
+ dma_mem *mem = Fg_AllocMemEx(GET_FG(grabber), n_buffers*width*height*sizeof(uint16_t), n_buffers);
+ if (mem != NULL) {
+ ((struct uca_me4_grabber_t *) grabber->user)->mem = mem;
+ return UCA_NO_ERROR;
+ }
+ return UCA_ERR_PROP_GENERAL;
}
uint32_t uca_me4_init(struct uca_grabber_t **grabber)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index b8dfce7..3f1e2a5 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -4,6 +4,8 @@ add_definitions("--std=c99 -Wall")
include_directories(${CMAKE_SOURCE_DIR}/src)
-add_executable(test test.c)
+add_executable(enum enum.c)
+add_executable(grab grab.c)
-target_link_libraries(test uca)
+target_link_libraries(enum uca)
+target_link_libraries(grab uca)
diff --git a/test/test.c b/test/enum.c
index 0649c64..0649c64 100644
--- a/test/test.c
+++ b/test/enum.c
diff --git a/test/grab.c b/test/grab.c
new file mode 100644
index 0000000..91a3cdc
--- /dev/null
+++ b/test/grab.c
@@ -0,0 +1,27 @@
+
+#include <stdio.h>
+#include "uca.h"
+#include "uca-cam.h"
+
+int main(int argc, char *argv[])
+{
+ struct uca_t *uca = uca_init();
+ if (uca == NULL) {
+ printf("Couldn't find a camera\n");
+ return 1;
+ }
+
+ /* take first camera */
+ struct uca_camera_t *cam = uca->cameras;
+
+ uint32_t val = 5000;
+ cam->set_property(cam, UCA_PROP_EXPOSURE, &val);
+ val = 0;
+ cam->set_property(cam, UCA_PROP_DELAY, &val);
+
+ if (uca_cam_alloc(cam, 20) != UCA_NO_ERROR)
+ printf("Couldn't allocate buffer memory\n");
+
+ uca_destroy(uca);
+ return 0;
+}