Commit Graph
31 Commits
Author SHA1 Message Date
Arch Blackmann 0324a3e3bb Whiners...
svn path=/trunk/; revision=43990
2009-11-06 23:35:28 +00:00
Arch Blackmann d23204652e Implement printout the the state tables. It seems to work fine, but the tool doesn't yet generate the modified keys (shift+, ctrl+, etc) for each virtual key. This is the last thing that remains.
svn path=/trunk/; revision=43989
2009-11-06 22:42:26 +00:00
Arch Blackmann 4a61562491 Implement support for writing the virtual key to WCHAR translation for different shift states.
Only 2 shift states are supported for now, I have to add a lot more output generation code to get at least 3 states up and running.


svn path=/trunk/; revision=43985
2009-11-06 00:38:04 +00:00
Arch Blackmann 374c1a0142 Add table of shift state combinations, and add table of shift state types.
svn path=/trunk/; revision=43984
2009-11-06 00:37:06 +00:00
Arch Blackmann bb5b97e281 Print out more state-related tables and information (still missing one large chunk of data). Print out the key and extended key tables for the layout. Fix up some more code.
The C source is almost fully complete for the English US test layout KLC!


svn path=/trunk/; revision=43983
2009-11-05 23:58:38 +00:00
Arch Blackmann 51050d323b Add more support for shift state output. The tool now updates CharModifiers table based on the shift states present in the layout, building both the modification number and the key name based on the virtual key-> name table.
svn path=/trunk/; revision=43978
2009-11-05 19:55:57 +00:00
Arch Blackmann 44487b2614 Generate modifier table. Generate extended scancode table X. Generate extended scancode table Y.
svn path=/trunk/; revision=43977
2009-11-05 19:25:41 +00:00
Arch Blackmann 75cba8f7ab Add table of modifiers.
svn path=/trunk/; revision=43976
2009-11-05 19:24:47 +00:00
Arch Blackmann 43ea0e72e4 Create layout entries for built-in non-redefined scancodes as well, based on the 110-key table (mostly things like the extended keys/SpeedRacer/MediaButtons, etc).
svn path=/trunk/; revision=43975
2009-11-05 19:24:24 +00:00
Arch Blackmann 9ba6ecc44b The tool now generates 75% of a typical keyboard layout C file. Lots of stuff still missing, but most of the annoying work is done now... it just has to start filling in the dynamic data.
A full-fledged file will have ligature data, up to 8 shift states, dead keys, etc, but that's not stuff we'll have to deal with at first for simple layouts.
By tomorrow we should be able to fully process and generate latin-alphabet-based language keyboard layouts.


svn path=/trunk/; revision=43970
2009-11-05 05:20:01 +00:00
Arch Blackmann ce3c33cc9f Now write out the DEF file (okay that was too easy).
svn path=/trunk/; revision=43967
2009-11-05 02:04:04 +00:00
Arch Blackmann e430f44387 Kbdtool can now create the resource (RC) file as well!
svn path=/trunk/; revision=43966
2009-11-05 01:57:08 +00:00
Arch Blackmann 6191f04a40 Holy shit Batman! KbdTool can now write out the keyboard layout header file! You should get a Layout01.h if you run it on test.klc (in your current working directory).
svn path=/trunk/; revision=43961
2009-11-04 22:48:55 +00:00
Arch Blackmann 7909bd0733 Refactoring and cleanup. Start fleshing out the output phase. Start handling exit correctly. Fix a bug in DoLAYOUT. Nothing new to see here...
svn path=/trunk/; revision=43959
2009-11-04 22:07:29 +00:00
Arch Blackmann 66afccbaeb Add some helpful debug output to LAYOUT parsing, and enable DoLAYOUT code. The tool is able to fully decode/parse the test.klc English US layout file!
svn path=/trunk/; revision=43950
2009-11-04 19:52:36 +00:00
Arch Blackmann 7662e72971 Implement getCharacterInfo so the tool can now handle most LAYOUT entries, but not complicated ligature entries (dead keys are fine though). Also cleaned up the parsing loop of DoLAYOUT to avoid a goto, and finally added detection of SGCAP entries (in which case the tool will fail, since these are complex and not needed for now).
The main parsing loop is pretty much done, now the tool "just" has to merge the states and perform a check for duplicate entries. Then it'll be ready to generate the output files.


