⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapp_uimenudraw2.c

📁 mstar 776 开发的车载dvd
💻 C
📖 第 1 页 / 共 5 页
字号:
    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 + -