1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 5 <title>File Index</title> 6 <link href="doxygen.css" rel="stylesheet" type="text/css"> 7 </head> 8 <body> 9<!-- Generated by Doxygen 1.7.4 --> 10 <div id="navrow1" class="tabs"> 11 <ul class="tablist"> 12 <li><a href="index.html"><span>Main Page</span></a></li> 13 <li><a href="annotated.html"><span>Data Structures</span></a></li> 14 <li class="current"><a href="files.html"><span>Files</span></a></li> 15 </ul> 16 </div> 17 <div id="navrow2" class="tabs2"> 18 <ul class="tablist"> 19 <li><a href="files.html"><span>File List</span></a></li> 20 <li><a href="globals.html"><span>Globals</span></a></li> 21 </ul> 22 </div> 23</div> 24<div id="side-nav" class="ui-resizable side-nav-resizable"> 25 <div id="nav-tree"> 26 <div id="nav-tree-contents"> 27 </div> 28 </div> 29 <div id="splitbar" style="-moz-user-select:none;" 30 class="ui-resizable-handle"> 31 </div> 32</div> 33<script type="text/javascript"> 34 initNavTree('usb-common_8c.html',''); 35</script> 36<div id="doc-content"> 37<div class="header"> 38 <div class="summary"> 39<a href="#define-members">Defines</a> | 40<a href="#func-members">Functions</a> </div> 41 <div class="headertitle"> 42<div class="title">usb-common.c File Reference</div> </div> 43</div> 44<div class="contents"> 45<div class="textblock"><code>#include "<a class="el" href="usb-private_8h_source.html">usb-private.h</a>"</code><br/> 46<code>#include "<a class="el" href="usb-mouse_8h_source.html">usb-mouse.h</a>"</code><br/> 47</div><table class="memberdecls"> 48<tr><td colspan="2"><h2><a name="define-members"></a> 49Defines</h2></td></tr> 50<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a4745b9c19ea1cc480dc2b58e59d1e9bb">USB_COMMON_DEBUG</a>   1</td></tr> 51<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a></td></tr> 52<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a5340233a04762d00a2fc39e922489cbd">GETNAME</a></td></tr> 53<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a837722a322e811d5e42242655f277b87">LOG0</a>(f)   dmxLog(dmxDebug,f)</td></tr> 54<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#aab4b3434c36117a2ecdddec40716d97a">LOG1</a>(f, a)   dmxLog(dmxDebug,f,a)</td></tr> 55<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a16da5d597d9bfb9e569a9bfb6996382c">LOG2</a>(f, a, b)   dmxLog(dmxDebug,f,a,b)</td></tr> 56<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a8247f0bca25789d2ac27674eb26e223f">LOG3</a>(f, a, b, c)   dmxLog(dmxDebug,f,a,b,c)</td></tr> 57<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a362570e9b2c9ac295638be490c81d1fb">LOG1INPUT</a>(p, f, a)   dmxLogInput(p->dmxInput,f,a)</td></tr> 58<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#ab34476eaeb97ba2e10bab547085c22b8">LOG3INPUT</a>(p, f, a, b, c)   dmxLogInput(p->dmxInput,f,a,b,c)</td></tr> 59<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#aa9a2c0ce5f5776ac17b498dc1d90ce1f">LOG5INPUT</a>(p, f, a, b, c, d, e)   dmxLogInput(p->dmxInput,f,a,b,c,d,e)</td></tr> 60<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>(f)   dmxLog(dmxFatal,f)</td></tr> 61<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>(f, a)   dmxLog(dmxFatal,f,a)</td></tr> 62<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a7952c9e9fe9c75be4964fc53a4299183">FATAL2</a>(f, a, b)   dmxLog(dmxFatal,f,a,b)</td></tr> 63<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a11a17082bee3b1b8217ce8a12adcf814">MOTIONPROC</a>   <a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td></tr> 64<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a017080ce5e42667a6582cf858e7185cd">ENQUEUEPROC</a>   <a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td></tr> 65<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#aa35a985e998ad5e2187e13434dca118a">CHECKPROC</a>   <a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td></tr> 66<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a52220397ecea855b3a99746e451426e1">BLOCK</a>   <a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td></tr> 67<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a7581da9bfd7ebf4fe3703352df521931">PRESS</a>(b)</td></tr> 68<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a2b4d2480737f9eb52f80998518486f01">RELEASE</a>(b)</td></tr> 69<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a36b621e66020a8ee4641d56c73c4226b">test_bit</a>(bit)   (priv->mask[(bit)/8] & (1 << ((bit)%8)))</td></tr> 70<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a228e7b7d6adf81ad78bc848896044085">test_bits</a>(bit)   (bits[(bit)/8] & (1 << ((bit)%8)))</td></tr> 71<tr><td colspan="2"><h2><a name="func-members"></a> 72Functions</h2></td></tr> 73<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#ae20f3b14463c8e288041f9970e388950">usbRead</a> (DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, int minButton, BLOCK block)</td></tr> 74<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a01c83154e667f74a79fac7b951208646">usbPrint</a> (<a class="el" href="struct__myPrivate.html">myPrivate</a> *priv, const char *filename, const char *devname, int fd)</td></tr> 75<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit</a> (DevicePtr pDev, <a class="el" href="usb-common_8h.html#a5e4410bf95babe73bcecc612691fc2d0">usbType</a> type)</td></tr> 76<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#aa86d87cabbc0971c51452970b7dc879f">usbOff</a> (DevicePtr pDev)</td></tr> 77<tr><td class="memItemLeft" align="right" valign="top">pointer </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a580f9f4ac56071b925cbf63d8b9dc706">usbCreatePrivate</a> (DeviceIntPtr pDevice)</td></tr> 78<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a0eca0051ed4a3a117d504d6a82c65313">usbDestroyPrivate</a> (pointer priv)</td></tr> 79</table> 80<hr/><a name="details" id="details"></a><h2>Detailed Description</h2> 81<div class="textblock"><p>Routines that are common between <em><a class="el" href="usb-keyboard_8c.html">usb-keyboard.c</a></em>, <em><a class="el" href="usb-mouse_8c.html">usb-mouse.c</a></em>, and <em><a class="el" href="usb-other_8c.html">usb-other.c</a></em> </p> 82</div><hr/><h2>Define Documentation</h2> 83<a class="anchor" id="a52220397ecea855b3a99746e451426e1"></a><!-- doxytag: member="usb-common.c::BLOCK" ref="a52220397ecea855b3a99746e451426e1" args="" --> 84<div class="memitem"> 85<div class="memproto"> 86 <table class="memname"> 87 <tr> 88 <td class="memname">#define BLOCK   <a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td> 89 </tr> 90 </table> 91</div> 92<div class="memdoc"> 93 94</div> 95</div> 96<a class="anchor" id="aa35a985e998ad5e2187e13434dca118a"></a><!-- doxytag: member="usb-common.c::CHECKPROC" ref="aa35a985e998ad5e2187e13434dca118a" args="" --> 97<div class="memitem"> 98<div class="memproto"> 99 <table class="memname"> 100 <tr> 101 <td class="memname">#define CHECKPROC   <a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td> 102 </tr> 103 </table> 104</div> 105<div class="memdoc"> 106 107</div> 108</div> 109<a class="anchor" id="a017080ce5e42667a6582cf858e7185cd"></a><!-- doxytag: member="usb-common.c::ENQUEUEPROC" ref="a017080ce5e42667a6582cf858e7185cd" args="" --> 110<div class="memitem"> 111<div class="memproto"> 112 <table class="memname"> 113 <tr> 114 <td class="memname">#define ENQUEUEPROC   <a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td> 115 </tr> 116 </table> 117</div> 118<div class="memdoc"> 119 120</div> 121</div> 122<a class="anchor" id="a6bce6020b913db8afe5d94bc63d1b355"></a><!-- doxytag: member="usb-common.c::FATAL0" ref="a6bce6020b913db8afe5d94bc63d1b355" args="(f)" --> 123<div class="memitem"> 124<div class="memproto"> 125 <table class="memname"> 126 <tr> 127 <td class="memname">#define FATAL0</td> 128 <td>(</td> 129 <td class="paramtype"> </td> 130 <td class="paramname">f</td><td>)</td> 131 <td>   dmxLog(dmxFatal,f)</td> 132 </tr> 133 </table> 134</div> 135<div class="memdoc"> 136 137</div> 138</div> 139<a class="anchor" id="a11bcea7c6bc7dbe400a3855f5b8676ce"></a><!-- doxytag: member="usb-common.c::FATAL1" ref="a11bcea7c6bc7dbe400a3855f5b8676ce" args="(f, a)" --> 140<div class="memitem"> 141<div class="memproto"> 142 <table class="memname"> 143 <tr> 144 <td class="memname">#define FATAL1</td> 145 <td>(</td> 146 <td class="paramtype"> </td> 147 <td class="paramname">f, </td> 148 </tr> 149 <tr> 150 <td class="paramkey"></td> 151 <td></td> 152 <td class="paramtype"> </td> 153 <td class="paramname">a </td> 154 </tr> 155 <tr> 156 <td></td> 157 <td>)</td> 158 <td></td><td>   dmxLog(dmxFatal,f,a)</td> 159 </tr> 160 </table> 161</div> 162<div class="memdoc"> 163 164<p>Referenced by <a class="el" href="usb-common_8h.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit()</a>.</p> 165 166</div> 167</div> 168<a class="anchor" id="a7952c9e9fe9c75be4964fc53a4299183"></a><!-- doxytag: member="usb-common.c::FATAL2" ref="a7952c9e9fe9c75be4964fc53a4299183" args="(f, a, b)" --> 169<div class="memitem"> 170<div class="memproto"> 171 <table class="memname"> 172 <tr> 173 <td class="memname">#define FATAL2</td> 174 <td>(</td> 175 <td class="paramtype"> </td> 176 <td class="paramname">f, </td> 177 </tr> 178 <tr> 179 <td class="paramkey"></td> 180 <td></td> 181 <td class="paramtype"> </td> 182 <td class="paramname">a, </td> 183 </tr> 184 <tr> 185 <td class="paramkey"></td> 186 <td></td> 187 <td class="paramtype"> </td> 188 <td class="paramname">b </td> 189 </tr> 190 <tr> 191 <td></td> 192 <td>)</td> 193 <td></td><td>   dmxLog(dmxFatal,f,a,b)</td> 194 </tr> 195 </table> 196</div> 197<div class="memdoc"> 198 199</div> 200</div> 201<a class="anchor" id="a5340233a04762d00a2fc39e922489cbd"></a><!-- doxytag: member="usb-common.c::GETNAME" ref="a5340233a04762d00a2fc39e922489cbd" args="" --> 202<div class="memitem"> 203<div class="memproto"> 204 <table class="memname"> 205 <tr> 206 <td class="memname">#define GETNAME</td> 207 </tr> 208 </table> 209</div> 210<div class="memdoc"> 211<b>Value:</b><div class="fragment"><pre class="fragment">((<a class="code" href="dmxinput_8h.html#adb148db00fe0adf1938b815b9b934d26">DMXLocalInputInfoPtr</a>)(pDevice->public.devicePrivate)) \ 212 ->name 213</pre></div> 214<p>Referenced by <a class="el" href="usb-common_8c.html#a01c83154e667f74a79fac7b951208646">usbPrint()</a>.</p> 215 216</div> 217</div> 218<a class="anchor" id="aacf069d346230dd96812d5395728eef2"></a><!-- doxytag: member="usb-common.c::GETPRIV" ref="aacf069d346230dd96812d5395728eef2" args="" --> 219<div class="memitem"> 220<div class="memproto"> 221 <table class="memname"> 222 <tr> 223 <td class="memname">#define GETPRIV</td> 224 </tr> 225 </table> 226</div> 227<div class="memdoc"> 228<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="struct__myPrivate.html">myPrivate</a> *priv \ 229 = ((<a class="code" href="dmxinput_8h.html#adb148db00fe0adf1938b815b9b934d26">DMXLocalInputInfoPtr</a>)(pDev->devicePrivate))->private 230</pre></div> 231<p>Referenced by <a class="el" href="usb-common_8h.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit()</a>, <a class="el" href="usb-common_8h.html#aa86d87cabbc0971c51452970b7dc879f">usbOff()</a>, and <a class="el" href="usb-common_8c.html#ae20f3b14463c8e288041f9970e388950">usbRead()</a>.</p> 232 233</div> 234</div> 235<a class="anchor" id="a837722a322e811d5e42242655f277b87"></a><!-- doxytag: member="usb-common.c::LOG0" ref="a837722a322e811d5e42242655f277b87" args="(f)" --> 236<div class="memitem"> 237<div class="memproto"> 238 <table class="memname"> 239 <tr> 240 <td class="memname">#define LOG0</td> 241 <td>(</td> 242 <td class="paramtype"> </td> 243 <td class="paramname">f</td><td>)</td> 244 <td>   dmxLog(dmxDebug,f)</td> 245 </tr> 246 </table> 247</div> 248<div class="memdoc"> 249 250</div> 251</div> 252<a class="anchor" id="aab4b3434c36117a2ecdddec40716d97a"></a><!-- doxytag: member="usb-common.c::LOG1" ref="aab4b3434c36117a2ecdddec40716d97a" args="(f, a)" --> 253<div class="memitem"> 254<div class="memproto"> 255 <table class="memname"> 256 <tr> 257 <td class="memname">#define LOG1</td> 258 <td>(</td> 259 <td class="paramtype"> </td> 260 <td class="paramname">f, </td> 261 </tr> 262 <tr> 263 <td class="paramkey"></td> 264 <td></td> 265 <td class="paramtype"> </td> 266 <td class="paramname">a </td> 267 </tr> 268 <tr> 269 <td></td> 270 <td>)</td> 271 <td></td><td>   dmxLog(dmxDebug,f,a)</td> 272 </tr> 273 </table> 274</div> 275<div class="memdoc"> 276 277</div> 278</div> 279<a class="anchor" id="a362570e9b2c9ac295638be490c81d1fb"></a><!-- doxytag: member="usb-common.c::LOG1INPUT" ref="a362570e9b2c9ac295638be490c81d1fb" args="(p, f, a)" --> 280<div class="memitem"> 281<div class="memproto"> 282 <table class="memname"> 283 <tr> 284 <td class="memname">#define LOG1INPUT</td> 285 <td>(</td> 286 <td class="paramtype"> </td> 287 <td class="paramname">p, </td> 288 </tr> 289 <tr> 290 <td class="paramkey"></td> 291 <td></td> 292 <td class="paramtype"> </td> 293 <td class="paramname">f, </td> 294 </tr> 295 <tr> 296 <td class="paramkey"></td> 297 <td></td> 298 <td class="paramtype"> </td> 299 <td class="paramname">a </td> 300 </tr> 301 <tr> 302 <td></td> 303 <td>)</td> 304 <td></td><td>   dmxLogInput(p->dmxInput,f,a)</td> 305 </tr> 306 </table> 307</div> 308<div class="memdoc"> 309 310<p>Referenced by <a class="el" href="usb-common_8c.html#a01c83154e667f74a79fac7b951208646">usbPrint()</a>.</p> 311 312</div> 313</div> 314<a class="anchor" id="a16da5d597d9bfb9e569a9bfb6996382c"></a><!-- doxytag: member="usb-common.c::LOG2" ref="a16da5d597d9bfb9e569a9bfb6996382c" args="(f, a, b)" --> 315<div class="memitem"> 316<div class="memproto"> 317 <table class="memname"> 318 <tr> 319 <td class="memname">#define LOG2</td> 320 <td>(</td> 321 <td class="paramtype"> </td> 322 <td class="paramname">f, </td> 323 </tr> 324 <tr> 325 <td class="paramkey"></td> 326 <td></td> 327 <td class="paramtype"> </td> 328 <td class="paramname">a, </td> 329 </tr> 330 <tr> 331 <td class="paramkey"></td> 332 <td></td> 333 <td class="paramtype"> </td> 334 <td class="paramname">b </td> 335 </tr> 336 <tr> 337 <td></td> 338 <td>)</td> 339 <td></td><td>   dmxLog(dmxDebug,f,a,b)</td> 340 </tr> 341 </table> 342</div> 343<div class="memdoc"> 344 345</div> 346</div> 347<a class="anchor" id="a8247f0bca25789d2ac27674eb26e223f"></a><!-- doxytag: member="usb-common.c::LOG3" ref="a8247f0bca25789d2ac27674eb26e223f" args="(f, a, b, c)" --> 348<div class="memitem"> 349<div class="memproto"> 350 <table class="memname"> 351 <tr> 352 <td class="memname">#define LOG3</td> 353 <td>(</td> 354 <td class="paramtype"> </td> 355 <td class="paramname">f, </td> 356 </tr> 357 <tr> 358 <td class="paramkey"></td> 359 <td></td> 360 <td class="paramtype"> </td> 361 <td class="paramname">a, </td> 362 </tr> 363 <tr> 364 <td class="paramkey"></td> 365 <td></td> 366 <td class="paramtype"> </td> 367 <td class="paramname">b, </td> 368 </tr> 369 <tr> 370 <td class="paramkey"></td> 371 <td></td> 372 <td class="paramtype"> </td> 373 <td class="paramname">c </td> 374 </tr> 375 <tr> 376 <td></td> 377 <td>)</td> 378 <td></td><td>   dmxLog(dmxDebug,f,a,b,c)</td> 379 </tr> 380 </table> 381</div> 382<div class="memdoc"> 383 384<p>Referenced by <a class="el" href="usb-common_8c.html#ae20f3b14463c8e288041f9970e388950">usbRead()</a>.</p> 385 386</div> 387</div> 388<a class="anchor" id="ab34476eaeb97ba2e10bab547085c22b8"></a><!-- doxytag: member="usb-common.c::LOG3INPUT" ref="ab34476eaeb97ba2e10bab547085c22b8" args="(p, f, a, b, c)" --> 389<div class="memitem"> 390<div class="memproto"> 391 <table class="memname"> 392 <tr> 393 <td class="memname">#define LOG3INPUT</td> 394 <td>(</td> 395 <td class="paramtype"> </td> 396 <td class="paramname">p, </td> 397 </tr> 398 <tr> 399 <td class="paramkey"></td> 400 <td></td> 401 <td class="paramtype"> </td> 402 <td class="paramname">f, </td> 403 </tr> 404 <tr> 405 <td class="paramkey"></td> 406 <td></td> 407 <td class="paramtype"> </td> 408 <td class="paramname">a, </td> 409 </tr> 410 <tr> 411 <td class="paramkey"></td> 412 <td></td> 413 <td class="paramtype"> </td> 414 <td class="paramname">b, </td> 415 </tr> 416 <tr> 417 <td class="paramkey"></td> 418 <td></td> 419 <td class="paramtype"> </td> 420 <td class="paramname">c </td> 421 </tr> 422 <tr> 423 <td></td> 424 <td>)</td> 425 <td></td><td>   dmxLogInput(p->dmxInput,f,a,b,c)</td> 426 </tr> 427 </table> 428</div> 429<div class="memdoc"> 430 431<p>Referenced by <a class="el" href="usb-common_8c.html#a01c83154e667f74a79fac7b951208646">usbPrint()</a>.</p> 432 433</div> 434</div> 435<a class="anchor" id="aa9a2c0ce5f5776ac17b498dc1d90ce1f"></a><!-- doxytag: member="usb-common.c::LOG5INPUT" ref="aa9a2c0ce5f5776ac17b498dc1d90ce1f" args="(p, f, a, b, c, d, e)" --> 436<div class="memitem"> 437<div class="memproto"> 438 <table class="memname"> 439 <tr> 440 <td class="memname">#define LOG5INPUT</td> 441 <td>(</td> 442 <td class="paramtype"> </td> 443 <td class="paramname">p, </td> 444 </tr> 445 <tr> 446 <td class="paramkey"></td> 447 <td></td> 448 <td class="paramtype"> </td> 449 <td class="paramname">f, </td> 450 </tr> 451 <tr> 452 <td class="paramkey"></td> 453 <td></td> 454 <td class="paramtype"> </td> 455 <td class="paramname">a, </td> 456 </tr> 457 <tr> 458 <td class="paramkey"></td> 459 <td></td> 460 <td class="paramtype"> </td> 461 <td class="paramname">b, </td> 462 </tr> 463 <tr> 464 <td class="paramkey"></td> 465 <td></td> 466 <td class="paramtype"> </td> 467 <td class="paramname">c, </td> 468 </tr> 469 <tr> 470 <td class="paramkey"></td> 471 <td></td> 472 <td class="paramtype"> </td> 473 <td class="paramname">d, </td> 474 </tr> 475 <tr> 476 <td class="paramkey"></td> 477 <td></td> 478 <td class="paramtype"> </td> 479 <td class="paramname">e </td> 480 </tr> 481 <tr> 482 <td></td> 483 <td>)</td> 484 <td></td><td>   dmxLogInput(p->dmxInput,f,a,b,c,d,e)</td> 485 </tr> 486 </table> 487</div> 488<div class="memdoc"> 489 490<p>Referenced by <a class="el" href="usb-common_8c.html#a01c83154e667f74a79fac7b951208646">usbPrint()</a>.</p> 491 492</div> 493</div> 494<a class="anchor" id="a11a17082bee3b1b8217ce8a12adcf814"></a><!-- doxytag: member="usb-common.c::MOTIONPROC" ref="a11a17082bee3b1b8217ce8a12adcf814" args="" --> 495<div class="memitem"> 496<div class="memproto"> 497 <table class="memname"> 498 <tr> 499 <td class="memname">#define MOTIONPROC   <a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td> 500 </tr> 501 </table> 502</div> 503<div class="memdoc"> 504 505</div> 506</div> 507<a class="anchor" id="a7581da9bfd7ebf4fe3703352df521931"></a><!-- doxytag: member="usb-common.c::PRESS" ref="a7581da9bfd7ebf4fe3703352df521931" args="(b)" --> 508<div class="memitem"> 509<div class="memproto"> 510 <table class="memname"> 511 <tr> 512 <td class="memname">#define PRESS</td> 513 <td>(</td> 514 <td class="paramtype"> </td> 515 <td class="paramname">b</td><td>)</td> 516 <td></td> 517 </tr> 518 </table> 519</div> 520<div class="memdoc"> 521<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ 522 enqueue(pDev, ButtonPress, 0, 0, NULL, block); \ 523 } <span class="keywordflow">while</span> (0) 524</pre></div> 525</div> 526</div> 527<a class="anchor" id="a2b4d2480737f9eb52f80998518486f01"></a><!-- doxytag: member="usb-common.c::RELEASE" ref="a2b4d2480737f9eb52f80998518486f01" args="(b)" --> 528<div class="memitem"> 529<div class="memproto"> 530 <table class="memname"> 531 <tr> 532 <td class="memname">#define RELEASE</td> 533 <td>(</td> 534 <td class="paramtype"> </td> 535 <td class="paramname">b</td><td>)</td> 536 <td></td> 537 </tr> 538 </table> 539</div> 540<div class="memdoc"> 541<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ 542 enqueue(pDev, ButtonRelease, 0, 0, NULL, block); \ 543 } <span class="keywordflow">while</span> (0) 544</pre></div> 545</div> 546</div> 547<a class="anchor" id="a36b621e66020a8ee4641d56c73c4226b"></a><!-- doxytag: member="usb-common.c::test_bit" ref="a36b621e66020a8ee4641d56c73c4226b" args="(bit)" --> 548<div class="memitem"> 549<div class="memproto"> 550 <table class="memname"> 551 <tr> 552 <td class="memname">#define test_bit</td> 553 <td>(</td> 554 <td class="paramtype"> </td> 555 <td class="paramname">bit</td><td>)</td> 556 <td>   (priv->mask[(bit)/8] & (1 << ((bit)%8)))</td> 557 </tr> 558 </table> 559</div> 560<div class="memdoc"> 561 562<p>Referenced by <a class="el" href="usb-other_8h.html#a35a421bfc49015d8ed37cac84746ba78">othUSBGetInfo()</a>, <a class="el" href="usb-common_8h.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit()</a>, and <a class="el" href="usb-common_8c.html#a01c83154e667f74a79fac7b951208646">usbPrint()</a>.</p> 563 564</div> 565</div> 566<a class="anchor" id="a228e7b7d6adf81ad78bc848896044085"></a><!-- doxytag: member="usb-common.c::test_bits" ref="a228e7b7d6adf81ad78bc848896044085" args="(bit)" --> 567<div class="memitem"> 568<div class="memproto"> 569 <table class="memname"> 570 <tr> 571 <td class="memname">#define test_bits</td> 572 <td>(</td> 573 <td class="paramtype"> </td> 574 <td class="paramname">bit</td><td>)</td> 575 <td>   (bits[(bit)/8] & (1 << ((bit)%8)))</td> 576 </tr> 577 </table> 578</div> 579<div class="memdoc"> 580 581<p>Referenced by <a class="el" href="usb-common_8h.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit()</a>, and <a class="el" href="usb-common_8c.html#a01c83154e667f74a79fac7b951208646">usbPrint()</a>.</p> 582 583</div> 584</div> 585<a class="anchor" id="a4745b9c19ea1cc480dc2b58e59d1e9bb"></a><!-- doxytag: member="usb-common.c::USB_COMMON_DEBUG" ref="a4745b9c19ea1cc480dc2b58e59d1e9bb" args="" --> 586<div class="memitem"> 587<div class="memproto"> 588 <table class="memname"> 589 <tr> 590 <td class="memname">#define USB_COMMON_DEBUG   1</td> 591 </tr> 592 </table> 593</div> 594<div class="memdoc"> 595 596</div> 597</div> 598<hr/><h2>Function Documentation</h2> 599<a class="anchor" id="a580f9f4ac56071b925cbf63d8b9dc706"></a><!-- doxytag: member="usb-common.c::usbCreatePrivate" ref="a580f9f4ac56071b925cbf63d8b9dc706" args="(DeviceIntPtr pDevice)" --> 600<div class="memitem"> 601<div class="memproto"> 602 <table class="memname"> 603 <tr> 604 <td class="memname">pointer usbCreatePrivate </td> 605 <td>(</td> 606 <td class="paramtype">DeviceIntPtr </td> 607 <td class="paramname"><em>pDevice</em></td><td>)</td> 608 <td></td> 609 </tr> 610 </table> 611</div> 612<div class="memdoc"> 613<p>Create a private structure for use within this file. </p> 614 615<p>References <a class="el" href="struct__myPrivate.html#a6b26eb0acc0b932c8dee8277501e6273">_myPrivate::fd</a>, and <a class="el" href="struct__myPrivate.html#ae08ddb2f15fe104faf25f51f05c26033">_myPrivate::pDevice</a>.</p> 616 617</div> 618</div> 619<a class="anchor" id="a0eca0051ed4a3a117d504d6a82c65313"></a><!-- doxytag: member="usb-common.c::usbDestroyPrivate" ref="a0eca0051ed4a3a117d504d6a82c65313" args="(pointer priv)" --> 620<div class="memitem"> 621<div class="memproto"> 622 <table class="memname"> 623 <tr> 624 <td class="memname">void usbDestroyPrivate </td> 625 <td>(</td> 626 <td class="paramtype">pointer </td> 627 <td class="paramname"><em>priv</em></td><td>)</td> 628 <td></td> 629 </tr> 630 </table> 631</div> 632<div class="memdoc"> 633<p>Destroy a private structure. </p> 634 635</div> 636</div> 637<a class="anchor" id="a7f9b3a6d320a9ddbed689f4e12acb443"></a><!-- doxytag: member="usb-common.c::usbInit" ref="a7f9b3a6d320a9ddbed689f4e12acb443" args="(DevicePtr pDev, usbType type)" --> 638<div class="memitem"> 639<div class="memproto"> 640 <table class="memname"> 641 <tr> 642 <td class="memname">void usbInit </td> 643 <td>(</td> 644 <td class="paramtype">DevicePtr </td> 645 <td class="paramname"><em>pDev</em>, </td> 646 </tr> 647 <tr> 648 <td class="paramkey"></td> 649 <td></td> 650 <td class="paramtype"><a class="el" href="usb-common_8h.html#a5e4410bf95babe73bcecc612691fc2d0">usbType</a> </td> 651 <td class="paramname"><em>type</em> </td> 652 </tr> 653 <tr> 654 <td></td> 655 <td>)</td> 656 <td></td><td></td> 657 </tr> 658 </table> 659</div> 660<div class="memdoc"> 661<p>Initialized <em>pDev</em> as a <em>usbMouse</em>, <em>usbKeyboard</em>, or <em>usbOther</em> device. </p> 662 663<p>References <a class="el" href="usb-common_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>, <a class="el" href="usb-common_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="dmxsigio_8c.html#a39d33ce33804efd4d52606d59071c6d8">O_NONBLOCK</a>, <a class="el" href="usb-common_8c.html#a36b621e66020a8ee4641d56c73c4226b">test_bit</a>, <a class="el" href="usb-common_8c.html#a228e7b7d6adf81ad78bc848896044085">test_bits</a>, <a class="el" href="usb-common_8h.html#a5e4410bf95babe73bcecc612691fc2d0ac0ee79f0c48b61dfd08fff502a2752a3">usbKeyboard</a>, <a class="el" href="usb-common_8h.html#a5e4410bf95babe73bcecc612691fc2d0a6bd9e53b1b5835e304e54ba13a227de7">usbMouse</a>, <a class="el" href="usb-common_8h.html#a5e4410bf95babe73bcecc612691fc2d0acf68ef2e5cae37647c412e73c93960fb">usbOther</a>, and <a class="el" href="usb-common_8c.html#a01c83154e667f74a79fac7b951208646">usbPrint()</a>.</p> 664 665<p>Referenced by <a class="el" href="usb-keyboard_8h.html#a294cdaa0f31f5f463562c72107b569f2">kbdUSBInit()</a>, <a class="el" href="usb-mouse_8h.html#a6c0a19ce4ec02df96f781152a8cc5d36">mouUSBInit()</a>, and <a class="el" href="usb-other_8h.html#ad1b551c84928693ea1b2edebf6c4fcff">othUSBInit()</a>.</p> 666 667</div> 668</div> 669<a class="anchor" id="aa86d87cabbc0971c51452970b7dc879f"></a><!-- doxytag: member="usb-common.c::usbOff" ref="aa86d87cabbc0971c51452970b7dc879f" args="(DevicePtr pDev)" --> 670<div class="memitem"> 671<div class="memproto"> 672 <table class="memname"> 673 <tr> 674 <td class="memname">void usbOff </td> 675 <td>(</td> 676 <td class="paramtype">DevicePtr </td> 677 <td class="paramname"><em>pDev</em></td><td>)</td> 678 <td></td> 679 </tr> 680 </table> 681</div> 682<div class="memdoc"> 683<p>Turn <em>pDev</em> off (i.e., stop taking input from <em>pDev</em>). </p> 684 685<p>References <a class="el" href="usb-common_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>.</p> 686 687</div> 688</div> 689<a class="anchor" id="a01c83154e667f74a79fac7b951208646"></a><!-- doxytag: member="usb-common.c::usbPrint" ref="a01c83154e667f74a79fac7b951208646" args="(myPrivate *priv, const char *filename, const char *devname, int fd)" --> 690<div class="memitem"> 691<div class="memproto"> 692 <table class="memname"> 693 <tr> 694 <td class="memname">static void usbPrint </td> 695 <td>(</td> 696 <td class="paramtype"><a class="el" href="struct__myPrivate.html">myPrivate</a> * </td> 697 <td class="paramname"><em>priv</em>, </td> 698 </tr> 699 <tr> 700 <td class="paramkey"></td> 701 <td></td> 702 <td class="paramtype">const char * </td> 703 <td class="paramname"><em>filename</em>, </td> 704 </tr> 705 <tr> 706 <td class="paramkey"></td> 707 <td></td> 708 <td class="paramtype">const char * </td> 709 <td class="paramname"><em>devname</em>, </td> 710 </tr> 711 <tr> 712 <td class="paramkey"></td> 713 <td></td> 714 <td class="paramtype">int </td> 715 <td class="paramname"><em>fd</em> </td> 716 </tr> 717 <tr> 718 <td></td> 719 <td>)</td> 720 <td></td><td><code> [static]</code></td> 721 </tr> 722 </table> 723</div> 724<div class="memdoc"> 725 726<p>References <a class="el" href="usb-private_8h.html#a28f782ce9e5d1e3cff987901a7bf6823">ABS_BRAKE</a>, <a class="el" href="usb-private_8h.html#acf2960996b3a73cfa447e18a655690c5">ABS_GAS</a>, <a class="el" href="usb-private_8h.html#abc57d88f908f35bd3c82ba7dff0d97e7">ABS_WHEEL</a>, <a class="el" href="usb-private_8h.html#a97886fd107ad9e34bf130fe2e8a5799a">EV_FF</a>, <a class="el" href="usb-private_8h.html#af2e56f461a160409ab75afaa916beebf">EV_MSC</a>, <a class="el" href="struct__myPrivate.html#a6b26eb0acc0b932c8dee8277501e6273">_myPrivate::fd</a>, <a class="el" href="usb-common_8c.html#a5340233a04762d00a2fc39e922489cbd">GETNAME</a>, <a class="el" href="usb-private_8h.html#acc1dccaea09503c64e9dfb635e19b29a">LED_MISC</a>, <a class="el" href="usb-private_8h.html#a06e2b597089e33458df03d81fa441995">LED_MUTE</a>, <a class="el" href="usb-private_8h.html#ad578ee0c4ea73206378c55bba1135e84">LED_SLEEP</a>, <a class="el" href="usb-private_8h.html#a59fd9fe6c0cd23e8154bc7578d3676a5">LED_SUSPEND</a>, <a class="el" href="usb-common_8c.html#a362570e9b2c9ac295638be490c81d1fb">LOG1INPUT</a>, <a class="el" href="usb-common_8c.html#ab34476eaeb97ba2e10bab547085c22b8">LOG3INPUT</a>, <a class="el" href="usb-common_8c.html#aa9a2c0ce5f5776ac17b498dc1d90ce1f">LOG5INPUT</a>, <a class="el" href="struct__myPrivate.html#ae08ddb2f15fe104faf25f51f05c26033">_myPrivate::pDevice</a>, <a class="el" href="usb-common_8c.html#a36b621e66020a8ee4641d56c73c4226b">test_bit</a>, and <a class="el" href="usb-common_8c.html#a228e7b7d6adf81ad78bc848896044085">test_bits</a>.</p> 727 728<p>Referenced by <a class="el" href="usb-common_8h.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit()</a>.</p> 729 730</div> 731</div> 732<a class="anchor" id="ae20f3b14463c8e288041f9970e388950"></a><!-- doxytag: member="usb-common.c::usbRead" ref="ae20f3b14463c8e288041f9970e388950" args="(DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, int minButton, BLOCK block)" --> 733<div class="memitem"> 734<div class="memproto"> 735 <table class="memname"> 736 <tr> 737 <td class="memname">void usbRead </td> 738 <td>(</td> 739 <td class="paramtype">DevicePtr </td> 740 <td class="paramname"><em>pDev</em>, </td> 741 </tr> 742 <tr> 743 <td class="paramkey"></td> 744 <td></td> 745 <td class="paramtype">MOTIONPROC </td> 746 <td class="paramname"><em>motion</em>, </td> 747 </tr> 748 <tr> 749 <td class="paramkey"></td> 750 <td></td> 751 <td class="paramtype">ENQUEUEPROC </td> 752 <td class="paramname"><em>enqueue</em>, </td> 753 </tr> 754 <tr> 755 <td class="paramkey"></td> 756 <td></td> 757 <td class="paramtype">int </td> 758 <td class="paramname"><em>minButton</em>, </td> 759 </tr> 760 <tr> 761 <td class="paramkey"></td> 762 <td></td> 763 <td class="paramtype">BLOCK </td> 764 <td class="paramname"><em>block</em> </td> 765 </tr> 766 <tr> 767 <td></td> 768 <td>)</td> 769 <td></td><td></td> 770 </tr> 771 </table> 772</div> 773<div class="memdoc"> 774<p>Read an event from the <em>pDev</em> device. If the event is a motion event, enqueue it with the <em>motion</em> function. Otherwise, enqueue the event with the <em>enqueue</em> function. The <em>block</em> type is passed to the functions so that they may block SIGIO handling as appropriate to the caller of this function.</p> 775<p>Since USB devices return EV_KEY events for buttons and keys, <em>minButton</em> is used to decide if a Button or Key event should be queued. </p> 776 777<p>References <a class="el" href="dmxinputinit_8h.html#a009c1c06db97e0347237f11a701db349a3f6f623d8a62c69c55ec94d33d29af06">DMX_ABSOLUTE</a>, <a class="el" href="dmxevents_8c.html#a144e2f1a618a0d14e2c9ce4fda50104a">DMX_MAX_AXES</a>, <a class="el" href="dmxinputinit_8h.html#a009c1c06db97e0347237f11a701db349a065d85ca14ad2eb8f7bae4eaffac6412">DMX_RELATIVE</a>, <a class="el" href="usb-common_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="usb-common_8c.html#a8247f0bca25789d2ac27674eb26e223f">LOG3</a>, <a class="el" href="lnx-ms_8c.html#a7581da9bfd7ebf4fe3703352df521931">PRESS</a>, and <a class="el" href="lnx-ms_8c.html#a2b4d2480737f9eb52f80998518486f01">RELEASE</a>.</p> 778 779<p>Referenced by <a class="el" href="usb-mouse_8c.html#ae823cb66bf7678148ffadf3202034921">mouUSBRead()</a>, and <a class="el" href="usb-other_8c.html#a3c2a6d36c58f4372068d019364831151">othUSBRead()</a>.</p> 780 781</div> 782</div> 783</div> 784</div> 785 <div id="nav-path" class="navpath"> 786 <ul> 787 <li class="navelem"><a class="el" href="usb-common_8c.html">usb-common.c</a> </li> 788 <hr> 789 <address> 790 <small> 791 Generated June 29, 2004 for <a 792 href="http://dmx.sourceforge.net">Distributed Multihead X</a> by 793 <a href="http://www.doxygen.org/index.html">doxygen</a> 794 1.3.4. 795 </small> 796 </addres> 797 </hr> 798 </body> 799</html> 800