ecore-drm: Fix ecore_drm_output_edid_get to return a hex string
Summary: As we will use the edid string inside RandR code to store unique information about an output, we should be returning this edid in a "readable" form. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
956eb9318b
commit
df28c380d3
|
@ -165,7 +165,7 @@ _ecore_drm_output_edid_find(Ecore_Drm_Output *output, drmModeConnector *conn)
|
|||
|
||||
if (!blob) return;
|
||||
|
||||
output->edid_blob = (char *)eina_memdup(blob->data, blob->length, 1);
|
||||
output->edid_blob = eina_memdup(blob->data, blob->length, 1);
|
||||
|
||||
ret = _ecore_drm_output_edid_parse(output, blob->data, blob->length);
|
||||
if (!ret)
|
||||
|
@ -1235,10 +1235,27 @@ ecore_drm_output_backlight_get(Ecore_Drm_Output *output)
|
|||
EAPI char *
|
||||
ecore_drm_output_edid_get(Ecore_Drm_Output *output)
|
||||
{
|
||||
char *edid_str = NULL;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL);
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(output->edid_blob, NULL);
|
||||
|
||||
return strdup(output->edid_blob);
|
||||
edid_str = malloc((128 * 2) + 1);
|
||||
if (edid_str)
|
||||
{
|
||||
unsigned int k, kk;
|
||||
const char *hexch = "0123456789abcdef";
|
||||
|
||||
for (kk = 0, k = 0; k < 128; k++)
|
||||
{
|
||||
edid_str[kk] = hexch[(output->edid_blob[k] >> 4) & 0xf];
|
||||
edid_str[kk + 1] = hexch[output->edid_blob[k] & 0xf];
|
||||
kk += 2;
|
||||
}
|
||||
edid_str[kk] = 0;
|
||||
}
|
||||
|
||||
return edid_str;
|
||||
}
|
||||
|
||||
EAPI Eina_List *
|
||||
|
|
|
@ -123,7 +123,7 @@ struct _Ecore_Drm_Output
|
|||
Ecore_Drm_Output_Mode *current_mode;
|
||||
Eina_List *modes;
|
||||
|
||||
char *edid_blob;
|
||||
unsigned char *edid_blob;
|
||||
|
||||
struct
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue