[vlc-devel] [PATCH 1/3] spu: rss: Refactor RSS display string generation
Daniel Glaas
daniel.glaas at freenet.de
Wed Aug 26 01:10:13 CEST 2020
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
More information about the vlc-devel
mailing list