📄 eds.lst
字号:
#ifdef DEBUG_CCEDS1
dPrintf("*** v-chip : Invalid Data(~0f)");
#endif
}
}
else
_SET_EDS_CONTROL_
}
else if( eds_data <= 0x1f ) { //checksum , possible second control or CC data
if( IsChecksumPair ) //checksum value
_CLEAR_EDS_CONTROL_
else if( EDS_control && (EDS_packet_len==2) ) //possible second control
;
else {
//maybe CC data??
#ifdef DEBUG_CCEDS1
dPrintf("*** v-chip : maybe CC data(~1f)");
#endif
return FALSE;
}
}
else { // checksum or Info data
if( IsChecksumPair ) //checksum value
_CLEAR_EDS_CONTROL_
else if( EDS_control && (EDS_packet_len>2) ) //Info data
;
else {
//maybe CC data??
#ifdef DEBUG_CCEDS1
dPrintf("*** v-chip : maybe CC data(~ff)");
#endif
return FALSE;
}
}
#ifdef DEBUG_CCEDS
if( GetDebugTypeCCEDS()>=ENHANCED1 )
if( EDS_packet_len==1 )
dPrintf("\r\nF2:%02X[%02X]:E ", (WORD)cc_status, (WORD)eds_data);
else
dPrintf("F2:%02X[%02X]:e ", (WORD)cc_status, (WORD)eds_data);
if( GetDebugTypeCCEDS()>=ENHANCED2 )
dPrintf("[ctrl:0x%x,len:%d] ", (WORD)EDS_control, (WORD)EDS_packet_len);
#endif
if( EDS_control== CURRENT_CLASS_START_RATING || EDS_control==CURRENT_CLASS_CONT_RATING ) {
switch( EDS_packet_len ) {
case 3: // eds_data==Information
if( eds_data >= 0x40 ) MovieRating = eds_data;
else {
MovieRating = 0;
#ifdef DEBUG_CCEDS1
C51 COMPILER V7.50 EDS 08/20/2007 10:23:30 PAGE 8
dPrintf("*** v-chip :Invalid MovieRating Data");
#endif
}
break;
case 4:
if( eds_data >= 0x40 ) { // Valid data
//TV rating
if( (MovieRating & 0x40) && (eds_data & 0x40) ) { //valid data for rating
if( (MovieRating & 0x08)==0 ) { //valid data for movie rating
MovieRating &= 0x07;
#ifdef DEBUG_CCEDS
if( GetDebugTypeCCEDS() >=BASIC )
dPrintf("*** v-chip info(%s)", OSDBlockedMovieStr[MovieRating]);
#endif
if( BlockedMovie && (MovieRating >= BlockedMovie) ) {
CheckAndBlockInput(MovieRating); // Movie
}
else
CheckAndClearBlockedInput();
}
else if( (MovieRating & 0x18)==0x08 ) { //valid data for USA TV rating
//-----------------------------------------------------------------------
//BYTE val;
//val = (BlockedTV_Content[(eds_data&0x07)]&0x70) >> 1;
#ifdef DEBUG_CCEDS
if( GetDebugTypeCCEDS()>=BASIC )
Printf("*** v-chip info(%s)", OSDBlockedTVStr[eds_data & 0x07]);
#endif
if(
( BlockedTV && ((eds_data&0x07) >= BlockedTV) ) ||
( ((BlockedTV_Content[(eds_data&0x07)]&0x70) >> 1) & (eds_data&0x38) ) ||
( (BlockedTV_Content[(eds_data&0x07)]&0x08) && ( MovieRating&0x20) ) // D
) {
Printf("*** eds_data:%2x MovieRating:%2x ", (WORD)eds_data, (WORD)MovieRating );
CheckAndBlockInputForTV(eds_data, MovieRating ); // TV
}
else
CheckAndClearBlockedInput();
//-----------------------------------------------------------------------
}
}
// ljy013105...for old standard...requested by DMTech of Korea
}
else {
MovieRating = 0;
#ifdef DEBUG_CCEDS
dPrintf("*** v-chip :Invalid MovieRating Data");
#endif
}
_CLEAR_EDS_CONTROL_
break;
}
}
return TRUE;
}
C51 COMPILER V7.50 EDS 08/20/2007 10:23:30 PAGE 9
/*ljy012004
BYTE IsEDS_control(void)
{
return EDS_control;
}
*/
BYTE GetMPAARating(void)
{
return BlockedMovie;
}
/*
BYTE GetTVRating(void)
{
return BlockedTV;
}
BYTE SetMPAARating(BYTE wd)
{
BlockedMovie = wd;
return BlockedMovie;
}
BYTE SetTVRating(BYTE wd)
{
BlockedTV = wd;
#ifdef DEBUG_CCEDS
Printf("\r\n SetTVRating==> BlockedTV:%s",OSDBlockedTVStr[BlockedTV]);
#endif
return BlockedTV;
}
*/
void ChangeVchipTV(BYTE newv)
{
BlockedTV = newv;
SaveBlockedTVEE(BlockedTV);
ChangeTVRating_Content();
#ifdef DEBUG_CCEDS
Printf("\r\n ChangeVchipTV==> Changed BlockedTV:%s \n\n\n\n+++++++",OSDBlockedTVStr[BlockedTV]);
#endif
( EnabledVChip() ? InitEDS() : ClearEDS() );
}
BYTE ChangeVchipMovie(BYTE val)
{
BlockedMovie = val;
SaveBlockedMovieEE(BlockedMovie);
( EnabledVChip() ? InitEDS() : ClearEDS() );
return BlockedMovie;
}
#endif
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.50 EDS 08/20/2007 10:23:30 PAGE 10
CODE SIZE = ---- ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -