1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
|
<html>
<head>
<title>Camstream: CamStream API documentation</title>
<link rel="stylesheet" href="../../tech.css" type="text/css">
</head>
<body>
<!-- Generated by Doxygen 1.3.7 -->
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div>
<h1>pwc-ioctl.h</h1><a href="pwc-ioctl_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="preprocessor">#ifndef PWC_IOCTL_H</span>
00002 <span class="preprocessor"></span><span class="preprocessor">#define PWC_IOCTL_H</span>
00003 <span class="preprocessor"></span>
00004 <span class="comment">/* (C) 2001-2004 Nemosoft Unv. webcam@smcc.demon.nl</span>
00005 <span class="comment"></span>
00006 <span class="comment"> This program is free software; you can redistribute it and/or modify</span>
00007 <span class="comment"> it under the terms of the GNU General Public License as published by</span>
00008 <span class="comment"> the Free Software Foundation; either version 2 of the License, or</span>
00009 <span class="comment"> (at your option) any later version.</span>
00010 <span class="comment"></span>
00011 <span class="comment"> This program is distributed in the hope that it will be useful,</span>
00012 <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
00013 <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
00014 <span class="comment"> GNU General Public License for more details.</span>
00015 <span class="comment"></span>
00016 <span class="comment"> You should have received a copy of the GNU General Public License</span>
00017 <span class="comment"> along with this program; if not, write to the Free Software</span>
00018 <span class="comment"> Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
00019 <span class="comment">*/</span>
00020
00021 <span class="comment">/* This is pwc-ioctl.h belonging to PWC 8.12.1</span>
00022 <span class="comment"> It contains structures and defines to communicate from user space</span>
00023 <span class="comment"> directly to the driver.</span>
00024 <span class="comment"> */</span>
00025
00026 <span class="comment">/*</span>
00027 <span class="comment"> Changes</span>
00028 <span class="comment"> 2001/08/03 Alvarado Added ioctl constants to access methods for</span>
00029 <span class="comment"> changing white balance and red/blue gains</span>
00030 <span class="comment"> 2002/12/15 G. H. Fernandez-Toribio VIDIOCGREALSIZE</span>
00031 <span class="comment"> 2003/12/13 Nemosft Unv. Some modifications to make interfacing to</span>
00032 <span class="comment"> PWCX easier</span>
00033 <span class="comment"> */</span>
00034
00035 <span class="comment">/* These are private ioctl() commands, specific for the Philips webcams.</span>
00036 <span class="comment"> They contain functions not found in other webcams, and settings not</span>
00037 <span class="comment"> specified in the Video4Linux API.</span>
00038 <span class="comment"></span>
00039 <span class="comment"> The #define names are built up like follows:</span>
00040 <span class="comment"> VIDIOC VIDeo IOCtl prefix</span>
00041 <span class="comment"> PWC Philps WebCam</span>
00042 <span class="comment"> G optional: Get</span>
00043 <span class="comment"> S optional: Set</span>
00044 <span class="comment"> ... the function</span>
00045 <span class="comment"> */</span>
00046
00047
00048 <span class="comment">/* Enumeration of image sizes */</span>
<a name="l00049"></a><a class="code" href="pwc-ioctl_8h.html#a0">00049</a> <span class="preprocessor">#define PSZ_SQCIF 0x00</span>
<a name="l00050"></a><a class="code" href="pwc-ioctl_8h.html#a1">00050</a> <span class="preprocessor"></span><span class="preprocessor">#define PSZ_QSIF 0x01</span>
<a name="l00051"></a><a class="code" href="pwc-ioctl_8h.html#a2">00051</a> <span class="preprocessor"></span><span class="preprocessor">#define PSZ_QCIF 0x02</span>
<a name="l00052"></a><a class="code" href="pwc-ioctl_8h.html#a3">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define PSZ_SIF 0x03</span>
<a name="l00053"></a><a class="code" href="pwc-ioctl_8h.html#a4">00053</a> <span class="preprocessor"></span><span class="preprocessor">#define PSZ_CIF 0x04</span>
<a name="l00054"></a><a class="code" href="pwc-ioctl_8h.html#a5">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define PSZ_VGA 0x05</span>
<a name="l00055"></a><a class="code" href="pwc-ioctl_8h.html#a6">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define PSZ_MAX 6</span>
00056 <span class="preprocessor"></span>
00057
00058 <span class="comment">/* The frame rate is encoded in the video_window.flags parameter using</span>
00059 <span class="comment"> the upper 16 bits, since some flags are defined nowadays. The following</span>
00060 <span class="comment"> defines provide a mask and shift to filter out this value.</span>
00061 <span class="comment"></span>
00062 <span class="comment"> In 'Snapshot' mode the camera freezes its automatic exposure and colour</span>
00063 <span class="comment"> balance controls.</span>
00064 <span class="comment"> */</span>
<a name="l00065"></a><a class="code" href="pwc-ioctl_8h.html#a7">00065</a> <span class="preprocessor">#define PWC_FPS_SHIFT 16</span>
<a name="l00066"></a><a class="code" href="pwc-ioctl_8h.html#a8">00066</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_FPS_MASK 0x00FF0000</span>
<a name="l00067"></a><a class="code" href="pwc-ioctl_8h.html#a9">00067</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_FPS_FRMASK 0x003F0000</span>
<a name="l00068"></a><a class="code" href="pwc-ioctl_8h.html#a10">00068</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_FPS_SNAPSHOT 0x00400000</span>
00069 <span class="preprocessor"></span>
00070
00071 <span class="comment">/* structure for transfering x & y coordinates */</span>
<a name="l00072"></a><a class="code" href="structpwc__coord.html">00072</a> <span class="keyword">struct </span><a class="code" href="structpwc__coord.html">pwc_coord</a>
00073 {
<a name="l00074"></a><a class="code" href="structpwc__coord.html#o1">00074</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__coord.html#o0">x</a>, <a class="code" href="structpwc__coord.html#o1">y</a>; <span class="comment">/* guess what */</span>
<a name="l00075"></a><a class="code" href="structpwc__coord.html#o2">00075</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__coord.html#o2">size</a>; <span class="comment">/* size, or offset */</span>
00076 };
00077
00078
00079 <span class="comment">/* Used with VIDIOCPWCPROBE */</span>
<a name="l00080"></a><a class="code" href="structpwc__probe.html">00080</a> <span class="keyword">struct </span><a class="code" href="structpwc__probe.html">pwc_probe</a>
00081 {
<a name="l00082"></a><a class="code" href="structpwc__probe.html#o0">00082</a> <span class="keywordtype">char</span> <a class="code" href="structpwc__probe.html#o0">name</a>[32];
<a name="l00083"></a><a class="code" href="structpwc__probe.html#o1">00083</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__probe.html#o1">type</a>;
00084 };
00085
<a name="l00086"></a><a class="code" href="structpwc__serial.html">00086</a> <span class="keyword">struct </span><a class="code" href="structpwc__serial.html">pwc_serial</a>
00087 {
<a name="l00088"></a><a class="code" href="structpwc__serial.html#o0">00088</a> <span class="keywordtype">char</span> <a class="code" href="structpwc__serial.html#o0">serial</a>[30]; <span class="comment">/* String with serial number. Contains terminating 0 */</span>
00089 };
00090
00091 <span class="comment">/* pwc_whitebalance.mode values */</span>
<a name="l00092"></a><a class="code" href="pwc-ioctl_8h.html#a11">00092</a> <span class="preprocessor">#define PWC_WB_INDOOR 0</span>
<a name="l00093"></a><a class="code" href="pwc-ioctl_8h.html#a12">00093</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_WB_OUTDOOR 1</span>
<a name="l00094"></a><a class="code" href="pwc-ioctl_8h.html#a13">00094</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_WB_FL 2</span>
<a name="l00095"></a><a class="code" href="pwc-ioctl_8h.html#a14">00095</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_WB_MANUAL 3</span>
<a name="l00096"></a><a class="code" href="pwc-ioctl_8h.html#a15">00096</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_WB_AUTO 4</span>
00097 <span class="preprocessor"></span>
00098 <span class="comment">/* Used with VIDIOCPWC[SG]AWB (Auto White Balance). </span>
00099 <span class="comment"> Set mode to one of the PWC_WB_* values above.</span>
00100 <span class="comment"> *red and *blue are the respective gains of these colour components inside </span>
00101 <span class="comment"> the camera; range 0..65535</span>
00102 <span class="comment"> When 'mode' == PWC_WB_MANUAL, 'manual_red' and 'manual_blue' are set or read; </span>
00103 <span class="comment"> otherwise undefined.</span>
00104 <span class="comment"> 'read_red' and 'read_blue' are read-only.</span>
00105 <span class="comment">*/</span>
<a name="l00106"></a><a class="code" href="structpwc__whitebalance.html">00106</a> <span class="keyword">struct </span><a class="code" href="structpwc__whitebalance.html">pwc_whitebalance</a>
00107 {
<a name="l00108"></a><a class="code" href="structpwc__whitebalance.html#o0">00108</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__whitebalance.html#o0">mode</a>;
<a name="l00109"></a><a class="code" href="structpwc__whitebalance.html#o1">00109</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__whitebalance.html#o1">manual_red</a>, <a class="code" href="structpwc__whitebalance.html#o2">manual_blue</a>; <span class="comment">/* R/W */</span>
<a name="l00110"></a><a class="code" href="structpwc__whitebalance.html#o3">00110</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__whitebalance.html#o3">read_red</a>, <a class="code" href="structpwc__whitebalance.html#o4">read_blue</a>; <span class="comment">/* R/O */</span>
00111 };
00112
00113 <span class="comment">/* </span>
00114 <span class="comment"> 'control_speed' and 'control_delay' are used in automatic whitebalance mode,</span>
00115 <span class="comment"> and tell the camera how fast it should react to changes in lighting, and </span>
00116 <span class="comment"> with how much delay. Valid values are 0..65535.</span>
00117 <span class="comment">*/</span>
<a name="l00118"></a><a class="code" href="structpwc__wb__speed.html">00118</a> <span class="keyword">struct </span><a class="code" href="structpwc__wb__speed.html">pwc_wb_speed</a>
00119 {
<a name="l00120"></a><a class="code" href="structpwc__wb__speed.html#o0">00120</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__wb__speed.html#o0">control_speed</a>;
<a name="l00121"></a><a class="code" href="structpwc__wb__speed.html#o1">00121</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__wb__speed.html#o1">control_delay</a>;
00122
00123 };
00124
00125 <span class="comment">/* Used with VIDIOCPWC[SG]LED */</span>
<a name="l00126"></a><a class="code" href="structpwc__leds.html">00126</a> <span class="keyword">struct </span><a class="code" href="structpwc__leds.html">pwc_leds</a>
00127 {
<a name="l00128"></a><a class="code" href="structpwc__leds.html#o0">00128</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__leds.html#o0">led_on</a>; <span class="comment">/* Led on-time; range = 0..25000 */</span>
<a name="l00129"></a><a class="code" href="structpwc__leds.html#o1">00129</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__leds.html#o1">led_off</a>; <span class="comment">/* Led off-time; range = 0..25000 */</span>
00130 };
00131
00132 <span class="comment">/* Image size (used with GREALSIZE) */</span>
<a name="l00133"></a><a class="code" href="structpwc__imagesize.html">00133</a> <span class="keyword">struct </span><a class="code" href="structpwc__imagesize.html">pwc_imagesize</a>
00134 {
<a name="l00135"></a><a class="code" href="structpwc__imagesize.html#o0">00135</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__imagesize.html#o0">width</a>;
<a name="l00136"></a><a class="code" href="structpwc__imagesize.html#o1">00136</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__imagesize.html#o1">height</a>;
00137 };
00138
00139 <span class="comment">/* Defines and structures for Motorized Pan & Tilt */</span>
<a name="l00140"></a><a class="code" href="pwc-ioctl_8h.html#a16">00140</a> <span class="preprocessor">#define PWC_MPT_PAN 0x01</span>
<a name="l00141"></a><a class="code" href="pwc-ioctl_8h.html#a17">00141</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_MPT_TILT 0x02</span>
<a name="l00142"></a><a class="code" href="pwc-ioctl_8h.html#a18">00142</a> <span class="preprocessor"></span><span class="preprocessor">#define PWC_MPT_TIMEOUT 0x04 </span><span class="comment">/* for status */</span>
00143
00144 <span class="comment">/* Set angles; when absolute != 0, the angle is absolute and the </span>
00145 <span class="comment"> driver calculates the relative offset for you. This can only</span>
00146 <span class="comment"> be used with VIDIOCPWCSANGLE; VIDIOCPWCGANGLE always returns</span>
00147 <span class="comment"> absolute angles.</span>
00148 <span class="comment"> */</span>
<a name="l00149"></a><a class="code" href="structpwc__mpt__angles.html">00149</a> <span class="keyword">struct </span><a class="code" href="structpwc__mpt__angles.html">pwc_mpt_angles</a>
00150 {
<a name="l00151"></a><a class="code" href="structpwc__mpt__angles.html#o0">00151</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__mpt__angles.html#o0">absolute</a>; <span class="comment">/* write-only */</span>
<a name="l00152"></a><a class="code" href="structpwc__mpt__angles.html#o1">00152</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__mpt__angles.html#o1">pan</a>; <span class="comment">/* degrees * 100 */</span>
<a name="l00153"></a><a class="code" href="structpwc__mpt__angles.html#o2">00153</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__mpt__angles.html#o2">tilt</a>; <span class="comment">/* degress * 100 */</span>
00154 };
00155
00156 <span class="comment">/* Range of angles of the camera, both horizontally and vertically.</span>
00157 <span class="comment"> */</span>
<a name="l00158"></a><a class="code" href="structpwc__mpt__range.html">00158</a> <span class="keyword">struct </span><a class="code" href="structpwc__mpt__range.html">pwc_mpt_range</a>
00159 {
<a name="l00160"></a><a class="code" href="structpwc__mpt__range.html#o0">00160</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__mpt__range.html#o0">pan_min</a>, <a class="code" href="structpwc__mpt__range.html#o1">pan_max</a>; <span class="comment">/* degrees * 100 */</span>
<a name="l00161"></a><a class="code" href="structpwc__mpt__range.html#o2">00161</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__mpt__range.html#o2">tilt_min</a>, <a class="code" href="structpwc__mpt__range.html#o3">tilt_max</a>;
00162 };
00163
<a name="l00164"></a><a class="code" href="structpwc__mpt__status.html">00164</a> <span class="keyword">struct </span><a class="code" href="structpwc__mpt__status.html">pwc_mpt_status</a>
00165 {
<a name="l00166"></a><a class="code" href="structpwc__mpt__status.html#o0">00166</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__mpt__status.html#o0">status</a>;
<a name="l00167"></a><a class="code" href="structpwc__mpt__status.html#o1">00167</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__mpt__status.html#o1">time_pan</a>;
<a name="l00168"></a><a class="code" href="structpwc__mpt__status.html#o2">00168</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__mpt__status.html#o2">time_tilt</a>;
00169 };
00170
00171
00172 <span class="comment">/* This is used for out-of-kernel decompression. With it, you can get</span>
00173 <span class="comment"> all the necessary information to initialize and use the decompressor</span>
00174 <span class="comment"> routines in standalone applications.</span>
00175 <span class="comment"> */</span>
<a name="l00176"></a><a class="code" href="structpwc__video__command.html">00176</a> <span class="keyword">struct </span><a class="code" href="structpwc__video__command.html">pwc_video_command</a>
00177 {
<a name="l00178"></a><a class="code" href="structpwc__video__command.html#o0">00178</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__video__command.html#o0">type</a>; <span class="comment">/* camera type (645, 675, 730, etc.) */</span>
<a name="l00179"></a><a class="code" href="structpwc__video__command.html#o1">00179</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__video__command.html#o1">release</a>; <span class="comment">/* release number */</span>
00180
<a name="l00181"></a><a class="code" href="structpwc__video__command.html#o2">00181</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__video__command.html#o2">size</a>; <span class="comment">/* one of PSZ_* */</span>
<a name="l00182"></a><a class="code" href="structpwc__video__command.html#o3">00182</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__video__command.html#o3">alternate</a>;
<a name="l00183"></a><a class="code" href="structpwc__video__command.html#o4">00183</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__video__command.html#o4">command_len</a>; <span class="comment">/* length of USB video command */</span>
<a name="l00184"></a><a class="code" href="structpwc__video__command.html#o5">00184</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structpwc__video__command.html#o5">command_buf</a>[13]; <span class="comment">/* Actual USB video command */</span>
<a name="l00185"></a><a class="code" href="structpwc__video__command.html#o6">00185</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__video__command.html#o6">bandlength</a>; <span class="comment">/* >0 = compressed */</span>
<a name="l00186"></a><a class="code" href="structpwc__video__command.html#o7">00186</a> <span class="keywordtype">int</span> <a class="code" href="structpwc__video__command.html#o7">frame_size</a>; <span class="comment">/* Size of one (un)compressed frame */</span>
00187 };
00188
00189 <span class="comment">/* Flags for PWCX subroutines. Not all modules honour all flags. */</span>
<a name="l00190"></a><a class="code" href="pwc-ioctl_8h.html#a19">00190</a> <span class="preprocessor">#define PWCX_FLAG_PLANAR 0x0001</span>
<a name="l00191"></a><a class="code" href="pwc-ioctl_8h.html#a20">00191</a> <span class="preprocessor"></span><span class="preprocessor">#define PWCX_FLAG_BAYER 0x0008</span>
00192 <span class="preprocessor"></span>
00193
00194 <span class="comment">/* IOCTL definitions */</span>
00195
00196 <span class="comment">/* Restore user settings */</span>
<a name="l00197"></a><a class="code" href="pwc-ioctl_8h.html#a21">00197</a> <span class="preprocessor">#define VIDIOCPWCRUSER _IO('v', 192)</span>
00198 <span class="preprocessor"></span> <span class="comment">/* Save user settings */</span>
<a name="l00199"></a><a class="code" href="pwc-ioctl_8h.html#a22">00199</a> <span class="preprocessor">#define VIDIOCPWCSUSER _IO('v', 193)</span>
00200 <span class="preprocessor"></span> <span class="comment">/* Restore factory settings */</span>
<a name="l00201"></a><a class="code" href="pwc-ioctl_8h.html#a23">00201</a> <span class="preprocessor">#define VIDIOCPWCFACTORY _IO('v', 194)</span>
00202 <span class="preprocessor"></span>
00203 <span class="comment">/* You can manipulate the compression factor. A compression preference of 0</span>
00204 <span class="comment"> means use uncompressed modes when available; 1 is low compression, 2 is</span>
00205 <span class="comment"> medium and 3 is high compression preferred. Of course, the higher the</span>
00206 <span class="comment"> compression, the lower the bandwidth used but more chance of artefacts</span>
00207 <span class="comment"> in the image. The driver automatically chooses a higher compression when</span>
00208 <span class="comment"> the preferred mode is not available.</span>
00209 <span class="comment"> */</span>
00210 <span class="comment">/* Set preferred compression quality (0 = uncompressed, 3 = highest compression) */</span>
<a name="l00211"></a><a class="code" href="pwc-ioctl_8h.html#a24">00211</a> <span class="preprocessor">#define VIDIOCPWCSCQUAL _IOW('v', 195, int)</span>
00212 <span class="preprocessor"></span> <span class="comment">/* Get preferred compression quality */</span>
<a name="l00213"></a><a class="code" href="pwc-ioctl_8h.html#a25">00213</a> <span class="preprocessor">#define VIDIOCPWCGCQUAL _IOR('v', 195, int)</span>
00214 <span class="preprocessor"></span>
00215
00216 <span class="comment">/* Retrieve serial number of camera */</span>
<a name="l00217"></a><a class="code" href="pwc-ioctl_8h.html#a26">00217</a> <span class="preprocessor">#define VIDIOCPWCGSERIAL _IOR('v', 198, struct pwc_serial)</span>
00218 <span class="preprocessor"></span>
00219 <span class="comment">/* This is a probe function; since so many devices are supported, it</span>
00220 <span class="comment"> becomes difficult to include all the names in programs that want to</span>
00221 <span class="comment"> check for the enhanced Philips stuff. So in stead, try this PROBE;</span>
00222 <span class="comment"> it returns a structure with the original name, and the corresponding</span>
00223 <span class="comment"> Philips type.</span>
00224 <span class="comment"> To use, fill the structure with zeroes, call PROBE and if that succeeds,</span>
00225 <span class="comment"> compare the name with that returned from VIDIOCGCAP; they should be the</span>
00226 <span class="comment"> same. If so, you can be assured it is a Philips (OEM) cam and the type</span>
00227 <span class="comment"> is valid.</span>
00228 <span class="comment"> */</span>
<a name="l00229"></a><a class="code" href="pwc-ioctl_8h.html#a27">00229</a> <span class="preprocessor">#define VIDIOCPWCPROBE _IOR('v', 199, struct pwc_probe)</span>
00230 <span class="preprocessor"></span>
00231 <span class="comment">/* Set AGC (Automatic Gain Control); int < 0 = auto, 0..65535 = fixed */</span>
<a name="l00232"></a><a class="code" href="pwc-ioctl_8h.html#a28">00232</a> <span class="preprocessor">#define VIDIOCPWCSAGC _IOW('v', 200, int)</span>
00233 <span class="preprocessor"></span> <span class="comment">/* Get AGC; int < 0 = auto; >= 0 = fixed, range 0..65535 */</span>
<a name="l00234"></a><a class="code" href="pwc-ioctl_8h.html#a29">00234</a> <span class="preprocessor">#define VIDIOCPWCGAGC _IOR('v', 200, int)</span>
00235 <span class="preprocessor"></span> <span class="comment">/* Set shutter speed; int < 0 = auto; >= 0 = fixed, range 0..65535 */</span>
<a name="l00236"></a><a class="code" href="pwc-ioctl_8h.html#a30">00236</a> <span class="preprocessor">#define VIDIOCPWCSSHUTTER _IOW('v', 201, int)</span>
00237 <span class="preprocessor"></span>
00238 <span class="comment">/* Color compensation (Auto White Balance) */</span>
<a name="l00239"></a><a class="code" href="pwc-ioctl_8h.html#a31">00239</a> <span class="preprocessor">#define VIDIOCPWCSAWB _IOW('v', 202, struct pwc_whitebalance)</span>
<a name="l00240"></a><a class="code" href="pwc-ioctl_8h.html#a32">00240</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCGAWB _IOR('v', 202, struct pwc_whitebalance)</span>
00241 <span class="preprocessor"></span>
00242 <span class="comment">/* Auto WB speed */</span>
<a name="l00243"></a><a class="code" href="pwc-ioctl_8h.html#a33">00243</a> <span class="preprocessor">#define VIDIOCPWCSAWBSPEED _IOW('v', 203, struct pwc_wb_speed)</span>
<a name="l00244"></a><a class="code" href="pwc-ioctl_8h.html#a34">00244</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCGAWBSPEED _IOR('v', 203, struct pwc_wb_speed)</span>
00245 <span class="preprocessor"></span>
00246 <span class="comment">/* LEDs on/off/blink; int range 0..65535 */</span>
<a name="l00247"></a><a class="code" href="pwc-ioctl_8h.html#a35">00247</a> <span class="preprocessor">#define VIDIOCPWCSLED _IOW('v', 205, struct pwc_leds)</span>
<a name="l00248"></a><a class="code" href="pwc-ioctl_8h.html#a36">00248</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCGLED _IOR('v', 205, struct pwc_leds)</span>
00249 <span class="preprocessor"></span>
00250 <span class="comment">/* Contour (sharpness); int < 0 = auto, 0..65536 = fixed */</span>
<a name="l00251"></a><a class="code" href="pwc-ioctl_8h.html#a37">00251</a> <span class="preprocessor">#define VIDIOCPWCSCONTOUR _IOW('v', 206, int)</span>
<a name="l00252"></a><a class="code" href="pwc-ioctl_8h.html#a38">00252</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCGCONTOUR _IOR('v', 206, int)</span>
00253 <span class="preprocessor"></span>
00254 <span class="comment">/* Backlight compensation; 0 = off, otherwise on */</span>
<a name="l00255"></a><a class="code" href="pwc-ioctl_8h.html#a39">00255</a> <span class="preprocessor">#define VIDIOCPWCSBACKLIGHT _IOW('v', 207, int)</span>
<a name="l00256"></a><a class="code" href="pwc-ioctl_8h.html#a40">00256</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCGBACKLIGHT _IOR('v', 207, int)</span>
00257 <span class="preprocessor"></span>
00258 <span class="comment">/* Flickerless mode; = 0 off, otherwise on */</span>
<a name="l00259"></a><a class="code" href="pwc-ioctl_8h.html#a41">00259</a> <span class="preprocessor">#define VIDIOCPWCSFLICKER _IOW('v', 208, int)</span>
<a name="l00260"></a><a class="code" href="pwc-ioctl_8h.html#a42">00260</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCGFLICKER _IOR('v', 208, int) </span>
00261 <span class="preprocessor"></span>
00262 <span class="comment">/* Dynamic noise reduction; 0 off, 3 = high noise reduction */</span>
<a name="l00263"></a><a class="code" href="pwc-ioctl_8h.html#a43">00263</a> <span class="preprocessor">#define VIDIOCPWCSDYNNOISE _IOW('v', 209, int)</span>
<a name="l00264"></a><a class="code" href="pwc-ioctl_8h.html#a44">00264</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCGDYNNOISE _IOR('v', 209, int)</span>
00265 <span class="preprocessor"></span>
00266 <span class="comment">/* Real image size as used by the camera; tells you whether or not there's a gray border around the image */</span>
<a name="l00267"></a><a class="code" href="pwc-ioctl_8h.html#a45">00267</a> <span class="preprocessor">#define VIDIOCPWCGREALSIZE _IOR('v', 210, struct pwc_imagesize)</span>
00268 <span class="preprocessor"></span>
00269 <span class="comment">/* Motorized pan & tilt functions */</span>
<a name="l00270"></a><a class="code" href="pwc-ioctl_8h.html#a46">00270</a> <span class="preprocessor">#define VIDIOCPWCMPTRESET _IOW('v', 211, int)</span>
<a name="l00271"></a><a class="code" href="pwc-ioctl_8h.html#a47">00271</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCMPTGRANGE _IOR('v', 211, struct pwc_mpt_range)</span>
<a name="l00272"></a><a class="code" href="pwc-ioctl_8h.html#a48">00272</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCMPTSANGLE _IOW('v', 212, struct pwc_mpt_angles)</span>
<a name="l00273"></a><a class="code" href="pwc-ioctl_8h.html#a49">00273</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCMPTGANGLE _IOR('v', 212, struct pwc_mpt_angles)</span>
<a name="l00274"></a><a class="code" href="pwc-ioctl_8h.html#a50">00274</a> <span class="preprocessor"></span><span class="preprocessor">#define VIDIOCPWCMPTSTATUS _IOR('v', 213, struct pwc_mpt_status)</span>
00275 <span class="preprocessor"></span>
00276 <span class="comment">/* Get the USB set-video command; needed for initializing libpwcx */</span>
<a name="l00277"></a><a class="code" href="pwc-ioctl_8h.html#a51">00277</a> <span class="preprocessor">#define VIDIOCPWCGVIDCMD _IOR('v', 215, struct pwc_video_command)</span>
00278 <span class="preprocessor"></span>
00279 <span class="preprocessor">#endif</span>
</div></pre><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 13 23:38:46 2006 for CamStream by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address>
</body>
</html>
|