<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>