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> 52Defines</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> 71Functions</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> 82Variables</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