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
|
<html>
<head>
<title>Camstream: CamStream API documentation</title>
<link rel="stylesheet" href="../../tech.css" type="text/css">
</head>
<body>
<!-- Generated by Doxygen 1.2.6 -->
<center>
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center>
<hr><h1>pwc-ioctl.h</h1><a href="pwc-ioctl_h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="preprocessor">#ifndef PWC_IOCTL_H</font>
00002 <font class="preprocessor"></font><font class="preprocessor">#define PWC_IOCTL_H</font>
00003 <font class="preprocessor"></font>
00004 <font class="comment">/* (C) 2001-2002 Nemosoft Unv. webcam@smcc.demon.nl</font>
00005 <font class="comment"> </font>
00006 <font class="comment"> This program is free software; you can redistribute it and/or modify</font>
00007 <font class="comment"> it under the terms of the GNU General Public License as published by</font>
00008 <font class="comment"> the Free Software Foundation; either version 2 of the License, or</font>
00009 <font class="comment"> (at your option) any later version.</font>
00010 <font class="comment"></font>
00011 <font class="comment"> This program is distributed in the hope that it will be useful,</font>
00012 <font class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00013 <font class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</font>
00014 <font class="comment"> GNU General Public License for more details.</font>
00015 <font class="comment"></font>
00016 <font class="comment"> You should have received a copy of the GNU General Public License</font>
00017 <font class="comment"> along with this program; if not, write to the Free Software</font>
00018 <font class="comment"> Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</font>
00019 <font class="comment">*/</font>
00020
00021 <font class="comment">/* This is pwc-ioctl.h belonging to PWC 8.6 */</font>
00022
00023 <font class="comment">/* </font>
00024 <font class="comment"> Changes</font>
00025 <font class="comment"> 2001/08/03 Alvarado Added ioctl constants to access methods for </font>
00026 <font class="comment"> changing white balance and red/blue gains</font>
00027 <font class="comment"> */</font>
00028
00029 <font class="comment">/* These are private ioctl() commands, specific for the Philips webcams.</font>
00030 <font class="comment"> They contain functions not found in other webcams, and settings not</font>
00031 <font class="comment"> specified in the Video4Linux API. </font>
00032 <font class="comment"> </font>
00033 <font class="comment"> The #define names are built up like follows:</font>
00034 <font class="comment"> VIDIOC VIDeo IOCtl prefix</font>
00035 <font class="comment"> PWC Philps WebCam</font>
00036 <font class="comment"> G optional: Get</font>
00037 <font class="comment"> S optional: Set</font>
00038 <font class="comment"> ... the function</font>
00039 <font class="comment"> */</font>
00040
00041
00042
00043
00044 <font class="comment">/* The frame rate is encoded in the video_window.flags parameter using</font>
00045 <font class="comment"> the upper 16 bits, since some flags are defined nowadays. The following</font>
00046 <font class="comment"> defines provide a mask and shift to filter out this value.</font>
00047 <font class="comment"> </font>
00048 <font class="comment"> In 'Snapshot' mode the camera freezes its automatic exposure and colour </font>
00049 <font class="comment"> balance controls.</font>
00050 <font class="comment"> */</font>
<a name="l00051"></a><a class="code" href="pwc-ioctl_h.html#a0">00051</a> <font class="preprocessor">#define PWC_FPS_SHIFT 16</font>
<a name="l00052"></a><a class="code" href="pwc-ioctl_h.html#a1">00052</a> <font class="preprocessor"></font><font class="preprocessor">#define PWC_FPS_MASK 0x00FF0000</font>
<a name="l00053"></a><a class="code" href="pwc-ioctl_h.html#a2">00053</a> <font class="preprocessor"></font><font class="preprocessor">#define PWC_FPS_FRMASK 0x003F0000</font>
<a name="l00054"></a><a class="code" href="pwc-ioctl_h.html#a3">00054</a> <font class="preprocessor"></font><font class="preprocessor">#define PWC_FPS_SNAPSHOT 0x00400000</font>
00055 <font class="preprocessor"></font>
00056
00057
<a name="l00058"></a><a class="code" href="struct_pwc_probe.html">00058</a> <font class="keyword">struct </font><a class="code" href="struct_pwc_probe.html">pwc_probe</a>
00059 {
<a name="l00060"></a><a class="code" href="struct_pwc_probe.html#m0">00060</a> <font class="keywordtype">char</font> name[32];
<a name="l00061"></a><a class="code" href="struct_pwc_probe.html#m1">00061</a> <font class="keywordtype">int</font> type;
00062 };
00063
00064
00065 <font class="comment">/* pwc_whitebalance.mode values */</font>
<a name="l00066"></a><a class="code" href="pwc-ioctl_h.html#a4">00066</a> <font class="preprocessor">#define PWC_WB_INDOOR 0</font>
<a name="l00067"></a><a class="code" href="pwc-ioctl_h.html#a5">00067</a> <font class="preprocessor"></font><font class="preprocessor">#define PWC_WB_OUTDOOR 1</font>
<a name="l00068"></a><a class="code" href="pwc-ioctl_h.html#a6">00068</a> <font class="preprocessor"></font><font class="preprocessor">#define PWC_WB_FL 2</font>
<a name="l00069"></a><a class="code" href="pwc-ioctl_h.html#a7">00069</a> <font class="preprocessor"></font><font class="preprocessor">#define PWC_WB_MANUAL 3</font>
<a name="l00070"></a><a class="code" href="pwc-ioctl_h.html#a8">00070</a> <font class="preprocessor"></font><font class="preprocessor">#define PWC_WB_AUTO 4</font>
00071 <font class="preprocessor"></font>
00072 <font class="comment">/* Used with VIDIOCPWC[SG]AWB (Auto White Balance). </font>
00073 <font class="comment"> Set mode to one of the PWC_WB_* values above.</font>
00074 <font class="comment"> *red and *blue are the respective gains of these colour components inside </font>
00075 <font class="comment"> the camera; range 0..65535</font>
00076 <font class="comment"> When 'mode' == PWC_WB_MANUAL, 'manual_red' and 'manual_blue' are set or read; </font>
00077 <font class="comment"> otherwise undefined.</font>
00078 <font class="comment"> 'read_red' and 'read_blue' are read-only.</font>
00079 <font class="comment">*/</font>
00080
<a name="l00081"></a><a class="code" href="struct_pwc_whitebalance.html">00081</a> <font class="keyword">struct </font><a class="code" href="struct_pwc_whitebalance.html">pwc_whitebalance</a>
00082 {
<a name="l00083"></a><a class="code" href="struct_pwc_whitebalance.html#m0">00083</a> <font class="keywordtype">int</font> mode;
<a name="l00084"></a><a class="code" href="struct_pwc_whitebalance.html#m1">00084</a> <font class="keywordtype">int</font> manual_red, manual_blue; <font class="comment">/* R/W */</font>
<a name="l00085"></a><a class="code" href="struct_pwc_whitebalance.html#m3">00085</a> <font class="keywordtype">int</font> read_red, read_blue; <font class="comment">/* R/O */</font>
00086 };
00087
00088 <font class="comment">/* </font>
00089 <font class="comment"> 'control_speed' and 'control_delay' are used in automatic whitebalance mode,</font>
00090 <font class="comment"> and tell the camera how fast it should react to changes in lighting, and </font>
00091 <font class="comment"> with how much delay. Valid values are 0..65535.</font>
00092 <font class="comment">*/</font>
<a name="l00093"></a><a class="code" href="struct_pwc_wb_speed.html">00093</a> <font class="keyword">struct </font><a class="code" href="struct_pwc_wb_speed.html">pwc_wb_speed</a>
00094 {
<a name="l00095"></a><a class="code" href="struct_pwc_wb_speed.html#m0">00095</a> <font class="keywordtype">int</font> control_speed;
<a name="l00096"></a><a class="code" href="struct_pwc_wb_speed.html#m1">00096</a> <font class="keywordtype">int</font> control_delay;
00097
00098 };
00099
00100 <font class="comment">/* Used with VIDIOCPWC[SG]LED */</font>
<a name="l00101"></a><a class="code" href="struct_pwc_leds.html">00101</a> <font class="keyword">struct </font><a class="code" href="struct_pwc_leds.html">pwc_leds</a>
00102 {
<a name="l00103"></a><a class="code" href="struct_pwc_leds.html#m0">00103</a> <font class="keywordtype">int</font> led_on; <font class="comment">/* Led on-time; range = 0..25000 */</font>
<a name="l00104"></a><a class="code" href="struct_pwc_leds.html#m1">00104</a> <font class="keywordtype">int</font> led_off; <font class="comment">/* Led off-time; range = 0..25000 */</font>
00105 };
00106
00107
00108
00109 <font class="comment">/* Restore user settings */</font>
<a name="l00110"></a><a class="code" href="pwc-ioctl_h.html#a9">00110</a> <font class="preprocessor">#define VIDIOCPWCRUSER _IO('v', 192)</font>
00111 <font class="preprocessor"></font> <font class="comment">/* Save user settings */</font>
<a name="l00112"></a><a class="code" href="pwc-ioctl_h.html#a10">00112</a> <font class="preprocessor">#define VIDIOCPWCSUSER _IO('v', 193)</font>
00113 <font class="preprocessor"></font> <font class="comment">/* Restore factory settings */</font>
<a name="l00114"></a><a class="code" href="pwc-ioctl_h.html#a11">00114</a> <font class="preprocessor">#define VIDIOCPWCFACTORY _IO('v', 194)</font>
00115 <font class="preprocessor"></font>
00116 <font class="comment">/* You can manipulate the compression factor. A compression preference of 0</font>
00117 <font class="comment"> means use uncompressed modes when available; 1 is low compression, 2 is</font>
00118 <font class="comment"> medium and 3 is high compression preferred. Of course, the higher the</font>
00119 <font class="comment"> compression, the lower the bandwidth used but more chance of artefacts</font>
00120 <font class="comment"> in the image. The driver automatically chooses a higher compression when</font>
00121 <font class="comment"> the preferred mode is not available.</font>
00122 <font class="comment"> */</font>
00123 <font class="comment">/* Set preferred compression quality (0 = uncompressed, 3 = highest compression) */</font>
<a name="l00124"></a><a class="code" href="pwc-ioctl_h.html#a12">00124</a> <font class="preprocessor">#define VIDIOCPWCSCQUAL _IOW('v', 195, int)</font>
00125 <font class="preprocessor"></font> <font class="comment">/* Get preferred compression quality */</font>
<a name="l00126"></a><a class="code" href="pwc-ioctl_h.html#a13">00126</a> <font class="preprocessor">#define VIDIOCPWCGCQUAL _IOR('v', 195, int)</font>
00127 <font class="preprocessor"></font>
00128
00129 <font class="comment">/* This is a probe function; since so many devices are supported, it</font>
00130 <font class="comment"> becomes difficult to include all the names in programs that want to</font>
00131 <font class="comment"> check for the enhanced Philips stuff. So in stead, try this PROBE;</font>
00132 <font class="comment"> it returns a structure with the original name, and the corresponding </font>
00133 <font class="comment"> Philips type.</font>
00134 <font class="comment"> To use, fill the structure with zeroes, call PROBE and if that succeeds,</font>
00135 <font class="comment"> compare the name with that returned from VIDIOCGCAP; they should be the</font>
00136 <font class="comment"> same. If so, you can be assured it is a Philips (OEM) cam and the type</font>
00137 <font class="comment"> is valid.</font>
00138 <font class="comment"> */</font>
<a name="l00139"></a><a class="code" href="pwc-ioctl_h.html#a14">00139</a> <font class="preprocessor">#define VIDIOCPWCPROBE _IOR('v', 199, struct pwc_probe)</font>
00140 <font class="preprocessor"></font>
00141 <font class="comment">/* Set AGC (Automatic Gain Control); int < 0 = auto, 0..65535 = fixed */</font>
<a name="l00142"></a><a class="code" href="pwc-ioctl_h.html#a15">00142</a> <font class="preprocessor">#define VIDIOCPWCSAGC _IOW('v', 200, int)</font>
00143 <font class="preprocessor"></font> <font class="comment">/* Get AGC; int < 0 = auto; >= 0 = fixed, range 0..65535 */</font>
<a name="l00144"></a><a class="code" href="pwc-ioctl_h.html#a16">00144</a> <font class="preprocessor">#define VIDIOCPWCGAGC _IOR('v', 200, int)</font>
00145 <font class="preprocessor"></font> <font class="comment">/* Set shutter speed; int < 0 = auto; >= 0 = fixed, range 0..65535 */</font>
<a name="l00146"></a><a class="code" href="pwc-ioctl_h.html#a17">00146</a> <font class="preprocessor">#define VIDIOCPWCSSHUTTER _IOW('v', 201, int)</font>
00147 <font class="preprocessor"></font>
00148 <font class="comment">/* Color compensation (Auto White Balance) */</font>
<a name="l00149"></a><a class="code" href="pwc-ioctl_h.html#a18">00149</a> <font class="preprocessor">#define VIDIOCPWCSAWB _IOW('v', 202, struct pwc_whitebalance)</font>
<a name="l00150"></a><a class="code" href="pwc-ioctl_h.html#a19">00150</a> <font class="preprocessor"></font><font class="preprocessor">#define VIDIOCPWCGAWB _IOR('v', 202, struct pwc_whitebalance)</font>
00151 <font class="preprocessor"></font>
00152 <font class="comment">/* Auto WB speed */</font>
<a name="l00153"></a><a class="code" href="pwc-ioctl_h.html#a20">00153</a> <font class="preprocessor">#define VIDIOCPWCSAWBSPEED _IOW('v', 203, struct pwc_wb_speed)</font>
<a name="l00154"></a><a class="code" href="pwc-ioctl_h.html#a21">00154</a> <font class="preprocessor"></font><font class="preprocessor">#define VIDIOCPWCGAWBSPEED _IOR('v', 203, struct pwc_wb_speed)</font>
00155 <font class="preprocessor"></font>
00156 <font class="comment">/* LEDs on/off/blink; int range 0..65535 */</font>
<a name="l00157"></a><a class="code" href="pwc-ioctl_h.html#a22">00157</a> <font class="preprocessor">#define VIDIOCPWCSLED _IOW('v', 205, struct pwc_leds)</font>
<a name="l00158"></a><a class="code" href="pwc-ioctl_h.html#a23">00158</a> <font class="preprocessor"></font><font class="preprocessor">#define VIDIOCPWCGLED _IOR('v', 205, struct pwc_leds)</font>
00159 <font class="preprocessor"></font>
00160 <font class="comment">/* Contour (sharpness); int < 0 = auto, 0..65536 = fixed */</font>
<a name="l00161"></a><a class="code" href="pwc-ioctl_h.html#a24">00161</a> <font class="preprocessor">#define VIDIOCPWCSCONTOUR _IOW('v', 206, int)</font>
<a name="l00162"></a><a class="code" href="pwc-ioctl_h.html#a25">00162</a> <font class="preprocessor"></font><font class="preprocessor">#define VIDIOCPWCGCONTOUR _IOR('v', 206, int)</font>
00163 <font class="preprocessor"></font>
00164 <font class="comment">/* Backlight compensation; 0 = off, otherwise on */</font>
<a name="l00165"></a><a class="code" href="pwc-ioctl_h.html#a26">00165</a> <font class="preprocessor">#define VIDIOCPWCSBACKLIGHT _IOW('v', 207, int)</font>
<a name="l00166"></a><a class="code" href="pwc-ioctl_h.html#a27">00166</a> <font class="preprocessor"></font><font class="preprocessor">#define VIDIOCPWCGBACKLIGHT _IOR('v', 207, int)</font>
00167 <font class="preprocessor"></font>
00168 <font class="comment">/* Flickerless mode; = 0 off, otherwise on */</font>
<a name="l00169"></a><a class="code" href="pwc-ioctl_h.html#a28">00169</a> <font class="preprocessor">#define VIDIOCPWCSFLICKER _IOW('v', 208, int)</font>
<a name="l00170"></a><a class="code" href="pwc-ioctl_h.html#a29">00170</a> <font class="preprocessor"></font><font class="preprocessor">#define VIDIOCPWCGFLICKER _IOR('v', 208, int) </font>
00171 <font class="preprocessor"></font>
00172 <font class="comment">/* Dynamic noise reduction; 0 off, 3 = high noise reduction */</font>
<a name="l00173"></a><a class="code" href="pwc-ioctl_h.html#a30">00173</a> <font class="preprocessor">#define VIDIOCPWCSDYNNOISE _IOW('v', 209, int)</font>
<a name="l00174"></a><a class="code" href="pwc-ioctl_h.html#a31">00174</a> <font class="preprocessor"></font><font class="preprocessor">#define VIDIOCPWCGDYNNOISE _IOR('v', 209, int)</font>
00175 <font class="preprocessor"></font>
00176 <font class="preprocessor">#endif</font>
</font></pre></div><hr><address><small>Generated at Sat May 18 02:56:55 2002 for Camstream by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.2.6 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
© 1997-2001</small></address>
</body>
</html>
|