X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fmeta_engine%2Fmusicbrainz.c;h=ed6ce43af71369fe72d33c275f7bb654c4b96512;hb=1144af45baae4cbc6609c46d771f314ce84ddcef;hp=cbb3a69994224d32bde2ab4f84691da9b9ba2192;hpb=9a128b542b2d94a3b24c6a7d88d76644c989f948;p=vlc diff --git a/modules/meta_engine/musicbrainz.c b/modules/meta_engine/musicbrainz.c index cbb3a69994..ed6ce43af7 100644 --- a/modules/meta_engine/musicbrainz.c +++ b/modules/meta_engine/musicbrainz.c @@ -27,7 +27,9 @@ #include /* malloc(), free() */ #include -#include +#include +#include +#include #include #include "musicbrainz/mb_c.h" @@ -74,19 +76,19 @@ static int GetData( vlc_object_t *p_obj, input_item_t *p_item, char psz_data[256]; char i_album_count, i; char *ppsz_args[4]; - uint32_t i_meta; - char *psz_title; char *psz_artist; char *psz_album; - if( !p_item->p_meta ) return VLC_EGENERIC; - psz_artist = p_item->p_meta->psz_artist; - psz_album = p_item->p_meta->psz_album; - psz_title = p_item->psz_name; + psz_artist = input_item_GetArtist( p_item ); + psz_album = input_item_GetAlbum( p_item ); if( !psz_artist || !psz_album ) + { + free( psz_artist ); + free( psz_album ); return VLC_EGENERIC; + } musicbrainz_t p_mb; @@ -108,10 +110,14 @@ static int GetData( vlc_object_t *p_obj, input_item_t *p_item, "\n", ppsz_args ) ) { mb_GetQueryError( p_mb, psz_buf, 256 ); - msg_Err( p_obj, "Query failed: %s\n", psz_buf ); + msg_Err( p_obj, "Query failed: %s", psz_buf ); mb_Delete( p_mb ); + free( psz_artist ); + free( psz_album ); return VLC_EGENERIC; } + free( psz_artist ); + free( psz_album ); i_album_count = mb_GetResultInt( p_mb, MBE_GetNumAlbums ); if( i_album_count < 1 ) @@ -142,7 +148,7 @@ static int GetData( vlc_object_t *p_obj, input_item_t *p_item, snprintf( psz_data, 255, "http://images.amazon.com/images/P/%s.01._SCLZZZZZZZ_.jpg", psz_buf ); - vlc_meta_SetArtURL( p_item->p_meta, psz_data ); + input_item_SetArtURL( p_item, psz_data ); break; } } @@ -154,19 +160,26 @@ static int GetData( vlc_object_t *p_obj, input_item_t *p_item, if( !b_art ) return VLC_SUCCESS; else - return p_item->p_meta->psz_arturl && *p_item->p_meta->psz_arturl ? - VLC_SUCCESS : VLC_EGENERIC; + { + char *psz_arturl; + psz_arturl = input_item_GetArtURL( p_item ); + int i_ret; + i_ret = EMPTY_STR( psz_arturl ) ? VLC_SUCCESS : VLC_EGENERIC ; + free( psz_arturl ); + return i_ret; + } } static int FindMetaMBId( vlc_object_t *p_this ) { meta_engine_t *p_me = (meta_engine_t *)p_this; input_item_t *p_item = p_me->p_item; - int i_ret = GetData( VLC_OBJECT(p_me), p_item, VLC_FALSE ); + int i_ret = GetData( VLC_OBJECT(p_me), p_item, + p_me->i_mandatory & VLC_META_ENGINE_ART_URL ); if( !i_ret ) { - uint32_t i_meta = input_CurrentMetaFlags( p_item->p_meta ); + uint32_t i_meta = input_CurrentMetaFlags( input_item_GetMetaObject( p_item ) ); p_me->i_mandatory &= ~i_meta; p_me->i_optional &= ~i_meta; return p_me->i_mandatory ? VLC_EGENERIC : VLC_SUCCESS; @@ -176,9 +189,9 @@ static int FindMetaMBId( vlc_object_t *p_this ) static int FindArt( vlc_object_t *p_this ) { - playlist_t *p_playlist; - input_item_t *p_item = (input_item_t *)p_playlist->p_private; + playlist_t *p_playlist = (playlist_t *)p_this; + input_item_t *p_item = (input_item_t *)(p_playlist->p_private); assert( p_item ); - return GetData( p_playlist, p_item, VLC_TRUE ); + return GetData( VLC_OBJECT(p_playlist), p_item, VLC_TRUE ); }