summaryrefslogtreecommitdiffstats
path: root/src/uca-grabber.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/uca-grabber.h')
-rw-r--r--src/uca-grabber.h163
1 files changed, 0 insertions, 163 deletions
diff --git a/src/uca-grabber.h b/src/uca-grabber.h
deleted file mode 100644
index 414b9ac..0000000
--- a/src/uca-grabber.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright (C) 2011, 2012 Matthias Vogelgesang <matthias.vogelgesang@kit.edu>
- (Karlsruhe Institute of Technology)
-
- This library is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published by the
- Free Software Foundation; either version 2.1 of the License, or (at your
- option) any later version.
-
- This library is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- details.
-
- You should have received a copy of the GNU Lesser General Public License along
- with this library; if not, write to the Free Software Foundation, Inc., 51
- Franklin St, Fifth Floor, Boston, MA 02110, USA */
-
-#ifndef __UNIFIED_CAMERA_ACCESS_GRABBER_H
-#define __UNIFIED_CAMERA_ACCESS_GRABBER_H
-
-#include <stdbool.h>
-#include "uca.h"
-#include "uca-cam.h"
-
-/**
- * \file uca-grabber.h
- * \brief Abstract frame grabber model
- */
-
-enum uca_grabber_constants {
- UCA_GRABBER_INVALID = -1,
-
- /* properties */
- UCA_GRABBER_FORMAT = UCA_PROP_LAST + 1,
- UCA_GRABBER_TRIGGER_MODE,
- UCA_GRABBER_CAMERALINK_TYPE,
-
- /* values */
- UCA_FORMAT_GRAY8,
- UCA_FORMAT_GRAY16,
-
- UCA_CL_SINGLE_TAP_8,
- UCA_CL_SINGLE_TAP_16,
- UCA_CL_8BIT_FULL_8,
- UCA_CL_8BIT_FULL_10
-};
-
-
-/*
- * --- virtual methods --------------------------------------------------------
- */
-
-/**
- * Camera probing and initialization.
- *
- * \return UCA_ERR_INIT_NOT_FOUND if grabber is not found or could not be initialized
- */
-typedef uint32_t (*uca_grabber_init) (struct uca_grabber_priv **grabber);
-
-/**
- * Free frame grabber resouces.
- */
-typedef uint32_t (*uca_grabber_destroy) (struct uca_grabber_priv *grabber);
-
-/**
- * Set a frame grabber property.
- *
- * \param[in] prop Name of the property as defined in uca_grabber_priv_constants
- *
- * \return UCA_ERR_PROP_INVALID if property is not supported on the frame
- * grabber or UCA_ERR_PROP_VALUE_OUT_OF_RANGE if value cannot be set.
- */
-typedef uint32_t (*uca_grabber_set_property) (struct uca_grabber_priv *grabber, enum uca_grabber_constants prop, void *data);
-
-/**
- * Get a frame grabber property.
- *
- * \param[in] prop Name of the property as defined in uca_grabber_priv_constants
- *
- * \return UCA_ERR_PROP_INVALID if property is not supported on the frame grabber
- */
-typedef uint32_t (*uca_grabber_get_property) (struct uca_grabber_priv *grabber, enum uca_grabber_constants prop, void *data);
-
-/**
- * Allocate buffers with current width, height and bitdepth.
- *
- * \warning Subsequent changes of width and height might corrupt memory.
- */
-typedef uint32_t (*uca_grabber_alloc) (struct uca_grabber_priv *grabber, uint32_t pixel_size, uint32_t n_buffers);
-
-/**
- * Begin acquiring frames.
- *
- * \param[in] n_frames Number of frames to acquire, -1 means infinite number
- *
- * \param[in] async Grab asynchronous if true
- */
-typedef uint32_t (*uca_grabber_acquire) (struct uca_grabber_priv *grabber, int32_t n_frames);
-
-/**
- * Stop acquiring frames.
- */
-typedef uint32_t (*uca_grabber_stop_acquire) (struct uca_grabber_priv *grabber);
-
-/**
- * Issue a software trigger signal.
- */
-typedef uint32_t (*uca_grabber_trigger) (struct uca_grabber_priv *grabber);
-
-/**
- * Grab a frame.
- *
- * This method is usually called through the camera interface and not directly.
- *
- * \param[in] buffer The pointer of the frame buffer is set here
- *
- * \param[out] frame_number Number of the grabbed frame
- */
-typedef uint32_t (*uca_grabber_grab) (struct uca_grabber_priv *grabber, void **buffer, uint64_t *frame_number);
-
-
-/**
- * Register callback for given frame grabber. To actually start receiving
- * frames, call uca_grabber_priv_acquire().
- *
- * \param[in] grabber The grabber for which the callback should be installed
- *
- * \param[in] cb Callback function for when a frame arrived
- */
-typedef uca_buffer_status (*uca_grabber_register_callback) (struct uca_grabber_priv *grabber, uca_cam_grab_callback cb, void *meta_data, void *user);
-
-
-/**
- * Represents a frame grabber abstraction, that concrete frame grabber
- * implementations must implement.
- *
- * A uca_grabber_priv_t structure is never used directly but only via the
- * uca_camera_t interface in order to keep certain duplicated properties in sync
- * (e.g. image dimensions can be set on frame grabber and camera).
- */
-typedef struct uca_grabber_priv {
- struct uca_grabber_priv *next;
-
- /* Function pointers to grabber-specific methods */
- uca_grabber_destroy destroy;
- uca_grabber_set_property set_property;
- uca_grabber_get_property get_property;
- uca_grabber_alloc alloc;
- uca_grabber_acquire acquire;
- uca_grabber_stop_acquire stop_acquire;
- uca_grabber_trigger trigger;
- uca_grabber_grab grab;
- uca_grabber_register_callback register_callback;
-
- /* Private */
- uca_cam_grab_callback callback;
- bool synchronous; /**< if true uca_grabber_priv_grab() blocks until image is transferred */
- void *user;
-} uca_grabber_priv_t;
-
-
-
-#endif