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-keyboard_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> | 41 <a href="#var-members">Variables</a> </div> 42 <div class="headertitle"> 43 <div class="title">usb-keyboard.c File Reference</div> </div> 44 </div> 45 <div class="contents"> 46 <div class="textblock"><code>#include "atKeynames.h"</code><br/> 47 <code>#include "<a class="el" href="usb-private_8h_source.html">usb-private.h</a>"</code><br/> 48 <code>#include "<a class="el" href="usb-keyboard_8h_source.html">usb-keyboard.h</a>"</code><br/> 49 <code>#include <xkbsrv.h></code><br/> 50 </div><table class="memberdecls"> 51 <tr><td colspan="2"><h2><a name="define-members"></a> 52 Defines</h2></td></tr> 53 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a6a3bdd45bcb120470819f4ef1ffabc57">USB_KEYBOARD_DEBUG</a>   0</td></tr> 54 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a></td></tr> 55 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a837722a322e811d5e42242655f277b87">LOG0</a>(f)   dmxLog(dmxDebug,f)</td></tr> 56 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#aab4b3434c36117a2ecdddec40716d97a">LOG1</a>(f, a)   dmxLog(dmxDebug,f,a)</td></tr> 57 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a16da5d597d9bfb9e569a9bfb6996382c">LOG2</a>(f, a, b)   dmxLog(dmxDebug,f,a,b)</td></tr> 58 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a8247f0bca25789d2ac27674eb26e223f">LOG3</a>(f, a, b, c)   dmxLog(dmxDebug,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-keyboard_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>(f)   dmxLog(dmxFatal,f)</td></tr> 60 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>(f, a)   dmxLog(dmxFatal,f,a)</td></tr> 61 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a7952c9e9fe9c75be4964fc53a4299183">FATAL2</a>(f, a, b)   dmxLog(dmxFatal,f,a,b)</td></tr> 62 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a11a17082bee3b1b8217ce8a12adcf814">MOTIONPROC</a>   <a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td></tr> 63 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a017080ce5e42667a6582cf858e7185cd">ENQUEUEPROC</a>   <a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td></tr> 64 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#aa35a985e998ad5e2187e13434dca118a">CHECKPROC</a>   <a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td></tr> 65 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a52220397ecea855b3a99746e451426e1">BLOCK</a>   <a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td></tr> 66 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a6238ada986dd7e452a89773c2252a96d">GLYPHS_PER_KEY</a>   4</td></tr> 67 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a6dbb3fc1c4a78ddba8904d186c8b2784">NUM_KEYCODES</a>   248</td></tr> 68 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a4204c7bd1b89b76ee0bd11d53741d4e6">MIN_KEYCODE</a>   8</td></tr> 69 <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#ac769af5d0ea9b1ab3a1cd61572f8f302">MAX_KEYCODE</a>   (NUM_KEYCODES + MIN_KEYCODE - 1)</td></tr> 70 <tr><td colspan="2"><h2><a name="func-members"></a> 71 Functions</h2></td></tr> 72 <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#ac5b3c28b56eee8c08253f2c93247c2fb">kbdUSBKeyDown</a> (<a class="el" href="struct__myPrivate.html">myPrivate</a> *priv, int keyCode)</td></tr> 73 <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a31da2502826ab88638635abb2b719cae">kbdUSBKeyState</a> (<a class="el" href="struct__myPrivate.html">myPrivate</a> *priv, int type, int keyCode)</td></tr> 74 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a0e9cdd2a76b14cad8a054f2e6e1dbc08">kbdUSBCtrl</a> (DevicePtr pDev, KeybdCtrl *ctrl)</td></tr> 75 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a294cdaa0f31f5f463562c72107b569f2">kbdUSBInit</a> (DevicePtr pDev)</td></tr> 76 <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a1bdbc94af66450a58735130ce8b994d0">kbdUSBConvert</a> (DevicePtr pDev, unsigned int scanCode, int value, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)</td></tr> 77 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a75d61db123cbd10084ecdee9f18a30bf">kbdUSBRead</a> (DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)</td></tr> 78 <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#ab1326e68df2758918fd0e9aa06387424">kbdUSBOn</a> (DevicePtr pDev)</td></tr> 79 <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#accd75bb2b1ea015ca086fb41c472546b">kbdUSBGetMap</a> (DevicePtr pDev, KeySymsPtr pKeySyms, CARD8 *pModMap)</td></tr> 80 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a2513592fe5b9c9f0cafcb299c6531d50">kbdUSBGetInfo</a> (DevicePtr pDev, <a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a> info)</td></tr> 81 <tr><td colspan="2"><h2><a name="var-members"></a> 82 Variables</h2></td></tr> 83 <tr><td class="memItemLeft" align="right" valign="top">static KeySym </td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a2187a19657fb0b38c67dbafc7dd74c4d">map</a> [NUM_KEYCODES *GLYPHS_PER_KEY]</td></tr> 84 </table> 85 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> 86 <div class="textblock"><p>This code implements a low-level device driver for a USB keyboard under Linux. The keymap description is derived from code by Thomas Roell, Orest Zborowski. </p> 87 </div><hr/><h2>Define Documentation</h2> 88 <a class="anchor" id="a52220397ecea855b3a99746e451426e1"></a><!-- doxytag: member="usb-keyboard.c::BLOCK" ref="a52220397ecea855b3a99746e451426e1" args="" --> 89 <div class="memitem"> 90 <div class="memproto"> 91 <table class="memname"> 92 <tr> 93 <td class="memname">#define BLOCK   <a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td> 94 </tr> 95 </table> 96 </div> 97 <div class="memdoc"> 98 99 </div> 100 </div> 101 <a class="anchor" id="aa35a985e998ad5e2187e13434dca118a"></a><!-- doxytag: member="usb-keyboard.c::CHECKPROC" ref="aa35a985e998ad5e2187e13434dca118a" args="" --> 102 <div class="memitem"> 103 <div class="memproto"> 104 <table class="memname"> 105 <tr> 106 <td class="memname">#define CHECKPROC   <a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td> 107 </tr> 108 </table> 109 </div> 110 <div class="memdoc"> 111 112 </div> 113 </div> 114 <a class="anchor" id="a017080ce5e42667a6582cf858e7185cd"></a><!-- doxytag: member="usb-keyboard.c::ENQUEUEPROC" ref="a017080ce5e42667a6582cf858e7185cd" args="" --> 115 <div class="memitem"> 116 <div class="memproto"> 117 <table class="memname"> 118 <tr> 119 <td class="memname">#define ENQUEUEPROC   <a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td> 120 </tr> 121 </table> 122 </div> 123 <div class="memdoc"> 124 125 </div> 126 </div> 127 <a class="anchor" id="a6bce6020b913db8afe5d94bc63d1b355"></a><!-- doxytag: member="usb-keyboard.c::FATAL0" ref="a6bce6020b913db8afe5d94bc63d1b355" args="(f)" --> 128 <div class="memitem"> 129 <div class="memproto"> 130 <table class="memname"> 131 <tr> 132 <td class="memname">#define FATAL0</td> 133 <td>(</td> 134 <td class="paramtype"> </td> 135 <td class="paramname">f</td><td>)</td> 136 <td>   dmxLog(dmxFatal,f)</td> 137 </tr> 138 </table> 139 </div> 140 <div class="memdoc"> 141 142 </div> 143 </div> 144 <a class="anchor" id="a11bcea7c6bc7dbe400a3855f5b8676ce"></a><!-- doxytag: member="usb-keyboard.c::FATAL1" ref="a11bcea7c6bc7dbe400a3855f5b8676ce" args="(f, a)" --> 145 <div class="memitem"> 146 <div class="memproto"> 147 <table class="memname"> 148 <tr> 149 <td class="memname">#define FATAL1</td> 150 <td>(</td> 151 <td class="paramtype"> </td> 152 <td class="paramname">f, </td> 153 </tr> 154 <tr> 155 <td class="paramkey"></td> 156 <td></td> 157 <td class="paramtype"> </td> 158 <td class="paramname">a </td> 159 </tr> 160 <tr> 161 <td></td> 162 <td>)</td> 163 <td></td><td>   dmxLog(dmxFatal,f,a)</td> 164 </tr> 165 </table> 166 </div> 167 <div class="memdoc"> 168 169 </div> 170 </div> 171 <a class="anchor" id="a7952c9e9fe9c75be4964fc53a4299183"></a><!-- doxytag: member="usb-keyboard.c::FATAL2" ref="a7952c9e9fe9c75be4964fc53a4299183" args="(f, a, b)" --> 172 <div class="memitem"> 173 <div class="memproto"> 174 <table class="memname"> 175 <tr> 176 <td class="memname">#define FATAL2</td> 177 <td>(</td> 178 <td class="paramtype"> </td> 179 <td class="paramname">f, </td> 180 </tr> 181 <tr> 182 <td class="paramkey"></td> 183 <td></td> 184 <td class="paramtype"> </td> 185 <td class="paramname">a, </td> 186 </tr> 187 <tr> 188 <td class="paramkey"></td> 189 <td></td> 190 <td class="paramtype"> </td> 191 <td class="paramname">b </td> 192 </tr> 193 <tr> 194 <td></td> 195 <td>)</td> 196 <td></td><td>   dmxLog(dmxFatal,f,a,b)</td> 197 </tr> 198 </table> 199 </div> 200 <div class="memdoc"> 201 202 </div> 203 </div> 204 <a class="anchor" id="aacf069d346230dd96812d5395728eef2"></a><!-- doxytag: member="usb-keyboard.c::GETPRIV" ref="aacf069d346230dd96812d5395728eef2" args="" --> 205 <div class="memitem"> 206 <div class="memproto"> 207 <table class="memname"> 208 <tr> 209 <td class="memname">#define GETPRIV</td> 210 </tr> 211 </table> 212 </div> 213 <div class="memdoc"> 214 <b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="struct__myPrivate.html">myPrivate</a> *priv \ 215 = ((<a class="code" href="dmxinput_8h.html#adb148db00fe0adf1938b815b9b934d26">DMXLocalInputInfoPtr</a>)(pDev->devicePrivate))->private 216 </pre></div> 217 <p>Referenced by <a class="el" href="usb-keyboard_8c.html#a1bdbc94af66450a58735130ce8b994d0">kbdUSBConvert()</a>, <a class="el" href="usb-keyboard_8h.html#a0e9cdd2a76b14cad8a054f2e6e1dbc08">kbdUSBCtrl()</a>, <a class="el" href="usb-keyboard_8h.html#ab1326e68df2758918fd0e9aa06387424">kbdUSBOn()</a>, and <a class="el" href="usb-keyboard_8c.html#a75d61db123cbd10084ecdee9f18a30bf">kbdUSBRead()</a>.</p> 218 219 </div> 220 </div> 221 <a class="anchor" id="a6238ada986dd7e452a89773c2252a96d"></a><!-- doxytag: member="usb-keyboard.c::GLYPHS_PER_KEY" ref="a6238ada986dd7e452a89773c2252a96d" args="" --> 222 <div class="memitem"> 223 <div class="memproto"> 224 <table class="memname"> 225 <tr> 226 <td class="memname">#define GLYPHS_PER_KEY   4</td> 227 </tr> 228 </table> 229 </div> 230 <div class="memdoc"> 231 232 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap()</a>, <a class="el" href="lnx-keyboard_8c.html#acc3cbed3f7e836f032b2e131baeb4800">kbdLinuxReadKernelMapping()</a>, and <a class="el" href="usb-keyboard_8c.html#accd75bb2b1ea015ca086fb41c472546b">kbdUSBGetMap()</a>.</p> 233 234 </div> 235 </div> 236 <a class="anchor" id="a837722a322e811d5e42242655f277b87"></a><!-- doxytag: member="usb-keyboard.c::LOG0" ref="a837722a322e811d5e42242655f277b87" args="(f)" --> 237 <div class="memitem"> 238 <div class="memproto"> 239 <table class="memname"> 240 <tr> 241 <td class="memname">#define LOG0</td> 242 <td>(</td> 243 <td class="paramtype"> </td> 244 <td class="paramname">f</td><td>)</td> 245 <td>   dmxLog(dmxDebug,f)</td> 246 </tr> 247 </table> 248 </div> 249 <div class="memdoc"> 250 251 </div> 252 </div> 253 <a class="anchor" id="aab4b3434c36117a2ecdddec40716d97a"></a><!-- doxytag: member="usb-keyboard.c::LOG1" ref="aab4b3434c36117a2ecdddec40716d97a" args="(f, a)" --> 254 <div class="memitem"> 255 <div class="memproto"> 256 <table class="memname"> 257 <tr> 258 <td class="memname">#define LOG1</td> 259 <td>(</td> 260 <td class="paramtype"> </td> 261 <td class="paramname">f, </td> 262 </tr> 263 <tr> 264 <td class="paramkey"></td> 265 <td></td> 266 <td class="paramtype"> </td> 267 <td class="paramname">a </td> 268 </tr> 269 <tr> 270 <td></td> 271 <td>)</td> 272 <td></td><td>   dmxLog(dmxDebug,f,a)</td> 273 </tr> 274 </table> 275 </div> 276 <div class="memdoc"> 277 278 </div> 279 </div> 280 <a class="anchor" id="a16da5d597d9bfb9e569a9bfb6996382c"></a><!-- doxytag: member="usb-keyboard.c::LOG2" ref="a16da5d597d9bfb9e569a9bfb6996382c" args="(f, a, b)" --> 281 <div class="memitem"> 282 <div class="memproto"> 283 <table class="memname"> 284 <tr> 285 <td class="memname">#define LOG2</td> 286 <td>(</td> 287 <td class="paramtype"> </td> 288 <td class="paramname">f, </td> 289 </tr> 290 <tr> 291 <td class="paramkey"></td> 292 <td></td> 293 <td class="paramtype"> </td> 294 <td class="paramname">a, </td> 295 </tr> 296 <tr> 297 <td class="paramkey"></td> 298 <td></td> 299 <td class="paramtype"> </td> 300 <td class="paramname">b </td> 301 </tr> 302 <tr> 303 <td></td> 304 <td>)</td> 305 <td></td><td>   dmxLog(dmxDebug,f,a,b)</td> 306 </tr> 307 </table> 308 </div> 309 <div class="memdoc"> 310 311 </div> 312 </div> 313 <a class="anchor" id="a8247f0bca25789d2ac27674eb26e223f"></a><!-- doxytag: member="usb-keyboard.c::LOG3" ref="a8247f0bca25789d2ac27674eb26e223f" args="(f, a, b, c)" --> 314 <div class="memitem"> 315 <div class="memproto"> 316 <table class="memname"> 317 <tr> 318 <td class="memname">#define LOG3</td> 319 <td>(</td> 320 <td class="paramtype"> </td> 321 <td class="paramname">f, </td> 322 </tr> 323 <tr> 324 <td class="paramkey"></td> 325 <td></td> 326 <td class="paramtype"> </td> 327 <td class="paramname">a, </td> 328 </tr> 329 <tr> 330 <td class="paramkey"></td> 331 <td></td> 332 <td class="paramtype"> </td> 333 <td class="paramname">b, </td> 334 </tr> 335 <tr> 336 <td class="paramkey"></td> 337 <td></td> 338 <td class="paramtype"> </td> 339 <td class="paramname">c </td> 340 </tr> 341 <tr> 342 <td></td> 343 <td>)</td> 344 <td></td><td>   dmxLog(dmxDebug,f,a,b,c)</td> 345 </tr> 346 </table> 347 </div> 348 <div class="memdoc"> 349 350 <p>Referenced by <a class="el" href="usb-keyboard_8c.html#a75d61db123cbd10084ecdee9f18a30bf">kbdUSBRead()</a>.</p> 351 352 </div> 353 </div> 354 <a class="anchor" id="ac769af5d0ea9b1ab3a1cd61572f8f302"></a><!-- doxytag: member="usb-keyboard.c::MAX_KEYCODE" ref="ac769af5d0ea9b1ab3a1cd61572f8f302" args="" --> 355 <div class="memitem"> 356 <div class="memproto"> 357 <table class="memname"> 358 <tr> 359 <td class="memname">#define MAX_KEYCODE   (NUM_KEYCODES + MIN_KEYCODE - 1)</td> 360 </tr> 361 </table> 362 </div> 363 <div class="memdoc"> 364 365 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap()</a>, and <a class="el" href="usb-keyboard_8c.html#accd75bb2b1ea015ca086fb41c472546b">kbdUSBGetMap()</a>.</p> 366 367 </div> 368 </div> 369 <a class="anchor" id="a4204c7bd1b89b76ee0bd11d53741d4e6"></a><!-- doxytag: member="usb-keyboard.c::MIN_KEYCODE" ref="a4204c7bd1b89b76ee0bd11d53741d4e6" args="" --> 370 <div class="memitem"> 371 <div class="memproto"> 372 <table class="memname"> 373 <tr> 374 <td class="memname">#define MIN_KEYCODE   8</td> 375 </tr> 376 </table> 377 </div> 378 <div class="memdoc"> 379 380 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a6338eb254610cdbf7942ad91f23c36fe">kbdLinuxConvert()</a>, <a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap()</a>, <a class="el" href="usb-keyboard_8c.html#a1bdbc94af66450a58735130ce8b994d0">kbdUSBConvert()</a>, and <a class="el" href="usb-keyboard_8c.html#accd75bb2b1ea015ca086fb41c472546b">kbdUSBGetMap()</a>.</p> 381 382 </div> 383 </div> 384 <a class="anchor" id="a11a17082bee3b1b8217ce8a12adcf814"></a><!-- doxytag: member="usb-keyboard.c::MOTIONPROC" ref="a11a17082bee3b1b8217ce8a12adcf814" args="" --> 385 <div class="memitem"> 386 <div class="memproto"> 387 <table class="memname"> 388 <tr> 389 <td class="memname">#define MOTIONPROC   <a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td> 390 </tr> 391 </table> 392 </div> 393 <div class="memdoc"> 394 395 </div> 396 </div> 397 <a class="anchor" id="a6dbb3fc1c4a78ddba8904d186c8b2784"></a><!-- doxytag: member="usb-keyboard.c::NUM_KEYCODES" ref="a6dbb3fc1c4a78ddba8904d186c8b2784" args="" --> 398 <div class="memitem"> 399 <div class="memproto"> 400 <table class="memname"> 401 <tr> 402 <td class="memname">#define NUM_KEYCODES   248</td> 403 </tr> 404 </table> 405 </div> 406 <div class="memdoc"> 407 408 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap()</a>, and <a class="el" href="usb-keyboard_8c.html#accd75bb2b1ea015ca086fb41c472546b">kbdUSBGetMap()</a>.</p> 409 410 </div> 411 </div> 412 <a class="anchor" id="a6a3bdd45bcb120470819f4ef1ffabc57"></a><!-- doxytag: member="usb-keyboard.c::USB_KEYBOARD_DEBUG" ref="a6a3bdd45bcb120470819f4ef1ffabc57" args="" --> 413 <div class="memitem"> 414 <div class="memproto"> 415 <table class="memname"> 416 <tr> 417 <td class="memname">#define USB_KEYBOARD_DEBUG   0</td> 418 </tr> 419 </table> 420 </div> 421 <div class="memdoc"> 422 423 </div> 424 </div> 425 <hr/><h2>Function Documentation</h2> 426 <a class="anchor" id="a1bdbc94af66450a58735130ce8b994d0"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBConvert" ref="a1bdbc94af66450a58735130ce8b994d0" args="(DevicePtr pDev, unsigned int scanCode, int value, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)" --> 427 <div class="memitem"> 428 <div class="memproto"> 429 <table class="memname"> 430 <tr> 431 <td class="memname">static void kbdUSBConvert </td> 432 <td>(</td> 433 <td class="paramtype">DevicePtr </td> 434 <td class="paramname"><em>pDev</em>, </td> 435 </tr> 436 <tr> 437 <td class="paramkey"></td> 438 <td></td> 439 <td class="paramtype">unsigned int </td> 440 <td class="paramname"><em>scanCode</em>, </td> 441 </tr> 442 <tr> 443 <td class="paramkey"></td> 444 <td></td> 445 <td class="paramtype">int </td> 446 <td class="paramname"><em>value</em>, </td> 447 </tr> 448 <tr> 449 <td class="paramkey"></td> 450 <td></td> 451 <td class="paramtype">ENQUEUEPROC </td> 452 <td class="paramname"><em>enqueue</em>, </td> 453 </tr> 454 <tr> 455 <td class="paramkey"></td> 456 <td></td> 457 <td class="paramtype">CHECKPROC </td> 458 <td class="paramname"><em>checkspecial</em>, </td> 459 </tr> 460 <tr> 461 <td class="paramkey"></td> 462 <td></td> 463 <td class="paramtype">BLOCK </td> 464 <td class="paramname"><em>block</em> </td> 465 </tr> 466 <tr> 467 <td></td> 468 <td>)</td> 469 <td></td><td><code> [static]</code></td> 470 </tr> 471 </table> 472 </div> 473 <div class="memdoc"> 474 475 <p>References <a class="el" href="usb-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="lnx-keyboard_8c.html#a508da29b3082d7901ebf5c7397bd1a88">kbdLinuxKeyDown()</a>, <a class="el" href="usb-keyboard_8c.html#ac5b3c28b56eee8c08253f2c93247c2fb">kbdUSBKeyDown()</a>, <a class="el" href="usb-keyboard_8c.html#a31da2502826ab88638635abb2b719cae">kbdUSBKeyState()</a>, and <a class="el" href="usb-keyboard_8c.html#a4204c7bd1b89b76ee0bd11d53741d4e6">MIN_KEYCODE</a>.</p> 476 477 <p>Referenced by <a class="el" href="usb-keyboard_8c.html#a75d61db123cbd10084ecdee9f18a30bf">kbdUSBRead()</a>.</p> 478 479 </div> 480 </div> 481 <a class="anchor" id="a0e9cdd2a76b14cad8a054f2e6e1dbc08"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBCtrl" ref="a0e9cdd2a76b14cad8a054f2e6e1dbc08" args="(DevicePtr pDev, KeybdCtrl *ctrl)" --> 482 <div class="memitem"> 483 <div class="memproto"> 484 <table class="memname"> 485 <tr> 486 <td class="memname">void kbdUSBCtrl </td> 487 <td>(</td> 488 <td class="paramtype">DevicePtr </td> 489 <td class="paramname"><em>pDev</em>, </td> 490 </tr> 491 <tr> 492 <td class="paramkey"></td> 493 <td></td> 494 <td class="paramtype">KeybdCtrl * </td> 495 <td class="paramname"><em>ctrl</em> </td> 496 </tr> 497 <tr> 498 <td></td> 499 <td>)</td> 500 <td></td><td></td> 501 </tr> 502 </table> 503 </div> 504 <div class="memdoc"> 505 <p>Set the LEDs. </p> 506 507 <p>References <a class="el" href="usb-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>.</p> 508 509 </div> 510 </div> 511 <a class="anchor" id="a2513592fe5b9c9f0cafcb299c6531d50"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBGetInfo" ref="a2513592fe5b9c9f0cafcb299c6531d50" args="(DevicePtr pDev, DMXLocalInitInfoPtr info)" --> 512 <div class="memitem"> 513 <div class="memproto"> 514 <table class="memname"> 515 <tr> 516 <td class="memname">void kbdUSBGetInfo </td> 517 <td>(</td> 518 <td class="paramtype">DevicePtr </td> 519 <td class="paramname"><em>pDev</em>, </td> 520 </tr> 521 <tr> 522 <td class="paramkey"></td> 523 <td></td> 524 <td class="paramtype"><a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a> </td> 525 <td class="paramname"><em>info</em> </td> 526 </tr> 527 <tr> 528 <td></td> 529 <td>)</td> 530 <td></td><td></td> 531 </tr> 532 </table> 533 </div> 534 <div class="memdoc"> 535 <p>Fill the <em>info</em> structure with information needed to initialize <em>pDev</em>. </p> 536 537 <p>References <a class="el" href="struct__DMXLocalInitInfo.html#a24b09c34e0cf80ec33f093e908206be4">_DMXLocalInitInfo::focusClass</a>, <a class="el" href="struct__DMXLocalInitInfo.html#abb7446114b5bdb0baf52806c9a1d249c">_DMXLocalInitInfo::force</a>, <a class="el" href="struct__DMXLocalInitInfo.html#af19caac0e20a9106b73714c9c7991ce5">_DMXLocalInitInfo::kbdFeedbackClass</a>, <a class="el" href="usb-keyboard_8c.html#accd75bb2b1ea015ca086fb41c472546b">kbdUSBGetMap()</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a214969f0843dcb70d8f7577f58bafa48">_DMXLocalInitInfo::keyboard</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a06626a99542714bbd032e9e12a8c6b55">_DMXLocalInitInfo::keyClass</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a02861e7e9c24381a229567d36e7a68b7">_DMXLocalInitInfo::keySyms</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a2e345080abf875ce6f85e63ed631cbcd">_DMXLocalInitInfo::modMap</a>, and <a class="el" href="struct__DMXLocalInitInfo.html#a92de3dbbb88844f90aa431f93e16ee05">_DMXLocalInitInfo::names</a>.</p> 538 539 </div> 540 </div> 541 <a class="anchor" id="accd75bb2b1ea015ca086fb41c472546b"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBGetMap" ref="accd75bb2b1ea015ca086fb41c472546b" args="(DevicePtr pDev, KeySymsPtr pKeySyms, CARD8 *pModMap)" --> 542 <div class="memitem"> 543 <div class="memproto"> 544 <table class="memname"> 545 <tr> 546 <td class="memname">static void kbdUSBGetMap </td> 547 <td>(</td> 548 <td class="paramtype">DevicePtr </td> 549 <td class="paramname"><em>pDev</em>, </td> 550 </tr> 551 <tr> 552 <td class="paramkey"></td> 553 <td></td> 554 <td class="paramtype">KeySymsPtr </td> 555 <td class="paramname"><em>pKeySyms</em>, </td> 556 </tr> 557 <tr> 558 <td class="paramkey"></td> 559 <td></td> 560 <td class="paramtype">CARD8 * </td> 561 <td class="paramname"><em>pModMap</em> </td> 562 </tr> 563 <tr> 564 <td></td> 565 <td>)</td> 566 <td></td><td><code> [static]</code></td> 567 </tr> 568 </table> 569 </div> 570 <div class="memdoc"> 571 572 <p>References <a class="el" href="usb-keyboard_8c.html#a6238ada986dd7e452a89773c2252a96d">GLYPHS_PER_KEY</a>, <a class="el" href="usb-keyboard_8c.html#a2187a19657fb0b38c67dbafc7dd74c4d">map</a>, <a class="el" href="usb-keyboard_8c.html#ac769af5d0ea9b1ab3a1cd61572f8f302">MAX_KEYCODE</a>, <a class="el" href="usb-keyboard_8c.html#a4204c7bd1b89b76ee0bd11d53741d4e6">MIN_KEYCODE</a>, and <a class="el" href="usb-keyboard_8c.html#a6dbb3fc1c4a78ddba8904d186c8b2784">NUM_KEYCODES</a>.</p> 573 574 <p>Referenced by <a class="el" href="usb-keyboard_8h.html#a2513592fe5b9c9f0cafcb299c6531d50">kbdUSBGetInfo()</a>.</p> 575 576 </div> 577 </div> 578 <a class="anchor" id="a294cdaa0f31f5f463562c72107b569f2"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBInit" ref="a294cdaa0f31f5f463562c72107b569f2" args="(DevicePtr pDev)" --> 579 <div class="memitem"> 580 <div class="memproto"> 581 <table class="memname"> 582 <tr> 583 <td class="memname">void kbdUSBInit </td> 584 <td>(</td> 585 <td class="paramtype">DevicePtr </td> 586 <td class="paramname"><em>pDev</em></td><td>)</td> 587 <td></td> 588 </tr> 589 </table> 590 </div> 591 <div class="memdoc"> 592 <p>Initialize <em>pDev</em> using <a class="el" href="usb-common_8h.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit</a>. </p> 593 594 <p>References <a class="el" href="usb-common_8c.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit()</a>, and <a class="el" href="usb-common_8h.html#a5e4410bf95babe73bcecc612691fc2d0ac0ee79f0c48b61dfd08fff502a2752a3">usbKeyboard</a>.</p> 595 596 <p>Referenced by <a class="el" href="usb-keyboard_8h.html#ab1326e68df2758918fd0e9aa06387424">kbdUSBOn()</a>.</p> 597 598 </div> 599 </div> 600 <a class="anchor" id="ac5b3c28b56eee8c08253f2c93247c2fb"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBKeyDown" ref="ac5b3c28b56eee8c08253f2c93247c2fb" args="(myPrivate *priv, int keyCode)" --> 601 <div class="memitem"> 602 <div class="memproto"> 603 <table class="memname"> 604 <tr> 605 <td class="memname">static int kbdUSBKeyDown </td> 606 <td>(</td> 607 <td class="paramtype"><a class="el" href="struct__myPrivate.html">myPrivate</a> * </td> 608 <td class="paramname"><em>priv</em>, </td> 609 </tr> 610 <tr> 611 <td class="paramkey"></td> 612 <td></td> 613 <td class="paramtype">int </td> 614 <td class="paramname"><em>keyCode</em> </td> 615 </tr> 616 <tr> 617 <td></td> 618 <td>)</td> 619 <td></td><td><code> [static]</code></td> 620 </tr> 621 </table> 622 </div> 623 <div class="memdoc"> 624 625 <p>References <a class="el" href="struct__myPrivate.html#a35c7b19223e75cef1eebc0467fb2514d">_myPrivate::kbdState</a>, and <a class="el" href="lnx-keyboard_8c.html#a4551482d17e969e4de70a669be3afc74">NUM_STATE_ENTRIES</a>.</p> 626 627 <p>Referenced by <a class="el" href="usb-keyboard_8c.html#a1bdbc94af66450a58735130ce8b994d0">kbdUSBConvert()</a>.</p> 628 629 </div> 630 </div> 631 <a class="anchor" id="a31da2502826ab88638635abb2b719cae"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBKeyState" ref="a31da2502826ab88638635abb2b719cae" args="(myPrivate *priv, int type, int keyCode)" --> 632 <div class="memitem"> 633 <div class="memproto"> 634 <table class="memname"> 635 <tr> 636 <td class="memname">static void kbdUSBKeyState </td> 637 <td>(</td> 638 <td class="paramtype"><a class="el" href="struct__myPrivate.html">myPrivate</a> * </td> 639 <td class="paramname"><em>priv</em>, </td> 640 </tr> 641 <tr> 642 <td class="paramkey"></td> 643 <td></td> 644 <td class="paramtype">int </td> 645 <td class="paramname"><em>type</em>, </td> 646 </tr> 647 <tr> 648 <td class="paramkey"></td> 649 <td></td> 650 <td class="paramtype">int </td> 651 <td class="paramname"><em>keyCode</em> </td> 652 </tr> 653 <tr> 654 <td></td> 655 <td>)</td> 656 <td></td><td><code> [static]</code></td> 657 </tr> 658 </table> 659 </div> 660 <div class="memdoc"> 661 662 <p>References <a class="el" href="struct__myPrivate.html#a35c7b19223e75cef1eebc0467fb2514d">_myPrivate::kbdState</a>, and <a class="el" href="lnx-keyboard_8c.html#a4551482d17e969e4de70a669be3afc74">NUM_STATE_ENTRIES</a>.</p> 663 664 <p>Referenced by <a class="el" href="usb-keyboard_8c.html#a1bdbc94af66450a58735130ce8b994d0">kbdUSBConvert()</a>.</p> 665 666 </div> 667 </div> 668 <a class="anchor" id="ab1326e68df2758918fd0e9aa06387424"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBOn" ref="ab1326e68df2758918fd0e9aa06387424" args="(DevicePtr pDev)" --> 669 <div class="memitem"> 670 <div class="memproto"> 671 <table class="memname"> 672 <tr> 673 <td class="memname">int kbdUSBOn </td> 674 <td>(</td> 675 <td class="paramtype">DevicePtr </td> 676 <td class="paramname"><em>pDev</em></td><td>)</td> 677 <td></td> 678 </tr> 679 </table> 680 </div> 681 <div class="memdoc"> 682 <p>Turn <em>pDev</em> on (i.e., take input from <em>pDev</em>). </p> 683 684 <p>References <a class="el" href="usb-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, and <a class="el" href="usb-keyboard_8c.html#a294cdaa0f31f5f463562c72107b569f2">kbdUSBInit()</a>.</p> 685 686 </div> 687 </div> 688 <a class="anchor" id="a75d61db123cbd10084ecdee9f18a30bf"></a><!-- doxytag: member="usb-keyboard.c::kbdUSBRead" ref="a75d61db123cbd10084ecdee9f18a30bf" args="(DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)" --> 689 <div class="memitem"> 690 <div class="memproto"> 691 <table class="memname"> 692 <tr> 693 <td class="memname">void kbdUSBRead </td> 694 <td>(</td> 695 <td class="paramtype">DevicePtr </td> 696 <td class="paramname"><em>pDev</em>, </td> 697 </tr> 698 <tr> 699 <td class="paramkey"></td> 700 <td></td> 701 <td class="paramtype">MOTIONPROC </td> 702 <td class="paramname"><em>motion</em>, </td> 703 </tr> 704 <tr> 705 <td class="paramkey"></td> 706 <td></td> 707 <td class="paramtype">ENQUEUEPROC </td> 708 <td class="paramname"><em>enqueue</em>, </td> 709 </tr> 710 <tr> 711 <td class="paramkey"></td> 712 <td></td> 713 <td class="paramtype">CHECKPROC </td> 714 <td class="paramname"><em>checkspecial</em>, </td> 715 </tr> 716 <tr> 717 <td class="paramkey"></td> 718 <td></td> 719 <td class="paramtype">BLOCK </td> 720 <td class="paramname"><em>block</em> </td> 721 </tr> 722 <tr> 723 <td></td> 724 <td>)</td> 725 <td></td><td></td> 726 </tr> 727 </table> 728 </div> 729 <div class="memdoc"> 730 <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, check for special keys with the <em>checkspecial</em> function and 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> 731 732 <p>References <a class="el" href="usb-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="usb-keyboard_8c.html#a1bdbc94af66450a58735130ce8b994d0">kbdUSBConvert()</a>, and <a class="el" href="usb-keyboard_8c.html#a8247f0bca25789d2ac27674eb26e223f">LOG3</a>.</p> 733 734 </div> 735 </div> 736 <hr/><h2>Variable Documentation</h2> 737 <a class="anchor" id="a2187a19657fb0b38c67dbafc7dd74c4d"></a><!-- doxytag: member="usb-keyboard.c::map" ref="a2187a19657fb0b38c67dbafc7dd74c4d" args="[NUM_KEYCODES *GLYPHS_PER_KEY]" --> 738 <div class="memitem"> 739 <div class="memproto"> 740 <table class="memname"> 741 <tr> 742 <td class="memname">KeySym <a class="el" href="usb-keyboard_8c.html#a2187a19657fb0b38c67dbafc7dd74c4d">map</a>[NUM_KEYCODES *GLYPHS_PER_KEY]<code> [static]</code></td> 743 </tr> 744 </table> 745 </div> 746 <div class="memdoc"> 747 748 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap()</a>, <a class="el" href="lnx-keyboard_8c.html#acc3cbed3f7e836f032b2e131baeb4800">kbdLinuxReadKernelMapping()</a>, and <a class="el" href="usb-keyboard_8c.html#accd75bb2b1ea015ca086fb41c472546b">kbdUSBGetMap()</a>.</p> 749 750 </div> 751 </div> 752 </div> 753 </div> 754 <div id="nav-path" class="navpath"> 755 <ul> 756 <li class="navelem"><a class="el" href="usb-keyboard_8c.html">usb-keyboard.c</a> </li> 757 <hr> 758 <address> 759 <small> 760 Generated June 29, 2004 for <a 761 href="http://dmx.sourceforge.net">Distributed Multihead X</a> by 762 <a href="http://www.doxygen.org/index.html">doxygen</a> 763 1.3.4. 764 </small> 765 </addres> 766 </hr> 767 </body> 768 </html> 769