VOID MapKeys(EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *pTxtInEx)
{
                UINTN index;

                Print(L"\nPress a key... [ ESC to exit ]\n");
                EFI_KEY_DATA  Key;

                if (pTxtInEx) {
                                do
                                {
                                                pTxtInEx->Reset(pTxtInEx, 
FALSE);
                                                gBS->WaitForEvent(1, 
&pTxtInEx->WaitForKeyEx, &index);
                                                
pTxtInEx->ReadKeyStrokeEx(pTxtInEx, &Key);
                                                Print(L"\n");
                                                PrintKeyData(&Key, TRUE, FALSE);
                                                DumpHex(2, 0, HOTKEY_LEN, &Key, 
FALSE, FALSE, -1);
                                } while (SCAN_ESC != Key.Key.ScanCode);
                }
                else {
                                EFI_INPUT_KEY EnteredKey;
                                do
                                {
                                                gST->ConIn->Reset(gST->ConIn, 
FALSE);
                                                gBS->WaitForEvent(1, 
&gST->ConIn->WaitForKey, &index);
                                                
gST->ConIn->ReadKeyStroke(gST->ConIn, &EnteredKey);
                                                //Print(L"**You pressed: scan 
code:%04x char:%04X (%c)**\n", EnteredKey.ScanCode, EnteredKey.UnicodeChar, 
(CHAR8)EnteredKey.UnicodeChar);
                                                Key.Key.ScanCode = 
EnteredKey.ScanCode;
                                                Key.Key.UnicodeChar = 
EnteredKey.UnicodeChar;
                                                Key.KeyState.KeyShiftState = 
0x00000000;
                                                Key.KeyState.KeyToggleState = 
0x00;
                                                PrintKeyData(&Key, FALSE, 
FALSE);
                                                DumpHex(2, 0, EFIKEY_LEN, 
&EnteredKey, FALSE, FALSE, -1);
                                } while (SCAN_ESC != EnteredKey.ScanCode);
                }
}

From: Rafael Machado [mailto:[email protected]]
Sent: Wednesday, October 28, 2015 8:01 AM
To: Miller, Carl H; [email protected]
Subject: Re: [edk2] simple_text_input_ex_ protocol typematic rate

Could you send part of the code where this is happening ?
It'll be easier to help on this case, since it seems to be a problem on the 
application.

Thanks
Rafael

Em seg, 26 de out de 2015 às 17:19, Miller, Carl H 
<[email protected]<mailto:[email protected]>> escreveu:
I have a an efi app I boot to as bootx64.efi and it waits for keyboard input 
(using either simple_text_input_protocol or simple_text_input_ex_ protocol)

for the most part (i.e., on most systems) it works fine, but recently i have 
tried it on a newer toshiba laptop
and have issues indicatative of keyboard sensitivity, that is I receive 
multiple of the same character if the key is not struck extremely staccato, 
that is
i can not hold the key down at all else i get repeating characters.

oddly, this is not an issue if I boot to a shell, in that case the repeat rate 
appears normal.

I have tried both the simple_text_input_ protocol and the simple_text_input_ex_ 
protocol with same results.

does anyone have any ideas what might be causing this behaviour in my app but 
not in a shell?

thanks.
carl
_______________________________________________
edk2-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to