📄 mapp_uimenudraw2.c
字号:
clrBtn1.enTextAlign = EN_ALIGNMENT_DEFAULT;//EN_ALIGNMENT_LEFT;
clrBtn1.Fontfmt.flag = 0; //((GEFONT_FLAG_VARWIDTH | GEFONT_FLAG_GAP) & 0x7FFF);
#if (MAPP_UI_USE_STR_BITS_PROGRAM == 8)
if(OSDMenuString0Components_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 = NEWUI_STRING_GAP_0;
//modify by Jason071031 for Ir crash
IeBuffer = IE;
IE=0;
pu8Str = MApp_UiMenu_Strcpy((U8 *)(st_MenuDynamicStr.g_u16MenuStrBuffer), clrBtn1.bStringIndexWidth);
IE=IeBuffer;
//pu8Str = MApp_UiMenu_Strcpy(OSDMenuString0Components_2[u8CPIndex].DisplayString(), clrBtn1.bStringIndexWidth);
//end by Jason071031
fHandle = MApp_UiMenu_GetCharacterTable( (U16*)pu8Str , Font[FONT_0].fHandle );
pu8Str = MApp_UiMenu_GetFirstCharater( (U16*)pu8Str );
msAPI_OSD_DrawText(fHandle, pu8Str, &clrBtn1);
}
/*
void MApp_UiMenu_DrawIdleString1(U8 u8CPIndex, COMPONENT_STATE_TYPE State)
{
U32 u32FontColor;
U8 *pu8Str;
U8 u8Tmp;
OSDDBG(printf("DrawIdleString1: fIsUTF16--%bx\r\n", g_stCurEvent.fIsUTF16));
clrBtn1.x = g_u16GroupXPos + OSDIdleString0Components_2[u8CPIndex].u16OffsetXPos;
clrBtn1.y = g_u16GroupYPos + OSDIdleString0Components_2[u8CPIndex].u16OffsetYPos;
clrBtn1.width = OSDIdleString0Components_2[u8CPIndex].u16Width;
clrBtn1.height = OSDIdleString0Components_2[u8CPIndex].u16Height;
switch (State)
{
case EN_CPSTATE_STATICS:
case EN_CPSTATE_SELECT:
u32FontColor=OSDIdleString0Components_2[u8CPIndex].u32FontColor_Select;
break;
case EN_CPSTATE_PATH:
u32FontColor=OSDIdleString0Components_2[u8CPIndex].u32FontColor_Path;
break;
case EN_CPSTATE_UNSELECT:
u32FontColor=OSDIdleString0Components_2[u8CPIndex].u32FontColor_UnSelect;
break;
case EN_CPSTATE_HIDE:
u32FontColor=OSDIdleString0Components_2[u8CPIndex].u32FontColor_Hide;
break;
}
clrBtn1.t_clr = u32FontColor;
clrBtn1.enTextAlign = OSDIdleString0Components_2[u8CPIndex].enTextAlign;
clrBtn1.Fontfmt.flag = (OSDIdleString0Components_2[u8CPIndex].u16FormatFlag & 0x7FFF);
//#if (MAPP_UI_USE_STR_BITS_PROGRAM == 8)
// if(OSDIdleString0Components_2[u8CPIndex].u16FormatFlag & _BIT15)
// clrBtn1.bStringIndexWidth = CHAR_IDX_2BYTE;
// else
// clrBtn1.bStringIndexWidth = CHAR_IDX_1BYTE;
//#else
// clrBtn1.bStringIndexWidth = CHAR_IDX_2BYTE;
//#endif
u8Tmp = g_stCurEvent.fIsUTF16;
pu8Str = OSDIdleString0Components_2[u8CPIndex].DisplayString();
if (g_stCurEvent.fIsUTF16)
clrBtn1.bStringIndexWidth = CHAR_IDX_2BYTE;
else
clrBtn1.bStringIndexWidth = CHAR_IDX_1BYTE;
g_stCurEvent.fIsUTF16 = u8Tmp;
clrBtn1.Fontfmt.ifont_gap = OSDIdleString0Components_2[u8CPIndex].u8Gap;
OSDDBG(printf("DrawIdleString1: clrBtn1.bStringIndexWidth--%bx\r\n", clrBtn1.bStringIndexWidth));
//#if (MAPP_UI_USE_STR_BITS_PROGRAM == 8)
// msAPI_OSD_DrawText(Font[MENU_LANGUAGE_FONT].fHandle, MApp_UiMenu_Strcpy(OSDIdleString0Components_2[u8CPIndex].DisplayString()), &clrBtn1);
//#else
msAPI_OSD_DrawText(Font[OSDIdleString0Components_2[u8CPIndex].FontHandleIndex].fHandle, MApp_UiMenu_Strcpy(pu8Str, clrBtn1.bStringIndexWidth), &clrBtn1);
//#endif
//msAPI_OSD_DrawText(Osdcp_fHandle[OSDIdleString0Components_2[u8CPIndex].FontHandleIndex], OSDIdleString0Components_2[u8CPIndex].DisplayString(), &clrBtn1);
}
*/
void MApp_UiMenu_DrawNumber_2(U8 u8CPIndex, COMPONENT_STATE_TYPE State)
{
U32 u32FontColor;
U16 u16Number;
U16 old_u16GroupXPos = g_u16GroupXPos;
// change the CH number display position
clrBtn1.x = g_u16GroupXPos + OSDNumberComponents_2[u8CPIndex].u16OffsetXPos;
clrBtn1.y = g_u16GroupYPos + OSDNumberComponents_2[u8CPIndex].u16OffsetYPos;
clrBtn1.width = OSDNumberComponents_2[u8CPIndex].u16Width;
clrBtn1.height = OSDNumberComponents_2[u8CPIndex].u16Height;
switch (State)
{
case EN_CPSTATE_STATICS:
case EN_CPSTATE_SELECT:
u32FontColor=OSDNumberComponents_2[u8CPIndex].u32FontColor_Select;
break;
case EN_CPSTATE_PATH:
case EN_CPSTATE_UNSELECT:
u32FontColor=OSDNumberComponents_2[u8CPIndex].u32FontColor_UnSelect;
break;
case EN_CPSTATE_HIDE:
u32FontColor=OSDNumberComponents_2[u8CPIndex].u32FontColor_Hide;
break;
}
clrBtn1.t_clr = u32FontColor;
clrBtn1.enTextAlign = OSDNumberComponents_2[u8CPIndex].enTextAlign;
clrBtn1.Fontfmt.flag = (OSDNumberComponents_2[u8CPIndex].u16FormatFlag & 0x7FFF);
#if (MAPP_UI_USE_STR_BITS_PROGRAM == 8)
if(OSDNumberComponents_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 = OSDNumberComponents_2[u8CPIndex].u8Gap;
u16Number = OSDNumberComponents_2[u8CPIndex].DisplayNumber();
__MApp_UlongToString(u16Number, p_alt_string_buffer, MApp_GetNoOfDigit(u16Number));
msAPI_OSD_DrawText(Font[OSDNumberComponents_2[u8CPIndex].FontHandleIndex].fHandle, (U8*) p_alt_string_buffer, &clrBtn1);
}
void MApp_UiMenu_DrawNoPrefixSignNumber_2(U8 u8CPIndex, COMPONENT_STATE_TYPE State)
{
U32 u32FontColor;
U16 u16Number;
/*if(u8CPIndex==EN_NOPREFIX_SIGNNUMBER_C3_Balance_SelectText)
{
u16Number = OSDNoPrefixSignNumberComponents_2[u8CPIndex].DisplayNumber();
if(u16Number==50)
return;
} */
clrBtn1.x = g_u16GroupXPos + OSDNoPrefixSignNumberComponents_2[u8CPIndex].u16OffsetXPos;
clrBtn1.y = g_u16GroupYPos + OSDNoPrefixSignNumberComponents_2[u8CPIndex].u16OffsetYPos;
clrBtn1.width = OSDNoPrefixSignNumberComponents_2[u8CPIndex].u16Width;
clrBtn1.height = OSDNoPrefixSignNumberComponents_2[u8CPIndex].u16Height;
switch (State)
{
case EN_CPSTATE_STATICS:
case EN_CPSTATE_SELECT:
u32FontColor=OSDNoPrefixSignNumberComponents_2[u8CPIndex].u32FontColor_Select;
break;
case EN_CPSTATE_PATH:
case EN_CPSTATE_UNSELECT:
u32FontColor=OSDNoPrefixSignNumberComponents_2[u8CPIndex].u32FontColor_UnSelect;
break;
case EN_CPSTATE_HIDE:
u32FontColor=OSDNoPrefixSignNumberComponents_2[u8CPIndex].u32FontColor_Hide;
break;
}
clrBtn1.t_clr = u32FontColor;
clrBtn1.enTextAlign = OSDNoPrefixSignNumberComponents_2[u8CPIndex].enTextAlign;
clrBtn1.Fontfmt.flag = (OSDNoPrefixSignNumberComponents_2[u8CPIndex].u16FormatFlag & 0x7FFF);
#if (MAPP_UI_USE_STR_BITS_PROGRAM == 8)
if(OSDNoPrefixSignNumberComponents_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 = OSDNoPrefixSignNumberComponents_2[u8CPIndex].u8Gap;
u16Number = OSDNoPrefixSignNumberComponents_2[u8CPIndex].DisplayNumber();
if (u16Number < OSDNoPrefixSignNumberComponents_2[u8CPIndex].u8CenterNumber)
{
u16Number = OSDNoPrefixSignNumberComponents_2[u8CPIndex].u8CenterNumber - u16Number;
}
else
{
u16Number = u16Number - OSDNoPrefixSignNumberComponents_2[u8CPIndex].u8CenterNumber;
}
__MApp_UlongToString((U8)u16Number, p_alt_string_buffer, MApp_GetNoOfDigit((U8)u16Number));
msAPI_OSD_DrawText(Font[OSDNoPrefixSignNumberComponents_2[u8CPIndex].FontHandleIndex].fHandle, (U8*) p_alt_string_buffer, &clrBtn1);
}
void MApp_UiMenu_DrawBmpProgBar_2(U8 u8CPIndex, COMPONENT_STATE_TYPE State)
{
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=OSDBmpProgressBarComponents_2[u8CPIndex].BMPHandleIndex1_Select;
BMPHandleIndex2=OSDBmpProgressBarComponents_2[u8CPIndex].BMPHandleIndex2_Select;
break;
case EN_CPSTATE_PATH:
case EN_CPSTATE_UNSELECT:
BMPHandleIndex1=OSDBmpProgressBarComponents_2[u8CPIndex].BMPHandleIndex1_UnSelect;
BMPHandleIndex2=OSDBmpProgressBarComponents_2[u8CPIndex].BMPHandleIndex2_UnSelect;
break;
case EN_CPSTATE_HIDE:
BMPHandleIndex1=OSDBmpProgressBarComponents_2[u8CPIndex].BMPHandleIndex1_Hide;
BMPHandleIndex2=OSDBmpProgressBarComponents_2[u8CPIndex].BMPHandleIndex2_Hide;
break;
}
gbmpfmt.bScale = TRUE;
gbmpfmt.bBmpColorKeyEnable = TRUE;
u32Colorkey = OSDBmpProgressBarComponents_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 = (OSDBmpProgressBarComponents_2[u8CPIndex].u16Width * OSDBmpProgressBarComponents_2[u8CPIndex].Percentage())/100;
u16Percent_Height = OSDBmpProgressBarComponents_2[u8CPIndex].u16Height;
clrBtn1.x = g_u16GroupXPos + OSDBmpProgressBarComponents_2[u8CPIndex].u16OffsetXPos;
clrBtn1.y = g_u16GroupYPos + OSDBmpProgressBarComponents_2[u8CPIndex].u16OffsetYPos;
gbmpfmt.width = u16Percent_Width;
gbmpfmt.height = u16Percent_Height;
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[BMPHandleIndex1], clrBtn1.x, clrBtn1.y, gbmpfmt);
clrBtn1.x = g_u16GroupXPos + OSDBmpProgressBarComponents_2[u8CPIndex].u16OffsetXPos + u16Percent_Width;
clrBtn1.y = g_u16GroupYPos + OSDBmpProgressBarComponents_2[u8CPIndex].u16OffsetYPos;
gbmpfmt.width = OSDBmpProgressBarComponents_2[u8CPIndex].u16Width - u16Percent_Width;
gbmpfmt.height = u16Percent_Height;
if (gbmpfmt.width != 0)
msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[BMPHandleIndex2], clrBtn1.x, clrBtn1.y, gbmpfmt);
}
void MApp_UiMenu_DrawBmpBalanceBar_2(U8 u8CPIndex, COMPONENT_STATE_TYPE State)
{
U32 u32Colorkey;
U8 r_clr, g_clr, b_clr;
// U8 BMPHandleIndex1;
// U8 BMPHandleIndex2;
//make compiler happy
u8CPIndex=u8CPIndex;
switch (State)
{
case EN_CPSTATE_STATICS:
case EN_CPSTATE_SELECT:
// BMPHandleIndex1=OSDBmpBalanceBarComponents_2[u8CPIndex].BMPHandleIndex1_Select;
// BMPHandleIndex2=OSDBmpBalanceBarComponents_2[u8CPIndex].BMPHandleIndex2_Select;
break;
case EN_CPSTATE_PATH:
case EN_CPSTATE_UNSELECT:
// BMPHandleIndex1=OSDBmpBalanceBarComponents_2[u8CPIndex].BMPHandleIndex1_UnSelect;
// BMPHandleIndex2=OSDBmpBalanceBarComponents_2[u8CPIndex].BMPHandleIndex2_UnSelect;
break;
case EN_CPSTATE_HIDE:
// BMPHandleIndex1=OSDBmpBalanceBarComponents_2[u8CPIndex].BMPHandleIndex1_Hide;
// BMPHandleIndex2=OSDBmpBalanceBarComponents_2[u8CPIndex].BMPHandleIndex2_Hide;
break;
}
gbmpfmt.bScale = TRUE;
gbmpfmt.bBmpColorKeyEnable = TRUE;
// u32Colorkey = OSDBmpBalanceBarComponents_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 + OSDBmpBalanceBarComponents_2[u8CPIndex].u16OffsetXPos;
// clrBtn1.y = g_u16GroupYPos + OSDBmpBalanceBarComponents_2[u8CPIndex].u16OffsetYPos;
// gbmpfmt.width = OSDBmpBalanceBarComponents_2[u8CPIndex].u16Width_1;
// gbmpfmt.height = OSDBmpBalanceBarComponents_2[u8CPIndex].u16Height_1;
// msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[BMPHandleIndex1], clrBtn1.x, clrBtn1.y, gbmpfmt);
// clrBtn1.x = g_u16GroupXPos + OSDBmpBalanceBarComponents_2[u8CPIndex].u16OffsetXPos + OSDBmpBalanceBarComponents_2[u8CPIndex].u16Range_L + ((OSDBmpBalanceBarComponents_2[u8CPIndex].u16Width_1-OSDBmpBalanceBarComponents_2[u8CPIndex].u16Range_L-OSDBmpBalanceBarComponents_2[u8CPIndex].u16Range_R-OSDBmpBalanceBarComponents_2[u8CPIndex].u16Width_2)* OSDBmpBalanceBarComponents_2[u8CPIndex].Percentage())/100;
// clrBtn1.y = g_u16GroupYPos + OSDBmpBalanceBarComponents_2[u8CPIndex].u16OffsetYPos;
// gbmpfmt.width = OSDBmpBalanceBarComponents_2[u8CPIndex].u16Width_2;
// gbmpfmt.height = OSDBmpBalanceBarComponents_2[u8CPIndex].u16Height_2;
// msAPI_OSD_DrawColorKeyBitmap(Osdcp_bmpHandle[BMPHandleIndex2], clrBtn1.x, clrBtn1.y, gbmpfmt);
}
#define SignalDetectNumber 32
#define SignalDetect_XStart 4
#define SignalDetect_YStart 3
#define SignalDetect_Gap 6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -