📄 psl_process_key.cpp
字号:
/* redraw the password setting button */
if (PslScreenLayoutDrawButton(pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw button!\n"));
return (PSL_FAILURE);
}
}
/* copy draw buffer to display buffer to show changes */
DealCMBufferCopy(pPSL->pSetupMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
else if ( (pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo == PSL_PWD_CREATE) ||
(pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo == PSL_PWD_RESET) )
{
if ( (pPSL->pSetupMenu->pActiveButton->ulInfo & 0x000000ff) != 0x00000000)
{
/* keep track of password for confirmation */
m_ulTempPassword = pPSL->pSetupMenu->pActiveButton->ulInfo;
/* clear any numbers that were entered */
pPSL->pSetupMenu->pActiveButton->ulInfo = 0;
/* reset password string */
if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " _ _ _ _ ") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* change the password mode to allow user to confirm the password */
pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo = PSL_PWD_CONFIRM;
/* redraw password label */
if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pActiveTab->pSubButton[0], "Confirm Password") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* redraw the password label button */
if (PslScreenLayoutDrawButton(&pPSL->pSetupMenu->pActiveTab->pSubButton[0]) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw button!\n"));
return (PSL_FAILURE);
}
/* redraw the password button */
if (PslScreenLayoutDrawButton(pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw button!\n"));
return (PSL_FAILURE);
}
/* copy draw buffer to display buffer to show changes */
DealCMBufferCopy(pPSL->pSetupMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
}
}
else if (pPSL->pSetupMenu->pActiveButton->pSelectButton != NULL)
{
USHORT i;
/* select the button that will be activated */
pPSL->pSetupMenu->pActiveButton->pSelectButton->fSelected = TRUE;
/* draw the option buttons */
for (i = 0; i < pPSL->pSetupMenu->pActiveButton->usNumSubButtons; i++)
{
if (PslScreenLayoutDrawButton(&pPSL->pSetupMenu->pActiveButton->pSubButton[i]) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw button!\n"));
return (PSL_FAILURE);
}
}
/* change the active button */
pPSL->pSetupMenu->pActiveButton = pPSL->pSetupMenu->pActiveButton->pSelectButton;
/* copy draw buffer to display buffer to show changes */
DealCMBufferCopy(pPSL->pSetupMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
return (PSL_SUCCESS);
}
/**
* PslProcessKeySetupMenuDigit -- Process a digit command for setup menu
*
* @param
* pPSL - handle to internal PSL data
* ubDigit - digit entered
*
* @retval
* PSL_SUCCESS if successful
* PSL_FAILURE if not successful
*/
PSL_STATUS PslProcessKeySetupMenuDigit(PSL_HANDLE *pPSL, UBYTE ubDigit)
{
/* Check for a valid psl handle and setup menu data */
if ( (pPSL == NULL) || (pPSL->pSetupMenu == NULL) )
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: NULL pointer!\n"));
return (PSL_FAILURE);
}
if (pPSL->pSetupMenu->pActiveButton->tButtonType == PSL_BUTTON_PWD)
{
if ( (pPSL->pSetupMenu->pActiveButton->ulInfo & 0xffffffff) == 0)
{
pPSL->pSetupMenu->pActiveButton->ulInfo |= ( (ubDigit + '0') << 24);
/* change password string */
if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " * _ _ _ ") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* redraw the button */
if (PslScreenLayoutDrawButton(pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: Failed to draw button!\n"));
return (PSL_FAILURE);
}
/* copy draw buffer to display buffer to show changes */
DealCMBufferCopy(pPSL->pSetupMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
else if ( (pPSL->pSetupMenu->pActiveButton->ulInfo & 0x00ffffff) == 0)
{
pPSL->pSetupMenu->pActiveButton->ulInfo |= ( (ubDigit + '0') << 16);
/* change password string */
if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " * * _ _ ") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* redraw the button */
if (PslScreenLayoutDrawButton(pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: Failed to draw button!\n"));
return (PSL_FAILURE);
}
/* copy draw buffer to display buffer to show changes */
DealCMBufferCopy(pPSL->pSetupMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
else if ( (pPSL->pSetupMenu->pActiveButton->ulInfo & 0x0000ffff) == 0)
{
pPSL->pSetupMenu->pActiveButton->ulInfo |= ( (ubDigit + '0') << 8);
/* change password string */
if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " * * * _ ") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* redraw the button */
if (PslScreenLayoutDrawButton(pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: Failed to draw button!\n"));
return (PSL_FAILURE);
}
/* copy draw buffer to display buffer to show changes */
DealCMBufferCopy(pPSL->pSetupMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
else if ( (pPSL->pSetupMenu->pActiveButton->ulInfo & 0x000000ff) == 0)
{
pPSL->pSetupMenu->pActiveButton->ulInfo |= (ubDigit + '0');
/* change password string */
if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " * * * * ") != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: Failed to set button text\n"));
return (PSL_FAILURE);
}
/* redraw the button */
if (PslScreenLayoutDrawButton(pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuDigit: Failed to draw button!\n"));
return (PSL_FAILURE);
}
/* copy draw buffer to display buffer to show changes */
DealCMBufferCopy(pPSL->pSetupMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
}
return (PSL_SUCCESS);
}
/**
* PslProcessKeyStatusMenuUp -- Process the up command for status menu
*
* @param
* pPSL - handle to internal PSL data
*
* @retval
* PSL_SUCCESS if successful
* PSL_FAILURE if not successful
*/
PSL_STATUS PslProcessKeyStatusMenuUp(PSL_HANDLE *pPSL)
{
char cTmp[5];
/* Check for a valid psl handle */
if (pPSL == NULL)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: NULL pointer!\n"));
return (PSL_NULL_POINTER);
}
/* check for valid status menu data */
if (pPSL->pStatusMenu == NULL)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: status menu not created!\n"));
return (PSL_FAILURE);
}
/* Process the up command for any search modes */
if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_TITLE)
{
/* Increment the title number */
if (pPSL->pStatusMenu->StatusInfo.usTitle >= 99)
{
pPSL->pStatusMenu->StatusInfo.usTitle = 0;
}
else
{
pPSL->pStatusMenu->StatusInfo.usTitle++;
}
/* convert title number to string */
cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usTitle / 10);
cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usTitle % 10);
cTmp[2] = '\0';
/* set title setting text */
if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[4][1], cTmp) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure setting button text!\n"));
return (PSL_FAILURE);
}
/* redraw the button with the title number */
if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[4][1]) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure drawing button!\n"));
return (PSL_FAILURE);
}
/* copy draw buffer to display buffer */
DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
else if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_CHAPTER)
{
/* Increment the chapter number */
if (pPSL->pStatusMenu->StatusInfo.usChapter >= 99)
{
pPSL->pStatusMenu->StatusInfo.usChapter = 0;
}
else
{
pPSL->pStatusMenu->StatusInfo.usChapter++;
}
/* convert chapter number to string */
cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usChapter / 10);
cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usChapter % 10);
cTmp[2] = '\0';
/* set chapter setting text */
if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[5][1], cTmp) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure setting button text!\n"));
return (PSL_FAILURE);
}
/* redraw the button with the chapter number */
if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[5][1]) != PSL_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure drawing button!\n"));
return (PSL_FAILURE);
}
/* copy draw buffer to display buffer */
DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
}
else if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_TIME_HOUR)
{
/* Increment the hour time number */
if (pPSL->pStatusMenu->StatusInfo.usTimeHour >= 99)
{
pPSL->pStatusMenu->StatusInfo.usTimeHour = 0;
}
else
{
pPSL->pStatusMenu->StatusInfo.usTimeHour++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -