/** @file String support Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include "Ui.h" #include "FrontPage.h" EFI_HII_HANDLE gStringPackHandle; EFI_GUID mUiStringPackGuid = { 0x136a3048, 0x752a, 0x4bf6, { 0xa7, 0x57, 0x9, 0x36, 0x11, 0x95, 0x38, 0xed } }; EFI_GUID mFontPackageGuid = { 0x78941450, 0x90ab, 0x4fb1, {0xb7, 0x5f, 0x58, 0x92, 0x14, 0xe2, 0x4a, 0xc} }; #define NARROW_GLYPH_NUMBER 8 #define WIDE_GLYPH_NUMBER 75 typedef struct { /// /// This 4-bytes total array length is required by HiiAddPackages() /// UINT32 Length; // // This is the Font package definition // EFI_HII_PACKAGE_HEADER Header; UINT16 NumberOfNarrowGlyphs; UINT16 NumberOfWideGlyphs; EFI_NARROW_GLYPH NarrowArray[NARROW_GLYPH_NUMBER]; EFI_WIDE_GLYPH WideArray[WIDE_GLYPH_NUMBER]; } FONT_PACK_BIN; FONT_PACK_BIN mFontBin = { sizeof (FONT_PACK_BIN), { sizeof (FONT_PACK_BIN) - sizeof (UINT32), EFI_HII_PACKAGE_SIMPLE_FONTS, }, NARROW_GLYPH_NUMBER, 0, { // Narrow Glyphs { 0x05d0, 0x00, { 0x00, 0x00, 0x00, 0x4E, 0x6E, 0x62, 0x32, 0x32, 0x3C, 0x68, 0x4C, 0x4C, 0x46, 0x76, 0x72, 0x00, 0x00, 0x00, 0x00 } }, { 0x05d1, 0x00, { 0x00, 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00 } }, { 0x05d2, 0x00, { 0x00, 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x3E, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00 } }, { 0x05d3, 0x00, { 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00 } }, { 0x05d4, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00 } }, { 0x05d5, 0x00, { 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00 } }, { 0x05d6, 0x00, { 0x00, 0x00, 0x00, 0x38, 0x38, 0x1E, 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 } }, { 0x0000, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } } }; /** Initialize HII global accessor for string support. **/ VOID InitializeStringSupport ( VOID ) { gStringPackHandle = HiiAddPackages ( &mUiStringPackGuid, gImageHandle, UiAppStrings, NULL ); ASSERT (gStringPackHandle != NULL); } /** Remove the string package. **/ VOID UninitializeStringSupport ( VOID ) { HiiRemovePackages (gStringPackHandle); } /** Get string by string id from HII Interface @param Id String ID. @retval CHAR16 * String from ID. @retval NULL If error occurs. **/ CHAR16 * GetStringById ( IN EFI_STRING_ID Id ) { return HiiGetString (gStringPackHandle, Id, NULL); } /** Routine to export glyphs to the HII database. This is in addition to whatever is defined in the Graphics Console driver. **/ EFI_HII_HANDLE ExportFonts ( VOID ) { return HiiAddPackages ( &mFontPackageGuid, gImageHandle, &mFontBin, NULL ); }