svn path=/trunk/; revision=43949
2009-11-04 19:38:21 +00:00
Arch Blackmann b8b4a4efec Started adding support for reading the different character states and the cap data (including detecting SGCAP). Now the tool has to determine the type of each character defined at every stage (dead, valid, invalid, ligature, etc...) and save the character in the appropriate slot. Dead and other keys are currently handled, as are undefined keys.
Major work remains to be done...


svn path=/trunk/; revision=43947
2009-11-04 04:49:00 +00:00
Arch Blackmann 420a4f5f4b Start implementing the long task of DoLAYOUT to process the big "meat" of a KLC file: the keyboard layout. Implement the table of recognized virtual keys (and the translation matrix). Add support for hex-entered keys (0x...).
The tool does some minimal error checking for now, and attempts to begin parsing the LAYOUT section, but fails miserably and the code won't execute unless you've enabled verbose mode. I'm just using this commit as a checkpoint for now.
Also fixed SCVK structure to use the last member as a state flag.
Finally, added definitions for LAYOUTENTRY which will keep track of each row's column's values in the LAYOUT.

svn path=/trunk/; revision=43944
2009-11-03 22:57:26 +00:00
Arch Blackmann 5167151ae0 Implement the standard ISO 110-key scancode to virtual key conversion table for decoding the LAYOUT section. God that was tedious...
svn path=/trunk/; revision=43903
2009-11-01 19:04:42 +00:00
Arch Blackmann 190498ae3a Make some printfs DPRINT1s since they are only for debugging, and also mark LIGATURE, MODIFIERS, ATTRIBUTES and DEADKEY as sections that I don't yet intend to support for now (they're not required for most layouts).
svn path=/trunk/; revision=43902
2009-11-01 18:30:57 +00:00
Arch Blackmann 0bce60efe8 Implement DoKEYNAME (again, very similar to the previous two). Fixup KEYNAME structure once more to make the field names portable accross different usages (LanguageCode becomes Code). The tool now supports KEYNAME, KEYNAME_EXT and KEYNAME_DEAD sections in the layout file.
svn path=/trunk/; revision=43901
2009-11-01 18:26:53 +00:00
Arch Blackmann 2fb987f2cc Implement LANGUAGENAMES parsing (very similar to DESCRIPTIONS). Make KEYNAME structure portable accross other parsers, not just DESCRIPTIONS.
svn path=/trunk/; revision=43900
2009-11-01 18:17:30 +00:00
Arch Blackmann 165528760c Add support for DESCRIPTIONS section (tested on test.klc). Add KEYNAME structure. Fixup some of the code in the SHIFTSTATES implementation.
svn path=/trunk/; revision=43899
2009-11-01 17:43:51 +00:00
Arch Blackmann 2f450d2aa0 Implement support for parsing shift states. Seems to work fine on the test.klc.
svn path=/trunk/; revision=43898
2009-11-01 15:46:36 +00:00
Arch Blackmann 3915dba574 Implement DoCOMPANY, DoCOPYRIGHT, DoVERSION and DoLOCALENAME... that was the easy part.
Happy Halloween everybody!

svn path=/trunk/; revision=43889
2009-10-31 22:18:28 +00:00
Arch Blackmann b793fbd5d7 Implement DoKBD. The tool can now handle the KBD section of a .klc layout.
svn path=/trunk/; revision=43888
2009-10-31 21:54:26 +00:00
Arch Blackmann eeeb4634bf Implement stubs for all the different keyword stub-parsers.
svn path=/trunk/; revision=43886
2009-10-31 20:24:33 +00:00
Arch Blackmann a68c7af143 Start implementing the main parser loop. The tool detects the keywords in the test.klc layout... and that's about all it does for now.
svn path=/trunk/; revision=43885
2009-10-31 20:03:43 +00:00
Arch Blackmann 05e5d17012 Add sample US layout keyboard layout file. Generated with MSKLC by loading the US layout in Windows 7.
svn path=/trunk/; revision=43884
2009-10-31 19:51:27 +00:00
Arch Blackmann 932d609e6b Implement opening the layout file and printing out the target DLL architecture. Add missing exit(0).
svn path=/trunk/; revision=43882
2009-10-31 18:43:15 +00:00
Arch Blackmann 8a28e9ff5e Begin implementing Keyboard Layout Compiler Tool, as requested by KJK::Hyperion. This is a UNIX-style (Win32-compatible) command-line tool that will take a standard keyboard layout file (in text) and generate the source, defininition, header and resource data for it. The second part of the tool will spawn off the compiler to build the keyboard DLL, or perhaps generate an .rbuild file to perform the work.
svn path=/trunk/; revision=43880
2009-10-31 18:13:26 +00:00