diff --git a/src/rex-edid.c b/src/rex-edid.c index 2ecaabf..37fe296 100644 --- a/src/rex-edid.c +++ b/src/rex-edid.c @@ -22,34 +22,9 @@ #include #include -#define EDID_OFFSET 7 - #define RANDR_MIN_VER_MAJ 1u #define RANDR_MIN_VER_MIN 3u -struct edid{ - union{ - uint8_t header_bits[8]; - uint64_t header; - }; - uint16_t vendor; - uint16_t product; - uint32_t serial; - uint8_t manufacture_week; - uint8_t manufacture_year; - uint8_t edid_version_major; - uint8_t edid_version_minor; - uint8_t video_flags; - uint8_t horizontal_size; - uint8_t vertical_size; - uint8_t gamma; - uint8_t video_features; - uint8_t chromaticity[10]; - uint8_t established_timing[3]; - uint8_t standard_timing[8]; -}; -typedef struct edid edid; - /*return 0 if we have a good version*/ int check_randr_version(xcb_connection_t* connection, int* maj, int* min){ xcb_randr_query_version_cookie_t cookie; @@ -170,6 +145,10 @@ int main(int argc, char* argv[]){ output_atoms = xcb_randr_list_output_properties_atoms(output_list_prop_reply); num_atoms = xcb_randr_list_output_properties_atoms_length(output_list_prop_reply); + /*get output name*/ + output_info_reply = xcb_randr_get_output_info_reply(connection, xcb_randr_get_output_info(connection, randr_outputs[i], timestamp), NULL); + printf("%.*s:", xcb_randr_get_output_info_name_length(output_info_reply), xcb_randr_get_output_info_name(output_info_reply)); + for(j = 0;j < num_atoms;++j){ unsigned int k; /*get atom_name*/ @@ -177,9 +156,6 @@ int main(int argc, char* argv[]){ /*if the atom is the EDID data, we want to get it*/ if(!memcmp(xcb_get_atom_name_name(atom_name_reply), "EDID", 4)){ - /*get output name*/ - output_info_reply = xcb_randr_get_output_info_reply(connection, xcb_randr_get_output_info(connection, randr_outputs[i], timestamp), NULL); - printf("%s:", xcb_randr_get_output_info_name(output_info_reply)); /*get property data for the current atom*/ output_get_prop_reply = xcb_randr_get_output_property_reply(connection, xcb_randr_get_output_property(connection, randr_outputs[i], output_atoms[j], XCB_GET_PROPERTY_TYPE_ANY, 0, 100, 0, 0), NULL); prop_data = xcb_randr_get_output_property_data(output_get_prop_reply); @@ -188,12 +164,12 @@ int main(int argc, char* argv[]){ for(k = 0;k < output_get_prop_reply->num_items;++k){ printf("%02x", prop_data[k]); } - printf("\n"); - free(output_info_reply); free(output_get_prop_reply); } free(atom_name_reply); } + printf("\n"); + free(output_info_reply); free(output_list_prop_reply); }