1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/src/drivers/genkeymap.pl Sun Jun 01 00:47:45 2008 +0000
1.8 +my $dckeysymsfile = "dckeysyms.h";
1.11 +open DCKB, "<$dckeysymsfile" || die "Unable to open keysym file $dckeysymsfile";
1.13 + if( /^#define\s+DCKB_([^ ]*)/ ) {
1.14 + $dcsyms{$1} = "DCKB_$1";
1.20 +my $name = shift();
1.22 + my ($val, $sym) = split /\s+/;
1.23 + $ival = POSIX::strtol($val,0);
1.24 + $hash{$ival} = $sym;
1.25 + $rhash{$sym} = $ival;
1.28 +print "/**\n * $name keyboard map autogenerated by genkeymap.pl\n */\n\n";
1.30 +print "const gchar *${name}_keysyms_by_keycode[128] = { ";
1.31 +for( $i=0; $i < 128; $i++ ) {
1.32 + if( $i != 0 ) { print ", "; }
1.34 + print "\"$hash{$i}\"";
1.41 +print "const uint16_t ${name}_keycode_to_dckeysym[128] = { ";
1.42 +for( $i=0; $i<128; $i++ ) {
1.43 + if( $i != 0 ) { print ", "; }
1.44 + if( $hash{$i} && $dcsyms{$hash{$i}} ) {
1.45 + print $dcsyms{$hash{$i}};
1.47 + print "DCKB_NONE";
1.52 +my @keys = sort {uc($a) cmp uc($b)} keys %rhash;
1.53 +print "#define ${name}_keysym_count " . ($#keys+1) . "\n";
1.54 +print "struct ${name}_keymap_struct {\n const gchar *name;\n uint16_t keycode;\n};\n\n";
1.55 +print "struct ${name}_keymap_struct ${name}_keysyms[] = { ";
1.56 +foreach my $keysym (@keys) {
1.57 + print "{\"$keysym\", $rhash{$keysym} }, ";
1.59 +print "{NULL,-1} };\n\n";