summaryrefslogtreecommitdiff
path: root/EDK/MiniSetup/TseAdvanced/Logo.c
diff options
context:
space:
mode:
Diffstat (limited to 'EDK/MiniSetup/TseAdvanced/Logo.c')
-rw-r--r--EDK/MiniSetup/TseAdvanced/Logo.c282
1 files changed, 282 insertions, 0 deletions
diff --git a/EDK/MiniSetup/TseAdvanced/Logo.c b/EDK/MiniSetup/TseAdvanced/Logo.c
new file mode 100644
index 0000000..49920a0
--- /dev/null
+++ b/EDK/MiniSetup/TseAdvanced/Logo.c
@@ -0,0 +1,282 @@
+//*****************************************************************//
+//*****************************************************************//
+//*****************************************************************//
+//** **//
+//** (C)Copyright 2011, American Megatrends, Inc. **//
+//** **//
+//** All Rights Reserved. **//
+//** **//
+//** 5555 Oakbrook Pkwy, Building 200,Norcross, Georgia 30093 **//
+//** **//
+//** Phone (770)-246-8600 **//
+//** **//
+//*****************************************************************//
+//*****************************************************************//
+//*****************************************************************//
+// $Archive: /Alaska/SOURCE/Modules/AMITSE2_0/AMITSE/TseAdvanced/Logo.c $
+//
+// $Author: Arunsb $
+//
+// $Revision: 6 $
+//
+// $Date: 10/18/12 5:53a $
+//
+//*****************************************************************//
+//*****************************************************************//
+// Revision History
+// ----------------
+// $Log: /Alaska/SOURCE/Modules/AMITSE2_0/AMITSE/TseAdvanced/Logo.c $
+//
+// 6 10/18/12 5:53a Arunsb
+// Updated for 2.16.1235 QA submission
+//
+// 8 10/10/12 12:35p Arunsb
+// Synched the source for v2.16.1232, backup with Aptio
+//
+// 5 6/13/11 12:32p Rajashakerg
+// [TAG] EIP60910
+// [Category] New Feature
+// [Description] PNG image support in TSE.
+// [Files] LogoLib.h, AMITSE.sdl, CommonHelper.c, logo.c, png.c, png.h,
+// pnguncmp.c, TseAdvanced.cif
+//
+// 4 2/19/10 1:02p Madhans
+// Updated for TSE 2.01. Refer Changelog.log for File change history.
+//
+// 6 2/19/10 8:11a Mallikarjunanv
+// updated year in copyright message
+//
+// 5 8/17/09 10:46a Presannar
+// Use proper tycasting for the parameters of fn ConvertGifToUgaBltWrapper
+// to avoid compiler warnings.
+//
+// 4 8/13/09 12:16p Blaines
+// Move Image support to binary module
+//
+// 3 6/23/09 7:09p Blaines
+// Coding standard update,
+// Remove spaces from file header to allow proper chm function list
+// creation.
+//
+// 2 6/12/09 7:43p Presannar
+// Initial implementation of coding standards for AMITSE2.0
+//
+// 1 6/04/09 8:05p Madhans
+//
+// 1 4/28/09 11:16p Madhans
+// Tse 2.0 Code complete Checkin.
+//
+// 1 4/28/09 10:27p Madhans
+// Tse 2.0 Code complete Checkin.
+//
+//
+//*****************************************************************//
+//*****************************************************************//
+
+//<AMI_FHDR_START>
+//----------------------------------------------------------------------------
+//
+// Name: logo.c
+//
+// Description: This file contains code for advanced logo support
+//
+//----------------------------------------------------------------------------
+//<AMI_FHDR_END>
+
+#include "minisetup.h"
+
+extern LOGO_TYPE GetGifLogoType(UINT8 *ImageData);
+extern LOGO_TYPE GetJPEGLogoType(UINT8 *ImageData);
+extern LOGO_TYPE GetPCXLogoType(UINT8 *ImageData);
+extern LOGO_TYPE GetPNGLogoType(UINT8 *ImageData);
+LOGO_TYPE GetOEMLogoType(UINT8 *ImageData);
+
+extern EFI_STATUS ConvertBmpToUgaBltWrapper (IN VOID *BmpImage, IN UINTN BmpImageSize, IN OUT VOID **UgaBlt,
+ IN OUT UINTN *UgaBltSize, OUT UINTN *PixelHeight, OUT UINTN *PixelWidth );
+
+extern EFI_STATUS ConvertGifToUgaBltWrapper ( IN VOID *GifImage, IN UINTN GifImageSize, IN OUT VOID **UgaBlt,
+ IN OUT UINTN *UgaBltSize, OUT UINTN *PixelHeight, OUT UINTN *PixelWidth, OUT BOOLEAN *Animate );
+
+extern EFI_STATUS ConvertJPEGToUgaBltWrapper ( IN VOID *JPEGImage, IN UINT32 JPEGImageSize, IN OUT VOID **UgaBlt,
+ IN OUT UINT32 *UgaBltSize, OUT UINT32 *PixelHeight, OUT UINT32 *PixelWidth, OUT UINT32 *punBufferWidth);
+
+extern EFI_STATUS ConvertPCXToUgaBltWrapper ( IN VOID *PCXImage, IN UINT32 PCXImageSize, IN OUT VOID **UgaBlt,
+ IN OUT UINT32 *UgaBltSize, OUT UINT32 *PixelHeight, OUT UINT32 *PixelWidth) ;
+
+extern EFI_STATUS ConvertPNGToUgaBltWrapper ( IN VOID *PCXImage, IN UINT32 PCXImageSize, IN OUT VOID **UgaBlt,
+ IN OUT UINT32 *UgaBltSize, OUT UINT32 *PixelHeight, OUT UINT32 *PixelWidth) ;
+
+extern EFI_STATUS ConvertOEMFormatToUgaBltWrapper ( IN VOID *OEMImage, IN UINT32 OEMImageSize, IN OUT VOID **UgaBlt,
+ IN OUT UINT32 *UgaBltSize, OUT UINT32 *Height, OUT UINT32 *Width, BOOLEAN * Animate);
+
+//<AMI_PHDR_START>
+//----------------------------------------------------------------------------
+// Procedure: GetExtendedLogoType
+//
+// Description: function to get the type of extended logo
+//
+// Input: UINT8 *ImageData
+//
+// Output: LOGO_TYPE
+//
+//----------------------------------------------------------------------------
+//<AMI_PHDR_END>
+LOGO_TYPE GetExtendedLogoType(UINT8 *ImageData)
+{
+ if ( GIF_Logo == GetGifLogoType(ImageData))
+ return GIF_Logo;
+
+ if ( JPEG_Logo == GetJPEGLogoType(ImageData))
+ return JPEG_Logo;
+
+ if ( PCX_Logo == GetPCXLogoType(ImageData))
+ return PCX_Logo;
+
+ if ( PNG_Logo == GetPNGLogoType(ImageData))
+ return PNG_Logo;
+
+ if( OEM_Format_LOGO == GetOEMLogoType(ImageData))
+ return OEM_Format_LOGO;
+
+ return Unsupported_Logo;
+}
+//<AMI_PHDR_START>
+//----------------------------------------------------------------------------
+// Procedure: ConvertAdvancedImageToUgaBlt
+//
+// Description: Convert a advanced graphics image to a UGA blt buffer.
+//
+// Input: IN VOID *ImageData,
+// IN UINTN ImageSize,
+// IN OUT VOID **UgaBlt,
+// IN OUT UINTN *UgaBltSize,
+// OUT UINTN *Height,
+// OUT UINTN *Width,
+// OUT BOOLEAN *Animate
+//
+// Output: EFI_STATUS
+//
+//----------------------------------------------------------------------------
+//<AMI_PHDR_END>
+EFI_STATUS
+ConvertAdvancedImageToUgaBlt (
+ IN VOID *ImageData,
+ IN UINTN ImageSize,
+ IN OUT VOID **UgaBlt,
+ IN OUT UINTN *UgaBltSize,
+ OUT UINTN *Height,
+ OUT UINTN *Width,
+ OUT BOOLEAN *Animate
+)
+{
+ UINTN LogoType;
+ EFI_STATUS Status = EFI_UNSUPPORTED;
+
+
+ UINT32 Temp=0;
+
+
+ LogoType = GetExtendedLogoType(ImageData);
+ switch(LogoType)
+ {
+
+ case GIF_Logo:
+
+ Status = ConvertGifToUgaBltWrapper(
+ ImageData,
+ (UINT32)ImageSize,
+ UgaBlt,
+ (UINTN*)UgaBltSize,
+ (UINTN*)Height,
+ (UINTN*)Width,
+ Animate
+ );
+
+ break;
+
+ case JPEG_Logo:
+
+ Status = ConvertJPEGToUgaBltWrapper(
+ ImageData,
+ (UINT32)ImageSize,
+ UgaBlt,
+ (UINT32*)UgaBltSize,
+ (UINT32*)Height,
+ (UINT32*)&Temp,
+ (UINT32*)Width
+ );
+ break;
+
+ case PCX_Logo:
+
+ Status = ConvertPCXToUgaBltWrapper(
+ ImageData,
+ (UINT32)ImageSize,
+ UgaBlt,
+ (UINT32*)UgaBltSize,
+ (UINT32*)Height,
+ (UINT32*)Width
+ );
+ break;
+ case PNG_Logo:
+
+ Status = ConvertPNGToUgaBltWrapper(
+ ImageData,
+ (UINT32)ImageSize,
+ UgaBlt,
+ (UINT32*)UgaBltSize,
+ (UINT32*)Height,
+ (UINT32*)Width
+ );
+ break;
+
+ case OEM_Format_LOGO:
+
+ Status = ConvertOEMFormatToUgaBltWrapper(
+ ImageData,
+ (UINT32)ImageSize,
+ UgaBlt,
+ (UINT32*)UgaBltSize,
+ (UINT32*)Height,
+ (UINT32*)Width,
+ Animate
+ );
+ break;
+
+ default:
+ break;
+ }
+ return Status;
+}
+
+//<AMI_PHDR_START>
+//----------------------------------------------------------------------------
+// Procedure: DoLogoAnimate
+//
+// Description: function to Handle logo animation
+//
+// Input: CO_ORD_ATTRIBUTE Attribute,
+// INTN CoordinateX,INTN CoordinateY
+//
+// Output: None
+//
+//----------------------------------------------------------------------------
+//<AMI_PHDR_END>
+VOID DoLogoAnimate(CO_ORD_ATTRIBUTE Attribute,INTN CoordinateX,INTN CoordinateY)
+{
+ DoLogoAnimateWrapper(Attribute,CoordinateX,CoordinateY);
+}
+
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Pkwy, Building 200,Norcross, Georgia 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//**********************************************************************