aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2019-05-16 22:57:03 +0300
committerSimon Ser <contact@emersion.fr>2019-05-16 22:57:03 +0300
commit27a9e3b5696d0ced9117e61d074ab1396d3113eb (patch)
tree30a3ea3a8e6636ba4ce38c9fc99f25698d2f3db7
parent8c104f3a82caa80af0f6f66298f08716de4cadea (diff)
downloadexternal_drm_info-27a9e3b5696d0ced9117e61d074ab1396d3113eb.tar.gz
external_drm_info-27a9e3b5696d0ced9117e61d074ab1396d3113eb.tar.bz2
external_drm_info-27a9e3b5696d0ced9117e61d074ab1396d3113eb.zip
Print encoder indexes instead of IDs
-rw-r--r--pretty.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/pretty.c b/pretty.c
index 97e67ba..cbe3448 100644
--- a/pretty.c
+++ b/pretty.c
@@ -699,7 +699,21 @@ static const char *conn_subpixel(drmModeSubPixel subpixel)
}
}
-static void print_connectors(struct json_object *arr)
+static ssize_t find_encoder_index(struct json_object *encoders_arr,
+ uint32_t enc_id)
+{
+ for (size_t i = 0; i < json_object_array_length(encoders_arr); ++i) {
+ struct json_object *obj = json_object_array_get_idx(encoders_arr, i);
+ uint32_t id = get_object_object_uint64(obj, "id");
+ if (enc_id == id) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+static void print_connectors(struct json_object *arr,
+ struct json_object *encoders_arr)
{
printf(L_VAL "Connectors\n");
for (size_t i = 0; i < json_object_array_length(arr); ++i) {
@@ -736,7 +750,8 @@ static void print_connectors(struct json_object *arr)
for (size_t j = 0; j < json_object_array_length(encs_arr); ++j) {
uint32_t enc_id = get_object_uint64(
json_object_array_get_idx(encs_arr, j));
- printf("%s%"PRIu32, first ? "" : ", ", enc_id);
+ printf("%s%zi", first ? "" : ", ",
+ find_encoder_index(encoders_arr, enc_id));
first = false;
}
printf("}\n");
@@ -864,8 +879,9 @@ static void print_node(const char *path, struct json_object *obj)
printf("Node: %s\n", path);
print_driver(json_object_object_get(obj, "driver"));
print_device(json_object_object_get(obj, "device"));
- print_connectors(json_object_object_get(obj, "connectors"));
- print_encoders(json_object_object_get(obj, "encoders"));
+ struct json_object *encs_arr = json_object_object_get(obj, "encoders");
+ print_connectors(json_object_object_get(obj, "connectors"), encs_arr);
+ print_encoders(encs_arr);
print_crtcs(json_object_object_get(obj, "crtcs"));
print_planes(json_object_object_get(obj, "planes"));
}