alder_lake_bios/Insyde/InsydeSetupPkg/Include/Library/H2ODisplayEngineLib.h

276 lines
6.4 KiB
C

/** @file
H2ODisplayEngineLib library include file
;******************************************************************************
;* Copyright (c) 2015 - 2020, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#ifndef _H2O_DISPLAY_ENGINE_LIB_H_
#define _H2O_DISPLAY_ENGINE_LIB_H_
#include <Uefi/UefiInternalFormRepresentation.h>
#include <Protocol/GraphicsOutput.h>
#include <Protocol/H2OFormBrowser.h>
#include <Protocol/DisplayProtocol.h>
#define IN_RANGE(i, min, max) ((((i) >= (min)) && ((i) <= (max))) ? TRUE : FALSE)
#define IS_OVERLAP(Start1, End1, Start2, End2) (((End1 < Start2) || (Start1 > End2)) ? FALSE : TRUE)
#define TO_LOWER_UNICODE_CHAR(character) ((character >= L'A' && character <= L'Z') ? ((CHAR16) (character - L'A' + L'a')) : character)
typedef enum {
YearItem,
MonthItem,
DayItem,
HourItem,
MinuteItem,
SecondItem,
UnknownItem
} H2O_DATE_TIME_ITEM;
EFI_STATUS
SendChangeQNotify (
IN H2O_PAGE_ID PageId,
IN EFI_QUESTION_ID QuestionId,
IN EFI_HII_VALUE *HiiValue
);
EFI_STATUS
SendChangingQNotify (
IN EFI_HII_VALUE *BodyHiiValue,
IN EFI_HII_VALUE *ButtonHiiValue
);
EFI_STATUS
SendShutDNotify (
VOID
);
EFI_STATUS
SendSelectQNotify (
IN H2O_PAGE_ID PageId,
IN EFI_QUESTION_ID QuestionId,
IN EFI_IFR_OP_HEADER *IfrOpCode
);
EFI_STATUS
SendOpenQNotify (
IN H2O_PAGE_ID PageId,
IN EFI_QUESTION_ID QuestionId,
IN EFI_IFR_OP_HEADER *IfrOpCode
);
EFI_STATUS
SendSelectPNotify (
IN H2O_PAGE_ID PageId
);
EFI_STATUS
SendDefaultNotify (
VOID
);
EFI_STATUS
SendSubmitExitNotify (
VOID
);
EFI_STATUS
SendDiscardExitNotify (
VOID
);
EFI_STATUS
SendSubmitNotify (
VOID
);
EFI_STATUS
SendDiscardNotify (
VOID
);
EFI_STATUS
SendRefreshNotify (
VOID
);
EFI_STATUS
SendShowHelpNotify (
VOID
);
EFI_STATUS
SendHotKeyNotify (
IN HOT_KEY_INFO *HotKey
);
BOOLEAN
IsDecChar (
IN CHAR16 UnicodeChar
);
BOOLEAN
IsHexChar (
IN CHAR16 UnicodeChar
);
BOOLEAN
IsHexString (
IN CHAR16 *Str
);
BOOLEAN
IsVisibleChar (
IN CHAR16 UnicodeChar
);
BOOLEAN
IsDayValid (
IN EFI_TIME *EfiTime
);
BOOLEAN
IsTimeValid (
IN EFI_TIME *EfiTime
);
BOOLEAN
IsLeapYear (
IN UINT16 Year
);
BOOLEAN
IsRootPage (
VOID
);
BOOLEAN
IsEditValueValid (
IN UINT64 EditValue,
IN UINT64 MinValue,
IN UINT64 MaxValue,
IN BOOLEAN IsHex
);
UINT64
IfrNumericConvertStrToValue (
IN UINT8 NumericFlags,
IN CHAR16 *NumericStr
);
UINTN
IfrNumericGetValueSize (
IN UINT8 NumericFlags
);
BOOLEAN
IfrNumericIsValueInRange (
IN UINT8 NumericFlags,
IN UINT64 Value,
IN UINT64 Minimum,
IN UINT64 Maximum
);
BOOLEAN
IfrNumericIsEditStrValid (
IN UINT8 NumericFlags,
IN CHAR16 *EditStr,
IN UINT64 Minimum,
IN UINT64 Maximum
);
BOOLEAN
IfrNumericIsEmptyStr (
IN UINT8 NumericFlags,
IN CHAR16 *ValueStr
);
CHAR16 *
IfrNumericPrintFormattedNumber (
IN H2O_FORM_BROWSER_Q *Question
);
EFI_STATUS
TransferEfiTimeToHiiValue (
IN BOOLEAN IsDate,
IN EFI_TIME *EfiTime,
OUT EFI_HII_VALUE *HiiValue
);
EFI_STATUS
TransferHiiValueToEfiTime (
IN EFI_HII_VALUE *HiiValue,
OUT EFI_TIME *EfiTime
);
EFI_STATUS
GetNextDateTimeValue (
IN H2O_DATE_TIME_ITEM DateTimeItem,
IN BOOLEAN Increasement,
IN OUT EFI_TIME *EfiTime
);
EFI_STATUS
GetSetupMenuInfoByPage (
IN H2O_FORM_BROWSER_P *Page,
OUT SETUP_MENU_INFO *SetupMenuInfo
);
VOID
FreeSetupMenuData (
IN H2O_FORM_BROWSER_SM *SetupMenuData
);
EFI_STATUS
GetNextQuestionValue (
IN H2O_FORM_BROWSER_Q *Question,
IN BOOLEAN GoDown,
OUT EFI_HII_VALUE *ResultHiiValue
);
UINT8
GetOpCodeByDialogType (
IN UINT32 DialogType
);
UINT64
GetHiiBufferValue (
IN UINT8 *Buffer,
IN UINT8 Type,
IN UINT32 Index
);
VOID
SetHiiBufferValue (
IN UINT8 *Buffer,
IN UINT8 Type,
IN UINT32 Index,
IN UINT64 Value
);
VOID
EFIAPI
GetDisplayEngineResolutionByPcd (
IN EFI_GUID *DisplayEngineGuid,
IN UINT32 *HorizontalResolution,
IN UINT32 *VerticalResolution
);
EFI_STATUS
GetSelectedHotKeyInfoByKeyData (
IN EFI_KEY_DATA *KeyData,
IN HOT_KEY_INFO *HotKeyInfoList,
OUT HOT_KEY_INFO *SelectedHotKeyInfo
);
#endif