/** @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 #include #include #include #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