📄 mapp_uimenudraw2.c
字号:
void MApp_UiMenu_DrawBmpSignalBar_2(U8 u8CPIndex, COMPONENT_STATE_TYPE State)
{
#if 0
U32 u32Colorkey;
U8 r_clr, g_clr, b_clr;
U16 u16Percent_Width, u16Percent_Height;
U8 BMPHandleIndex1;
U8 BMPHandleIndex2;
switch (State)
{
case EN_CPSTATE_STATICS:
case EN_CPSTATE_SELECT:
BMPHandleIndex1=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex1_Select;
BMPHandleIndex2=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex2_Select;
break;
case EN_CPSTATE_PATH:
case EN_CPSTATE_UNSELECT:
BMPHandleIndex1=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex1_UnSelect;
BMPHandleIndex2=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex2_UnSelect;
break;
case EN_CPSTATE_HIDE:
BMPHandleIndex1=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex1_Hide;
BMPHandleIndex2=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex2_Hide;
break;
}
gbmpfmt.bScale = TRUE;
gbmpfmt.bBmpColorKeyEnable = TRUE;
u32Colorkey = OSDBmpSignalBarComponents_2[u8CPIndex].u32Colorkey;
r_clr=((u32Colorkey&0x00ff0000)>>16)&0xff;
g_clr=((u32Colorkey&0x0000ff00)>>8)&0xff;
b_clr=((u32Colorkey&0x000000ff))&0xff;
gbmpfmt.clrrange.color_s.a = 0;
gbmpfmt.clrrange.color_s.r = r_clr;
gbmpfmt.clrrange.color_s.g = g_clr;
gbmpfmt.clrrange.color_s.b = b_clr;
gbmpfmt.clrrange.color_e.a = 0;
gbmpfmt.clrrange.color_e.r = r_clr;
gbmpfmt.clrrange.color_e.g = g_clr;
gbmpfmt.clrrange.color_e.b = b_clr;
u16Percent_Width = (OSDBmpSignalBarComponents_2[u8CPIndex].u16Width * OSDBmpSignalBarComponents_2[u8CPIndex].Percentage())/100;
u16Percent_Height = OSDBmpSignalBarComponents_2[u8CPIndex].u16Height;
clrBtn1.x = g_u16GroupXPos + OSDBmpSignalBarComponents_2[u8CPIndex].u16OffsetXPos;
clrBtn1.y = g_u16GroupYPos + OSDBmpSignalBarComponents_2[u8CPIndex].u16OffsetYPos;
gbmpfmt.width = OSDBmpSignalBarComponents_2[u8CPIndex].u16Width;
gbmpfmt.height = OSDBmpSignalBarComponents_2[u8CPIndex].u16Height;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[BMPHandleIndex1], clrBtn1.x, clrBtn1.y, gbmpfmt);
clrBtn1.x = g_u16GroupXPos + OSDBmpSignalBarComponents_2[u8CPIndex].u16OffsetXPos;
clrBtn1.y = g_u16GroupYPos + OSDBmpSignalBarComponents_2[u8CPIndex].u16OffsetYPos;
gbmpfmt.width = u16Percent_Width;
gbmpfmt.height = u16Percent_Height;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[BMPHandleIndex2], clrBtn1.x, clrBtn1.y, gbmpfmt);
#endif
U32 u32Colorkey;
U8 r_clr, g_clr, b_clr;
U8 loopindex;
U16 u16Percent_Index;
// U8 BMPHandleIndex1, BMPHandleIndex2;
//make compiler happy
u8CPIndex=u8CPIndex;
switch (State)
{
case EN_CPSTATE_STATICS:
case EN_CPSTATE_SELECT:
// BMPHandleIndex1=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex1_Select;
// BMPHandleIndex2=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex2_Select;
break;
case EN_CPSTATE_PATH:
case EN_CPSTATE_UNSELECT:
// BMPHandleIndex1=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex1_UnSelect;
// BMPHandleIndex2=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex2_UnSelect;
break;
case EN_CPSTATE_HIDE:
// BMPHandleIndex1=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex1_Hide;
// BMPHandleIndex2=OSDBmpSignalBarComponents_2[u8CPIndex].BMPHandleIndex2_Hide;
break;
}
gbmpfmt.bScale = TRUE;
gbmpfmt.bBmpColorKeyEnable = TRUE;
// u32Colorkey = OSDBmpSignalBarComponents_2[u8CPIndex].u32Colorkey;
r_clr=((u32Colorkey&0x00ff0000)>>16)&0xff;
g_clr=((u32Colorkey&0x0000ff00)>>8)&0xff;
b_clr=((u32Colorkey&0x000000ff))&0xff;
gbmpfmt.clrrange.color_s.a = 0;
gbmpfmt.clrrange.color_s.r = r_clr;
gbmpfmt.clrrange.color_s.g = g_clr;
gbmpfmt.clrrange.color_s.b = b_clr;
gbmpfmt.clrrange.color_e.a = 0;
gbmpfmt.clrrange.color_e.r = r_clr;
gbmpfmt.clrrange.color_e.g = g_clr;
gbmpfmt.clrrange.color_e.b = b_clr;
// clrBtn1.x = g_u16GroupXPos + OSDBmpSignalBarComponents_2[u8CPIndex].u16OffsetXPos;
// clrBtn1.y = g_u16GroupYPos + OSDBmpSignalBarComponents_2[u8CPIndex].u16OffsetYPos;
// gbmpfmt.width = OSDBmpSignalBarComponents_2[u8CPIndex].u16Width_1;
// gbmpfmt.height = OSDBmpSignalBarComponents_2[u8CPIndex].u16Height_1;
// msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[BMPHandleIndex1], clrBtn1.x, clrBtn1.y, gbmpfmt);
// u16Percent_Index = SignalDetectNumber*OSDBmpSignalBarComponents_2[u8CPIndex].Percentage()/100;
// gbmpfmt.width = OSDBmpSignalBarComponents_2[u8CPIndex].u16Width_2;
// gbmpfmt.height = OSDBmpSignalBarComponents_2[u8CPIndex].u16Height_2;
for (loopindex=0; loopindex<u16Percent_Index; loopindex++)
{
// clrBtn1.x = g_u16GroupXPos + OSDBmpSignalBarComponents_2[u8CPIndex].u16OffsetXPos+SignalDetect_XStart+SignalDetect_Gap*loopindex;
// clrBtn1.y = g_u16GroupYPos + OSDBmpSignalBarComponents_2[u8CPIndex].u16OffsetYPos+SignalDetect_YStart;
// msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[BMPHandleIndex2], clrBtn1.x, clrBtn1.y, gbmpfmt);
}
}
void MApp_UiMenu_DrawAquaBitmapProgressBar_2(U8 u8CPIndex)
{
U16 u16Percent_Width;
U32 u32Colorkey;
U8 r_clr, g_clr, b_clr;
//OSDDBG(printf("Bitmap Prog Bar:\r\n"));
// special control : do not draw progress bar
if(OSDAquaBitmapProgressBarComponents_2[u8CPIndex].Percentage()==9999)
return;
clrBtn1.y = g_u16GroupYPos + OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u16OffsetYPos;
gbmpfmt.height = OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u16Height;
clrBtn1.width=(OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u16Width-OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8FGBitmapLeftIndex].u16Width-OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapRightIndex].u16Width);
u16Percent_Width = (clrBtn1.width * OSDAquaBitmapProgressBarComponents_2[u8CPIndex].Percentage())/100;
gbmpfmt.bBmpColorKeyEnable = TRUE;
gbmpfmt.bScale = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapMiddleIndex].bScale;
u32Colorkey = OSDBitmapComponents_2[u8CPIndex].u32Colorkey;
r_clr=((u32Colorkey&0x00ff0000)>>16)&0xff;
g_clr=((u32Colorkey&0x0000ff00)>>8)&0xff;
b_clr=((u32Colorkey&0x000000ff))&0xff;
gbmpfmt.clrrange.color_s.a = 0;
gbmpfmt.clrrange.color_s.r = r_clr;
gbmpfmt.clrrange.color_s.g = g_clr;
gbmpfmt.clrrange.color_s.b = b_clr;
gbmpfmt.clrrange.color_e.a = 0;
gbmpfmt.clrrange.color_e.r = r_clr;
gbmpfmt.clrrange.color_e.g = g_clr;
gbmpfmt.clrrange.color_e.b = b_clr;
//Draw the back ground/fore ground left round bar
clrBtn1.x = g_u16GroupXPos + OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u16OffsetXPos;
if(u16Percent_Width==0)
{
gbmpfmt.bScale = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapLeftIndex].bScale;
gbmpfmt.width = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapLeftIndex].u16Width;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapLeftIndex].BMPHandleIndex_Select], clrBtn1.x, clrBtn1.y, gbmpfmt);
}
else
{
gbmpfmt.bScale = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8FGBitmapLeftIndex].bScale;
gbmpfmt.width = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8FGBitmapLeftIndex].u16Width;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8FGBitmapLeftIndex].BMPHandleIndex_Select], clrBtn1.x, clrBtn1.y, gbmpfmt);
}
// Draw the fore ground select middle bar
gbmpfmt.bScale = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapMiddleIndex].bScale;
clrBtn1.x +=gbmpfmt.width;
gbmpfmt.width = u16Percent_Width;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8FGBitmapMiddleIndex].BMPHandleIndex_Select], clrBtn1.x, clrBtn1.y, gbmpfmt);
//Draw the back ground middle bar
gbmpfmt.bScale = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapMiddleIndex].bScale;
clrBtn1.x+=gbmpfmt.width;
gbmpfmt.width=(OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u16Width-OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapLeftIndex].u16Width-OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapRightIndex].u16Width)-u16Percent_Width;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapMiddleIndex].BMPHandleIndex_Select], clrBtn1.x, clrBtn1.y, gbmpfmt);
// Draw the back ground or fore ground right round bar
clrBtn1.x+=gbmpfmt.width;
if((OSDAquaBitmapProgressBarComponents_2[u8CPIndex].Percentage())==100)
{
gbmpfmt.bScale = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8FGBitmapRightIndex].bScale;
gbmpfmt.width = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8FGBitmapRightIndex].u16Width;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8FGBitmapRightIndex].BMPHandleIndex_Select], clrBtn1.x, clrBtn1.y, gbmpfmt);
}
else
{
gbmpfmt.bScale = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapRightIndex].bScale;
gbmpfmt.width = OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapRightIndex].u16Width;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[OSDBitmapComponents_2[OSDAquaBitmapProgressBarComponents_2[u8CPIndex].u8BGBitmapRightIndex].BMPHandleIndex_Select], clrBtn1.x, clrBtn1.y, gbmpfmt);
}
}
static U16 MApp_UiMenu_GetStrWidth(U8* pStr,FONTHANDLE font_handle,EN_CHAR_IDX_LENGTH charIdxLength,U8 gap)
{
U16 i;
U16 width;
U16 *pu16Str;
GLYPH_BBOX_X BBox_X_Info;
width = 0;
if(charIdxLength == CHAR_IDX_1BYTE)
{
for(i=0; (pStr[i]!=0&&i<STRBUFF_LENGTH); i++)
{
MDrv_GE_GetBBox_X(font_handle,pStr[i], &BBox_X_Info);
width += (BBox_X_Info.u8Width+gap);
}
}
else //(pclrBtn->bStringIndexWidth == CHAR_IDX_2BYTE)
{
pu16Str = (U16*)pStr;
for(i=0; (pu16Str[i]!=0&&i<STRBUFF_LENGTH); i++)
{
MDrv_GE_GetBBox_X(font_handle, pu16Str[i], &BBox_X_Info);
width += (BBox_X_Info.u8Width+gap);
}
}
return width;
}
static BOOLEAN MApp_UiMenu_IsResolutionInfoVisible()
{
if(/*IsATVInUse() || // kevin 071221*/IsVgaInUse() || IsYPbPrInUse())
{
return FALSE;
}
#if 0// JJ
else if(IsDTVInUse())
{
// if((MApp_ChanProc_GetCurChannelPointer()->u16VideoPid == 0 /*Audio Only Check*/
// || MApp_ChanProc_GetCurChannelPointer()->stVirtualChAttr.fIsStillPicture==TRUE)
// && MApp_ChanProc_GetCurChannelPointer()->astSoundTrack[0].u16AudioPid !=0)
if(MApp_ChanProc_GetCurChannelPointer()->u16VideoPid == 0 /*Audio Only Check*/
&& MApp_ChanProc_GetCurChannelPointer()->astSoundTrack[0].u16AudioPid !=0)//hjkoh 070122 for still picture channel concept.
{
return FALSE;
}
return TRUE;
}
#endif
else
{
return TRUE;
}
}
void MApp_UiMenu_DrawPlusMinusNumber_2(U8 u8CPIndex, COMPONENT_STATE_TYPE State)
{
U32 u32FontColor;
U16 u16Number;
clrBtn1.x = g_u16GroupXPos + OSDPlusMinusNumberComponents_2[u8CPIndex].u16OffsetXPos;
clrBtn1.y = g_u16GroupYPos + OSDPlusMinusNumberComponents_2[u8CPIndex].u16OffsetYPos;
clrBtn1.width = OSDPlusMinusNumberComponents_2[u8CPIndex].u16Width;
clrBtn1.height = OSDPlusMinusNumberComponents_2[u8CPIndex].u16Height;
switch (State)
{
case EN_CPSTATE_STATICS:
case EN_CPSTATE_SELECT:
u32FontColor=OSDPlusMinusNumberComponents_2[u8CPIndex].u32FontColor_Select;
break;
case EN_CPSTATE_PATH:
case EN_CPSTATE_UNSELECT:
u32FontColor=OSDPlusMinusNumberComponents_2[u8CPIndex].u32FontColor_UnSelect;
break;
case EN_CPSTATE_HIDE:
u32FontColor=OSDPlusMinusNumberComponents_2[u8CPIndex].u32FontColor_Hide;
break;
}
clrBtn1.t_clr = u32FontColor;
clrBtn1.enTextAlign = OSDPlusMinusNumberComponents_2[u8CPIndex].enTextAlign;
clrBtn1.Fontfmt.flag = (OSDPlusMinusNumberComponents_2[u8CPIndex].u16FormatFlag & 0x7FFF);
#if (MAPP_UI_USE_STR_BITS_PROGRAM == 8)
if(OSDPlusMinusNumberComponents_2[u8CPIndex].u16FormatFlag & _BIT15)
clrBtn1.bStringIndexWidth = CHAR_IDX_2BYTE;
else
clrBtn1.bStringIndexWidth = CHAR_IDX_1BYTE;
#else
clrBtn1.bStringIndexWidth = CHAR_IDX_2BYTE;
#endif
clrBtn1.Fontfmt.ifont_gap = OSDPlusMinusNumberComponents_2[u8CPIndex].u8Gap;
u16Number = OSDPlusMinusNumberComponents_2[u8CPIndex].DisplayNumber();
if (u16Number < OSDPlusMinusNumberComponents_2[u8CPIndex].u8CenterNumber)
{
u16Number = OSDPlusMinusNumberComponents_2[u8CPIndex].u8CenterNumber - u16Number;
p_alt_string_buffer[0] = CHAR_MINUS;
__MApp_UlongToString((U8)u16Number, &p_alt_string_buffer[1], MApp_GetNoOfDigit((U8)u16Number));
}
else if(u16Number > OSDPlusMinusNumberComponents_2[u8CPIndex].u8CenterNumber)
{
u16Number = u16Number - OSDPlusMinusNumberComponents_2[u8CPIndex].u8CenterNumber;
p_alt_string_buffer[0] = CHAR_PLUS;
__MApp_UlongToString((U8)u16Number, &p_alt_string_buffer[1], MApp_GetNoOfDigit((U8)u16Number));
}else{
u16Number = u16Number - OSDPlusMinusNumberComponents_2[u8CPIndex].u8CenterNumber;
__MApp_UlongToString((U8)u16Number, p_alt_string_buffer, MApp_GetNoOfDigit((U8)u16Number));
}
msAPI_OSD_DrawText(Font[OSDPlusMinusNumberComponents_2[u8CPIndex].FontHandleIndex].fHandle, (U8 *) p_alt_string_buffer, &clrBtn1);
}
void MApp_UiMenu_SpretrumBar_DrawBlock_2(U8 u8CPIndex, U8 u8SpectrumValue, S8 s8BarMovOrg , U8 u8BarMode)
{
clrBtn1.x = g_u16GroupXPos + OSD3DConvexBlockComponents_2[u8CPIndex].u16OffsetXPos;
clrBtn1.width = OSD3DConvexBlockComponents_2[u8CPIndex].u16Width;
clrBtn1.radius = OSD3DConvexBlockComponents_2[u8CPIndex].u16Radius;
clrBtn1.u8Gradient = OSD3DConvexBlockComponents_2[u8CPIndex].u8Gradient;
clrBtn1.fHighLight = FALSE;
if(s8BarMovOrg==-1)
{
clrBtn1.height = 128 -u8SpectrumValue;
clrBtn1.y = g_u16GroupYPos + (OSD3DConvexBlockComponents_2[u8CPIndex].u16OffsetYPos - 128);
MApp_UiMenu2_ClearOSD(clrBtn1.x, clrBtn1.y, clrBtn1.width, clrBtn1.height);
}
if(u8BarMode == SPECTRUM_MODE_BARBB)
{
clrBtn1.b_clr = COLOR_SPECTRUM_BAR1_STARTBLUE;
clrBtn1.g_clr = COLOR_SPECTRUM_BAR1_ENDBLUE;
}
else if(u8BarMode == SPECTRUM_MODE_BARGB)
{
clrBtn1.b_clr = COLOR_SPECTRUM_BAR2_STARTBLUE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -