Exemple #1
0
MonitorInfo * decode_edid(const uint8_t *edid) {
    MonitorInfo *info = new MonitorInfo();
    decode_check_sum(edid, info);
    if (decode_header(edid) && //
            decode_vendor_and_product_identification(edid, info) && //
            decode_edid_version(edid, info) && //
            decode_display_parameters(edid, info) && //
            decode_color_characteristics(edid, info) && //
            decode_established_timings(edid, info) && //
            decode_standard_timings(edid, info) && //
            decode_descriptors(edid, info)) {
        return info;
    } else {
        delete info;
        return 0;
    }
}
Exemple #2
0
MonitorInfo *
decode_edid (const uchar *edid)
{
    MonitorInfo *info = calloc (1, sizeof (MonitorInfo));

    decode_check_sum (edid, info);

    if (!decode_header (edid) ||
        !decode_vendor_and_product_identification (edid, info) ||
        !decode_edid_version (edid, info) ||
        !decode_display_parameters (edid, info) ||
        !decode_color_characteristics (edid, info) ||
        !decode_established_timings (edid, info) ||
        !decode_standard_timings (edid, info) ||
        !decode_descriptors (edid, info)) {
        free(info);
	return NULL;
    }

    return info;
}
Exemple #3
0
MonitorInfo *
decode_edid (const uchar *edid)
{
    MonitorInfo *info = g_new0 (MonitorInfo, 1);

    decode_check_sum (edid, info);

    if (decode_header (edid)
	&& decode_vendor_and_product_identification (edid, info)
	&& decode_edid_version (edid, info)
	&& decode_display_parameters (edid, info)
	&& decode_color_characteristics (edid, info)
	&& decode_established_timings (edid, info)
	&& decode_standard_timings (edid, info)
	&& decode_descriptors (edid, info))
    {
	return info;
    }
    else
    {
	g_free (info);
	return NULL;
    }
}