Parse an EDID byte array into user-readable information @param edid An EDID byte array @return User-readable text represented by the EDID
(byte[] edid)
| 241 | * @return User-readable text represented by the EDID |
| 242 | */ |
| 243 | public static String toString(byte[] edid) { |
| 244 | StringBuilder sb = new StringBuilder(); |
| 245 | sb.append(" Manuf. ID=").append(EdidUtil.getManufacturerID(edid)); |
| 246 | sb.append(", Product ID=").append(EdidUtil.getProductID(edid)); |
| 247 | sb.append(", ").append(EdidUtil.isDigital(edid) ? "Digital" : "Analog"); |
| 248 | sb.append(", Serial=").append(EdidUtil.getSerialNo(edid)); |
| 249 | sb.append(", ManufDate=").append(EdidUtil.getWeek(edid) * 12 / 52 + 1).append('/') |
| 250 | .append(EdidUtil.getYear(edid)); |
| 251 | sb.append(", EDID v").append(EdidUtil.getVersion(edid)); |
| 252 | int hSize = EdidUtil.getHcm(edid); |
| 253 | int vSize = EdidUtil.getVcm(edid); |
| 254 | sb.append(String.format("%n %d x %d cm (%.1f x %.1f in)", hSize, vSize, hSize / 2.54, vSize / 2.54)); |
| 255 | byte[][] desc = EdidUtil.getDescriptors(edid); |
| 256 | for (byte[] b : desc) { |
| 257 | switch (EdidUtil.getDescriptorType(b)) { |
| 258 | case 0xff: |
| 259 | sb.append("\n Serial Number: ").append(EdidUtil.getDescriptorText(b)); |
| 260 | break; |
| 261 | case 0xfe: |
| 262 | sb.append("\n Unspecified Text: ").append(EdidUtil.getDescriptorText(b)); |
| 263 | break; |
| 264 | case 0xfd: |
| 265 | sb.append("\n Range Limits: ").append(EdidUtil.getDescriptorRangeLimits(b)); |
| 266 | break; |
| 267 | case 0xfc: |
| 268 | sb.append("\n Monitor Name: ").append(EdidUtil.getDescriptorText(b)); |
| 269 | break; |
| 270 | case 0xfb: |
| 271 | sb.append("\n White Point Data: ").append(ParseUtil.byteArrayToHexString(b)); |
| 272 | break; |
| 273 | case 0xfa: |
| 274 | sb.append("\n Standard Timing ID: ").append(ParseUtil.byteArrayToHexString(b)); |
| 275 | break; |
| 276 | default: |
| 277 | if (EdidUtil.getDescriptorType(b) <= 0x0f && EdidUtil.getDescriptorType(b) >= 0x00) { |
| 278 | sb.append("\n Manufacturer Data: ").append(ParseUtil.byteArrayToHexString(b)); |
| 279 | } else { |
| 280 | sb.append("\n Preferred Timing: ").append(EdidUtil.getTimingDescriptor(b)); |
| 281 | } |
| 282 | break; |
| 283 | } |
| 284 | } |
| 285 | return sb.toString(); |
| 286 | } |
| 287 | } |