parse static method
Implementation
static TransmissionTypeParseResults parse(DC data, int offset, int ends) {
var h = data[offset++];
var cls = h >> 6;
if (cls == TransmissionTypeClass.Fixed) {
var exp = (h & 0x38) >> 3;
if (exp == 0)
return TransmissionTypeParseResults(
1, TransmissionType(h, cls, h & 0x7, 0, exp));
int cl = (1 << (exp - 1));
if (ends - offset < cl)
return TransmissionTypeParseResults(cl - (ends - offset), null);
return TransmissionTypeParseResults(
1 + cl, new TransmissionType(h, cls, h & 0x7, offset, cl, exp));
} else {
int cll = (h >> 3) & 0x7;
if (ends - offset < cll)
return TransmissionTypeParseResults(cll - (ends - offset), null);
int cl = 0;
for (var i = 0; i < cll; i++) cl = cl << 8 | data[offset++];
if (ends - offset < cl)
return TransmissionTypeParseResults(cl - (ends - offset), null);
return TransmissionTypeParseResults(
1 + cl + cll, TransmissionType((h & 0xC7), cls, h & 0x7, offset, cl));
}
}