LibRAWKey
Obsah:
LibRAWKey je takova jednoducha knihovna pro ovladani klavesnice na konzoli linuxu.
Obsahuje jen nekolik zakladnich funkci. Velmi dobre se hodi pro ovladani kalvesnice
v grafice pri pouziti SVGALib. Autorem knihovny je Russell Marks.
Do kazdeho souboru, ktery pouziva volani funkci LibRAWkey includujte rawkey.h
a unistd.h.
Pro linkovani volejte kompiler s parametrem /usr/lib/librawkey.a.
Priklad:
cc testprog.c -o testpog -lvga /usr/lib/librawkey.a
Na zacatku programu zavolejte rawmode_init().
int rawmode_init() vraci 1 pukud se povedla inicializace.
Na konci programu zavolejte rawmode_exit(), pokud na to zapomenete nepujde vam po skonceni programu klavesnice, takze se nepovede ani shutdown.
int is_any_key_pressed() vraci 1 kdyz je stisknuta klavesa
int is_key_pressed(int scancode) vraci 1 kdyz je stisknut Scancode.
void scan_keyboard() volat pred pouzitim is_key_pressed atd.
int get_scancode(); vraci Scancode nebo -1 pukud neni stisknuta klavesa.
int keymap_trans(int scancode) prevadi Scancode na ASCII.
int scancode_trans(int asc) prevadi ASCII na Scancode.
void set_switch_functions(void (*off)(void),void (*on)(void))nastaveni funkci, ktere prepinaji
z textu do garfiky a zpet
Prikald:
...
void text()
{
vga_setmode(TEXT);
}
void graph()
{
vga_setmode(G320x200x256);
}
...
allow_switch(1);
set_switch_function(text,graph);
...
allow_switch(0);
...
void allow_switch(int on) on=1 pro povoleni prepinani on=0 pro zakaz prepinani.
ESCAPE_KEY
ENTER_KEY
BACKSPACE
TAB_KEY
LEFT_SHIFT
RIGHT_SHIFT
LEFT_CTRL
LEFT_ALT
FUNC_KEY(z)
CURSOR_LEFT
CURSOR_RIGHT
CURSOR_UP
CURSOR_DOWN
KEYPAD_CENTER
INSERT_KEY
DELETE_KEY
HOME_KEY
END_KEY
PAGE_UP
PAGE_DOWN
CAPS_LOCK
NUM_LOCK
SCROLL_LOCK
GRAY_PLUS
GRAY_MINUS
GRAY_MULTIPLY
GRAY_DIVIDE
#include<stdio.h>
#include<unistd.h>
#include<vga.h>
#include<vgagl.h>
#include<rawkey.h>
main()
{
vga_init();
vga_setmode(G640x480x256);
if (!rawmode_init())
{
printf("Couldn't init RAW mode !");
exit(1);
}
vga_setcolor(1);
do
{
scan_keyboard();
if (is_key_pressed(CURSOR_LEFT)) vga_drawline(100,100,200,200);
}
while(!is_key_pressed(ESCAPE_KEY));
rawmode_exit();
vga_setmode(TEXT);
}
(c) 1997 Ondrej Kolonicny
Muzete mi mailnout na:6kolo@pol.upce.cz
Linux je nejlepsi opracni system!