From: Antoine Cellerier Date: Fri, 1 Jul 2005 21:43:42 +0000 (+0000) Subject: Genre standardisation patch by Jonas A. Larsen X-Git-Tag: 0.8.4~1339 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=d37194a3b20d4d26b86ffa8c3849bf1cd91722c0;p=vlc Genre standardisation patch by Jonas A. Larsen This (and previous patch) still needs some work as genres containing spaces aren't parsed correctly --- diff --git a/modules/demux/playlist/b4s.c b/modules/demux/playlist/b4s.c index db35d9533c..bf0414077f 100644 --- a/modules/demux/playlist/b4s.c +++ b/modules/demux/playlist/b4s.c @@ -153,7 +153,7 @@ static int Demux( demux_t *p_demux ) p_bitrate = playlist_NodeCreate( p_playlist, p_current->pp_parents[0]->i_view, "Bitrate", p_current ); playlist_CopyParents( p_current, p_bitrate ); } - + p_xml = p_sys->p_xml = xml_Create( p_demux ); if( !p_xml ) return -1; @@ -245,7 +245,7 @@ static int Demux( demux_t *p_demux ) if( psz_elname ) free( psz_elname ); psz_elname = xml_ReaderName( p_xml_reader ); if( !psz_elname ) return -1; - + // Read the attributes while( xml_ReaderNextAttr( p_xml_reader ) == VLC_SUCCESS ) @@ -358,25 +358,41 @@ static int Demux( demux_t *p_demux ) /* We need to declare the parents of the node as the * * same of the parent's ones */ playlist_CopyParents( p_current, p_item ); - + vlc_input_item_CopyOptions( &p_current->input, &p_item->input ); if( b_shoutcast ) - { - char *psz_genreToken; - char *psz_otherToken; - - - psz_genreToken = psz_genre; - - while ( psz_genreToken && ( psz_otherToken = get_next_token(psz_genreToken ))) - { - ShoutcastAdd( p_playlist, p_genre, p_bitrate, p_item, - psz_genreToken, psz_bitrate ); - - psz_genreToken = psz_otherToken; - } - } + { + char *psz_genreToken; + char *psz_otherToken; + int i = 0; + + psz_genreToken = psz_genre; + + /* split up the combined genre string form + shoutcast and add the individual genres */ + while ( psz_genreToken && + ( psz_otherToken = get_next_token(psz_genreToken ))) + { + if( strlen(psz_genreToken)>2 ) + /* We dont want genres below 2 letters, + this gets rid of alot of junk*/ + { + /* lowercase everything */ + for( i=0; psz_genreToken[i]!=0; i++ ) + psz_genreToken[i] = + tolower(psz_genreToken[i]); + /* Make first letter uppercase, purely cosmetical */ + psz_genreToken[0] = + toupper( psz_genreToken[0] ); + ShoutcastAdd( p_playlist, p_genre, + p_bitrate, p_item, + psz_genreToken, psz_bitrate ); + + psz_genreToken = psz_otherToken; + } + } + } #define FREE(a) if( a ) free( a ); a = NULL; FREE( psz_name );