Hi Sakari,

Thanks for the patch.

On Friday 14 October 2011 18:05:33 Sakari Ailus wrote:
> - 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 <[email protected]>
> ---
>  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" },
> +                             };

The table should be static const.

> 
>                               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;

What about using a 'first' variable instead of removing flags one by one ? I 
had to think for a second as to why the test was "link->flags != flags" for 
printing the comma.

If you're fine with that I'll make the modifications, no need to resubmit.

> +                             }
> 
>                               printf("]\n");
>                       }

-- 
Regards,

Laurent Pinchart
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to