Home | History | Annotate | Download | only in Protocol
      1 /** @file
      2   The Platform Logo Protocol defines the interface to get the Platform logo
      3   image with the display attribute.
      4 
      5 Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
      6 This program and the accompanying materials are licensed and made available under
      7 the terms and conditions of the BSD License that accompanies this distribution.
      8 The full text of the license may be found at
      9 http://opensource.org/licenses/bsd-license.php.
     10 
     11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14 **/
     15 
     16 #ifndef __PLATFORM_LOGO_H__
     17 #define __PLATFORM_LOGO_H__
     18 
     19 //
     20 // GUID for EDKII Platform Logo Protocol
     21 //
     22 #define EDKII_PLATFORM_LOGO_PROTOCOL_GUID \
     23   { 0x9b517978, 0xeba1, 0x44e7, { 0xba, 0x65, 0x7c, 0x2c, 0xd0, 0x8b, 0xf8, 0xe9 } }
     24 
     25 typedef struct _EDKII_PLATFORM_LOGO_PROTOCOL EDKII_PLATFORM_LOGO_PROTOCOL;
     26 
     27 typedef enum {
     28   ImageFormatUnknown,
     29   ImageFormatBmp,
     30   ImageFormatJpeg,
     31   ImageFormatTiff,
     32   ImageFormatGif
     33 } IMAGE_FORMAT;
     34 
     35 typedef enum {
     36   EdkiiPlatformLogoDisplayAttributeLeftTop,
     37   EdkiiPlatformLogoDisplayAttributeCenterTop,
     38   EdkiiPlatformLogoDisplayAttributeRightTop,
     39   EdkiiPlatformLogoDisplayAttributeCenterRight,
     40   EdkiiPlatformLogoDisplayAttributeRightBottom,
     41   EdkiiPlatformLogoDisplayAttributeCenterBottom,
     42   EdkiiPlatformLogoDisplayAttributeLeftBottom,
     43   EdkiiPlatformLogoDisplayAttributeCenterLeft,
     44   EdkiiPlatformLogoDisplayAttributeCenter
     45 } EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE;
     46 
     47 /**
     48 
     49   Load a platform logo image and return its data and attributes.
     50 
     51   @param This              The pointer to this protocol instance.
     52   @param Instance          The visible image instance is found.
     53   @param Format            The format of the image. Examples: BMP, JPEG.
     54   @param ImageData         The image data for the badge file. Currently only
     55                            supports the .bmp file format.
     56   @param ImageSize         The size of the image returned.
     57   @param Attribute         The display attributes of the image returned.
     58   @param OffsetX           The X offset of the image regarding the Attribute.
     59   @param OffsetY           The Y offset of the image regarding the Attribute.
     60 
     61   @retval EFI_SUCCESS      The image was fetched successfully.
     62   @retval EFI_NOT_FOUND    The specified image could not be found.
     63 
     64 **/
     65 typedef
     66 EFI_STATUS
     67 (EFIAPI *EDKII_PLATFORM_LOGO_GET_IMAGE)(
     68   IN     EDKII_PLATFORM_LOGO_PROTOCOL          *This,
     69   IN OUT UINT32                                *Instance,
     70      OUT IMAGE_FORMAT                          *Format,
     71      OUT UINT8                                 **ImageData,
     72      OUT UINTN                                 *ImageSize,
     73      OUT EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE *Attribute,
     74      OUT INTN                                  *OffsetX,
     75      OUT INTN                                  *OffsetY
     76 );
     77 
     78 
     79 struct _EDKII_PLATFORM_LOGO_PROTOCOL {
     80   EDKII_PLATFORM_LOGO_GET_IMAGE GetImage;
     81 };
     82 
     83 
     84 extern EFI_GUID gEdkiiPlatformLogoProtocolGuid;
     85 
     86 #endif
     87