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

📄 nmosd.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:

                strContent[pos+i]=0x00;
                i++;
                strContent[pos+i]=0x00;
            }

        }

        if(guiMode==RS_FUN_OSD_STOP && exInfo == 1)
        {
            LoadText(RS_FUN_OSD_PAUSE,strContent, 30) ;
            LoadText(RS_FUN_OSD_STOP,strContent+2, 30) ;
        }
        //SetTextColor(gui_hdc, GetColorInDef256Palette(230));
        //DrawText(gui_hdc,strContent, -1, &(br.rect), DT_CENTER |DT_VCENTER | DT_SINGLELINE);
        ShowStrWithMemdc(gui_hdc, &br, strContent);
		
    }
    
    if( guiMode == RS_FUN_OSD_REV_SKIP||guiMode == RS_FUN_OSD_SKIP )
    {
    	 SetTimer(OSD1_TM_ID,PlayModeGUITimer,3000);
    	 if(DiscType!=C_DVD||(!NVChkIsMultiPGC()))
        	ShowNumPlay(1,exInfo);
    }
    else if(guiMode == RS_FUN_OSD_SCAN ||guiMode == RS_FUN_OSD_SLOW ||
            guiMode == RS_FUN_OSD_REV_SCAN ||guiMode == RS_FUN_OSD_REV_SLOW||
            guiMode == RS_FUN_OSD_PAUSE)
        SetTimer(OSD1_TM_ID,PlayModeGUITimer,INFINITETIME);
    //else if(guiMode == RS_FUN_OSD_PAUSE)
      //  SetTimer(OSD1_TM_ID,PlayModeGUITimer,INFINITETIME);
    else if(guiMode==RS_FUN_OSD_STOP&&exInfo!=1)
    {
        SetTimer(OSD1_TM_ID,PlayModeGUITimer,INFINITETIME);
    	 SetTimer( STOP_TM_ID, ShopTimer, TIME_3SEC);//jane temp for lg bug 2048
    }
    else
        SetTimer(OSD1_TM_ID,PlayModeGUITimer,TIME_3SEC);

}

/*----------------------------------------------------------------------------
 * Function name: ShowNumPlay
 * Arguments:      BYTE bshow,WORD inNum
 * Return value:   None
 * Remark:      show number at the modebox position.
 *----------------------------------------------------------------------------*/
void ShowNumPlay(BYTE bshow,WORD inNum )
{
    PLAYPOINT CurPlayPoint;
    BYTE numstr[30];

    if(bshow!=0)
    {
        if(g_UiCrntSubFunc!=UI_SUBFUNC_CONSOLE)
        {
            NVGetCurInfo( &CurPlayPoint );
            if(DiscType==C_DVD)
            {
                if ((inNum!=0)&&(inNum<=NVGetTTPTTNs(CurPlayPoint.wTTN)))
                    ShowModeGui(MSG_NUM,inNum,NVGetTTPTTNs(CurPlayPoint.wTTN));
            }
            else
            {
                if(DiscType==C_VCD10||((DiscType==C_VCD20||DiscType==C_SVCD)&&OSD_Setup_Parameter.bPBC==C_OFF))
            	{
                    if ((inNum!=0)&&(inNum<=NVGetTTNsOrTrks()))
                        ShowModeGui(MSG_NUM,inNum,NVGetTTNsOrTrks());
   				}
			}
		}
   	}
}


void ShowStrWithMemdc(HDC hdc,lpBaseRect brect,BYTE* str)
{
	GUI_CreateButtonControl(hdc, &(brect->rect), GetColorInDef256Palette(brect->bkColor), GetColorInDef256Palette(236), GetColorInDef256Palette(225), GetColorInDef256Palette(236), str, UNICODE_STRING, DT_CENTER, 0);
}

void ShowInvalidWithMemdc(HDC hdc,lpBaseRect brect,BYTE* str)
{
	RECT rect={MSGIMGLEFT,MSGIMGTOP,MSGIMGLEFT+INVALID_MSG_WIDTH,MSGIMGTOP+INVALID_MSG_HEIGHT};
	
    if(FileType==C_JPGFILE)
    {
        rect.left+=56;
        rect.top+=16;
    }
	GUI_CreateBitmapControl(hdc, &rect, GetColorInDef256Palette(brect->bkColor), GetColorInDef256Palette(2), GetColorInDef256Palette(199), IM_DISC_ERR_ERROR, 10, 5);
}


void BookMarkTimer(void)
{
    if(PollCmdUIMsg(C_TIMER_ACTIVE, C_BOOKMARK_TIMER)==FALSE)
    {
        SetTimer(OSD5_TM_ID, BookMarkTimer, C_WAIT_MSG_TIME);
    }
}

