📄 psl_screen_layout.cpp
字号:
{
/* uninitialize the setup menu */
UninitializeSetupMenu(pPSL->pSetupMenu);
/* de-allocate setup menu */
OS_MemFree(pPSL->pStatusDisplay);
pPSL->pSetupMenu = NULL;
}
/* delete the timer */
OS_TimerDelete(pPSL->Timer);
/* delete deal */
if (pPSL->hDeal != NULL)
{
DealCMDelete(pPSL->hDeal);
pPSL->hDeal = NULL;
}
return (PSL_FAILURE);
}
/**
* PslScreenLayoutUninitialize -- Delete all menus.
*
* @param
* pPSL - handle to internal PSL data
*
* @retval
* PSL_SUCCESS if successful
* PSL_FAILURE if not successful
*/
PSL_STATUS PslScreenLayoutUninitialize(PSL_HANDLE *pPSL)
{
/* Check for a valid psl handle */
if (pPSL == NULL)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutUninitialize: NULL handle!\n"));
return (PSL_FAILURE);
}
/* delete cdda gui */
if (pPSL->pCddaGui != NULL)
{
/* uninitialize the cdda gui */
UninitializeCDDAGui(pPSL->pCddaGui);
/* de-allocate cdda gui */
OS_MemFree(pPSL->pCddaGui);
pPSL->pCddaGui = NULL;
}
/* delete parental control */
if (pPSL->pParentalControl != NULL)
{
/* uninitialize the parental control */
UninitializeParentalControl(pPSL);
/* de-allocate parental control */
OS_MemFree(pPSL->pParentalControl);
pPSL->pParentalControl = NULL;
}
/* delete status menu */
if (pPSL->pStatusMenu != NULL)
{
/* uninitialize the status menu */
UninitializeStatusMenu(pPSL->pStatusMenu);
/* de-allocate status menu */
OS_MemFree(pPSL->pStatusMenu);
pPSL->pStatusMenu = NULL;
}
/* delete icon data */
if (pPSL->pIconData != NULL)
{
/* uninitialize the icon data */
UninitializeIconData(pPSL->pIconData);
/* de-allocate icon data */
OS_MemFree(pPSL->pIconData);
pPSL->pIconData = NULL;
}
/* delete status display */
if (pPSL->pSetupMenu != NULL)
{
/* uninitialize the status display */
UninitializeStatusDisplay(pPSL->pStatusDisplay);
/* de-allocate status display */
OS_MemFree(pPSL->pStatusDisplay);
pPSL->pStatusDisplay = NULL;
}
/* delete setup menu */
if (pPSL->pSetupMenu != NULL)
{
/* uninitialize the setup menu */
UninitializeSetupMenu(pPSL->pSetupMenu);
/* de-allocate setup menu */
OS_MemFree(pPSL->pSetupMenu);
pPSL->pSetupMenu = NULL;
}
/* delete the timer */
OS_TimerDelete(pPSL->Timer);
/* delete deal */
if (pPSL->hDeal != NULL)
{
DealCMDelete(pPSL->hDeal);
pPSL->hDeal = NULL;
}
return (PSL_FAILURE);
}
/**
* PslScreenLayoutDrawSetupMenu -- Draw the setup menu
*
* @param
* pSetupMenu - pointer to setup menu to draw
*
* @retval
* PSL_SUCCESS if successful
* PSL_FAILURE if not successful
*/
PSL_STATUS PslScreenLayoutDrawSetupMenu(PSL_HANDLE *pPSL)
{
DEAL_RDRAW_STRUCT rect;
USHORT i, j, k;
if ( (pPSL == NULL) || (pPSL->pSetupMenu == NULL) )
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutDrawSetupMenu() -- NULL pointer!\n"));
return (PSL_FAILURE);
}
/*
* If setup menu is not active, get the configuration settings.
* Also, initialize active tab and button.
*/
if (PslScreenLayoutIsSetupMenuActive(pPSL) == FALSE)
{
PSL_BUTTON_DRAW_INFO *pButtonDrawInfo = NULL;
ULONG ulSetting;
/* Get dvd menu language setting and set button text */
ulSetting = PslDataGetMenuLanguage(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[0].pSubButton[1].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, LANGUAGE_CONST[ulSetting - 1]);
/* Get audio language setting and set button text */
ulSetting = PslDataGetAudioLanguage(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[0].pSubButton[3].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, LANGUAGE_CONST[ulSetting - 1]);
/* Get subtitle language setting and set button text */
ulSetting = PslDataGetSubtitleLanguage(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[0].pSubButton[5].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, LANGUAGE_CONST[ulSetting - 1]);
/* Get aspect ratio setting and set button text */
ulSetting = PslDataGetAspectRatio(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[1].pSubButton[1].pvButtonDrawInfo;
switch (ulSetting)
{
case VDVD_ASPECT_RATIO_4X3_PANSCAN:
strcpy(pButtonDrawInfo->cText, "4:3 PS");
break;
case VDVD_ASPECT_RATIO_4X3_LETTERBOX:
strcpy(pButtonDrawInfo->cText, "4:3 LT");
break;
case VDVD_ASPECT_RATIO_16X9:
strcpy(pButtonDrawInfo->cText, "16:9");
break;
default:
strcpy(pButtonDrawInfo->cText, "---");
break;
}
/* Get video format setting and set button text */
ulSetting = PslDataGetVideoFormat(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[1].pSubButton[3].pvButtonDrawInfo;
switch (ulSetting)
{
case VDVD_VIDEO_FORMAT_NTSC:
strcpy(pButtonDrawInfo->cText, "NTSC");
break;
case VDVD_VIDEO_FORMAT_PAL:
strcpy(pButtonDrawInfo->cText, "PAL");
break;
default:
strcpy(pButtonDrawInfo->cText, "---");
break;
}
/* Get spdif setting and set button text */
ulSetting = PslDataGetSPDIF(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[2].pSubButton[1].pvButtonDrawInfo;
switch (ulSetting)
{
case VDVD_SPDIF_PCM:
strcpy(pButtonDrawInfo->cText, "PCM");
break;
case VDVD_SPDIF_COMPRESSED:
strcpy(pButtonDrawInfo->cText, "Compressed");
break;
default:
strcpy(pButtonDrawInfo->cText, "---");
break;
}
/* Get country standard setting */
ulSetting = PslDataGetCountryStandard(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[5].pvButtonDrawInfo;
/* Set parental level settings based on country standard */
if (ulSetting == 1)
{
/* Set country standard setting text */
strcpy(pButtonDrawInfo->cText, "USA");
/* Set parental level options for usa standard */
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[0].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "Off");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[1].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "G");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[2].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "2");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[3].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "PG");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[4].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "PG-13");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[5].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "5");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[6].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "R");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[7].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "NC-17");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[8].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "8");
/* Get parental level setting and set button text */
ulSetting = PslDataGetParentalLevel(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pvButtonDrawInfo;
switch (ulSetting)
{
case 1:
strcpy(pButtonDrawInfo->cText, "G");
break;
case 2:
strcpy(pButtonDrawInfo->cText, "2");
break;
case 3:
strcpy(pButtonDrawInfo->cText, "PG");
break;
case 4:
strcpy(pButtonDrawInfo->cText, "PG-13");
break;
case 5:
strcpy(pButtonDrawInfo->cText, "5");
break;
case 6:
strcpy(pButtonDrawInfo->cText, "R");
break;
case 7:
strcpy(pButtonDrawInfo->cText, "NC-17");
break;
case 8:
strcpy(pButtonDrawInfo->cText, "8");
break;
case 0:
case 15:
default:
strcpy(pButtonDrawInfo->cText, "Off");
break;
}
}
else
{
/* Set country standard setting text */
strcpy(pButtonDrawInfo->cText, "International");
/* Set parental level options for international standard */
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[0].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "Off");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[1].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "Kids");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[2].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "2");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[3].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "3");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[4].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "4");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[5].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "5");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[6].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "6");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[7].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "7");
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[8].pvButtonDrawInfo;
strcpy(pButtonDrawInfo->cText, "Adults");
/* Get parental level setting and set button text */
ulSetting = PslDataGetParentalLevel(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[3].pvButtonDrawInfo;
switch (ulSetting)
{
case 1:
strcpy(pButtonDrawInfo->cText, "Kids");
break;
case 2:
strcpy(pButtonDrawInfo->cText, "2");
break;
case 3:
strcpy(pButtonDrawInfo->cText, "3");
break;
case 4:
strcpy(pButtonDrawInfo->cText, "4");
break;
case 5:
strcpy(pButtonDrawInfo->cText, "5");
break;
case 6:
strcpy(pButtonDrawInfo->cText, "6");
break;
case 7:
strcpy(pButtonDrawInfo->cText, "7");
break;
case 8:
strcpy(pButtonDrawInfo->cText, "Adults");
break;
case 0:
case 15:
default:
strcpy(pButtonDrawInfo->cText, "Off");
break;
}
}
/* Check if parental password is set. If it is not, allow user to set it */
ulSetting = PslDataGetParentalPassword(pPSL);
pButtonDrawInfo = (PSL_BUTTON_DRAW_INFO *)pPSL->pSetupMenu->pTab[3].pSubButton[0].pvButtonDrawInfo;
if (ulSetting == 0xffffffff)
{
strcpy(pButtonDrawInfo->cText, "Create Password");
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -