File: pwc-ioctl_h-source.html

package info (click to toggle)
camstream 0.26.3-7
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 4,744 kB
  • ctags: 2,077
  • sloc: cpp: 7,484; asm: 440; ansic: 427; makefile: 336; sh: 169
file content (193 lines) | stat: -rw-r--r-- 17,212 bytes parent folder | download | duplicates (2)
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> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </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 &lt; 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 &lt; 0 = auto; &gt;= 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 &lt; 0 = auto; &gt;= 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 &lt; 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>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>