mirror of https://github.com/acidanthera/audk.git
323 lines
5.4 KiB
C
323 lines
5.4 KiB
C
/** @file
|
|
String support
|
|
|
|
Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>
|
|
This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
**/
|
|
|
|
#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
|
|
);
|
|
}
|