]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add HII animation related definitions into MdePkg.
authorrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 24 Sep 2009 06:19:13 +0000 (06:19 +0000)
committerrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 24 Sep 2009 06:19:13 +0000 (06:19 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9308 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Uefi/UefiInternalFormRepresentation.h

index 38004789c9f3aa99d63e950deb362c75515cece8..b661587fcebf8069b19042afa2b4ef1d98f26af8 100644 (file)
@@ -13,7 +13,7 @@
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
 \r
   @par Revision Reference:\r
-  These definitions are from UEFI2.1.\r
+  These definitions are from UEFI 2.1 and 2.2.\r
 \r
 **/\r
 \r
@@ -32,6 +32,7 @@ typedef UINT16  EFI_QUESTION_ID;
 typedef UINT16  EFI_STRING_ID;\r
 typedef UINT16  EFI_FORM_ID;\r
 typedef UINT16  EFI_VARSTORE_ID;\r
+typedef UINT16  EFI_ANIMATION_ID;\r
 \r
 typedef UINT16  EFI_DEFAULT_ID;\r
 \r
@@ -661,6 +662,7 @@ typedef union {
 #define EFI_IFR_STRING_OP              0x1C\r
 #define EFI_IFR_REFRESH_OP             0x1D\r
 #define EFI_IFR_DISABLE_IF_OP          0x1E\r
+#define EFI_IFR_ANIMATION_OP           0x1F\r
 #define EFI_IFR_TO_LOWER_OP            0x20\r
 #define EFI_IFR_TO_UPPER_OP            0x21\r
 #define EFI_IFR_MAP_OP                 0x22\r
@@ -1692,6 +1694,293 @@ typedef struct {
 #define EFI_RIGHT_LOGO_MODIFIER          0x0028\r
 #define EFI_MENU_MODIFIER                0x0029\r
 \r
+///\r
+/// Animation IFR opcode\r
+///\r
+typedef struct _EFI_IFR_ANIMATION {\r
+  ///\r
+  /// Standard opcode header, where Header.OpCode is \r
+  /// EFI_IFR_ANIMATION_OP.\r
+  ///\r
+  EFI_IFR_OP_HEADER        Header;\r
+  ///\r
+  /// Animation identifier in the HII database.\r
+  ///\r
+  EFI_ANIMATION_ID         Id;\r
+} EFI_IFR_ANIMATION;\r
+\r
+///\r
+/// HII animation package header\r
+///\r
+typedef struct _EFI_HII_ANIMATION_PACKAGE_HDR {\r
+  ///\r
+  /// Standard package header, where Header.Type = EFI_HII_PACKAGE_ANIMATIONS.\r
+  ///\r
+  EFI_HII_PACKAGE_HEADER  Header;\r
+  ///\r
+  /// Offset, relative to this header, of the animation information. If \r
+  /// this is zero, then there are no animation sequences in the package.\r
+  ///\r
+  UINT32                  AnimationInfoOffset;\r
+} EFI_HII_ANIMATION_PACKAGE_HDR;\r
+\r
+///\r
+/// Animation information is encoded as a series of blocks,\r
+/// with each block prefixed by a single byte header EFI_HII_ANIMATION_BLOCK\r
+///\r
+typedef struct _EFI_HII_ANIMATION_BLOCK {\r
+  UINT8  BlockType;\r
+  //UINT8  BlockBody[];\r
+} EFI_HII_ANIMATION_BLOCK;\r
+\r
+///\r
+/// Animation block types\r
+///\r
+#define EFI_HII_AIBT_END                 0x00\r
+#define EFI_HII_AIBT_OVERLAY_IMAGES      0x10\r
+#define EFI_HII_AIBT_CLEAR_IMAGES        0x11\r
+#define EFI_HII_AIBT_RESTORE_SCRN        0x12\r
+#define EFI_HII_AIBT_OVERLAY_IMAGES_LOOP 0x18\r
+#define EFI_HII_AIBT_CLEAR_IMAGES_LOOP   0x19\r
+#define EFI_HII_AIBT_RESTORE_SCRN_LOOP   0x1A\r
+#define EFI_HII_AIBT_DUPLICATE           0x20\r
+#define EFI_HII_AIBT_SKIP2               0x21\r
+#define EFI_HII_AIBT_SKIP1               0x22\r
+#define EFI_HII_AIBT_EXT1                0x30\r
+#define EFI_HII_AIBT_EXT2                0x31\r
+#define EFI_HII_AIBT_EXT4                0x32\r
+\r
+///\r
+/// Extended block headers used for variable sized animation records\r
+/// which need an explicit length.\r
+///\r
+\r
+typedef struct _EFI_HII_AIBT_EXT1_BLOCK  {\r
+  ///\r
+  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT1\r
+  ///\r
+  EFI_HII_ANIMATION_BLOCK  Header;\r
+  ///\r
+  /// The block type\r
+  ///\r
+  UINT8                    BlockType2;\r
+  ///\r
+  /// Size of the animation block, in bytes, including the animation block header.\r
+  ///\r
+  UINT8                    Length;\r
+} EFI_HII_AIBT_EXT1_BLOCK;\r
+\r
+typedef struct _EFI_HII_AIBT_EXT2_BLOCK {\r
+  ///\r
+  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT2\r
+  ///\r
+  EFI_HII_ANIMATION_BLOCK  Header;\r
+  ///\r
+  /// The block type\r
+  ///\r
+  UINT8                    BlockType2;\r
+  ///\r
+  /// Size of the animation block, in bytes, including the animation block header.\r
+  ///\r
+  UINT16                   Length;\r
+} EFI_HII_AIBT_EXT2_BLOCK;\r
+\r
+typedef struct _EFI_HII_AIBT_EXT4_BLOCK {\r
+  ///\r
+  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT4\r
+  ///\r
+  EFI_HII_ANIMATION_BLOCK  Header;\r
+  ///\r
+  /// The block type\r
+  ///\r
+  UINT8                    BlockType2;\r
+  ///\r
+  /// Size of the animation block, in bytes, including the animation block header.\r
+  ///\r
+  UINT32                   Length;\r
+} EFI_HII_AIBT_EXT4_BLOCK;\r
+\r
+typedef struct _EFI_HII_ANIMATION_CELL {\r
+  ///\r
+  /// The X offset from the upper left hand corner of the logical \r
+  /// window to position the indexed image.\r
+  ///\r
+  UINT16                    OffsetX;\r
+  ///\r
+  /// The Y offset from the upper left hand corner of the logical \r
+  /// window to position the indexed image.\r
+  ///\r
+  UINT16                    OffsetY;\r
+  ///\r
+  /// The image to display at the specified offset from the upper left \r
+  /// hand corner of the logical window.\r
+  ///\r
+  EFI_IMAGE_ID              ImageId;\r
+  ///\r
+  /// The number of milliseconds to delay after displaying the indexed \r
+  /// image and before continuing on to the next linked image.  If value \r
+  /// is zero, no delay.\r
+  ///\r
+  UINT16                    Delay;\r
+} EFI_HII_ANIMATION_CELL;\r
+\r
+///\r
+/// An animation block to describe an animation sequence that does not cycle, and\r
+/// where one image is simply displayed over the previous image.\r
+///\r
+typedef struct _EFI_HII_AIBT_OVERLAY_IMAGES {\r
+  ///\r
+  /// This is image that is to be reference by the image protocols, if the \r
+  /// animation function is not supported or disabled. This image can \r
+  /// be one particular image from the animation sequence (if any one \r
+  /// of the animation frames has a complete image) or an alternate \r
+  /// image that can be displayed alone. If the value is zero, no image \r
+  /// is displayed.\r
+  ///\r
+  EFI_IMAGE_ID            DftImageId;\r
+  ///\r
+  /// The overall width of the set of images (logical window width).\r
+  ///\r
+  UINT16                  Width;\r
+  ///\r
+  /// The overall height of the set of images (logical window height).\r
+  ///\r
+  UINT16                  Height;\r
+  ///\r
+  /// The number of EFI_HII_ANIMATION_CELL contained in the \r
+  /// animation sequence.\r
+  ///\r
+  UINT16                  CellCount;\r
+  ///\r
+  /// An array of CellCount animation cells.\r
+  ///\r
+  EFI_HII_ANIMATION_CELL  AnimationCell[1];\r
+} EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK;\r
+\r
+///\r
+/// An animation block to describe an animation sequence that does not cycle,\r
+/// and where the logical window is cleared to the specified color before \r
+/// the next image is displayed.\r
+///\r
+typedef struct _EFI_HII_AIBT_CLEAR_IMAGES_BLOCK {\r
+  ///\r
+  /// This is image that is to be reference by the image protocols, if the \r
+  /// animation function is not supported or disabled. This image can \r
+  /// be one particular image from the animation sequence (if any one \r
+  /// of the animation frames has a complete image) or an alternate \r
+  /// image that can be displayed alone. If the value is zero, no image \r
+  /// is displayed.\r
+  ///\r
+  EFI_IMAGE_ID       DftImageId;\r
+  ///\r
+  /// The overall width of the set of images (logical window width).\r
+  ///\r
+  UINT16             Width;\r
+  ///\r
+  /// The overall height of the set of images (logical window height).\r
+  ///\r
+  UINT16             Height;\r
+  ///\r
+  /// The number of EFI_HII_ANIMATION_CELL contained in the \r
+  /// animation sequence.\r
+  ///\r
+  UINT16             CellCount;\r
+  ///\r
+  /// The color to clear the logical window to before displaying the \r
+  /// indexed image.\r
+  ///\r
+  EFI_HII_RGB_PIXEL  BackgndColor;\r
+  ///\r
+  /// An array of CellCount animation cells.\r
+  ///\r
+  EFI_HII_ANIMATION_CELL AnimationCell[1];\r
+} EFI_HII_AIBT_CLEAR_IMAGES_BLOCK;\r
+\r
+///\r
+/// An animation block to describe an animation sequence that does not cycle,\r
+/// and where the screen is restored to the original state before the next \r
+/// image is displayed.\r
+///\r
+typedef struct _EFI_HII_AIBT_RESTORE_SCRN_BLOCK {\r
+  ///\r
+  /// This is image that is to be reference by the image protocols, if the \r
+  /// animation function is not supported or disabled. This image can \r
+  /// be one particular image from the animation sequence (if any one \r
+  /// of the animation frames has a complete image) or an alternate \r
+  /// image that can be displayed alone. If the value is zero, no image \r
+  /// is displayed.\r
+  ///\r
+  EFI_IMAGE_ID            DftImageId;\r
+  ///\r
+  /// The overall width of the set of images (logical window width).\r
+  ///\r
+  UINT16                  Width;\r
+  ///\r
+  /// The overall height of the set of images (logical window height).\r
+  ///\r
+  UINT16                  Height;\r
+  ///\r
+  /// The number of EFI_HII_ANIMATION_CELL contained in the \r
+  /// animation sequence.\r
+  ///\r
+  UINT16                  CellCount;\r
+  ///\r
+  /// An array of CellCount animation cells.\r
+  ///\r
+  EFI_HII_ANIMATION_CELL  AnimationCell[1];\r
+} EFI_HII_AIBT_RESTORE_SCRN_BLOCK;\r
+\r
+///\r
+/// An animation block to describe an animation sequence that continuously cycles,\r
+/// and where one image is simply displayed over the previous image.\r
+///\r
+typedef EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK  EFI_HII_AIBT_OVERLAY_IMAGES_LOOP_BLOCK;\r
+\r
+///\r
+/// An animation block to describe an animation sequence that continuously cycles,\r
+/// and where the logical window is cleared to the specified color before \r
+/// the next image is displayed.\r
+///\r
+typedef EFI_HII_AIBT_CLEAR_IMAGES_BLOCK    EFI_HII_AIBT_CLEAR_IMAGES_LOOP_BLOCK;\r
+\r
+///\r
+/// An animation block to describe an animation sequence that continuously cycles,\r
+/// and where the screen is restored to the original state before \r
+/// the next image is displayed.\r
+///\r
+typedef EFI_HII_AIBT_RESTORE_SCRN_BLOCK    EFI_HII_AIBT_RESTORE_SCRN_LOOP_BLOCK;\r
+\r
+///\r
+/// Assigns a new character value to a previously defined animation sequence.\r
+///\r
+typedef struct _EFI_HII_AIBT_DUPLICATE_BLOCK {\r
+  ///\r
+  /// The previously defined animation ID with the exact same \r
+  /// animation information.\r
+  ///\r
+  EFI_ANIMATION_ID  AnimationId;\r
+} EFI_HII_AIBT_DUPLICATE_BLOCK;\r
+\r
+///\r
+/// Skips animation IDs.\r
+///\r
+typedef struct _EFI_HII_AIBT_SKIP1_BLOCK {\r
+  ///\r
+  /// The unsigned 8-bit value to add to AnimationIdCurrent.\r
+  ///\r
+  UINT8  SkipCount;\r
+} EFI_HII_AIBT_SKIP1_BLOCK;\r
+\r
+///\r
+/// Skips animation IDs.\r
+///\r
+typedef struct _EFI_HII_AIBT_SKIP2_BLOCK {\r
+  ///\r
+  /// The unsigned 16-bit value to add to AnimationIdCurrent.\r
+  ///\r
+  UINT16  SkipCount;\r
+} EFI_HII_AIBT_SKIP2_BLOCK;\r
+\r
 #pragma pack()\r
 \r
 \r