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

📄 osdvir.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 2 页
字号:
                            );    
             
            //GDI_SetTextColor(TEXT_FG_COLOR, COLOR_BLUE_TRANS);
			GDI_SetTextColor(TEXT_FG_COLOR, COLOR_BLACK);

            //__wDiscType = BOOK_DVD; //comment when DVD/VCD is in the loader

            //show buttons 
            for (__bTemp=0; __bTemp<TOTAL_BUTTON_NUM_IN_VIR; __bTemp++)
            { 
                _ShowButton(__bTemp, COLOR_LIGHTGRAY);                           
            }                
            
            //Set default Highlight
            _ShowButton(_bCurrentButton, COLOR_YELLOW);  

            __bOSDVIRMode = TRUE;
        }
        else //2nd KEY_PROGRAM will exit the Virtual IR mode
        {
            //clear current region
            //GDI_ClearRegion(0);

			//clear Virtual IR region
			GDI_FILL_RECT(VIR_FRAME_X0, VIR_FRAME_Y0, VIR_FRAME_X1, VIR_FRAME_Y1+32,
                          COLOR_TRANSPARENT
                          );    
            __bOSDVIRMode = FALSE;
        }
        
        __bKey= KEY_NO_KEY; 
        break;


    /** Enter the following cases when ((bKey!=KEY_VIRTUALIR) && __bOSDVIRMode) holds ***/      
    case KEY_LEFT:
		//Clear Highlight
        _ShowButton(_bCurrentButton, COLOR_LIGHTGRAY);
        
        //Clear Info Characters
        GDI_FILL_RECT(VIR_FRAME_X0, VIR_FRAME_Y1+1, VIR_FRAME_X1, VIR_FRAME_Y1+32,
                      COLOR_TRANSPARENT
                      );    

		if (_bCurrentButton!=0)          
			_bCurrentButton--; 
		else
			_bCurrentButton=TOTAL_BUTTON_NUM_IN_VIR-1;
        
        //Set Highlight     
        _ShowButton(_bCurrentButton, COLOR_YELLOW);
                   
        //Show Notes
        if (_bCurrentButton>=BUTTON_SPST_CTL)
            _ShowNotes(_bCurrentButton);
 
        
        __bKey = KEY_NO_KEY;
        break;
        
        
    case KEY_RIGHT:
        //Clear Highlight
        _ShowButton(_bCurrentButton, COLOR_LIGHTGRAY);
        
        //Clear Info Characters
        GDI_FILL_RECT(VIR_FRAME_X0, VIR_FRAME_Y1+1, VIR_FRAME_X1, VIR_FRAME_Y1+32,
                      COLOR_TRANSPARENT
                      );                
		
		if (_bCurrentButton<(TOTAL_BUTTON_NUM_IN_VIR-1))           
			_bCurrentButton++;   
		else
			_bCurrentButton=0;
        
        //Set Highlight     
        _ShowButton(_bCurrentButton, COLOR_YELLOW);    

        //Show Notes
        if (_bCurrentButton>=BUTTON_SPST_CTL)
            _ShowNotes(_bCurrentButton);

        __bKey = KEY_NO_KEY;
        break;
    
    case KEY_ENTER:        
    case KEY_PLAY:
        switch(_bCurrentButton)
        {
            case BUTTON_PREV:
                __bKey=KEY_PREV; 
                break;
            case BUTTON_PLAY:
                __bKey=KEY_PLAY; 
                break;         
            case BUTTON_PAUSE:           
                __bKey=KEY_PAUSE; 
                break;
            case BUTTON_STOP:
                __bKey=KEY_STOP; 
                break;                                                   
            case BUTTON_NEXT:
                __bKey=KEY_NEXT; 
                break;
            case BUTTON_SPST_CTL:
                __bKey=KEY_SPST_CTL; 
                break;         
            case BUTTON_AST_CTL:
                __bKey=KEY_AST_CTL; 
                break;
            case BUTTON_ANGLE_CTL:
                __bKey=KEY_ANGLE_CTL; 
                break;    
            case BUTTON_EXIT:   //exit Virtual IR mode       
                __bKey=KEY_NO_KEY; 
				//clear Virtual IR region
				GDI_FILL_RECT(VIR_FRAME_X0, VIR_FRAME_Y0, VIR_FRAME_X1, VIR_FRAME_Y1+32,
                          COLOR_TRANSPARENT
                          );    
                __bOSDVIRMode = FALSE;                 
                break;                                      
            default:
                break;
        }                                    
        break;

    // not-supported keys, will not display any message
    default:
        //__bKey=KEY_NO_KEY; 
		break;
    }
    
    return __bKey;

} //end of OSDVIR_ProcessKey



