Kappa ATSC平台设置父母锁后菜单System Lock打到off无效,寄菜单System Lock设置off后退出到DTV之前加锁的节目还是需要输入秘钥才能观看节目,解决方法在接收到的E_APP_CMD_ZUI_CHANGE_PARENTCTRL_LEVEL和E_APP_CMD_TV_CHG_PARENTCTRL_LEVEL命令模式下判断条件增加stSysSetting.g_systermlock为true或false不同情况下分别设置加锁或解锁:
static MS_BOOL _appMenu_CommandRcv(AppCommand *pCommand)
{
......
switch (pCommand->eCmd)
{
......
case E_APP_CMD_ZUI_CHANGE_PARENTCTRL_LEVEL:
{
......
#if (defined ATSC_STYLE&&defined VCHIP_ENABLE)
if((vchiplock)&&(stSysSetting.g_systermlock == TRUE))
#else
if (stBlockSysSetting.u8ParentalControl <= u8RatingLevel
&& (stBlockSysSetting.u8ParentalControl != 3) )
#endif
{
g_u8Parenttrol = TRUE;
tvview_AVDisable();
#if (defined DVBT_STYLE||defined (DVBT2_STYLE)||defined ATSC_STYLE)
MApp_ZUI_Parentctrl_show(TRUE);
#endif
}
#if (defined ATSC_STYLE&&defined VCHIP_ENABLE)
if((!vchiplock|| g_u8ParenttrolPwdStatus)&&(stSysSetting.g_systermlock == FALSE))
#else
else if(stBlockSysSetting.u8ParentalControl == 3 || stBlockSysSetting.u8ParentalControl > u8RatingLevel || g_u8ParenttrolPwdStatus)
#endif
{
if(g_u8Parenttrol)
{
g_u8Parenttrol = FALSE;
tvview_Enable();
#if (defined DVBT_STYLE||defined (DVBT2_STYLE)||defined ATSC_STYLE)
MApp_ZUI_Parentctrl_show(FALSE);
#endif
}
}
break;
}
case E_APP_CMD_TV_CHG_PARENTCTRL_LEVEL:
{
if (_eAppStateMenu == E_APP_STAT_RUNNING)
{
if((MApp_ZUI_GetActiveOSD() == E_OSD_MANUAL_SCAN)||(MApp_ZUI_GetActiveOSD() == E_OSD_MENU_PHOTO_CONFIG)\
||(MApp_ZUI_GetActiveOSD() == E_OSD_MENU_MOVIE_CONFIG)||(MApp_ZUI_GetActiveOSD() == E_OSD_MENU_PVR_FORMAT)\
||(MApp_ZUI_GetActiveOSD() == E_OSD_MENU_PVR_DEVICE)||(MApp_ZUI_GetActiveOSD() == E_OSD_MENU_MEDIA_PLAY_SIMPLE_START_PVR)\
||(MApp_ZUI_GetActiveOSD() == E_OSD_SCANNING)||(MApp_ZUI_GetActiveOSD() == E_OSD_AUTO_TUNING))
{
break;
}
MS_BLOCKSYS_SETTING stBlockSysSetting;
eSERVICETYPE eServiceType = MApi_DB_CM_GetCurrentServiceType();
MS_U16 wCurrentPosition = MApi_DB_CM_GetCurrentPosition( eServiceType );
App_GetBlockData(&stBlockSysSetting);
#if (defined ATSC_STYLE&&defined VCHIP_ENABLE)
if (vchiplock&& wCurrentPosition == ((pTV_CMD_DATA_TV_CHG_PARENTCTRL)pCommand->u8Data)->u16ProgID
&& !g_u8ParenttrolPwdStatus && (stSysSetting.g_systermlock == TRUE))
#else
if (stBlockSysSetting.u8ParentalControl <=
((pTV_CMD_DATA_TV_CHG_PARENTCTRL)pCommand->u8Data)->u8Level
&& wCurrentPosition == ((pTV_CMD_DATA_TV_CHG_PARENTCTRL)pCommand->u8Data)->u16ProgID
&& (stBlockSysSetting.u8ParentalControl != 3) && !g_u8ParenttrolPwdStatus)
#endif
{
MApp_Set_PASSWD_Chk_Flag(FALSE);
g_u8Parenttrol = TRUE;
tvview_AVDisable();
#if (defined DVBT_STYLE||defined (DVBT2_STYLE)||defined ATSC_STYLE)
MApp_ZUI_Parentctrl_show(TRUE);
#endif
}
#if (defined ATSC_STYLE&&defined VCHIP_ENABLE)
else if((!vchiplock || g_u8ParenttrolPwdStatus)&&(stSysSetting.g_systermlock == FALSE))
#else
else if(stBlockSysSetting.u8ParentalControl >
((pTV_CMD_DATA_TV_CHG_PARENTCTRL)pCommand->u8Data)->u8Level
#if 0 // todo (MS_Customer_SEL == Customer_BUSH)
|| stBlockSysSetting.u8ParentalControl == EN_F4_ParentalControl_Off || g_u8ParenttrolPwdStatus)
#else
|| stBlockSysSetting.u8ParentalControl == 3 || g_u8ParenttrolPwdStatus)
#endif
{
#if 0 // todo (MS_Customer_SEL == Customer_BUSH)
if(stBlockSysSetting.u8ParentalControl == EN_F4_LockSystem_ALL)
{
break;
}
#endif
//if(g_u8Parenttrol)
{
MApp_Set_PASSWD_Chk_Flag(TRUE);
g_u8Parenttrol = FALSE;
tvview_Enable();
#if (defined DVBT_STYLE||defined (DVBT2_STYLE)||defined ATSC_STYLE)
MApp_ZUI_Parentctrl_show(FALSE);
#endif
}
}
}
break;
}
......
}
}
|