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

📄 nmosd.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    case MODESTR_REPEATA:
        pos1=LoadText(RS_MPLAYER_REPEAT_A, testbuf,30);
        pos1-=2;
        pos1+=LoadText(RS_GUI_SPACE_2, &testbuf[pos1], 30);
        pos1-=2;
        pos1+=LoadText(RS_MPLAYER_HYPHEN, &testbuf[pos1],30);
        pos1-=2;
        pos1+=LoadText(RS_GUI_SPACE_2, &testbuf[pos1], 30);
        pos1-=2;
        pos1+=LoadText(RS_GUI_SPACE_2, &testbuf[pos1], 30);
        break;

    default:
        LoadText(strtype, testbuf,100);       
        break;
    }
}

void ShowModeGuiWithMemdc(HDC hdc,lpBaseRect brect,lpBaseBmp bmp,BYTE* str, BOOL symbol)
{
    
    RECT BmpRect,StrRect,TempRect;
	HDC hMemDC;
	HBITMAP hOldBmp;
  
//added by gushun
	COLORREF clText, clBk, clTopEdge, clBotEdge, clLittleBk;
	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);
//added by gushun

    SetRect(&BmpRect, bmp->upperleftx, bmp->upperlefty, bmp->upperleftx+bmp->width, bmp->upperlefty+bmp->height);
    CopyRect(&StrRect, &(brect->rect)); 
	
    hMemDC=InitMemoryDC(hdc, StrRect.right-StrRect.left, StrRect.bottom-StrRect.top, &hOldBmp);
    if (symbol)
   {
   		TempRect.left=0;
		TempRect.top=0;
		TempRect.right=StrRect.right-StrRect.left;
		TempRect.bottom=StrRect.bottom-StrRect.top;
     	//show highlight box	
//modyfied by gushun
//    	GUI_CreateLeftMidRightBitmap2(hMemDC, &TempRect, IM_GUI_ICON_AUDIO_BACK,IM_GUI_ICON_AUDIO_BACK,IM_GUI_ICON_AUDIO_BACK,TRUE);
		GUI_CreateButtonControl2(hMemDC, &TempRect, clBk, clTopEdge, clBotEdge, clText, "", NORMAL_STRING, 0, 0);
		TempRect.left = MODELITTLEBOXLEFT-StrRect.left;
		TempRect.top = MODELITTLEBOXTOP-StrRect.top;
		TempRect.right = MODELITTLEBOXRIGHT-StrRect.left;
		TempRect.bottom = MODELITTLEBOXBOTTOM-StrRect.top;
		GUI_CreateButtonControl2(hMemDC, &TempRect, clLittleBk, clLittleBk, clLittleBk, clLittleBk, "", NORMAL_STRING, 0, 0);
//modyfied by gushun
	    
		OffsetRect(&TempRect,-40 , 0);
		
		//draw item info
//added by gushun
   		TempRect.left=0;
		TempRect.top=0;
		TempRect.right=StrRect.right-StrRect.left;
		TempRect.bottom=StrRect.bottom-StrRect.top;
//added by gushun

#if 0
      	DrawMultiLine(hdc,
				  consoleAudioItem.lineCount, 
				  consoleAudioItem.lpString[0],
				  &TempRect,
					CNSL_TEXT_UNSELE_COLOR, 
					DT_RIGHT | DT_VCENTER | DT_SINGLELINE | DT_CHARCLIP);
#endif
    }
	else
    {
   		TempRect.left=0;
		TempRect.top=0;
		TempRect.right=StrRect.right-StrRect.left;
		TempRect.bottom=StrRect.bottom-StrRect.top;
        //show highlight box	
//modyfied by gushun
//    	GUI_CreateLeftMidRightBitmap2(hMemDC, &TempRect, IM_GUI_ICON_BACK,IM_GUI_ICON_BACK,IM_GUI_ICON_BACK,TRUE);
		GUI_CreateButtonControl2(hMemDC, &TempRect, clBk, clTopEdge, clBotEdge, clText, "", NORMAL_STRING, 0, 0);
		TempRect.left = MODELITTLEBOXLEFT-StrRect.left;
		TempRect.top = MODELITTLEBOXTOP-StrRect.top;
		TempRect.right = MODELITTLEBOXRIGHT-StrRect.left;
		TempRect.bottom = MODELITTLEBOXBOTTOM-StrRect.top;
		GUI_CreateButtonControl2(hMemDC, &TempRect, clLittleBk, clLittleBk, clLittleBk, clLittleBk, "", NORMAL_STRING, 0, 0);
//modyfied by gushun

		//draw item info
//added by gushun
   		TempRect.left=0;
		TempRect.top=0;
		TempRect.right=StrRect.right-StrRect.left;
		TempRect.bottom=StrRect.bottom-StrRect.top;
//added by gushun

        GUI_CreateButtonControl2(hMemDC,&TempRect,CL_BKNOCARE, CL_BKNOCARE,CL_BKNOCARE, GetColorInDef256Palette(CNSL_TEXT_UNSELE_COLOR), str, UNICODE_STRING, DT_RIGHT, 8);
    }
   	TempRect.left=BmpRect.left-StrRect.left;
	TempRect.top=BmpRect.top-StrRect.top;
	TempRect.right=BmpRect.right-StrRect.left;
	TempRect.bottom=BmpRect.bottom-StrRect.top;
    //show item image
    GUI_CreateBitmapControl2(hMemDC,&TempRect,CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, bmp->BmpID, 0, 0);
    BitBlt(hdc, StrRect.left, StrRect.top, StrRect.right-StrRect.left, StrRect.bottom-StrRect.top, hMemDC, 1,0,SRCCOPY);
    DelMemoryDC(hMemDC, hOldBmp);

}

