예제 #1
0
        public static TrackResourcesInformation?Decode001b(byte[] response)
        {
            if (response.Length != 12)
            {
                return(null);
            }

            if ((response[2] & 0xE0) != 0x20)
            {
                return(null);
            }

            TrackResourcesInformation decoded =
                new TrackResourcesInformation {
                DataLength = (ushort)((response[0] << 8) + response[1])
            };

            if (decoded.DataLength + 2 != response.Length)
            {
                return(null);
            }

            decoded.DataType            = (byte)((response[2] & 0xE0) >> 5);
            decoded.MaxTracks           = (ushort)((response[4] << 8) + response[5]);
            decoded.AssignedTracks      = (ushort)((response[6] << 8) + response[7]);
            decoded.MaxAppendableTracks = (ushort)((response[8] << 8) + response[9]);
            decoded.AppendableTracks    = (ushort)((response[10] << 8) + response[11]);

            return(decoded);
        }
예제 #2
0
        public static string Prettify001b(TrackResourcesInformation?information)
        {
            if (!information.HasValue)
            {
                return(null);
            }

            TrackResourcesInformation decoded = information.Value;

            if (decoded.DataType != 1)
            {
                return(null);
            }

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("{0} maximum possible tracks on the disc", decoded.MaxTracks).AppendLine();
            sb.AppendFormat("{0} assigned tracks on the disc", decoded.AssignedTracks).AppendLine();
            sb.AppendFormat("{0} maximum possible appendable tracks on the disc", decoded.AppendableTracks)
            .AppendLine();
            sb.AppendFormat("{0} current appendable tracks on the disc", decoded.MaxAppendableTracks).AppendLine();

            return(sb.ToString());
        }