- There are sink and source pads, not input and output.
- Print also DYNAMIC flag.
- Don't print "pad" before pad number in some cases. The strings are more
  usable for link parsing now.
- Don't print extra commas afterlink flags.

Signed-off-by: Sakari Ailus <sakari.ai...@iki.fi>
---
 src/main.c |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/main.c b/src/main.c
index c04e12f..3c5fcb8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -129,8 +129,8 @@ static const char *media_pad_type_to_string(unsigned flag)
                __u32 flag;
                const char *name;
        } flags[] = {
-               { MEDIA_PAD_FL_SINK, "Input" },
-               { MEDIA_PAD_FL_SOURCE, "Output" },
+               { MEDIA_PAD_FL_SINK, "Sink" },
+               { MEDIA_PAD_FL_SOURCE, "Source" },
        };
 
        unsigned int i;
@@ -251,20 +251,33 @@ static void media_print_topology_text(struct media_device 
*media)
                                struct media_link *link = &entity->links[k];
                                struct media_pad *source = link->source;
                                struct media_pad *sink = link->sink;
+                               int i, flags = link->flags;
+                               struct {
+                                       int flag;
+                                       char *str;
+                               } tbl[] = {
+                                       { MEDIA_LNK_FL_ENABLED, "ENABLED" },
+                                       { MEDIA_LNK_FL_IMMUTABLE, "IMMUTABLE" },
+                                       { MEDIA_LNK_FL_DYNAMIC, "DYNAMIC" },
+                               };
 
                                if (source->entity == entity && source->index 
== j)
-                                       printf("\t\t-> '%s':pad%u [",
+                                       printf("\t\t-> \"%s\":%u [",
                                                sink->entity->info.name, 
sink->index);
                                else if (sink->entity == entity && sink->index 
== j)
-                                       printf("\t\t<- '%s':pad%u [",
+                                       printf("\t\t<- \"%s\":%u [",
                                                source->entity->info.name, 
source->index);
                                else
                                        continue;
 
-                               if (link->flags & MEDIA_LNK_FL_IMMUTABLE)
-                                       printf("IMMUTABLE,");
-                               if (link->flags & MEDIA_LNK_FL_ENABLED)
-                                       printf("ACTIVE");
+                               for (i = 0; i < ARRAY_SIZE(tbl); i++) {
+                                       if (!(flags & tbl[i].flag))
+                                               continue;
+                                       if (link->flags != flags)
+                                               printf(",");
+                                       printf("%s", tbl[i].str);
+                                       flags &= ~tbl[i].flag;
+                               }
 
                                printf("]\n");
                        }
-- 
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to