minorDeviceClass property

String? minorDeviceClass

Implementation

String? get minorDeviceClass {
  if (value & 3 == 0) {
    return null;
  }
  int major = (value >> 8) & 31;
  int minor = (value >> 2) & 63;
  String minorString = minor.toRadixString(2).padLeft(6, "0");
  String minorString0 = minorString;
  if (deviceClassList.containsKey(major)) {
    var text = <String>[];
    for (var mapping in deviceClassList[major]![1] as Iterable) {
      // Strong cast, MAYBE have problems
      var bits = minorString.substring(0, mapping.keys.first.length);
      if (mapping.containsKey(bits)) {
        text.add(mapping[bits]);
      } else {
        text.add('Reserved ${minorString0}b');
      }
      minorString = minorString.substring(bits.length);
    }
    var res = "";
    for (var i = 0; i < text.length - 1; i++) {
      res += ('${text[i]} and ');
    }
    res += text.last;
    return res;
  } else {
    return "Undefined ${minor.toRadixString(2)}b";
  }
}