Merge pull request #425 from Sharpie/fix-vbox-scancodes

builder/virtualbox: fix scancodes for F1-F12 and delete
This commit is contained in:
Mitchell Hashimoto 2013-09-15 22:33:47 -07:00
commit 875314e993
1 changed files with 20 additions and 15 deletions

View File

@ -92,29 +92,34 @@ func (s *stepTypeBootCommand) Run(state multistep.StateBag) multistep.StepAction
func (*stepTypeBootCommand) Cleanup(multistep.StateBag) {} func (*stepTypeBootCommand) Cleanup(multistep.StateBag) {}
func scancodes(message string) []string { func scancodes(message string) []string {
// Scancodes reference: http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html
//
// Scancodes represent raw keyboard output and are fed to the VM by the
// VBoxManage controlvm keyboardputscancode program.
//
// Scancodes are recorded here in pairs. The first entry represents
// the key press and the second entry represents the key release and is
// derived from the first by the addition of 0x81.
special := make(map[string][]string) special := make(map[string][]string)
special["<bs>"] = []string{"ff", "08"} special["<bs>"] = []string{"0e", "8e"}
special["<del>"] = []string{"ff", "ff"} special["<del>"] = []string{"53", "d3"}
special["<enter>"] = []string{"1c", "9c"} special["<enter>"] = []string{"1c", "9c"}
special["<esc>"] = []string{"01", "81"} special["<esc>"] = []string{"01", "81"}
special["<f1>"] = []string{"ff", "be"} special["<f1>"] = []string{"3b", "bb"}
special["<f2>"] = []string{"ff", "bf"} special["<f2>"] = []string{"3c", "bc"}
special["<f3>"] = []string{"ff", "c0"} special["<f3>"] = []string{"3d", "bd"}
special["<f4>"] = []string{"ff", "c1"} special["<f4>"] = []string{"3e", "be"}
special["<f5>"] = []string{"ff", "c2"} special["<f5>"] = []string{"3f", "bf"}
special["<f6>"] = []string{"ff", "c3"} special["<f6>"] = []string{"40", "c0"}
special["<f7>"] = []string{"ff", "c4"} special["<f7>"] = []string{"41", "c1"}
special["<f8>"] = []string{"ff", "c5"} special["<f8>"] = []string{"42", "c2"}
special["<f9>"] = []string{"ff", "c6"} special["<f9>"] = []string{"43", "c3"}
special["<f10>"] = []string{"ff", "c7"} special["<f10>"] = []string{"44", "c4"}
special["<f11>"] = []string{"ff", "c8"}
special["<f12>"] = []string{"ff", "c9"}
special["<return>"] = []string{"1c", "9c"} special["<return>"] = []string{"1c", "9c"}
special["<tab>"] = []string{"0f", "8f"} special["<tab>"] = []string{"0f", "8f"}
shiftedChars := "~!@#$%^&*()_+{}|:\"<>?" shiftedChars := "~!@#$%^&*()_+{}|:\"<>?"
// Scancodes reference: http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html
scancodeIndex := make(map[string]uint) scancodeIndex := make(map[string]uint)
scancodeIndex["1234567890-="] = 0x02 scancodeIndex["1234567890-="] = 0x02
scancodeIndex["!@#$%^&*()_+"] = 0x02 scancodeIndex["!@#$%^&*()_+"] = 0x02