📄 osdcp_loadbitmap.c
字号:
#define OSDCP_LOADBITMAP_C
///////////////////////////////////////////////////////////////////////////////
//
// File name: OSDcp_loadbitmap.c
// Version:
// Date:
//
// Author:
// Company: MStarSemi Inc.
//
// Description:
//
///////////////////////////////////////////////////////////////////////////////
/******************************************************************************/
/* Header Files */
/* ****************************************************************************/
#include "OSDcp_loadbitmap.h"
#include "OSDcp_global.h"
#include "OSDcp_readbin.h"
#include "drvflash.h"
#include "msAPI_MIU.h"
/********************************************************************************/
/* Macro */
/* ******************************************************************************/
/********************************************************************************/
/* Local */
/* ******************************************************************************/
BMPHANDLE Osdcp_bmpHandle[512];
/********************************************************************************/
/* Functions */
/********************************************************************************/
//*************************************************************************
//Function name:
//Passing parameter:
//Return parameter:
//Description:
//*************************************************************************
#define BITMAP_FMT_ARGB4444 2
#define BITMAP_FMT_YUV422 3
void OSDcp_LoadBitmap_init(void)
{
BINFORMAT BinInfo;
U32 osdcp_bmp_addr;
U16 index;
U16 bitmap_no;
U32 bitmap_id_addr=0;
OSDcp_loadbitmap_info_table loadbitmap_info_table;
BitmapBinaryInfo info;
U8 u8Fmt;
GE_Buffer_Format fmt;
BinInfo.B_ID = BIN_ID_OSDCP_BMP;
if (msAPI_MIU_Get_BinInfo(&BinInfo) == PASS)
{
osdcp_bmp_addr = BinInfo.B_FAddr;
}
MDrv_Flash_Read(osdcp_bmp_addr,sizeof(info),(U8 *)&info);
MDrv_Flash_Read(osdcp_bmp_addr+INFO_SIZE, sizeof(bitmap_no), (U8 *)&bitmap_no);
for (index=0; index<bitmap_no; index++)
{
MDrv_Flash_Read(osdcp_bmp_addr+INFO_SIZE+sizeof(bitmap_no)+index*sizeof(OSDcp_loadbitmap_info_table), sizeof(OSDcp_loadbitmap_info_table), (U8 *)&loadbitmap_info_table);
// MDrv_Flash_Read(osdcp_bmp_addr+bitmap_no*sizeof(OSDcp_loadbitmap_info_table)+index, 1, &u8Fmt);
MDrv_Flash_Read(osdcp_bmp_addr+INFO_SIZE+sizeof(bitmap_no)+bitmap_no*sizeof(OSDcp_loadbitmap_info_table)+index, 1, &u8Fmt);
switch (u8Fmt)
{
case BITMAP_FMT_YUV422:
fmt = GE_FMT_YUV422;
break;
case BITMAP_FMT_ARGB4444:
fmt = GE_FMT_ARGB4444;
break;
default:
fmt = GE_FMT_ARGB1555;
break;
}
//printf("\r\nu8fmt = %bx", u8Fmt);
Osdcp_bmpHandle[index]=msAPI_MIU_LoadFlashBitmap_Osdcp(osdcp_bmp_addr+info.headerSize+bitmap_id_addr, loadbitmap_info_table.width, loadbitmap_info_table.height, fmt);
bitmap_id_addr = bitmap_id_addr+((U32)loadbitmap_info_table.width)*((U32)loadbitmap_info_table.height)*2;
}
}
#undef OSDCP_LOADBITMAP_C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -