From fdba1721b26ffe23df979a51298b667fe4831312 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Wed, 18 May 2005 13:03:15 +0000 Subject: [PATCH] mkv.cpp: more conditional commands + avoid a compiler warning --- modules/demux/mkv.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/modules/demux/mkv.cpp b/modules/demux/mkv.cpp index f7394c331e..e50e317363 100644 --- a/modules/demux/mkv.cpp +++ b/modules/demux/mkv.cpp @@ -5528,9 +5528,7 @@ bool dvd_command_interpretor_c::Interpret( const binary * p_command, size_t i_si uint16 i_cr2; switch ( i_command >> 12 ) { - case 0: - case 1: - case 2: + default: i_cr1 = p_command[3]; i_cr2 = (p_command[4] << 8) + p_command[5]; break; @@ -5571,6 +5569,14 @@ bool dvd_command_interpretor_c::Interpret( const binary * p_command, size_t i_si b_test_positive = false; } break; + case CMD_DVD_IF_GPREG_NOT_EQUAL: + // if not equals + msg_Dbg( &sys.demuxer, "IF %s NOT EQUALS %s", GetRegTypeName( false, i_cr1 ).c_str(), GetRegTypeName( b_test_value, i_value ).c_str() ); + if (!( GetPRM( i_cr1 ) != i_value )) + { + b_test_positive = false; + } + break; case CMD_DVD_IF_GPREG_INF: // if inferior msg_Dbg( &sys.demuxer, "IF %s < %s", GetRegTypeName( false, p_command[3] ).c_str(), GetRegTypeName( b_test_value, i_value ).c_str() ); @@ -5579,6 +5585,14 @@ bool dvd_command_interpretor_c::Interpret( const binary * p_command, size_t i_si b_test_positive = false; } break; + case CMD_DVD_IF_GPREG_INF_EQUAL: + // if inferior or equal + msg_Dbg( &sys.demuxer, "IF %s < %s", GetRegTypeName( false, p_command[3] ).c_str(), GetRegTypeName( b_test_value, i_value ).c_str() ); + if (!( GetPRM( i_cr1 ) <= i_value )) + { + b_test_positive = false; + } + break; case CMD_DVD_IF_GPREG_AND: // if logical and msg_Dbg( &sys.demuxer, "IF %s & %s", GetRegTypeName( false, p_command[3] ).c_str(), GetRegTypeName( b_test_value, i_value ).c_str() ); @@ -5587,6 +5601,14 @@ bool dvd_command_interpretor_c::Interpret( const binary * p_command, size_t i_si b_test_positive = false; } break; + case CMD_DVD_IF_GPREG_SUP: + // if superior + msg_Dbg( &sys.demuxer, "IF %s >= %s", GetRegTypeName( false, p_command[3] ).c_str(), GetRegTypeName( b_test_value, i_value ).c_str() ); + if (!( GetPRM( i_cr1 ) > i_value )) + { + b_test_positive = false; + } + break; case CMD_DVD_IF_GPREG_SUP_EQUAL: // if superior or equal msg_Dbg( &sys.demuxer, "IF %s >= %s", GetRegTypeName( false, p_command[3] ).c_str(), GetRegTypeName( b_test_value, i_value ).c_str() ); -- 2.39.2