📄 psl_process_key.cpp
字号:
pPSL->pSetupMenu->pActiveButton->fSelected = TRUE;
}
}
else
{
/* set the active button to the top button of the menu */
pPSL->pSetupMenu->pActiveButton = &pPSL->pSetupMenu->pActiveTab->pSubButton[1];
pPSL->pSetupMenu->pActiveButton->fSelected = TRUE;
}
/* If the new active button is the password button then initialize password information */
if (pPSL->pSetupMenu->pActiveButton->tButtonType == PSL_BUTTON_PWD)
{
/* reset entered password */
pPSL->pSetupMenu->pActiveButton->ulInfo = 0;
/* reset the string */
if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " _ _ _ _ ") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuLeft: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* reset the tmp password */
m_ulTempPassword = 0;
/* Check if parental password is set. If it is not, allow user to set it */
if (PslDataGetParentalPassword(pPSL) == 0xffffffff)
{
pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo = PSL_PWD_CREATE;
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pActiveTab->pSubButton[0], "Create Password") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuLeft: Failed to set button text\n"));
return (PSL_FAILURE);
}
}
else
{
pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo = PSL_PWD_LOCKED;
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pActiveTab->pSubButton[0], "Password") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuLeft: Failed to set button text\n"));
return (PSL_FAILURE);
}
}
/* set parental menu mapping so buttons can not be navigated */
pPSL->pSetupMenu->pActiveButton->pBelowButton = &pPSL->pSetupMenu->pActiveTab->pSubButton[6];
pPSL->pSetupMenu->pActiveTab->pSubButton[6].pAboveButton = pPSL->pSetupMenu->pActiveButton;
}
/* redraw the menu */
if (PslScreenLayoutDrawSetupMenu(pPSL) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuLeft: Failed to draw setup menu!\n"));
return (PSL_FAILURE);
}
}
return (PSL_SUCCESS);
}
/**
* PslProcessKeySetupMenuRight -- Process the right command for setup menu
*
* @param
* pPSL - handle to internal PSL data
*
* @retval
* PSL_SUCCESS if successful
* PSL_FAILURE if not successful
*/
PSL_STATUS PslProcessKeySetupMenuRight(PSL_HANDLE *pPSL)
{
/* Check for a valid psl handle and setup menu data */
if ( (pPSL == NULL) || (pPSL->pSetupMenu == NULL) )
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuRight: NULL pointer!\n"));
return (PSL_FAILURE);
}
if ( (pPSL->pSetupMenu->pActiveButton->tButtonType != PSL_BUTTON_OPTION) &&
(pPSL->pSetupMenu->pActiveTab->pRightButton != NULL) )
{
/* unselect active button */
pPSL->pSetupMenu->pActiveButton->fSelected = FALSE;
/* change the active tab */
pPSL->pSetupMenu->pActiveTab->fSelected = FALSE;
pPSL->pSetupMenu->pActiveTab = pPSL->pSetupMenu->pActiveTab->pRightButton;
pPSL->pSetupMenu->pActiveTab->fSelected = TRUE;
if (pPSL->pSetupMenu->pActiveTab == &pPSL->pSetupMenu->pTab[1])
{
ULONG ulNavState = PslExternalGetNavStatus();
/*
* Video setting buttons can only be navigated to if player is stopped.
* If player is stopped, map buttons so they can be navigated.
* Otherwise, map the buttons so they cannot be navigated to.
*/
if ( (ulNavState == PSL_STATUS_FULLSTOP) ||
(ulNavState == PSL_STATUS_OPEN) ||
(ulNavState == PSL_STATUS_NO_DISC) )
{
pPSL->pSetupMenu->pActiveTab->pSubButton[4].pBelowButton = &pPSL->pSetupMenu->pTab[1].pSubButton[1];
pPSL->pSetupMenu->pActiveTab->pSubButton[4].pAboveButton = &pPSL->pSetupMenu->pTab[1].pSubButton[3];
pPSL->pSetupMenu->pActiveButton = &pPSL->pSetupMenu->pActiveTab->pSubButton[1];
pPSL->pSetupMenu->pActiveButton->fSelected = TRUE;
}
else
{
pPSL->pSetupMenu->pActiveTab->pSubButton[4].pBelowButton = NULL;
pPSL->pSetupMenu->pActiveTab->pSubButton[4].pAboveButton = NULL;
pPSL->pSetupMenu->pActiveButton = &pPSL->pSetupMenu->pActiveTab->pSubButton[4];
pPSL->pSetupMenu->pActiveButton->fSelected = TRUE;
}
}
else
{
/* set the active button to the top button of menu */
pPSL->pSetupMenu->pActiveButton = &pPSL->pSetupMenu->pActiveTab->pSubButton[1];
pPSL->pSetupMenu->pActiveButton->fSelected = TRUE;
}
/* If the new active button is the password button then initialize password information */
if (pPSL->pSetupMenu->pActiveButton->tButtonType == PSL_BUTTON_PWD)
{
/* reset entered password */
pPSL->pSetupMenu->pActiveButton->ulInfo = 0;
/* reset the string */
if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " _ _ _ _ ") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuLeft: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* reset the tmp password */
m_ulTempPassword = 0;
/* Check if parental password is set. If it is not, allow user to set it */
if (PslDataGetParentalPassword(pPSL) == 0xffffffff)
{
pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo = PSL_PWD_CREATE;
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pActiveTab->pSubButton[0], "Create Password") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuLeft: Failed to set button text\n"));
return (PSL_FAILURE);
}
}
else
{
pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo = PSL_PWD_LOCKED;
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pActiveTab->pSubButton[0], "Password") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuLeft: Failed to set button text\n"));
return (PSL_FAILURE);
}
}
/* set parental menu mapping so buttons can not be navigated */
pPSL->pSetupMenu->pActiveButton->pBelowButton = &pPSL->pSetupMenu->pActiveTab->pSubButton[6];
pPSL->pSetupMenu->pActiveTab->pSubButton[6].pAboveButton = pPSL->pSetupMenu->pActiveButton;
}
/* redraw the menu */
if (PslScreenLayoutDrawSetupMenu(pPSL) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuRight: Failed to draw setup menu!\n"));
return (PSL_FAILURE);
}
}
return (PSL_SUCCESS);
}
/**
* PslProcessKeySetupMenuSelect -- Process the select command for setup menu
*
* @param
* pPSL - handle to internal PSL data
*
* @retval
* PSL_SUCCESS if successful
* PSL_FAILURE if not successful
*/
PSL_STATUS PslProcessKeySetupMenuSelect(PSL_HANDLE *pPSL)
{
/* Check for a valid psl handle and setup menu data */
if ( (pPSL == NULL) || (pPSL->pSetupMenu == NULL) )
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: NULL pointer!\n"));
return (PSL_FAILURE);
}
if (pPSL->pSetupMenu->pActiveButton->tButtonType == PSL_BUTTON_OPTION)
{
/*
* Set the configuration setting associated with the button by
* firing the function pointer for this button.
*/
if (pPSL->pSetupMenu->pActiveButton->pDataFunction != NULL)
{
( (PSL_DATA_FUNC)pPSL->pSetupMenu->pActiveButton->pDataFunction) (pPSL, pPSL->pSetupMenu->pActiveButton->ulInfo);
}
/* set the settings button to the selected option */
if (PslScreenLayoutSetButtonSetting(pPSL->pSetupMenu->pActiveButton->pLeftButton,
pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failure setting the button setting!\n"));
return (PSL_FAILURE);
}
/* set active button to settings button */
pPSL->pSetupMenu->pActiveButton->fSelected = FALSE;
pPSL->pSetupMenu->pActiveButton = pPSL->pSetupMenu->pActiveButton->pLeftButton;
pPSL->pSetupMenu->pActiveButton->fSelected = TRUE;
/* If country standard setting was changed, reset the parental level options */
if (pPSL->pSetupMenu->pActiveButton == &pPSL->pSetupMenu->pTab[3].pSubButton[5])
{
ULONG ulSetting;
/* Get country standard setting */
ulSetting = PslDataGetCountryStandard(pPSL);
if (ulSetting == 1)
{
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[1], "G") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[2], "2") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[3], "PG") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[4], "PG-13") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[5], "5") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[6], "R") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[7], "NC-17") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[8], "8") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* Get parental level setting and set button text */
ulSetting = PslDataGetParentalLevel(pPSL);
switch (ulSetting)
{
case 1:
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "G") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
break;
case 2:
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "2") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
break;
case 3:
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "PG") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
break;
case 4:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -