⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dc1394_control.h

📁 较新版本的libdc1394
💻 H
📖 第 1 页 / 共 3 页
字号:
/* * 1394-Based Digital Camera Control Library * Copyright (C) 2000 SMART Technologies Inc. * * Written by Gord Peters <GordPeters@smarttech.com> * Additions by Chris Urmson <curmson@ri.cmu.edu> * Additions by Damien Douxchamps <douxchamps@ieee.org> * * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#ifndef _DC1394_CAMERA_CONTROL_H#define _DC1394_CAMERA_CONTROL_H#include <stddef.h>#include <sys/types.h>#include <libraw1394/raw1394.h>#include <stdio.h>#include <sys/time.h>#include <stdlib.h> /* Enumeration of data speeds */enum{    SPEED_100= 0,    SPEED_200,    SPEED_400,    SPEED_800,    SPEED_1600,    SPEED_3200};#define SPEED_MIN                   SPEED_100#define SPEED_MAX                   SPEED_3200#define NUM_SPEEDS                  (SPEED_MAX - SPEED_MIN + 1)/* Enumeration of camera framerates */enum {    FRAMERATE_1_875= 32,    FRAMERATE_3_75,    FRAMERATE_7_5,    FRAMERATE_15,    FRAMERATE_30,    FRAMERATE_60,    FRAMERATE_120,    FRAMERATE_240};#define FRAMERATE_MIN               FRAMERATE_1_875#define FRAMERATE_MAX               FRAMERATE_240#define NUM_FRAMERATES              (FRAMERATE_MAX - FRAMERATE_MIN + 1)/* Enumeration of camera modes for Format_0 */enum {    MODE_160x120_YUV444= 64,    MODE_320x240_YUV422,    MODE_640x480_YUV411,    MODE_640x480_YUV422,    MODE_640x480_RGB,    MODE_640x480_MONO,    MODE_640x480_MONO16};#define MODE_FORMAT0_MIN	    MODE_160x120_YUV444#define MODE_FORMAT0_MAX	    MODE_640x480_MONO16#define NUM_FORMAT0_MODES	    (MODE_FORMAT0_MAX - MODE_FORMAT0_MIN + 1)/* Enumeration of camera modes for Format_1 */enum {    MODE_800x600_YUV422= 96,    MODE_800x600_RGB,    MODE_800x600_MONO,    MODE_1024x768_YUV422,    MODE_1024x768_RGB,    MODE_1024x768_MONO,    MODE_800x600_MONO16,    MODE_1024x768_MONO16};#define MODE_FORMAT1_MIN	    MODE_800x600_YUV422#define MODE_FORMAT1_MAX	    MODE_1024x768_MONO16#define NUM_FORMAT1_MODES	    (MODE_FORMAT1_MAX - MODE_FORMAT1_MIN + 1)/* Enumeration of camera modes for Format_2 */enum {    MODE_1280x960_YUV422= 128,    MODE_1280x960_RGB,    MODE_1280x960_MONO,    MODE_1600x1200_YUV422,    MODE_1600x1200_RGB,    MODE_1600x1200_MONO,    MODE_1280x960_MONO16,    MODE_1600x1200_MONO16};#define MODE_FORMAT2_MIN	    MODE_1280x960_YUV422#define MODE_FORMAT2_MAX	    MODE_1600x1200_MONO16#define NUM_FORMAT2_MODES	    (MODE_FORMAT2_MAX - MODE_FORMAT2_MIN + 1)/* Enumeration of camera modes for Format_6 */enum {    MODE_EXIF= 256};#define MODE_FORMAT6_MIN            MODE_EXIF#define MODE_FORMAT6_MAX            MODE_EXIF#define NUM_FORMAT6_MODES           (MODE_FORMAT6_MAX - MODE_FORMAT6_MIN + 1)/* Enumeration of camera modes for Format_7 */enum {    MODE_FORMAT7_0= 288,    MODE_FORMAT7_1,    MODE_FORMAT7_2,    MODE_FORMAT7_3,    MODE_FORMAT7_4,    MODE_FORMAT7_5,    MODE_FORMAT7_6,    MODE_FORMAT7_7};#define MODE_FORMAT7_MIN            MODE_FORMAT7_0#define MODE_FORMAT7_MAX            MODE_FORMAT7_7#define NUM_MODE_FORMAT7            (MODE_FORMAT7_MAX - MODE_FORMAT7_MIN + 1)/* Enumeration of Format_7 color modes */enum {    COLOR_FORMAT7_MONO8= 320,    COLOR_FORMAT7_YUV411,    COLOR_FORMAT7_YUV422,    COLOR_FORMAT7_YUV444,    COLOR_FORMAT7_RGB8,    COLOR_FORMAT7_MONO16,    COLOR_FORMAT7_RGB16,    COLOR_FORMAT7_MONO16S,    COLOR_FORMAT7_RGB16S,    COLOR_FORMAT7_RAW8,    COLOR_FORMAT7_RAW16};#define COLOR_FORMAT7_MIN           COLOR_FORMAT7_MONO8#define COLOR_FORMAT7_MAX           COLOR_FORMAT7_RAW16#define NUM_COLOR_FORMAT7           (COLOR_FORMAT7_MAX - COLOR_FORMAT7_MIN + 1)/* Enumeration of trigger modes */enum {    TRIGGER_MODE_0= 352,    TRIGGER_MODE_1,    TRIGGER_MODE_2,    TRIGGER_MODE_3};#define TRIGGER_MODE_MIN            TRIGGER_MODE_0#define TRIGGER_MODE_MAX            TRIGGER_MODE_3#define NUM_TRIGGER_MODE            (TRIGGER_MODE_3 - TRIGGER_MODE_0 + 1)/* Enumeration of camera image formats */enum {    FORMAT_VGA_NONCOMPRESSED= 384,    FORMAT_SVGA_NONCOMPRESSED_1,    FORMAT_SVGA_NONCOMPRESSED_2,    /* 3 reserved formats */    FORMAT_STILL_IMAGE= 390,    FORMAT_SCALABLE_IMAGE_SIZE};#define FORMAT_MIN                  FORMAT_VGA_NONCOMPRESSED#define FORMAT_MAX                  FORMAT_SCALABLE_IMAGE_SIZE#define NUM_FORMATS                 (FORMAT_MAX - FORMAT_MIN + 1)/* Enumeration of camera features */enum {    FEATURE_BRIGHTNESS= 416,    FEATURE_EXPOSURE,    FEATURE_SHARPNESS,    FEATURE_WHITE_BALANCE,    FEATURE_HUE,    FEATURE_SATURATION,    FEATURE_GAMMA,    FEATURE_SHUTTER,    FEATURE_GAIN,    FEATURE_IRIS,    FEATURE_FOCUS,    FEATURE_TEMPERATURE,    FEATURE_TRIGGER,    FEATURE_TRIGGER_DELAY,    FEATURE_WHITE_SHADING,    FEATURE_FRAME_RATE,    /* 16 reserved features */    FEATURE_ZOOM,    FEATURE_PAN,    FEATURE_TILT,    FEATURE_OPTICAL_FILTER,    /* 12 reserved features */    FEATURE_CAPTURE_SIZE,    FEATURE_CAPTURE_QUALITY    /* 14 reserved features */};#define FEATURE_MIN                 FEATURE_BRIGHTNESS#define FEATURE_MAX                 FEATURE_CAPTURE_QUALITY#define NUM_FEATURES                (FEATURE_MAX - FEATURE_MIN + 1)/* Operation modes */enum {  OPERATION_MODE_LEGACY = 480,  OPERATION_MODE_1394B};/* Format 7 sensor layouts*/enum{  COLOR_FILTER_FORMAT7_RGGB = 512,  COLOR_FILTER_FORMAT7_GBRG,  COLOR_FILTER_FORMAT7_GRBG,  COLOR_FILTER_FORMAT7_BGGR};#define COLOR_FILTER_FORMAT7_MIN                 COLOR_FILTER_FORMAT7_RGGB#define COLOR_FILTER_FORMAT7_MAX                 COLOR_FILTER_FORMAT7_BGGR#define NUM_COLOR_FILTER_FORMAT7                (COLOR_FILTER_FORMAT7_MAX - COLOR_FILTER_FORMAT7_MIN + 1)/* IIDC versions*/enum{  IIDC_VERSION_1_04 = 544,  IIDC_VERSION_1_20,  IIDC_VERSION_PTGREY,  IIDC_VERSION_1_30,  IIDC_VERSION_1_31,  IIDC_VERSION_1_32,  IIDC_VERSION_1_33,  IIDC_VERSION_1_34,  IIDC_VERSION_1_35,  IIDC_VERSION_1_36,  IIDC_VERSION_1_37,  IIDC_VERSION_1_38,  IIDC_VERSION_1_39};#define IIDC_VERSION_MIN                 IIDC_VERSION_1_02#define IIDC_VERSION_MAX                 IIDC_VERSION_1_39#define NUM_IIDC_VERSION                (IIDC_VERSION_MAX - IIDC_VERSION_MIN + 1)/* Maximum number of characters in vendor and model strings */#define MAX_CHARS                   32/* Return values for visible functions*/#define DC1394_SUCCESS               1#define DC1394_FAILURE              -1#define DC1394_NO_FRAME             -2#define DC1394_NO_CAMERA            0xffff/* Parameter flags for dc1394_setup_format7_capture() */#define QUERY_FROM_CAMERA -1#define USE_MAX_AVAIL     -2#define USE_RECOMMENDED   -3/* The video1394 policy: blocking (wait for a frame forever)   or polling (returns if no frames in buffer */typedef enum{   VIDEO1394_WAIT=0,  VIDEO1394_POLL} dc1394videopolicy_t;/* Yet another boolean data type */typedef enum{    DC1394_FALSE= 0,    DC1394_TRUE} dc1394bool_t;/* Camera structure */typedef struct __dc1394_camerainfo{    raw1394handle_t handle;    nodeid_t id;    octlet_t ccr_offset;    u_int64_t euid_64;    char vendor[MAX_CHARS + 1];    char model[MAX_CHARS + 1];} dc1394_camerainfo;typedef struct __dc1394_cam_cap_struct {    nodeid_t node;    int channel;    int frame_rate;    int frame_width, frame_height;    int * capture_buffer;    int quadlets_per_frame;    int quadlets_per_packet;    /* components needed for the DMA based video capture */    const unsigned char * dma_ring_buffer;    int dma_buffer_size;    int dma_frame_size;    int num_dma_buffers;    int dma_last_buffer;    int num_dma_buffers_behind;    const char * dma_device_file;    int dma_fd;    int port;    struct timeval filltime;    int drop_frames;} dc1394_cameracapture ;typedef struct __dc1394_misc_info{  int format;  int mode;  int framerate;  dc1394bool_t is_iso_on;  int iso_channel;  int iso_speed;  int mem_channel_number;  int save_channel;  int load_channel;  dc1394bool_t bmode_capable;  dc1394bool_t one_shot_capable;  dc1394bool_t multi_shot_capable;} dc1394_miscinfo;typedef struct __dc1394_feature_info_struct {    unsigned int feature_id;    dc1394bool_t available;    dc1394bool_t one_push;    dc1394bool_t absolute_capable;    dc1394bool_t readout_capable;    dc1394bool_t on_off_capable;    dc1394bool_t auto_capable;    dc1394bool_t manual_capable;    dc1394bool_t polarity_capable;    dc1394bool_t one_push_active;    dc1394bool_t is_on;    dc1394bool_t auto_active;    char trigger_mode_capable_mask;    int trigger_mode;    dc1394bool_t trigger_polarity;    int min;    int max;    int value;    int BU_value;    int RV_value;    int B_value;    int R_value;    int G_value;    int target_value;    dc1394bool_t abs_control;    float abs_value;    float abs_max;    float abs_min;} dc1394_feature_info;typedef struct __dc1394_feature_set_struct {  dc1394_feature_info feature[NUM_FEATURES];} dc1394_feature_set;/* Feature descriptions */extern const char *dc1394_feature_desc[NUM_FEATURES];#ifdef __cplusplusextern "C" {#endif/***************************************************** Direct register manipulation functions. Use with caution, this might wreak your camera. *****************************************************/intSetCameraControlRegister(raw1394handle_t handle, nodeid_t node,                         octlet_t offset, quadlet_t value);intGetCameraControlRegister(raw1394handle_t handle, nodeid_t node,                         octlet_t offset, quadlet_t *value);/***************************************************** dc1394_get_camera_feature_set Collects the available features for the camera described by node and stores them in features.*****************************************************/  int dc1394_get_camera_feature_set(raw1394handle_t handle, nodeid_t node,                              dc1394_feature_set *features);/***************************************************** dc1394_get_camera_feature Stores the bounds and options associated with the feature described by feature->feature_id*****************************************************/int dc1394_get_camera_feature(raw1394handle_t handle, nodeid_t node,                          dc1394_feature_info *feature);/***************************************************** dc1394_get_camera_misc_info Collects other camera info registers*****************************************************/int dc1394_get_camera_misc_info(raw1394handle_t handle, nodeid_t node,                            dc1394_miscinfo *info);/***************************************************** dc1394_print_feature Displays the bounds and options of the given feature

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -