\r
#include "HexEditor.h"\r
\r
+/**\r
+ Initialization function for HBufferImage\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+ @retval EFI_LOAD_ERROR A load error occured.\r
+**/\r
EFI_STATUS\r
HBufferImageInit (\r
VOID\r
);\r
+\r
+/**\r
+ Cleanup function for HBufferImage\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+**/\r
EFI_STATUS\r
HBufferImageCleanup (\r
VOID\r
);\r
+\r
+/**\r
+ Refresh function for HBufferImage.\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+ @retval EFI_LOAD_ERROR A Load error occured.\r
+\r
+**/\r
EFI_STATUS\r
HBufferImageRefresh (\r
VOID\r
);\r
-EFI_STATUS\r
-HBufferImageHide (\r
- VOID\r
- );\r
+\r
+/**\r
+ Dispatch input to different handler\r
+\r
+ @param[in] Key The input key:\r
+ the keys can be:\r
+ ASCII KEY\r
+ Backspace/Delete\r
+ Direction key: up/down/left/right/pgup/pgdn\r
+ Home/End\r
+ INS\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+ @retval EFI_LOAD_ERROR A load error occured.\r
+ @retval EFI_OUT_OF_RESOURCES A Memory allocation failed.\r
+**/\r
EFI_STATUS\r
HBufferImageHandleInput (\r
- EFI_INPUT_KEY *\r
+ IN EFI_INPUT_KEY *Key\r
);\r
+\r
+/**\r
+ Backup function for HBufferImage. Only a few fields need to be backup. \r
+ This is for making the file buffer refresh as few as possible.\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+**/\r
EFI_STATUS\r
HBufferImageBackup (\r
VOID\r
);\r
\r
+/**\r
+ Read an image into a buffer friom a source.\r
+\r
+ @param[in] FileName Pointer to the file name. OPTIONAL and ignored if not FileTypeFileBuffer.\r
+ @param[in] DiskName Pointer to the disk name. OPTIONAL and ignored if not FileTypeDiskBuffer.\r
+ @param[in] DiskOffset Offset into the disk. OPTIONAL and ignored if not FileTypeDiskBuffer.\r
+ @param[in] DiskSize Size of the disk buffer. OPTIONAL and ignored if not FileTypeDiskBuffer.\r
+ @param[in] MemOffset Offset into the Memory. OPTIONAL and ignored if not FileTypeMemBuffer.\r
+ @param[in] MemSize Size of the Memory buffer. OPTIONAL and ignored if not FileTypeMemBuffer.\r
+ @param[in] BufferType The type of buffer to save. IGNORED.\r
+ @param[in] Recover TRUE for recovermode, FALSE otherwise.\r
+\r
+ @return EFI_SUCCESS The operation was successful.\r
+**/\r
EFI_STATUS\r
+EFIAPI\r
HBufferImageRead (\r
- IN CONST CHAR16 *,\r
- IN CONST CHAR16 *,\r
- IN UINTN,\r
- IN UINTN,\r
- IN UINTN,\r
- IN UINTN,\r
- IN EDIT_FILE_TYPE,\r
- IN BOOLEAN\r
+ IN CONST CHAR16 *FileName,\r
+ IN CONST CHAR16 *DiskName,\r
+ IN UINTN DiskOffset,\r
+ IN UINTN DiskSize,\r
+ IN UINTN MemOffset,\r
+ IN UINTN MemSize,\r
+ IN EDIT_FILE_TYPE BufferType,\r
+ IN BOOLEAN Recover\r
);\r
\r
-EFI_STATUS\r
-HBufferImageSave (\r
- IN CHAR16 *,\r
- IN CHAR16 *,\r
- IN UINTN,\r
- IN UINTN,\r
- IN UINTN,\r
- IN UINTN,\r
- IN EDIT_FILE_TYPE\r
- );\r
+/**\r
+ Save the current image.\r
\r
-INTN\r
-HBufferImageCharToHex (\r
- IN CHAR16\r
- );\r
+ @param[in] FileName Pointer to the file name. OPTIONAL and ignored if not FileTypeFileBuffer.\r
+ @param[in] DiskName Pointer to the disk name. OPTIONAL and ignored if not FileTypeDiskBuffer.\r
+ @param[in] DiskOffset Offset into the disk. OPTIONAL and ignored if not FileTypeDiskBuffer.\r
+ @param[in] DiskSize Size of the disk buffer. OPTIONAL and ignored if not FileTypeDiskBuffer.\r
+ @param[in] MemOffset Offset into the Memory. OPTIONAL and ignored if not FileTypeMemBuffer.\r
+ @param[in] MemSize Size of the Memory buffer. OPTIONAL and ignored if not FileTypeMemBuffer.\r
+ @param[in] BufferType The type of buffer to save. IGNORED.\r
\r
+ @return EFI_SUCCESS The operation was successful.\r
+**/\r
EFI_STATUS\r
-HBufferImageRestoreMousePosition (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImageRestorePosition (\r
- VOID\r
+HBufferImageSave (\r
+ IN CHAR16 *FileName,\r
+ IN CHAR16 *DiskName,\r
+ IN UINTN DiskOffset,\r
+ IN UINTN DiskSize,\r
+ IN UINTN MemOffset,\r
+ IN UINTN MemSize,\r
+ IN EDIT_FILE_TYPE BufferType\r
);\r
\r
+/**\r
+ According to cursor's file position, adjust screen display.\r
+\r
+ @param[in] NewFilePosRow Row of file position ( start from 1 ).\r
+ @param[in] NewFilePosCol Column of file position ( start from 1 ).\r
+ @param[in] HighBits Cursor will on high4 bits or low4 bits.\r
+**/\r
VOID\r
HBufferImageMovePosition (\r
- IN UINTN,\r
- IN UINTN,\r
- IN BOOLEAN\r
+ IN UINTN NewFilePosRow,\r
+ IN UINTN NewFilePosCol,\r
+ IN BOOLEAN HighBits\r
);\r
\r
-EFI_STATUS\r
-HBufferImageHandleInput (\r
- EFI_INPUT_KEY *\r
- );\r
\r
-HEFI_EDITOR_LINE *\r
-HBufferImageCreateLine (\r
- VOID\r
- );\r
+/**\r
+ Create a new line and append it to the line list.\r
+ Fields affected:\r
+ NumLines\r
+ Lines \r
\r
-EFI_STATUS\r
-HBufferImageDoCharInput (\r
- CHAR16\r
- );\r
-EFI_STATUS\r
-HBufferImageAddChar (\r
- CHAR16\r
- );\r
+ @retval NULL create line failed.\r
+ @return the line created.\r
\r
-BOOLEAN\r
-HInCurrentScreen (\r
- UINTN\r
- );\r
-BOOLEAN\r
-HAboveCurrentScreen (\r
- UINTN\r
- );\r
-BOOLEAN\r
-HUnderCurrentScreen (\r
- UINTN\r
- );\r
-\r
-EFI_STATUS\r
-HBufferImageScrollRight (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImageScrollLeft (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImageScrollDown (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImageScrollUp (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImagePageUp (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImagePageDown (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImageHome (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImageEnd (\r
- VOID\r
- );\r
-\r
-EFI_STATUS\r
-HBufferImageDoBackspace (\r
- VOID\r
- );\r
-EFI_STATUS\r
-HBufferImageDoDelete (\r
- VOID\r
- );\r
-\r
-EFI_STATUS\r
-HBufferImageCutLine (\r
- HEFI_EDITOR_LINE **\r
- );\r
-EFI_STATUS\r
-HBufferImagePasteLine (\r
+**/\r
+HEFI_EDITOR_LINE *\r
+HBufferImageCreateLine (\r
VOID\r
);\r
\r
-EFI_STATUS\r
-HBufferImageGetFileInfo (\r
- EFI_FILE_HANDLE,\r
- CHAR16 *,\r
- EFI_FILE_INFO **\r
- );\r
-\r
-EFI_STATUS\r
-HBufferImageSearch (\r
- CHAR16 *,\r
- UINTN\r
- );\r
-EFI_STATUS\r
-HBufferImageReplace (\r
- CHAR16 *,\r
- UINTN\r
- );\r
-\r
-/**
+/**\r
Free the current image.\r
\r
@retval EFI_SUCCESS The operation was successful.\r
VOID\r
);\r
\r
+/**\r
+ Delete character from buffer.\r
+ \r
+ @param[in] Pos Position, Pos starting from 0.\r
+ @param[in] Count The Count of characters to delete.\r
+ @param[out] DeleteBuffer The DeleteBuffer.\r
+\r
+ @retval EFI_SUCCESS Success \r
+**/\r
EFI_STATUS\r
HBufferImageDeleteCharacterFromBuffer (\r
- IN UINTN,\r
- IN UINTN,\r
- UINT8 *\r
+ IN UINTN Pos,\r
+ IN UINTN Count,\r
+ OUT UINT8 *DeleteBuffer\r
);\r
\r
+/**\r
+ Add character to buffer, add before pos.\r
+\r
+ @param[in] Pos Position, Pos starting from 0.\r
+ @param[in] Count Count of characters to add.\r
+ @param[in] AddBuffer Add buffer.\r
+\r
+ @retval EFI_SUCCESS Success. \r
+**/\r
EFI_STATUS\r
HBufferImageAddCharacterToBuffer (\r
- IN UINTN,\r
- IN UINTN,\r
- UINT8 *\r
+ IN UINTN Pos,\r
+ IN UINTN Count,\r
+ IN UINT8 *AddBuffer\r
);\r
\r
+/**\r
+ Change the raw buffer to a list of lines for the UI.\r
+ \r
+ @param[in] Buffer The pointer to the buffer to fill.\r
+ @param[in] Bytes The size of the buffer in bytes.\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+ @retval EFI_OUT_OF_RESOURCES A memory allocation failed.\r
+**/\r
EFI_STATUS\r
+EFIAPI\r
HBufferImageBufferToList (\r
- IN VOID *,\r
- IN UINTN\r
+ IN VOID *Buffer,\r
+ IN UINTN Bytes\r
);\r
\r
+/**\r
+ Change the list of lines from the UI to a raw buffer.\r
+ \r
+ @param[in] Buffer The pointer to the buffer to fill.\r
+ @param[in] Bytes The size of the buffer in bytes.\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+**/\r
EFI_STATUS\r
+EFIAPI\r
HBufferImageListToBuffer (\r
- IN VOID *,\r
- IN UINTN\r
+ IN VOID *Buffer,\r
+ IN UINTN Bytes\r
);\r
\r
+/**\r
+ Move the mouse in the image buffer.\r
+\r
+ @param[in] TextX The x-coordinate.\r
+ @param[in] TextY The y-coordinate.\r
+**/\r
VOID\r
+EFIAPI\r
HBufferImageAdjustMousePosition (\r
- INT32,\r
- INT32\r
+ IN INT32 TextX,\r
+ IN INT32 TextY\r
);\r
\r
+/**\r
+ Function to decide if a column number is stored in the high bits.\r
+\r
+ @param[in] Column The column to examine.\r
+ @param[out] FCol The actual column number.\r
+\r
+ @retval TRUE The actual column was in high bits and is now in FCol.\r
+ @retval FALSE There was not a column number in the high bits.\r
+**/\r
BOOLEAN\r
HBufferImageIsAtHighBits (\r
- UINTN,\r
- UINTN *\r
- ) ;\r
-\r
-EFI_STATUS\r
-HBufferImageCutLine (\r
- HEFI_EDITOR_LINE **\r
+ IN UINTN Column,\r
+ OUT UINTN *FCol\r
);\r
\r
+/**\r
+ Get the size of the open buffer.\r
+\r
+ @retval The size in bytes.\r
+**/\r
UINTN\r
HBufferImageGetTotalSize (\r
VOID\r
);\r
\r
-BOOLEAN\r
-HBufferImageIsInSelectedArea (\r
- UINTN,\r
- UINTN\r
- );\r
-\r
#endif\r