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 - 2016, 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 #include <Protocol/HiiImage.h>
20 
21 //
22 // GUID for EDKII Platform Logo Protocol
23 //
24 #define EDKII_PLATFORM_LOGO_PROTOCOL_GUID \
25   { 0x53cd299f, 0x2bc1, 0x40c0, { 0x8c, 0x07, 0x23, 0xf6, 0x4f, 0xdb, 0x30, 0xe0 } }
26 
27 typedef struct _EDKII_PLATFORM_LOGO_PROTOCOL EDKII_PLATFORM_LOGO_PROTOCOL;
28 
29 typedef enum {
30   EdkiiPlatformLogoDisplayAttributeLeftTop,
31   EdkiiPlatformLogoDisplayAttributeCenterTop,
32   EdkiiPlatformLogoDisplayAttributeRightTop,
33   EdkiiPlatformLogoDisplayAttributeCenterRight,
34   EdkiiPlatformLogoDisplayAttributeRightBottom,
35   EdkiiPlatformLogoDisplayAttributeCenterBottom,
36   EdkiiPlatformLogoDisplayAttributeLeftBottom,
37   EdkiiPlatformLogoDisplayAttributeCenterLeft,
38   EdkiiPlatformLogoDisplayAttributeCenter
39 } EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE;
40 
41 /**
42 
43   Load a platform logo image and return its data and attributes.
44 
45   @param This              The pointer to this protocol instance.
46   @param Instance          The visible image instance is found.
47   @param Format            The format of the image. Examples: BMP, JPEG.
48   @param ImageData         The image data for the badge file. Currently only
49                            supports the .bmp file format.
50   @param ImageSize         The size of the image returned.
51   @param Attribute         The display attributes of the image returned.
52   @param OffsetX           The X offset of the image regarding the Attribute.
53   @param OffsetY           The Y offset of the image regarding the Attribute.
54 
55   @retval EFI_SUCCESS      The image was fetched successfully.
56   @retval EFI_NOT_FOUND    The specified image could not be found.
57 
58 **/
59 typedef
60 EFI_STATUS
61 (EFIAPI *EDKII_PLATFORM_LOGO_GET_IMAGE)(
62   IN     EDKII_PLATFORM_LOGO_PROTOCOL          *This,
63   IN OUT UINT32                                *Instance,
64      OUT EFI_IMAGE_INPUT                       *Image,
65      OUT EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE *Attribute,
66      OUT INTN                                  *OffsetX,
67      OUT INTN                                  *OffsetY
68   );
69 
70 
71 struct _EDKII_PLATFORM_LOGO_PROTOCOL {
72   EDKII_PLATFORM_LOGO_GET_IMAGE GetImage;
73 };
74 
75 
76 extern EFI_GUID gEdkiiPlatformLogoProtocolGuid;
77 
78 #endif
79