void DrawSmallArrow(HDC hdc, const LPRECT lprct,BYTE clrIndex,UINT format,BYTE arrow)
{
   
    BYTE leftarrow[4]={0xe0,0x10,0x00,0x00};
    BYTE rightarrow[4]={0xe0,0x11,0x00,0x00};  
	BYTE uparrow[4]={0xe0,0x17,0x00,0x00};
	BYTE downarrow[4]={0xe0,0x18,0x00,0x00};
	BYTE updownarrow[4]={0xe0,0x19,0x00,0x00};
    BYTE leftarrowBig[4]={0xe0,0x15,0x00,0x00}; 
	BYTE rightarrowBig[4]={0xe0,0x16,0x00,0x00};

	BYTE *pArrow = NULL;

     SetTextColor( hdc,GetColorInDef256Palette(clrIndex) );
	 switch(arrow)
	 {
	 	case ARROW_LEFT:
		 	pArrow = leftarrow;
			break;
	 	case ARROW_RIGHT:
		 	pArrow = rightarrow;
			break;
	 	case ARROW_UP:
		 	pArrow = uparrow;
			break;
	 	case ARROW_DOWN:
		 	pArrow = downarrow;
			break;
	 	case ARROW_UPDOWN:
		 	pArrow = updownarrow;
			break;
	 	case ARROW_LEFT_BIG:
		 	pArrow = leftarrowBig;
			break;
	 	case ARROW_RIGHT_BIG:
		 	pArrow = rightarrowBig;
			break;
		default:
			break;
	 }
      DrawText(hdc, pArrow , -1, lprct, format);
	#if 0 
	if(arrow==ARROW_LEFT)
	{
	 
      DrawText(hdc, leftarrow , -1, lprct, format);
	}
	else if(arrow==ARROW_RIGHT)
	{
	 
	  DrawText(hdc, rightarrow , -1, lprct, format);
	}
	else if(arrow==ARROW_UP)
	{
	 
	  DrawText(hdc, uparrow , -1, lprct, format);
	}
	else if(arrow==ARROW_DOWN)
	{
	 
	  DrawText(hdc, downarrow , -1, lprct, format);
	}	
	else if(arrow==ARROW_UPDOWN)
	{
	  
	   DrawText(hdc, updownarrow , -1,lprct, format);
	}
	else if(arrow==ARROW_LEFT_BIG)
	{
	  DrawText(hdc, leftarrowBig , -1,lprct, format);
	}
	else if(arrow==ARROW_RIGHT_BIG)
	{
	  DrawText(hdc, rightarrowBig , -1,lprct, format);
	}
	#endif
}

void	DrawPlInputBox(HDC hdc,BYTE i,BOOL ifinput)
{
	RECT rect;
    BYTE str[2]={0x00,'*'};
    BYTE nullstr[2]={0x00,'-'};

    SetBkMode(hdc, OPAQUE);
	rect.left = PL_PSWINPUT_BOX_LEFT+i*(PL_PSWINPUT_BOX_WIDTH);
	rect.top = PL_PSWINPUT_BOX_TOP;
	rect.right = rect.left+PL_PSWINPUT_BOX_WIDTH+1;
	rect.bottom =rect.top+PL_PSWINPUT_BOX_HIGHT;

    SetTextColor(hdc,
                 GetColorInDef256Palette(233));
    SetBkColor(hdc,
               GetColorInDef256Palette(PL_COLOURE_LITTLEBK));
	if(ifinput)
   		DrawText(hdc,str,2,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_CENTER);
	else
	    DrawText(hdc,nullstr,2,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_CENTER);
	SetBkMode(hdc, TRANSPARENT);

}

/*----------------------------------------------------------------------------
 * Function name: ShowRegionError
 * Arguments:      
 * Return value:   None
 * Remark:      This function show Region Code Error Hint
 *----------------------------------------------------------------------------*/
void ShowRegionError()
{
    static BaseBmp Regionalarmbmp	={
                                       IM_DISC_ERR_CHECK,
                                       REGION_ALARMBMP_LEFT,
                                       REGION_ALARMBMP_TOP,
                                       REGION_ALARMBMP_WIDTH,
                                       REGION_ALARMBMP_HIGHT
                                   };
    static BaseString Regionalarmstr	={
                                          RS_DISC_CHECK_REGIONAL_CODE,
                                          {
                                              REGION_ALARMSTR_LEFT,
                                              REGION_ALARMSTR_TOP,
                                              MSGLEFT,/*REGION_ALARMSTR_LEFT+200,*/
                                              REGION_ALARMSTR_BOTTOM,
                                              255,255,255
                                          },
                                          DT_LEFT|DT_SINGLELINE|DT_VCENTER,244,NULL
                                      };
    BYTE str[100];
     
	if(bIsRegionErrShow == TRUE)	//Do nothing if region error is already show on OSD
		return;
	bIsRegionErrShow= TRUE;
    ClearRectArea(gui_hdc,GUITYPE_SCREEN);
    SetTimer( OSD6_TM_ID, ModeOSDOff, INFINITETIME);
    
    DrawBaseBmp(gui_hdc, &Regionalarmbmp);
    GetModeStr(Regionalarmstr.stringID,0,0,str);
    DrawBaseString(gui_hdc,&Regionalarmstr,str);
}

