コード例 #1
0
        public override bool Parse(AsfParser parser)
        {
            TypedValue = _lengthTypeFlags.ToString();

            MultiplePayloadsPresent = (_lengthTypeFlags & 1) != 0;
            Attributes.Add(new FormattedAttribute <LAttribute, bool>(LAttribute.MultiplePayloadsPresent, MultiplePayloadsPresent));

            SequenceType = (LengthType)((_lengthTypeFlags >>= 1) & 3);
            if (SequenceType != LengthType.ValueNotPresent)
            {
                Valid = false;
            }
            Attributes.Add(new FormattedAttribute <LAttribute, string>(LAttribute.SequenceType, SequenceType.PrettyPrint()));

            PaddingLengthType = (LengthType)((_lengthTypeFlags >>= 2) & 3);
            Attributes.Add(new FormattedAttribute <LAttribute, string>(LAttribute.PaddingLengthType, PaddingLengthType.PrettyPrint()));

            PacketLengthType = (LengthType)((_lengthTypeFlags >>= 2) & 3);
            Attributes.Add(new FormattedAttribute <LAttribute, string>(LAttribute.PacketLengthType, PacketLengthType.PrettyPrint()));

            bool errorCorrectionPresent = ((_lengthTypeFlags >>= 2) & 1) != 0;

            Attributes.Add(new FormattedAttribute <LAttribute, bool>(LAttribute.ErrorCorrectionPresent, errorCorrectionPresent));

            return(Valid);
        }