//  *********************************************************************************
//  Function    :   _ShowButton
//  Description :   Show a Button in the VIR Frame
//  Arguments   :   bButtonIndex: Button Index ( 0 ~ (TOTAL_BUTTON_NUM_IN_VIR-1) )
//                  bColor: Center Color & Text BG Color
//  Return      :   None
//  Side Effect :   None
//  *********************************************************************************
static void _ShowButton(BYTE bButtonIndex, BYTE bColor)
{
    GDI_DRAW_FRAME(aButton[bButtonIndex].wX0, aButton[bButtonIndex].wY0, aButton[bButtonIndex].wX1, aButton[bButtonIndex].wY1,
                    COLOR_WHITE, // bColorBright
                    COLOR_GRAY, // bColorDark
                    bColor, // bColorCenter
                    FRAME_POP_SOLID, // bStyle
                    FRAME_THICKNESS // bThickness
                    );    

	GDI_SetTextColor(TEXT_FG_COLOR, COLOR_BLACK);
    GDI_SetTextColor(TEXT_BG_COLOR, bColor);            
                
    GDI_OUTPUT_TEXT( aButton[bButtonIndex].wX0+5, aButton[bButtonIndex].wY0+2, aButton[bButtonIndex].wpOSDVIRFONT);   
                   
} //end of _ShowButton()



//  *********************************************************************************
//  Function    :   _ShowNotes
//  Description :   Show Notes corresponding to a Button
//  Arguments   :   bButtonIndex: Button Index ( 0 ~ (TOTAL_BUTTON_NUM_IN_VIR-1) )
//  Return      :   None
//  Side Effect :   None
//  *********************************************************************************
static void _ShowNotes(BYTE bButtonIndex)
{
	__dwTimeShowNotes = UTL_GetSysTimer();

    switch (bButtonIndex)
    {
        case BUTTON_SPST_CTL:
            __wpDataPointer = aSubtitle[_bOSDLang];   
            break;
        case BUTTON_AST_CTL: 
            if (__wDiscType & BOOK_DVD)
                __wpDataPointer = aLanguage[_bOSDLang];   
            else
                __wpDataPointer = aAudio[_bOSDLang];                 
            break;                      
        case BUTTON_ANGLE_CTL:                    
            __wpDataPointer = aAngle[_bOSDLang];   
            break;  
        case BUTTON_EXIT:                    
            __wpDataPointer = aExit[_bOSDLang];   
            break;                      
        default:
            //add protection here
            break;                                                                 
    }         

    GDI_OUTPUT_TEXT(aButton[bButtonIndex].wX0, VIR_FRAME_Y1+2, __wpDataPointer);  
} 



void OSDVIR_Trigger(void)
{
    if (_bCurrentButton>=BUTTON_SPST_CTL)
    {
        if ((UTL_GetSysTimer() - __dwTimeShowNotes) > COUNT_3_SEC)
        {
            //Clear Info Characters
            GDI_FILL_RECT(VIR_FRAME_X0, VIR_FRAME_Y1+1, VIR_FRAME_X1, VIR_FRAME_Y1+32,
                          COLOR_TRANSPARENT
                          );    
        }
    }   
}    

#endif //#ifdef CT908_UI

⌨️ 快捷键说明

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