diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/devices/monitors.c | 26 | 
1 files changed, 22 insertions, 4 deletions
| diff --git a/modules/devices/monitors.c b/modules/devices/monitors.c index 12231193..5de9e17b 100644 --- a/modules/devices/monitors.c +++ b/modules/devices/monitors.c @@ -193,7 +193,21 @@ static gchar *make_edid_section(monitor *m) {          if (e->ext_blocks_fail) aok = 0;          gchar *csum = aok ? _("Ok") : _("Fail"); -        const gchar *iface = e->interface ? _(edid_interface(e->interface)) : _("(Unspecified)"); +        gchar *iface; +        if (e->interface && e->di.exists) { +            gchar *tmp = g_strdup_printf("[%x] %s\n[DI-EXT:%x] %s", +                e->interface, _(edid_interface(e->interface)), +                e->di.interface, _(edid_di_interface(e->di.interface)) ); +            iface = gg_key_file_parse_string_as_value(tmp, '|'); +            g_free(tmp); +        } else if (e->di.exists) { +            iface = g_strdup_printf("[DI-EXT:%x] %s", +                e->di.interface, _(edid_di_interface(e->di.interface)) ); +        } else { +            iface = g_strdup_printf("[%x] %s", +                e->interface, +                e->interface ? _(edid_interface(e->interface)) : _("(Unspecified)") ); +        }          gchar *d_list, *ext_list, *dtd_list, *cea_list,              *etb_list, *std_list, *svd_list, *sad_list, @@ -299,7 +313,7 @@ static gchar *make_edid_section(monitor *m) {          gchar *ret = g_strdup_printf(              /* extending "Connection" section */              "%s=%s\n" /* sig type */ -            "%s=[%x] %s\n" /* interface */ +            "%s=%s\n" /* interface */              "%s=%s\n" /* bpcc */              "%s=%s\n" /* speakers */              "[%s]\n" @@ -330,7 +344,7 @@ static gchar *make_edid_section(monitor *m) {              "[%s]\n%s=%s\n"              ,              _("Signal Type"), e->a_or_d ? _("Digital") : _("Analog"), -            _("Interface"), e->interface, iface, +            _("Interface"), iface,              _("Bits per Color Channel"), UNSPECIFNULL2(bpcc),              _("Speaker Allocation"), speakers,              _("Output (Max)"), @@ -373,6 +387,7 @@ static gchar *make_edid_section(monitor *m) {          g_free(svd_list);          g_free(didt_list);          g_free(did_string_list); +        g_free(iface);          g_free(hex);          //printf("ret: %s\n", ret);          return ret; @@ -386,10 +401,13 @@ gchar *monitors_get_info() {      gchar tag_prefix[] = "DEV";      gchar **edid_files = get_output_lines("find /sys/devices -name edid"); -    //gchar **edid_files = get_output_lines("find /home/pburt/github/verbose-spork/junk/testing/.testing/edid/ -name edid.*"); +    //gchar **edid_files = get_output_lines("find /home/pburt/github/verbose-spork/junk/testing/.testing/edid2/ -name edid.*");      int i, found = 0;      for(i = 0; edid_files[i]; i++) {          monitor *m = monitor_new_from_sysfs(edid_files[i]); +        //if (m && m->e->std < STD_DISPLAYID) continue; +        //if (m && !m->e->interface) continue; +        //if (m && m->e->interface != 1) continue;          if (m && !SEQ(m->drm_status, "disconnected")) {              gchar *tag = g_strdup_printf("%d-%s", found, m->drm_connection);              tag_make_safe_inplace(tag); | 
