📄 dc1394_control.h
字号:
/* * 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 <ddouxchamps@users.sf.net> * * 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 <string.h>#include <unistd.h>#include <fcntl.h>#include <sys/ioctl.h>#include <sys/mman.h>#include <sys/time.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <stddef.h>#include <stdio.h>#include <stdlib.h>#include <netinet/in.h>#define uint_t unsigned int#define uint16_t unsigned short int#define uint64_t unsigned long long int#define uchar_t unsigned char#ifndef octlet_ttypedef u_int64_t octlet_t;#endif#ifndef quadlet_ttypedef u_int32_t quadlet_t;#endif#ifndef nodeid_ttypedef u_int16_t nodeid_t;#endif/* Note on the coding of libdc1394 versions: - LIBDC1394_VERSION represent the release number of the library, e.g. 2.0.0. It consists in 4 digits, 2 for each number in the version. Version 2.1 will thus appear as 0201. The last version number is not used because a ".1" increment (as opposed to ".0.1") is necessary if the API had significant changes justifying the use of this number. - LIBDC1394_VERSION_xxx are the version codes used by libtool and defined in configure.in. _MAJOR is for API changes (compat break), _REVISION is for backward compatible API changes (e.g. new functions) and _AGE is when the API does not change (only code changes). At least that's my wild guess. These numbers can be used to adapt the function calls to the library version installed on the machine. They appeared in 2.0 so that you may need to check their existance if your code must work with 1.x.*/#define LIBDC1394_VERSION 0200#define LIBDC1394_VERSION_MAJOR 20#define LIBDC1394_VERSION_REVISION 0#define LIBDC1394_VERSION_AGE 0/* Enumeration of iso data speeds */typedef enum { DC1394_ISO_SPEED_100= 0, DC1394_ISO_SPEED_200, DC1394_ISO_SPEED_400, DC1394_ISO_SPEED_800, DC1394_ISO_SPEED_1600, DC1394_ISO_SPEED_3200} dc1394speed_t;#define DC1394_ISO_SPEED_MIN DC1394_ISO_SPEED_100#define DC1394_ISO_SPEED_MAX DC1394_ISO_SPEED_3200#define DC1394_ISO_SPEED_NUM (DC1394_ISO_SPEED_MAX - DC1394_ISO_SPEED_MIN + 1)/* Enumeration of video framerates */typedef enum { DC1394_FRAMERATE_1_875= 32, DC1394_FRAMERATE_3_75, DC1394_FRAMERATE_7_5, DC1394_FRAMERATE_15, DC1394_FRAMERATE_30, DC1394_FRAMERATE_60, DC1394_FRAMERATE_120, DC1394_FRAMERATE_240} dc1394framerate_t;#define DC1394_FRAMERATE_MIN DC1394_FRAMERATE_1_875#define DC1394_FRAMERATE_MAX DC1394_FRAMERATE_240#define DC1394_FRAMERATE_NUM (DC1394_FRAMERATE_MAX - DC1394_FRAMERATE_MIN + 1)/* Enumeration of video modes */typedef enum { DC1394_VIDEO_MODE_160x120_YUV444= 64, DC1394_VIDEO_MODE_320x240_YUV422, DC1394_VIDEO_MODE_640x480_YUV411, DC1394_VIDEO_MODE_640x480_YUV422, DC1394_VIDEO_MODE_640x480_RGB8, DC1394_VIDEO_MODE_640x480_MONO8, DC1394_VIDEO_MODE_640x480_MONO16, DC1394_VIDEO_MODE_800x600_YUV422, DC1394_VIDEO_MODE_800x600_RGB8, DC1394_VIDEO_MODE_800x600_MONO8, DC1394_VIDEO_MODE_1024x768_YUV422, DC1394_VIDEO_MODE_1024x768_RGB8, DC1394_VIDEO_MODE_1024x768_MONO8, DC1394_VIDEO_MODE_800x600_MONO16, DC1394_VIDEO_MODE_1024x768_MONO16, DC1394_VIDEO_MODE_1280x960_YUV422, DC1394_VIDEO_MODE_1280x960_RGB8, DC1394_VIDEO_MODE_1280x960_MONO8, DC1394_VIDEO_MODE_1600x1200_YUV422, DC1394_VIDEO_MODE_1600x1200_RGB8, DC1394_VIDEO_MODE_1600x1200_MONO8, DC1394_VIDEO_MODE_1280x960_MONO16, DC1394_VIDEO_MODE_1600x1200_MONO16, DC1394_VIDEO_MODE_EXIF, DC1394_VIDEO_MODE_FORMAT7_0, DC1394_VIDEO_MODE_FORMAT7_1, DC1394_VIDEO_MODE_FORMAT7_2, DC1394_VIDEO_MODE_FORMAT7_3, DC1394_VIDEO_MODE_FORMAT7_4, DC1394_VIDEO_MODE_FORMAT7_5, DC1394_VIDEO_MODE_FORMAT7_6, DC1394_VIDEO_MODE_FORMAT7_7} dc1394video_mode_t;#define DC1394_VIDEO_MODE_MIN DC1394_VIDEO_MODE_160x120_YUV444#define DC1394_VIDEO_MODE_MAX DC1394_VIDEO_MODE_FORMAT7_7#define DC1394_VIDEO_MODE_NUM (DC1394_VIDEO_MODE_MAX - DC1394_VIDEO_MODE_MIN + 1)// Special min/max are defined for Format_7#define DC1394_VIDEO_MODE_FORMAT7_MIN DC1394_VIDEO_MODE_FORMAT7_0#define DC1394_VIDEO_MODE_FORMAT7_MAX DC1394_VIDEO_MODE_FORMAT7_7#define DC1394_VIDEO_MODE_FORMAT7_NUM (DC1394_VIDEO_MODE_FORMAT7_MAX - DC1394_VIDEO_MODE_FORMAT7_MIN + 1)/* Enumeration of colour modings */typedef enum { DC1394_COLOR_CODING_MONO8= 320, DC1394_COLOR_CODING_YUV411, DC1394_COLOR_CODING_YUV422, DC1394_COLOR_CODING_YUV444, DC1394_COLOR_CODING_RGB8, DC1394_COLOR_CODING_MONO16, DC1394_COLOR_CODING_RGB16, DC1394_COLOR_CODING_MONO16S, DC1394_COLOR_CODING_RGB16S, DC1394_COLOR_CODING_RAW8, DC1394_COLOR_CODING_RAW16} dc1394color_coding_t;#define DC1394_COLOR_CODING_MIN DC1394_COLOR_CODING_MONO8#define DC1394_COLOR_CODING_MAX DC1394_COLOR_CODING_RAW16#define DC1394_COLOR_CODING_NUM (DC1394_COLOR_CODING_MAX - DC1394_COLOR_CODING_MIN + 1)/* Enumeration of trigger modes */typedef enum { DC1394_TRIGGER_MODE_0= 352, DC1394_TRIGGER_MODE_1, DC1394_TRIGGER_MODE_2, DC1394_TRIGGER_MODE_3, DC1394_TRIGGER_MODE_4, DC1394_TRIGGER_MODE_5, DC1394_TRIGGER_MODE_14, DC1394_TRIGGER_MODE_15} dc1394trigger_mode_t;#define DC1394_TRIGGER_MODE_MIN DC1394_TRIGGER_MODE_0#define DC1394_TRIGGER_MODE_MAX DC1394_TRIGGER_MODE_15#define DC1394_TRIGGER_MODE_NUM (DC1394_TRIGGER_MODE_MAX - DC1394_TRIGGER_MODE_MIN + 1)/* Enumeration of camera features */typedef enum { DC1394_FEATURE_BRIGHTNESS= 416, DC1394_FEATURE_EXPOSURE, DC1394_FEATURE_SHARPNESS, DC1394_FEATURE_WHITE_BALANCE, DC1394_FEATURE_HUE, DC1394_FEATURE_SATURATION, DC1394_FEATURE_GAMMA, DC1394_FEATURE_SHUTTER, DC1394_FEATURE_GAIN, DC1394_FEATURE_IRIS, DC1394_FEATURE_FOCUS, DC1394_FEATURE_TEMPERATURE, DC1394_FEATURE_TRIGGER, DC1394_FEATURE_TRIGGER_DELAY, DC1394_FEATURE_WHITE_SHADING, DC1394_FEATURE_FRAME_RATE, /* 16 reserved features */ DC1394_FEATURE_ZOOM, DC1394_FEATURE_PAN, DC1394_FEATURE_TILT, DC1394_FEATURE_OPTICAL_FILTER, /* 12 reserved features */ DC1394_FEATURE_CAPTURE_SIZE, DC1394_FEATURE_CAPTURE_QUALITY /* 14 reserved features */} dc1394feature_t;#define DC1394_FEATURE_MIN DC1394_FEATURE_BRIGHTNESS#define DC1394_FEATURE_MAX DC1394_FEATURE_CAPTURE_QUALITY#define DC1394_FEATURE_NUM (DC1394_FEATURE_MAX - DC1394_FEATURE_MIN + 1)/* Operation modes */typedef enum { DC1394_OPERATION_MODE_LEGACY = 480, DC1394_OPERATION_MODE_1394B} dc1394operation_mode_t;/* Format 7 sensor layouts*/typedef enum { DC1394_COLOR_FILTER_RGGB = 512, DC1394_COLOR_FILTER_GBRG, DC1394_COLOR_FILTER_GRBG, DC1394_COLOR_FILTER_BGGR} dc1394color_filter_t;#define DC1394_COLOR_FILTER_MIN DC1394_COLOR_FILTER_RGGB#define DC1394_COLOR_FILTER_MAX DC1394_COLOR_FILTER_BGGR#define DC1394_COLOR_FILTER_NUM (DC1394_COLOR_FILTER_MAX - DC1394_COLOR_FILTER_MIN + 1)/* IIDC versions*/typedef enum { DC1394_IIDC_VERSION_1_04 = 544, DC1394_IIDC_VERSION_1_20, DC1394_IIDC_VERSION_PTGREY, DC1394_IIDC_VERSION_1_30, DC1394_IIDC_VERSION_1_31, DC1394_IIDC_VERSION_1_32, DC1394_IIDC_VERSION_1_33, DC1394_IIDC_VERSION_1_34, DC1394_IIDC_VERSION_1_35, DC1394_IIDC_VERSION_1_36, DC1394_IIDC_VERSION_1_37, DC1394_IIDC_VERSION_1_38, DC1394_IIDC_VERSION_1_39} dc1394iidc_version_t;#define DC1394_IIDC_VERSION_MIN DC1394_IIDC_VERSION_1_04#define DC1394_IIDC_VERSION_MAX DC1394_IIDC_VERSION_1_39#define DC1394_IIDC_VERSION_NUM (DC1394_IIDC_VERSION_MAX - DC1394_IIDC_VERSION_MIN + 1)/* Enumeration of trigger sources */typedef enum { DC1394_TRIGGER_SOURCE_0= 576, DC1394_TRIGGER_SOURCE_1, DC1394_TRIGGER_SOURCE_2, DC1394_TRIGGER_SOURCE_3,} dc1394trigger_source_t;#define DC1394_TRIGGER_SOURCE_MIN DC1394_TRIGGER_SOURCE_0#define DC1394_TRIGGER_SOURCE_MAX DC1394_TRIGGER_SOURCE_3#define DC1394_TRIGGER_SOURCE_NUM (DC1394_TRIGGER_SOURCE_MAX - DC1394_TRIGGER_SOURCE_MIN + 1)/* Maximum number of characters in vendor and model strings */#define MAX_CHARS 256/* Return values for visible functions*/typedef enum { DC1394_SUCCESS = 0, /* Success is zero */ DC1394_FAILURE, /* Errors are positive numbers */ DC1394_NO_FRAME = -2, /* Warnings or info are negative numbers */ DC1394_NO_CAMERA = 3, DC1394_NOT_A_CAMERA, DC1394_FUNCTION_NOT_SUPPORTED, DC1394_CAMERA_NOT_INITIALIZED, DC1394_INVALID_FEATURE, DC1394_INVALID_VIDEO_FORMAT, DC1394_INVALID_VIDEO_MODE,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -