HaoQiao 发表于 2016-9-28 17:56:02

Kappa ATSC平台设置父母锁后System Lock打到off无效

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;
      }
      ......
    }
}

页: [1]
查看完整版本: Kappa ATSC平台设置父母锁后System Lock打到off无效