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

📄 mapp_uimenudraw2.c

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