extern BOOL GetMuteVolumeStatus();
BOOL (*ptr_GetMuteVolumeStatus)();
/*----------------------------------------------------------------------------
 * Function name: ShowModeGui
 * Arguments:      WORD msgtype,WORD bmpid,LPBYTE str
 * Return value:   None
 * Remark:      This function show modegui;The global variable it uses is modebox. 
 *----------------------------------------------------------------------------*/
 void ShowModeGui(WORD msgtype,WORD msginput1,WORD msginput2)
{
    BYTE str[100];
       
    if(g_UiCrntSubFunc==UI_SUBFUNC_BMARK)
    {
      g_UiCrntSubFunc=UI_SUBFUNC_BASAL;//bond add for lg bug 031118. 
      ClearRectArea(gui_hdc,GUITYPE_MODEGUI);
    }

#ifdef _MUTE_ENABLE_
	ptr_GetMuteVolumeStatus = GetMuteVolumeStatus;
	if(g_UiCrntSubFunc == UI_SUBFUNC_MUTEVOLUME && (*ptr_GetMuteVolumeStatus)() == MUTEVOLUME_STATUS_MUTE)
	{
		ClearRectArea(gui_hdc, GUITYPE_MUTE);	
	}
#endif
	
    if(modeGuiType==MSG_VOICE&&(DiscType==C_DVD))
        ClearRectArea(gui_hdc,GUITYPE_MODEGUI);
    if((modeGuiType >= MSG_LOADING&& modeGuiType <= MSG_BAD_DISC)||modeGuiType==MSG_DVD_AUDIO||modeGuiType==MSG_UNSURPORT_DISC)
    	  ClearRectArea(gui_hdc, GUITYPE_MODEGUI);
    
    SetOSDLanguage(&OSD_Setup_Parameter.bOSDLang);
    modeGuiType = msgtype;

    SetRect(&(modebox.baserec.rect), MODEBOXLEFT, MODEBOXTOP, MODEBOXRIGHT, MODEBOXBOTTOM);

    switch(msgtype)
    {
	case MSG_REPEAT_A:
	    	modebox.bmp.BmpID=IM_GUI_RPT;

	    	GetModeStr(MODESTR_REPEATA, 0, 0,str);
	    	break;
	    	
	case MSG_REPEAT_AB:
	    	modebox.bmp.BmpID=IM_GUI_RPT;

	    	GetModeStr(RS_MPLAYER_REPEAT_AB,0, 0,str);
	    	break;
	    	
	case MSG_REPEATOFF:
	    	modebox.bmp.BmpID=IM_GUI_RPT;

	    	GetModeStr(RS_GUI_OFF,0, 0,str);
	    	break;

	case MSG_REPEAT:
	    	modebox.bmp.BmpID=IM_GUI_RPT;

	    	if(msginput1==1)
	    		GetModeStr(RS_GUI_LEARNING_REPEAT, 0, 0,str);
		else
		{
	              if (DiscType == C_DVD)
	                  GetModeStr(RS_GUI_CHAPTER, 0, 0,str);
	              else
	                  GetModeStr(RS_GUI_TRACKS, 0, 0,str);
		}
	    	break;
	    	
	case MSG_REPEAT_ALL:
	    	modebox.bmp.BmpID=IM_GUI_RPT;
              if (DiscType == C_DVD )
                   GetModeStr(RS_GUI_TITLE, 0, 0,str);
             	else 
                   GetModeStr(RS_MPLAYER_ALL, 0, 0,str);
	    	break;
	    	
	case MSG_ANGLE:
			modebox.bmp.BmpID=IM_GUI_ANGLE;
	    	GetModeStr(MODESTR_NUMSELECT,msginput1, msginput2,str);
	    	break;
	    	
	case MSG_BOOKMARK:
	    	modebox.bmp.BmpID=IM_GUI_MARKER;
	    	GetModeStr(MODESTR_BMNUMSELECT,msginput1, msginput2,str);
	    	break;

	case MSG_SUBPIC:
	    	modebox.bmp.BmpID=IM_GUI_SUBTITLE;
	    	if(msginput1==0&&msginput2!=0)
                   GetModeStr(RS_GUI_OFF,0,0,str);
	    	else if(msginput1==0&&msginput2==0)
	    	     UNStringCopy( str,"\0N\0O\0N\0E\0\0");
	    	else	
	    	     GetModeStr(MODESTR_NUMSTR,msginput1, msginput2,str);
	    	break;

	 case MSG_NUM:
              if(DiscType==C_DVD)
	   	modebox.bmp.BmpID=IM_GUI_CHAPTER;
			  else
	    			modebox.bmp.BmpID=IM_GUI_TITLE;
	    	GetModeStr(MODESTR_NUMSELECT,msginput1, msginput2,str);
	 	break;

        case MSG_SOUND:
	     modebox.bmp.BmpID=IM_GUI_SOUND;

	    	if(msginput1==0)
	    		GetModeStr(RS_GUI_NORMAL,0, 0,str);
	    	else
	    		GetModeStr(RS_GUI_SRS3D,0, 0,str);
       	break;

	 case MSG_VOICE:	 	
	 	modebox.bmp.BmpID=IM_GUI_AUDIO;
              if(DiscType == C_SVCD||DiscType==C_VCD20||DiscType==C_VCD10)
              {
	    		if(msginput1==0)
                        GetModeStr(RS_GUI_STEREO,0,0,str);
			else if(msginput1==1)
                        GetModeStr(RS_GUI_LEFT,0,0,str);
			else
                        GetModeStr(RS_GUI_RIGHT,0,0,str);
	    		break;
              }
              else
              {
	 				ShowAudioItem();	 		
	 		return;
              }
	case MSG_PAL:
	     modebox.bmp.BmpID=0;
       	 GetModeStr(RS_SETUP_DISP_PAL,0,0,str);
		 break;
		 
	case MSG_AUTO:
	     modebox.bmp.BmpID=0;
       	 GetModeStr(RS_GUI_DEINT_MODE_AUTO,0,0,str);
		 break;
		 
	case MSG_NTSC:
	     modebox.bmp.BmpID=0;
       	 GetModeStr(RS_SETUP_DISP_NTSC,0,0,str);
		 break;
   }
    
    ShowModeGuiWithMemdc(gui_hdc, &modebox.baserec,&modebox.bmp, str, 0);

    if(msgtype==MSG_REPEAT_A)
        SetTimer( OSD6_TM_ID, ModeOSDOff, INFINITETIME);
    else// if(msgtype==MSG_REPEAT_AB||msgtype==MSG_PREV)
        SetTimer( OSD6_TM_ID, ModeOSDOff, TIME_3SEC);
    //else if(msgtype==MSG_NEXT)
      //  SetTimer( OSD6_TM_ID, ModeOSDOff, TIME_3SEC/*500*/);//bond modify 031013 for bug 1520
   // else
     //   SetTimer( OSD6_TM_ID, ModeOSDOff, TIME_3SEC );
}

/*----------------------------------------------------------------------------
 * Function name: ShowDiscType
 * Arguments:      
 * Return value:   None
 * Remark:      show current disc type
 *----------------------------------------------------------------------------*/
void ShowDiscType(HDC hdc,WORD DiscType,WORD input)
{
#if 0
   static BaseString Nodiscstr	={
                                      RS_DISC_NO_DISC,
                                      {
                                          LOAD_ICON_LEFT+PL_BMP_WIDTH+13+9,
                                          PL_ALARMSTR_TOP,
                                          MSGLEFT,/*LOAD_ICON_LEFT+PL_BMP_WIDTH+243,*/
                                          PL_ALARMSTR_BOTTOM,
                                          255,255,255
                                      },
                                      DT_LEFT|DT_SINGLELINE|DT_VCENTER,32,NULL
                                  };
    BYTE nodiscstr[30];

    static BaseString Chkdiscstr	={
                                      RS_DISC_CHECK_DISC,
                                      {
                                          LOAD_ICON_LEFT+PL_BMP_WIDTH+13,
                                          PL_ALARMSTR_TOP,
                                          LOAD_ICON_LEFT+PL_BMP_WIDTH+243,
                                          PL_ALARMSTR_BOTTOM,
                                          255,255,255
                                      },
                                      DT_LEFT|DT_SINGLELINE|DT_VCENTER,32,NULL
                                  };
    BYTE chkdiscstr[30];

    static BaseString Discerrstr	={
                                      RS_DISC_DISC_ERROR,
                                      {
                                          LOAD_ICON_LEFT+PL_BMP_WIDTH+13,
                                          PL_ALARMSTR_TOP,
                                          LOAD_ICON_LEFT+PL_BMP_WIDTH+243,
                                          PL_ALARMSTR_BOTTOM,
                                          255,255,255
                                      },
                                      DT_LEFT|DT_SINGLELINE|DT_VCENTER,32,NULL
                                  };
    BYTE discerrstr[30];
#endif
    BaseBmp bp;
    WORD guiIndex;

    

    switch(DiscType)
    {
        case MSG_LOADING:
            guiIndex = IM_DISC_ANI_1+input;
            break;
        case MSG_UNKNOWN_DISC:
        case MSG_UNSURPORT_DISC:
            guiIndex = IM_DISC_ERR_CHECK;
            break;
       // case MSG_UNSURPORT_DISC:
         //   guiIndex = IM_DISC_ERR_CHECK;
          //  break;
        case MSG_DVD:
            guiIndex = IM_DISC_DVD;
            break;
        case MSG_VCD10:
            guiIndex = IM_DISC_VCD10;
            break;
        case MSG_VCD20:
            guiIndex = IM_DISC_VCD20;
            break;
        case MSG_SVCD:
            guiIndex = IM_DISC_SVCD;
            break;
        case MSG_NO_DISC:
            guiIndex = IM_DISC_NO_DISC;
            break;
        case MSG_BAD_DISC:
            guiIndex = IM_DISC_ERR_CHECK;
            ClearRectArea(gui_hdc, GUITYPE_SCREEN);
            break;
        case MSG_CDDA:
            guiIndex = IM_DISC_CD;
            break;
        case MSG_HDCD:
        		guiIndex = IM_DISC_HDCD;
            break;
//        case MSG_DVD_AUDIO:
//            guiIndex = IM_DISC_AUDIO;
//            break;
        default :
            guiIndex = 0;
     }

        if(guiIndex!=0)
        {
            //if(DiscType!=MSG_LOADING)
	            ClearRectArea(gui_hdc, GUITYPE_MODEGUI);

           /* if(DiscType==MSG_NO_DISC)
            {
			GetModeStr(Nodiscstr.stringID,0,0,nodiscstr);
            		DrawBaseString(gui_hdc, &Nodiscstr,nodiscstr);
            }
            else if(DiscType==MSG_UNKNOWN_DISC)
            {
			GetModeStr(Discerrstr.stringID,0,0,discerrstr);
               	DrawBaseString(gui_hdc, &Discerrstr,discerrstr); 
            }
            else if(DiscType==MSG_UNSURPORT_DISC)
            {
			GetModeStr(Chkdiscstr.stringID,0,0,chkdiscstr);
             		DrawBaseString(gui_hdc, &Chkdiscstr,chkdiscstr);         	
            }
	     else*/
	     {
                  bp.upperleftx = 50;//63;
		    bp.upperlefty = 16;//22;
		    bp.height = 46;//34;
		    bp.width = 84;//58;

		    bp.BmpID = IM_DISC_ICON;
     	    DrawBaseBmp(hdc,&bp);
	     }

	    bp.upperleftx = 41;
	    bp.upperlefty = 62;
	    bp.height = 19;
	    bp.width = 104;
		
            modeGuiType = DiscType;
	     bp.BmpID = guiIndex;
    	     DrawBaseBmp(hdc,&bp);
            if(DiscType==MSG_CDDA || DiscType==MSG_HDCD)
            	 delay(TIME_1SEC);
        }
}

void ShowDiscLoad(HDC hdc,WORD DiscType,WORD input)
{

⌨️ 快捷键说明

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