ecore-xcb: Add missing API function ecore_x_randr_edid_info_has_valid_checksum

This patch adds an implementation for
ecore_x_randr_edid_info_has_valid_checksum which was missing in the
ecore-xcb codebase.

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This commit is contained in:
Chris Michael 2016-04-05 09:06:06 -04:00
parent b89d219093
commit debc4da837
1 changed files with 37 additions and 1 deletions

View File

@ -1,6 +1,5 @@
/* TODO: List of missing functions
*
* ecore_x_randr_edid_version_get
* ecore_x_randr_edid_info_has_valid_checksum
* ecore_x_randr_edid_manufacturer_name_get
* ecore_x_randr_edid_display_ascii_get
@ -2989,6 +2988,43 @@ ecore_x_randr_edid_has_valid_header(unsigned char *edid, unsigned long edid_leng
return EINA_FALSE;
}
EAPI Eina_Bool
ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, unsigned long edid_length)
{
LOGFN(__FILE__, __LINE__, __FUNCTION__);
CHECK_XCB_CONN;
#ifdef ECORE_XCB_RANDR
unsigned char *iter = NULL;
char sum = 0;
int i = 0, version = 0;
if (edid_length < 128) return EINA_FALSE;
version = ecore_x_randr_edid_version_get(edid, edid_length);
if (version < RANDR_EDID_VERSION_13) return EINA_FALSE;
for (i = 0; i < 128; i++)
sum += edid[i];
if (sum) return EINA_FALSE;
for (iter = edid; iter < (edid + edid_length); iter += 128)
{
if (iter[0] == 0x02)
{
for (i = 0, sum = 0; i < 128; i++)
sum += iter[i];
}
}
if (sum) return EINA_FALSE;
return EINA_TRUE;
#else
return EINA_FALSE;
#endif
}
/* local functions */
static Eina_Bool
_ecore_xcb_randr_output_validate(Ecore_X_Window root,