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

📄 nmosd.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    
    BaseBmp bp;
    WORD guiIndex;

    bp.upperleftx = 50;
    bp.upperlefty = 16;
    bp.height = 46;
    bp.width = 84;
    guiIndex = IM_DISC_ANI_1+input;

    if(guiIndex!=0)
    {
            modeGuiType = DiscType;
	     bp.BmpID = guiIndex;
		 
    	     DrawLoadBmp(hdc,&bp);
    }
}

/*----------------------------------------------------------------------------
 * Function name: ClearRectArea
 * Arguments:      
 * Return value:   None
 * Remark:      clear gui by type
 *----------------------------------------------------------------------------*/
void ClearRectArea( HDC hdc,BYTE GuiType)
{
    RECT rect;
    HBRUSH hbr;
    int left,top,right,bottom;
    extern BOOL isShow3DSur;
    extern BOOL bNeedShowAC3;

    //haiyuan030806 prohibit clear modegui in console mode
    if(g_UiCrntSubFunc == UI_SUBFUNC_CONSOLE && GuiType == GUITYPE_MODEGUI)
        return;
    //--------------------

    if (GuiType==GUITYPE_SCREEN||GuiType==GUITYPE_MODEGUI||GuiType==GUITYPE_DISPLAYGUI)
    	isShow3DSur =FALSE;
			    
    switch(GuiType)
    {
    case GUITYPE_SCREEN:
        left=0;
        top=0;
        right=608;
        bottom=416;
        break;
    case GUITYPE_DISPLAYGUI:
        left=0;
        top=0;
		if(bIsDVDRegionErr)
          right=MSGLEFT+8;
		else	
        right=MSGLEFT-15;//CNSL_HINTBOX_RIGHT;
        bottom=420;
        break;
    case GUITYPE_DISPLAYHINT:
        left=50;
        top=334;
        right=374;
        bottom=435;
        break;
    case GUITYPE_MODEGUI:
    	 bNeedShowAC3=0;
        modeGuiType = 0;
        left=0;
        top=0;
		if(bIsDVDRegionErr)
          right=MSGLEFT+8;
		else	
        right=MSGLEFT-2;
        bottom=150;
        break;
    case GUITYPE_PLAYMODEGUI:
        
#ifdef _MPLAY_ENABLE_
        //--> Gordon. in Slide show, the dc is different, so the position was not correct if using old dc, to let it be the same as MPO, I reimplemented it.
        if(FileType==C_JPGFILE )
        {
            MPA_RefreshAuxiliary(AT_PLAYMODE_CLR, &gAuxParam);
            return;
        }
        else
        //<-- Gordon
#endif //MPLAYER_ENABLE
        
        {
            left=MSGLEFT;
            top=MSGTOP;
            right=MSGRIGHT;
            bottom=MSGTOP+64;
        }
        break;
    case GUITYPE_ZOOM:
        left = ZOOM_LEFT-10;
        top = ZOOM_TOP;
        right = ZOOM_LEFT + ZOOM_WIDTH+10;
        bottom = ZOOM_TOP + ZOOM_UP_HEIGHT + ZOOM_DOWN_HEIGHT+10;
        break;
		
    case GUITYPE_KARAOKE:
	     if (g_UiCrntFunc==UI_FUNC_FILEOPEN||FileType==C_JPGFILE)
         {
              left = KOK_LEFT;
              top = KOK_TOP;
              right = left + KOK_OUTLOOK_WIDTH + 2;
              bottom = top + KOK_OUTLOOK_HIGH + 2;
        }
    	else
    	{
    		left = KOK_LEFT;
        	top = KOK_TOP;
        	right = left + 450+100;//bond modify  it for bug 2187  
        	bottom = top + 45+30+100;
       }
        break;

#ifdef _BRIGHT_ENABLE_ 
#define _GUITYPE_VOLUME_BRIGHT_ENABLE_
#endif
#ifdef _MUTE_ENABLE_ 
#define _GUITYPE_VOLUME_BRIGHT_ENABLE_
#endif

#ifdef _GUITYPE_VOLUME_BRIGHT_ENABLE_ 
		case GUITYPE_VOLUME_BRIGHT:
			if ((g_UiCrntFunc==UI_FUNC_FILEOPEN) || (FileType==C_JPGFILE) || bMixPlay)
			{
				left = KOK_LEFT;
				top = KOK_TOP;
				right = left + KOK_OUTLOOK_WIDTH + 2+20;
				bottom = top + KOK_OUTLOOK_HIGH + 2;
			}
			else
			{
				left = KOK_LEFT-20;
				top = KOK_TOP;
				right = left + 450+100+20;
				bottom = top + 45+30+100;
			}
			break;
#endif

#ifdef _MUTE_ENABLE_
		case GUITYPE_MUTE:
			if ((g_UiCrntFunc==UI_FUNC_FILEOPEN) || (FileType==C_JPGFILE) || bMixPlay)
			{
				left = KOK_LEFT;
				top = KOK_TOP;
				right = left + 100;
				bottom = top + KOK_OUTLOOK_HIGH + 2;
			}
			else
			{
				left = KOK_LEFT;
				top = KOK_TOP;
				right = left + 100; 
				bottom = top + 45+30+100;
			}
			break;
#endif
    }
//    SetRect(&rect,0, 0, 608, 416);
    SetRect(&rect,left, top, right, bottom);
    hbr=CreateSolidBrush(GetColorInDef256Palette(255));
    FillRect(hdc, &rect, hbr);
    DeleteObject((HGDIOBJ)hbr);
}