/*----------------------------------------------------------------------------
 * Function name: ShowChgPLOSD
 * Arguments:      
 * Return value:   None
 * Remark:      This function show PL change window
 *----------------------------------------------------------------------------*/
void ShowChgPLOSD()
{
    BYTE str[100],i;
    int pos1;
	RECT rect;

//-->gushun
//	RECT rectbgLeft = {PL_PASSWORD_BOX_LEFT,PL_PASSWORD_BOX_TOP,PL_PASSWORD_BOX_LEFT+56,PL_PASSWORD_BOX_TOP+68};
//	RECT rectbgMiddle = {PL_PASSWORD_BOX_LEFT+56,PL_PASSWORD_BOX_TOP,PL_PASSWORD_BOX_LEFT+130+30,PL_PASSWORD_BOX_TOP+68};
//	RECT rectbgRight = {PL_PASSWORD_BOX_LEFT+130+30,PL_PASSWORD_BOX_TOP,PL_PASSWORD_BOX_LEFT+228+30+20,PL_PASSWORD_BOX_TOP+68};
	RECT rectbg = {PL_PASSWORD_BOX_LEFT, PL_PASSWORD_BOX_TOP, PL_PASSWORD_BOX_LEFT+228+30+20, PL_PASSWORD_BOX_TOP+68};
//<--gushun	

	BYTE Select_Icon[] = {0xe0,0x13};
	BYTE Help_Select[] = {0x00,'S',0x00,'e',0x00,'l',0x00,'e',0x00,'c',0x00,'t'};//{0xe0,0x16,0x00,0x20 ,0x00,0x00};

	BaseString help;
	
//-->gushun
/*
    static BaseBmp PLalarmbmp	={
                                   IM_PASS_POPUP_WARNING,
                                   PL_ALARMBMP_LEFT,
                                   PL_ALARMBMP_TOP,
                                   PL_ALARMBMP_WIDTH,
                                   PL_ALARMBMP_HIGHT
                               };
    static BaseString PLalarmstr	={
                                      RS_DISC_PARENTAL_CONTROLL_LIMIT,
                                      {
                                          PL_ALARMSTR_LEFT,
                                          PL_ALARMSTR_TOP,
                                          PL_ALARMSTR_LEFT+240,
                                          PL_ALARMSTR_BOTTOM,
                                          255,255,255,31
                                      },
                                      DT_LEFT|DT_SINGLELINE|DT_VCENTER,32,NULL
                                  };

    static BaseString PLhintstr	={
                                     0,
                                     {
                                         PL_PASSWORD_BOX_LEFT+58,//maggie
                                         PL_PSWHINT_BOX_TOP,//maggie
                                         PL_PASSWORD_BOX_RIGHT,
                                         PL_PSWHINT_BOX_TOP+PL_PSWHINT_BOX_HIGHT,
                                        // 97,32,128
                                        249,255,255
                                     },
                                     DT_CENTER|DT_SINGLELINE|DT_VCENTER,32,NULL
                                 };
*/
//<--gushun

    BYTE PLhintstrinfo[100] ={0xe0,0x14,0x00,' ',0x00,'I',0x00,
	'n',0x00,'p',0x00,'u',0x00,'t',0x00,' ', 0x00,
    ' ',0x00,' ',0xe0,0x2b,0x00,' ',0x00,
	'C',0x00,'l',0x00,'e',0x00,'a',0x00,'r'
    };
/*	
    static BaseRect PLpswrect	={
                                   PL_PASSWORD_BOX_LEFT,
                                   PL_PASSWORD_BOX_TOP,
                                   PL_PASSWORD_BOX_RIGHT,
                                   PL_PASSWORD_BOX_BOTTOM,
                                   //97,32,128
                                   249,255,255
                               };*/
    static BaseBmp PLpswbmp	={
                                 NULL,
                                 PL_BMP_LEFT,
                                 PL_BMP_TOP,
                                 PL_BMP_WIDTH,
                                 PL_BMP_HIGHT
                             };

    PLPassWdPos = 0;
    PLPassWdCnt = 0;

//-->modyfied by gushun
/*
    GUI_CreateLeftMidRightBitmap(gui_hdc, &rectbgLeft, IM_PASS_POPUP_BG_LEFT, IM_PASS_POPUP_BG_LEFT, IM_PASS_POPUP_BG_LEFT, TRUE);
    GUI_CreateLeftMidRightBitmap(gui_hdc, &rectbgMiddle, IM_PASS_POPUP_BG_MIDDLE_LEFT, IM_PASS_POPUP_BG_MIDDLE, IM_PASS_POPUP_BG_MIDDLE_RIGHT, TRUE);
    GUI_CreateLeftMidRightBitmap(gui_hdc, &rectbgRight, IM_PASS_POPUP_BG_RIGHT, IM_PASS_POPUP_BG_RIGHT, IM_PASS_POPUP_BG_LEFT, TRUE);


    if(DiscType!=C_DVD_AUDIO)
    {
        DrawBaseBmp(gui_hdc, &PLalarmbmp);
        GetModeStr(PLalarmstr.stringID,0,0,str);
        DrawBaseString(gui_hdc,&PLalarmstr,str);
    }
*/	
	GUI_CreateButtonControl2(gui_hdc, &rectbg, GetColorInDef256Palette(PL_COLOURE_BK), GetColorInDef256Palette(PL_COLOURE_TOPEDGE), GetColorInDef256Palette(PL_COLOURE_BOTTOMEDG), GetColorInDef256Palette(PL_COLOURE_BK), "", NORMAL_STRING, 0, 0);
//<--modyfied by gushun
	
	//draw select confirm icon
//	SetRect(&rect, 419-56+25-55, 215, 419+20-56+25-55, 215+20); //--gushun
	SetRect(&rect, PL_PASSWORD_BOX_LEFT+205, PL_PASSWORD_BOX_TOP-24, 353, 235);
    SetTextColor(gui_hdc,
                 GetColorInDef256Palette(31));
    SetBkColor(gui_hdc,
               GetColorInDef256Palette(246));
    DrawText(gui_hdc,Select_Icon,2,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_LEFT);

	//draw select
//	SetRect(&rect, 443-56+25-55, 216, 443+50+25-55, 215+20);//--gushun
	SetRect(&rect, PL_PASSWORD_BOX_LEFT+205, PL_PASSWORD_BOX_TOP-23, 463, 235);
    //SetTextColor(gui_hdc,
    //             GetColorInDef256Palette(31));
   // SetBkColor(gui_hdc,
    //           GetColorInDef256Palette(246));
    DrawText(gui_hdc,Help_Select,12,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_LEFT);

/*
    // Init PL hint block
    PLhintstrinfo[0]=0xe0;
    PLhintstrinfo[1]=0x14;
    PLhintstrinfo[2]=0x00;
    PLhintstrinfo[3]=' ';
	PLhintstrinfo[4]=0x00;
	PLhintstrinfo[5]='I';
	PLhintstrinfo[6]=0x00;
	PLhintstrinfo[7]='n';
	PLhintstrinfo[8]=0x00;
	PLhintstrinfo[9]='p';
	PLhintstrinfo[10]=0x00;
	PLhintstrinfo[11]='u';
	PLhintstrinfo[12]=0x00;
	PLhintstrinfo[13]='t';
    PLhintstrinfo[14]=0x00;
    PLhintstrinfo[15]=' ';
    PLhintstrinfo[16]=0x00;
    PLhintstrinfo[17]=' ';
    PLhintstrinfo[18]=0x00;
    PLhintstrinfo[19]=' ';
    PLhintstrinfo[20]=0xe0;
    PLhintstrinfo[21]=0x2b;
    PLhintstrinfo[22]=0x00;
    PLhintstrinfo[23]=' ';
	PLhintstrinfo[24]=0x00;
	PLhintstrinfo[25]='C';
	PLhintstrinfo[26]=0x00;
	PLhintstrinfo[27]='l';
	PLhintstrinfo[28]=0x00;
	PLhintstrinfo[29]='e';
	PLhintstrinfo[30]=0x00;
	PLhintstrinfo[31]='a';
	PLhintstrinfo[32]=0x00;
	PLhintstrinfo[33]='r';

*/

//	SetRect(&rect, 275-5-55, 249, 501+30-55, 249+20);//--gushun
  	SetRect(&rect, PL_PASSWORD_BOX_LEFT+54, PL_PASSWORD_BOX_TOP+4, 476, 266);
    //SetTextColor(gui_hdc,
     //            GetColorInDef256Palette(31));
    //SetBkColor(gui_hdc,
    //           GetColorInDef256Palette(246));
    DrawText(gui_hdc,PLhintstrinfo,36,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_LEFT);
    
    //draw pswbmp
    if(DiscType==C_DVD)
    {

⌨️ 快捷键说明

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