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