/*----------------------------------------------------------------------------
 * Function name: ShowDiscInfo
 * Arguments:      WORD Msg_type,WORD Msg_input
 * Return value:   None
 * Remark:      show sth. about disc current info,such as invalid,disctype,warning,angle and menu 
 *			 number.
 *----------------------------------------------------------------------------*/
static WORD infotype;
void ShowDiscInfo(WORD Msg_type,WORD Msg_input)
{
    BYTE numlen;
    static BaseBmp bbp =
        {
            0,
            INVALID_MSG_LEFT,
            INVALID_MSG_TOP,
            INVALID_MSG_WIDTH,INVALID_MSG_HEIGHT
        };
    BYTE anglestr[4]={0xe0,0x0c,0x00,0x00};
    BYTE str[10]={0xe0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
    BaseRect br=
        {
            {INVALID_MSG_LEFT-8,INVALID_MSG_TOP-5, INVALID_MSG_LEFT+36, INVALID_MSG_TOP+28},//{428,6,568,38}
            251,
            251,
            251
        };
    BYTE numstr[15];
    int pos1,pos2,temp;
    
    if(Msg_type==MSG_INVALID)
    {
        if(infotype!=MSG_INVALID&&infotype!=MSG_LOADING)
	        ClearRectArea(gui_hdc, GUITYPE_PLAYMODEGUI);
		ShowInvalidWithMemdc(gui_hdc, &br, NULL);
/*
        DrawBaseRect(gui_hdc,&br);
		
        bbp.BmpID = IM_DISC_ERR_ERROR;
        bbp.upperleftx = INVALID_MSG_LEFT+2;
        bbp.upperlefty = INVALID_MSG_TOP;
        bbp.height = INVALID_MSG_HEIGHT;
        //--> Gordon
        if(FileType==C_JPGFILE || bMixPlay)
        {
            bbp.upperleftx+=56;
            bbp.upperlefty+=16;
        }
        //<-- Gordon
        bbp.width = INVALID_MSG_WIDTH;
        DrawBaseBmp(gui_hdc, &bbp);
		
        bbp.BmpID = IM_PLAY_STATE_INVALID_FRAME_UP;
        bbp.upperleftx = INVALID_MSG_LEFT-8;
        bbp.upperlefty = INVALID_MSG_TOP-5;
        bbp.height = 2;//INVALID_MSG_HEIGHT;
        //--> Gordon
        if(FileType==C_JPGFILE || bMixPlay)
        {
            bbp.upperleftx+=56;
            bbp.upperlefty+=16;
        }
        //<-- Gordon
        bbp.width = INVALID_MSG_WIDTH;
        DrawBaseBmp(gui_hdc, &bbp);

        bbp.BmpID = IM_PLAY_STATE_INVALID_FRAME_DOWN;
        bbp.upperleftx = INVALID_MSG_LEFT-8;
        bbp.upperlefty = INVALID_MSG_TOP+28;
        bbp.height = 2;//INVALID_MSG_HEIGHT;
        //--> Gordon
        if(FileType==C_JPGFILE || bMixPlay)
        {
            bbp.upperleftx+=56;
            bbp.upperlefty+=16;
        }
        //<-- Gordon
        bbp.width = INVALID_MSG_WIDTH;
        DrawBaseBmp(gui_hdc, &bbp);

        bbp.BmpID = IM_PLAY_STATE_INVALID_FRAME_LEFT;
        bbp.upperleftx = INVALID_MSG_LEFT-8;
        bbp.upperlefty = INVALID_MSG_TOP-3;
        bbp.height = 36;//INVALID_MSG_HEIGHT;
        //--> Gordon
        if(FileType==C_JPGFILE || bMixPlay)
        {
            bbp.upperleftx+=56;
            bbp.upperlefty+=16;
        }
        //<-- Gordon
        bbp.width = 2;//INVALID_MSG_WIDTH;
        DrawBaseBmp(gui_hdc, &bbp);

        bbp.BmpID = IM_PLAY_STATE_INVALID_FRAME_RIGHT;
        bbp.upperleftx = INVALID_MSG_LEFT+36;
        bbp.upperlefty = INVALID_MSG_TOP-3;
        bbp.height = 36;//INVALID_MSG_HEIGHT;
        //--> Gordon
        if(FileType==C_JPGFILE || bMixPlay)
        {
            bbp.upperleftx+=56;
            bbp.upperlefty+=16;
        }
        //<-- Gordon
        bbp.width = INVALID_MSG_WIDTH;
        DrawBaseBmp(gui_hdc, &bbp);
		*/
        infotype=MSG_INVALID;
        //modeGuiType=MSG_INVALID;
        SetTimer(SHOWINVALID_TM_ID,ShowInvalidTimer,TIME_3SEC);
    }

    if(Msg_type==MSG_ANGLE)
    {
	 	ClearRectArea(gui_hdc, GUITYPE_PLAYMODEGUI);
        bbp.BmpID = IM_GUI_ANGLE;
        bbp.upperleftx = INVALID_MSG_LEFT;
        bbp.upperlefty = INVALID_MSG_TOP;
        bbp.height = INVALID_MSG_HEIGHT;
        bbp.width = INVALID_MSG_WIDTH;
        infotype=MSG_ANGLE;
        DrawBaseBmp(gui_hdc, &bbp);
		
        SetTimer(SHOWINVALID_TM_ID,ShowInvalidTimer,TIME_5SEC);
    }

    if(Msg_type==MSG_NUM)			//030812-03lily:show number on OSD
    {
	 ClearRectArea(gui_hdc, GUITYPE_PLAYMODEGUI);
        if(Msg_input<10)
        {
            if(Msg_input==0)
                Msg_input=10;
            pos1=LoadText(RS_MPLAYER_1+Msg_input-1, numstr,15);
        }
        else
        {
            temp=Msg_input/10;
            pos1=LoadText(RS_MPLAYER_1+temp-1, numstr,15);
            temp=Msg_input%10;
            if(temp!=0)
                pos2=LoadText(RS_MPLAYER_1+temp-1, &numstr[pos1-2],15);
            else
                pos2=LoadText(RS_MPLAYER_0, &numstr[pos1-2],15);
        }
        if(infotype==MSG_INVALID)
        {
		ClearRectArea(gui_hdc, GUITYPE_PLAYMODEGUI);
              SetTimer(SHOWINVALID_TM_ID,ShowInvalidTimer,INFINITETIME);
        }
        infotype=MSG_NUM;
        ShowStrWithMemdc(gui_hdc,&br, numstr);
        SetTimer(OSD1_TM_ID,PlayModeGUITimer,TIME_3SEC);//301011-01mi
    }

	
    if((Msg_type >= MSG_LOADING&& Msg_type <= MSG_BAD_DISC)||Msg_type==MSG_DVD_AUDIO||Msg_type==MSG_UNSURPORT_DISC
		||Msg_type==MSG_HDCD)
    {
      if(bShowNPswitch == 1)
      	{
      		bShowNPswitch = 0;
			ClearRectArea(gui_hdc, GUITYPE_MODEGUI);
      	}
	  if(Msg_type == MSG_LOADING)
	  	ShowDiscLoad(gui_hdc,Msg_type,Msg_input);
	  else
	  	ShowDiscType(gui_hdc, Msg_type,Msg_input);
	  infotype=MSG_LOADING;
         if ((Msg_type==MSG_UNKNOWN_DISC)||(Msg_type==MSG_UNSURPORT_DISC)||(Msg_type==MSG_NO_DISC))
	 	SetTimer(OSD6_TM_ID,ModeOSDOff,INFINITETIME);
	 else
        	SetTimer(OSD6_TM_ID,ModeOSDOff,TIME_3SEC);
    }
}

/*----------------------------------------------------------------------------
 * Function name: ShowAudioItem
 * Arguments:      none
 * Return value:   None
 * Remark:      show audio at the modebox position
 *----------------------------------------------------------------------------*/
void ShowAudioItem()
{
	WORD height;
    RECT tempRect,bmpRect,totalRect;
    int i;
    COLORREF clText, clBk, clTopEdge, clBotEdge, clLittleBk;
	HDC hMemDC;
	HBITMAP hOldBmp;
	extern BOOL isShow3DSur;
	
#ifdef _MUTE_ENABLE_		
	ptr_GetMuteVolumeStatus = GetMuteVolumeStatus;
	if(g_UiCrntSubFunc == UI_SUBFUNC_MUTEVOLUME && (*ptr_GetMuteVolumeStatus)() == MUTEVOLUME_STATUS_MUTE)
	{
		ClearRectArea(gui_hdc, GUITYPE_MUTE);	
	}
#endif	
	if(isShow3DSur)
		isShow3DSur =FALSE;
    consoleAudioItem.curLine = 0;
    GetAudioInfo2Item(&consoleAudioItem);

	clBk = GetColorInDef256Palette(MODEBOX_COLOURE_BK);
	clTopEdge = GetColorInDef256Palette(MODEBOX_COLOURE_TOPEDGE);
	clBotEdge = GetColorInDef256Palette(MODEBOX_COLOURE_BOTEDGE);
	clText = GetColorInDef256Palette(MODEBOX_COLOURE_TEXT);
	clLittleBk = GetColorInDef256Palette(MODEBOX_COLOURE_LITTLEBK);

    if(consoleAudioItem.lineCount ==1)
    {
        return;
    }
    if(consoleAudioItem.lineCount>3)
    {
        return;
    }

	totalRect.left = MODEBOXLEFT;
    totalRect.top = MODEBOXTOP;
    totalRect.bottom = MODEBOXHBOTTOM;
    totalRect.right = MODEBOXRIGHT;
    hMemDC=InitMemoryDC(gui_hdc, totalRect.right-totalRect.left, totalRect.bottom-totalRect.top, &hOldBmp);

	tempRect.left = 0;
    tempRect.top = 0;
    tempRect.bottom = MODEBOXHBOTTOM-totalRect.top;
    tempRect.right = MODEBOXRIGHT-totalRect.left;
	GUI_CreateButtonControl2(hMemDC, &tempRect, clBk, clTopEdge, clBotEdge, clText, "", NORMAL_STRING, 0, 0);

    //count the bmp position
	bmpRect.left = MODEICONLEFT-totalRect.left;
    bmpRect.top = MODEICONTOP-totalRect.top;
    bmpRect.bottom = bmpRect.top+MODEICONHEIGHT;
    bmpRect.right = bmpRect.left+MODEICONWIDTH;
#ifdef _SDRAM_4M16x1
	GUI_CreateBitmapControl2(hMemDC,&bmpRect,CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, IM_GUI_ICON_AUDIO, 2, 12);
#else
	GUI_CreateBitmapControl2(hMemDC,&bmpRect,CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, IM_GUI_AUDIO, 2, 12);
#endif

 	tempRect.left = MODELITTLEBOXLEFT - totalRect.left;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -