<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: keyboard code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 18 May 2008 10:09:38 GMT</pubDate>
    <description>DZone Snippets: keyboard code</description>
    <item>
      <title>Console keyboard scheme switcher</title>
      <link>http://snippets.dzone.com/posts/show/1901</link>
      <description>Switches between us and swedish (or any other)&lt;br /&gt;keyboard-scheme in the console. Default is US.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;# Keyboard switcher script&lt;br /&gt;# Written in 2006 by Davor Babic &lt;davorb@gmail.com&gt;&lt;br /&gt;# This software is realeased into public domain&lt;br /&gt;&lt;br /&gt;case $1 in&lt;br /&gt;sv)&lt;br /&gt;    echo "Switching to swedish keyboard layout."&lt;br /&gt;    loadkeys /usr/share/keymaps/i386/qwerty/se-latin1.kmap.gz&lt;br /&gt;    ;;&lt;br /&gt;us)&lt;br /&gt;    echo "Switching to US keyboard layout."&lt;br /&gt;    loadkeys /usr/share/keymaps/i386/qwerty/us.kmap.gz&lt;br /&gt;    ;;&lt;br /&gt;default)&lt;br /&gt;    echo "None selected. Loading US..."&lt;br /&gt;    loadkeys /usr/share/keymaps/i386/qwerty/us.kmap.gz&lt;br /&gt;    ;;&lt;br /&gt;esac&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 12 Apr 2006 04:20:52 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1901</guid>
      <author>davor (Davor Babic)</author>
    </item>
    <item>
      <title>Handle keyboard event easily</title>
      <link>http://snippets.dzone.com/posts/show/1444</link>
      <description>I found a code that simplify keyboard event handling&lt;br /&gt;from the popular pys60 tutorial.&lt;br /&gt;I simplify it a bit (removing some feature but make it easier to read)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;from appuifw import *&lt;br /&gt;from key_codes import *&lt;br /&gt;&lt;br /&gt;class Keyboard(object):&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.state = {}  # is this key pressing ?&lt;br /&gt;        self.buffer= {}  # is it waiting to be processed ?&lt;br /&gt;    def handle_event(self, event): # for event_callback&lt;br /&gt;        code = event['scancode']&lt;br /&gt;        if event['type'] == EEventKeyDown:&lt;br /&gt;            self.buffer[code]= 1   # put into queue&lt;br /&gt;            self.state[code] = 1&lt;br /&gt;        elif event['type'] == EEventKeyUp:&lt;br /&gt;            self.state[code] = 0&lt;br /&gt;    def pressing(self, code):      # just check&lt;br /&gt;        return self.state.get(code,0)&lt;br /&gt;    def pressed(self, code):       # check and process the event&lt;br /&gt;        if self.buffer.get(code,0):&lt;br /&gt;            self.buffer[code] = 0  # take out of queue&lt;br /&gt;            return 1&lt;br /&gt;        return 0&lt;br /&gt;&lt;br /&gt;key = Keyboard()&lt;br /&gt;app.body = canvas = Canvas(event_callback=key.handle_event)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Now you can check the keyboard status with key.pressing and key.pressed&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&gt;&gt;&gt; key.state   # just pressed up arrow&lt;br /&gt;{17: 0}&lt;br /&gt;&gt;&gt;&gt; key.buffer&lt;br /&gt;{17: 1}&lt;br /&gt;&gt;&gt;&gt; key.pressing(EScancodeUpArrow)  # it's not pressing&lt;br /&gt;0&lt;br /&gt;&gt;&gt;&gt; key.pressed(EScancodeUpArrow)   # yes, it's pressed&lt;br /&gt;1&lt;br /&gt;&gt;&gt;&gt; key.pressed(EScancodeUpArrow)   # no, you've just processed it&lt;br /&gt;0&lt;br /&gt;&gt;&gt;&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Thu, 09 Feb 2006 21:35:30 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1444</guid>
      <author>korakot (Korakot Chaovavanich)</author>
    </item>
  </channel>
</rss>
