[vlc-devel] [PATCH 1/3] spu: rss: Refactor RSS display string generation

Steve Lhomme robux4 at ycbcr.xyz
Wed Aug 26 08:17:03 CEST 2020


This patch LGTM. The other 2 seem sound although I did not test them.

On 2020-08-26 1:10, Daniel Glaas wrote:
> The RSS display string generation contained lot of code duplications. With this
> commit, structures that are used several times are factored out to make the final
> snprintf() statements - which write the text into the marquee buffer - better
> readable.
> ---
>   modules/spu/rss.c | 26 ++++++++++++--------------
>   1 file changed, 12 insertions(+), 14 deletions(-)
> 
> diff --git a/modules/spu/rss.c b/modules/spu/rss.c
> index a04d9275e4..29d44551da 100644
> --- a/modules/spu/rss.c
> +++ b/modules/spu/rss.c
> @@ -359,7 +359,7 @@ static subpicture_t *Filter( filter_t *p_filter, vlc_tick_t date )
>       video_format_t fmt;
>       subpicture_region_t *p_region;
>   
> -    int i_feed, i_item;
> +    int i_item;
>       rss_feed_t *p_feed;
>   
>       vlc_mutex_lock( &p_sys->lock );
> @@ -421,45 +421,43 @@ static subpicture_t *Filter( filter_t *p_filter, vlc_tick_t date )
>       /* Generate the string that will be displayed. This string is supposed to
>          be p_sys->i_length characters long. */
>       i_item = p_sys->i_cur_item;
> -    i_feed = p_sys->i_cur_feed;
> -    p_feed = &p_sys->p_feeds[i_feed];
> +    p_feed = &p_sys->p_feeds[p_sys->i_cur_feed];
> +    char *feed_title = p_feed->psz_title;
> +    char *item_title = p_feed->p_items[i_item].psz_title;
>   
>       if( ( p_feed->p_pic && p_sys->i_title == default_title )
>           || p_sys->i_title == hide_title )
>       {
>           /* Don't display the feed's title if we have an image */
>           snprintf( p_sys->psz_marquee, p_sys->i_length, "%s",
> -                  p_sys->p_feeds[i_feed].p_items[i_item].psz_title
> -                  +p_sys->i_cur_char );
> +                  item_title + p_sys->i_cur_char );
>       }
>       else if( ( !p_feed->p_pic && p_sys->i_title == default_title )
>                || p_sys->i_title == prepend_title )
>       {
>           snprintf( p_sys->psz_marquee, p_sys->i_length, "%s : %s",
> -                  p_sys->p_feeds[i_feed].psz_title,
> -                  p_sys->p_feeds[i_feed].p_items[i_item].psz_title
> -                  +p_sys->i_cur_char );
> +                  feed_title,
> +                  item_title + p_sys->i_cur_char );
>       }
>       else /* scrolling title */
>       {
>           if( i_item == -1 )
>               snprintf( p_sys->psz_marquee, p_sys->i_length, "%s : %s",
> -                      p_sys->p_feeds[i_feed].psz_title + p_sys->i_cur_char,
> -                      p_sys->p_feeds[i_feed].p_items[i_item+1].psz_title );
> +                      feed_title + p_sys->i_cur_char,
> +                      p_feed->p_items[i_item+1].psz_title );
>           else
>               snprintf( p_sys->psz_marquee, p_sys->i_length, "%s",
> -                      p_sys->p_feeds[i_feed].p_items[i_item].psz_title
> -                      +p_sys->i_cur_char );
> +                      item_title + p_sys->i_cur_char );
>       }
>   
>       while( strlen( p_sys->psz_marquee ) < (unsigned int)p_sys->i_length )
>       {
>           i_item++;
> -        if( i_item == p_sys->p_feeds[i_feed].i_items ) break;
> +        if( i_item == p_feed->i_items ) break;
>           snprintf( strchr( p_sys->psz_marquee, 0 ),
>                     p_sys->i_length - strlen( p_sys->psz_marquee ),
>                     " - %s",
> -                  p_sys->p_feeds[i_feed].p_items[i_item].psz_title );
> +                  p_feed->p_items[i_item].psz_title );
>       }
>   
>       /* Calls to snprintf might split multibyte UTF8 chars ...
> -- 
> 2.17.1
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> 


More information about the vlc-devel mailing list