Home | History | Annotate | Line # | Download | only in html
      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&#160;Page</span></a></li>
     13       <li><a href="annotated.html"><span>Data&#160;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&#160;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> &#124;
     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 &quot;<a class="el" href="usb-private_8h_source.html">usb-private.h</a>&quot;</code><br/>
     46 <code>#include &quot;<a class="el" href="usb-mouse_8h_source.html">usb-mouse.h</a>&quot;</code><br/>
     47 </div><table class="memberdecls">
     48 <tr><td colspan="2"><h2><a name="define-members"></a>
     49 Defines</h2></td></tr>
     50 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a4745b9c19ea1cc480dc2b58e59d1e9bb">USB_COMMON_DEBUG</a>&#160;&#160;&#160;1</td></tr>
     51 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</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&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a837722a322e811d5e42242655f277b87">LOG0</a>(f)&#160;&#160;&#160;dmxLog(dmxDebug,f)</td></tr>
     54 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#aab4b3434c36117a2ecdddec40716d97a">LOG1</a>(f, a)&#160;&#160;&#160;dmxLog(dmxDebug,f,a)</td></tr>
     55 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a16da5d597d9bfb9e569a9bfb6996382c">LOG2</a>(f, a, b)&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b)</td></tr>
     56 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a8247f0bca25789d2ac27674eb26e223f">LOG3</a>(f, a, b, c)&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b,c)</td></tr>
     57 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a362570e9b2c9ac295638be490c81d1fb">LOG1INPUT</a>(p, f, a)&#160;&#160;&#160;dmxLogInput(p-&gt;dmxInput,f,a)</td></tr>
     58 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#ab34476eaeb97ba2e10bab547085c22b8">LOG3INPUT</a>(p, f, a, b, c)&#160;&#160;&#160;dmxLogInput(p-&gt;dmxInput,f,a,b,c)</td></tr>
     59 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#aa9a2c0ce5f5776ac17b498dc1d90ce1f">LOG5INPUT</a>(p, f, a, b, c, d, e)&#160;&#160;&#160;dmxLogInput(p-&gt;dmxInput,f,a,b,c,d,e)</td></tr>
     60 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>(f)&#160;&#160;&#160;dmxLog(dmxFatal,f)</td></tr>
     61 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>(f, a)&#160;&#160;&#160;dmxLog(dmxFatal,f,a)</td></tr>
     62 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a7952c9e9fe9c75be4964fc53a4299183">FATAL2</a>(f, a, b)&#160;&#160;&#160;dmxLog(dmxFatal,f,a,b)</td></tr>
     63 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a11a17082bee3b1b8217ce8a12adcf814">MOTIONPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td></tr>
     64 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a017080ce5e42667a6582cf858e7185cd">ENQUEUEPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td></tr>
     65 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#aa35a985e998ad5e2187e13434dca118a">CHECKPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td></tr>
     66 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a52220397ecea855b3a99746e451426e1">BLOCK</a>&#160;&#160;&#160;<a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td></tr>
     67 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</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&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a36b621e66020a8ee4641d56c73c4226b">test_bit</a>(bit)&#160;&#160;&#160;(priv-&gt;mask[(bit)/8] &amp; (1 &lt;&lt; ((bit)%8)))</td></tr>
     70 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-common_8c.html#a228e7b7d6adf81ad78bc848896044085">test_bits</a>(bit)&#160;&#160;&#160;(bits[(bit)/8] &amp; (1 &lt;&lt; ((bit)%8)))</td></tr>
     71 <tr><td colspan="2"><h2><a name="func-members"></a>
     72 Functions</h2></td></tr>
     73 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#45;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&#160;&#160;&#160;<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&#45;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&#160;&#160;&#160;<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&#45;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&#160;&#160;&#160;<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&#45;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">&#160;</td>
    130           <td class="paramname">f</td><td>)</td>
    131           <td>&#160;&#160;&#160;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&#45;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">&#160;</td>
    147           <td class="paramname">f, </td>
    148         </tr>
    149         <tr>
    150           <td class="paramkey"></td>
    151           <td></td>
    152           <td class="paramtype">&#160;</td>
    153           <td class="paramname">a&#160;</td>
    154         </tr>
    155         <tr>
    156           <td></td>
    157           <td>)</td>
    158           <td></td><td>&#160;&#160;&#160;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&#45;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">&#160;</td>
    176           <td class="paramname">f, </td>
    177         </tr>
    178         <tr>
    179           <td class="paramkey"></td>
    180           <td></td>
    181           <td class="paramtype">&#160;</td>
    182           <td class="paramname">a, </td>
    183         </tr>
    184         <tr>
    185           <td class="paramkey"></td>
    186           <td></td>
    187           <td class="paramtype">&#160;</td>
    188           <td class="paramname">b&#160;</td>
    189         </tr>
    190         <tr>
    191           <td></td>
    192           <td>)</td>
    193           <td></td><td>&#160;&#160;&#160;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&#45;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-&gt;public.devicePrivate)) \
    212                       -&gt;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&#45;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-&gt;devicePrivate))-&gt;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&#45;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">&#160;</td>
    243           <td class="paramname">f</td><td>)</td>
    244           <td>&#160;&#160;&#160;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&#45;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">&#160;</td>
    260           <td class="paramname">f, </td>
    261         </tr>
    262         <tr>
    263           <td class="paramkey"></td>
    264           <td></td>
    265           <td class="paramtype">&#160;</td>
    266           <td class="paramname">a&#160;</td>
    267         </tr>
    268         <tr>
    269           <td></td>
    270           <td>)</td>
    271           <td></td><td>&#160;&#160;&#160;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&#45;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">&#160;</td>
    287           <td class="paramname">p, </td>
    288         </tr>
    289         <tr>
    290           <td class="paramkey"></td>
    291           <td></td>
    292           <td class="paramtype">&#160;</td>
    293           <td class="paramname">f, </td>
    294         </tr>
    295         <tr>
    296           <td class="paramkey"></td>
    297           <td></td>
    298           <td class="paramtype">&#160;</td>
    299           <td class="paramname">a&#160;</td>
    300         </tr>
    301         <tr>
    302           <td></td>
    303           <td>)</td>
    304           <td></td><td>&#160;&#160;&#160;dmxLogInput(p-&gt;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&#45;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">&#160;</td>
    322           <td class="paramname">f, </td>
    323         </tr>
    324         <tr>
    325           <td class="paramkey"></td>
    326           <td></td>
    327           <td class="paramtype">&#160;</td>
    328           <td class="paramname">a, </td>
    329         </tr>
    330         <tr>
    331           <td class="paramkey"></td>
    332           <td></td>
    333           <td class="paramtype">&#160;</td>
    334           <td class="paramname">b&#160;</td>
    335         </tr>
    336         <tr>
    337           <td></td>
    338           <td>)</td>
    339           <td></td><td>&#160;&#160;&#160;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&#45;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">&#160;</td>
    355           <td class="paramname">f, </td>
    356         </tr>
    357         <tr>
    358           <td class="paramkey"></td>
    359           <td></td>
    360           <td class="paramtype">&#160;</td>
    361           <td class="paramname">a, </td>
    362         </tr>
    363         <tr>
    364           <td class="paramkey"></td>
    365           <td></td>
    366           <td class="paramtype">&#160;</td>
    367           <td class="paramname">b, </td>
    368         </tr>
    369         <tr>
    370           <td class="paramkey"></td>
    371           <td></td>
    372           <td class="paramtype">&#160;</td>
    373           <td class="paramname">c&#160;</td>
    374         </tr>
    375         <tr>
    376           <td></td>
    377           <td>)</td>
    378           <td></td><td>&#160;&#160;&#160;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&#45;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">&#160;</td>
    396           <td class="paramname">p, </td>
    397         </tr>
    398         <tr>
    399           <td class="paramkey"></td>
    400           <td></td>
    401           <td class="paramtype">&#160;</td>
    402           <td class="paramname">f, </td>
    403         </tr>
    404         <tr>
    405           <td class="paramkey"></td>
    406           <td></td>
    407           <td class="paramtype">&#160;</td>
    408           <td class="paramname">a, </td>
    409         </tr>
    410         <tr>
    411           <td class="paramkey"></td>
    412           <td></td>
    413           <td class="paramtype">&#160;</td>
    414           <td class="paramname">b, </td>
    415         </tr>
    416         <tr>
    417           <td class="paramkey"></td>
    418           <td></td>
    419           <td class="paramtype">&#160;</td>
    420           <td class="paramname">c&#160;</td>
    421         </tr>
    422         <tr>
    423           <td></td>
    424           <td>)</td>
    425           <td></td><td>&#160;&#160;&#160;dmxLogInput(p-&gt;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&#45;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">&#160;</td>
    443           <td class="paramname">p, </td>
    444         </tr>
    445         <tr>
    446           <td class="paramkey"></td>
    447           <td></td>
    448           <td class="paramtype">&#160;</td>
    449           <td class="paramname">f, </td>
    450         </tr>
    451         <tr>
    452           <td class="paramkey"></td>
    453           <td></td>
    454           <td class="paramtype">&#160;</td>
    455           <td class="paramname">a, </td>
    456         </tr>
    457         <tr>
    458           <td class="paramkey"></td>
    459           <td></td>
    460           <td class="paramtype">&#160;</td>
    461           <td class="paramname">b, </td>
    462         </tr>
    463         <tr>
    464           <td class="paramkey"></td>
    465           <td></td>
    466           <td class="paramtype">&#160;</td>
    467           <td class="paramname">c, </td>
    468         </tr>
    469         <tr>
    470           <td class="paramkey"></td>
    471           <td></td>
    472           <td class="paramtype">&#160;</td>
    473           <td class="paramname">d, </td>
    474         </tr>
    475         <tr>
    476           <td class="paramkey"></td>
    477           <td></td>
    478           <td class="paramtype">&#160;</td>
    479           <td class="paramname">e&#160;</td>
    480         </tr>
    481         <tr>
    482           <td></td>
    483           <td>)</td>
    484           <td></td><td>&#160;&#160;&#160;dmxLogInput(p-&gt;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&#45;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&#160;&#160;&#160;<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&#45;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">&#160;</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&#45;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">&#160;</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&#45;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">&#160;</td>
    555           <td class="paramname">bit</td><td>)</td>
    556           <td>&#160;&#160;&#160;(priv-&gt;mask[(bit)/8] &amp; (1 &lt;&lt; ((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&#45;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">&#160;</td>
    574           <td class="paramname">bit</td><td>)</td>
    575           <td>&#160;&#160;&#160;(bits[(bit)/8] &amp; (1 &lt;&lt; ((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&#45;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&#160;&#160;&#160;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&#45;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&#160;</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&#45;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&#160;</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&#45;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&#160;</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>&#160;</td>
    651           <td class="paramname"><em>type</em>&#160;</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&#45;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&#160;</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&#45;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> *&#160;</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 *&#160;</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 *&#160;</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&#160;</td>
    715           <td class="paramname"><em>fd</em>&#160;</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&#45;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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</td>
    764           <td class="paramname"><em>block</em>&#160;</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