Changeset ecdf0f1a2575e80d1303106973d5f45e73567e10

Show
Ignore:
Timestamp:
09/30/06 19:08:48 (2 years ago)
Author:
Clément Stenac <zorglub@videolan.org>
git-committer:
Clément Stenac <zorglub@videolan.org> 1159636128 +0000
git-parent:

[b3b71030d8799237a448021f1054d20ea34b2504]

git-author:
Clément Stenac <zorglub@videolan.org> 1159636128 +0000
Message:

Re-enable art fetching when in "ALL" mode
Todo: we should recheck cache just before downloading in case it has been downloaded while we were in the queue

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/meta_engine/folder.c

    rde9d74a recdf0f1  
    5151 
    5252vlc_module_begin(); 
    53 /*    set_category( CAT_INTERFACE ); 
    54     set_subcategory( SUBCAT_INTERFACE_CONTROL );*/ 
    5553    set_shortname( N_( "Folder" ) ); 
    5654    set_description( _("Folder meta data") ); 
     
    6462static int FindMeta( vlc_object_t *p_this ) 
    6563{ 
    66     meta_engine_t *p_me = (meta_engine_t *)p_this; 
    67     input_item_t *p_item = p_me->p_item
     64    playlist_t *p_playlist = (playlist_t *)p_this; 
     65    input_item_t *p_item = (input_item_t *)(p_playlist->p_private)
    6866    vlc_bool_t b_have_art = VLC_FALSE; 
    6967    uint32_t i_meta; 
    7068 
     69    int i = 0; 
     70    struct stat a; 
     71    char psz_filename[MAX_PATH]; 
     72    char *psz_dir = strdup( p_item->psz_uri ); 
     73    char *psz_buf = strrchr( psz_dir, '/' ); 
     74 
    7175    if( !p_item->p_meta ) return VLC_EGENERIC; 
     76    if( psz_buf ) 
     77    { 
     78        psz_buf++; 
     79        *psz_buf = '\0'; 
     80    } 
     81    else 
     82    { 
     83        *psz_dir = '\0'; 
     84    } 
    7285 
     86    for( i = 0; b_have_art == VLC_FALSE && i < 3; i++ ) 
     87    { 
     88        switch( i ) 
     89        { 
     90            case 0: 
     91            /* Windows Folder.jpg */ 
     92            snprintf( psz_filename, MAX_PATH, 
     93                      "file://%sFolder.jpg", psz_dir ); 
     94            break; 
    7395 
    74     if( p_me->i_mandatory & VLC_META_ENGINE_ART_URL 
    75         || p_me->i_optional & VLC_META_ENGINE_ART_URL ) 
    76     { 
    77         int i = 0; 
    78         struct stat a; 
    79         char psz_filename[MAX_PATH]; 
    80         char *psz_dir = strdup( p_item->psz_uri ); 
    81         char *psz_buf = strrchr( psz_dir, '/' ); 
     96            case 1: 
     97            /* Windows AlbumArtSmall.jpg == small version of Folder.jpg */ 
     98            snprintf( psz_filename, MAX_PATH, 
     99                  "file://%sAlbumArtSmall.jpg", psz_dir ); 
     100            break; 
    82101 
    83         if( psz_buf ) 
    84         { 
    85             psz_buf++; 
    86             *psz_buf = '\0'; 
    87         } 
    88         else 
    89         { 
    90             *psz_dir = '\0'; 
     102            case 2: 
     103            /* KDE (?) .folder.png */ 
     104            snprintf( psz_filename, MAX_PATH, 
     105                  "file://%s.folder.png", psz_dir ); 
     106            break; 
    91107        } 
    92108 
    93         for( i = 0; b_have_art == VLC_FALSE && i < 3; i++
     109        if( utf8_stat( psz_filename+7, &a ) != -1
    94110        { 
    95             switch( i ) 
    96             { 
    97                 case 0: 
    98                 /* Windows Folder.jpg */ 
    99                 snprintf( psz_filename, MAX_PATH, 
    100                           "file://%sFolder.jpg", psz_dir ); 
    101                 break; 
    102  
    103                 case 1: 
    104                 /* Windows AlbumArtSmall.jpg == small version of Folder.jpg */ 
    105                 snprintf( psz_filename, MAX_PATH, 
    106                       "file://%sAlbumArtSmall.jpg", psz_dir ); 
    107                 break; 
    108  
    109                 case 2: 
    110                 /* KDE (?) .folder.png */ 
    111                 snprintf( psz_filename, MAX_PATH, 
    112                       "file://%s.folder.png", psz_dir ); 
    113                 break; 
    114             } 
    115  
    116             if( utf8_stat( psz_filename+7, &a ) != -1 ) 
    117             { 
    118                 vlc_meta_SetArtURL( p_item->p_meta, psz_filename ); 
    119                 b_have_art = VLC_TRUE; 
    120             } 
     111            vlc_meta_SetArtURL( p_item->p_meta, psz_filename ); 
     112            b_have_art = VLC_TRUE; 
    121113        } 
    122  
    123         free( psz_dir ); 
    124114    } 
    125115 
    126     i_meta = input_CurrentMetaFlags( p_item->p_meta ); 
    127     p_me->i_mandatory &= ~i_meta; 
    128     p_me->i_optional &= ~i_meta; 
    129     if( p_me->i_mandatory ) 
    130         return VLC_EGENERIC; 
    131     else 
    132         return VLC_SUCCESS; 
     116    free( psz_dir ); 
     117 
     118    return b_have_art ? VLC_SUCCESS : VLC_EGENERIC; 
    133119} 
  • modules/meta_engine/musicbrainz.c

    r9a128b5 recdf0f1  
    163163    meta_engine_t *p_me = (meta_engine_t *)p_this; 
    164164    input_item_t *p_item = p_me->p_item; 
    165     int i_ret = GetData( VLC_OBJECT(p_me), p_item, VLC_FALSE ); 
     165    int i_ret = GetData( VLC_OBJECT(p_me), p_item, 
     166                         p_me->i_mandatory & VLC_META_ENGINE_ART_URL ); 
    166167 
    167168    if( !i_ret ) 
     
    177178static int FindArt( vlc_object_t *p_this ) 
    178179{ 
    179     playlist_t *p_playlist
    180     input_item_t *p_item = (input_item_t *)p_playlist->p_private
     180    playlist_t *p_playlist = (playlist_t *)p_this
     181    input_item_t *p_item = (input_item_t *)(p_playlist->p_private)
    181182    assert( p_item ); 
    182183 
    183     return GetData( p_playlist, p_item, VLC_TRUE ); 
     184    return GetData( VLC_OBJECT(p_playlist), p_item, VLC_TRUE ); 
    184185} 
  • modules/mux/mp4.c

    r7ea9e5c recdf0f1  
    10481048 
    10491049        ADD_META_BOX( title, "nam" ); 
    1050         ADD_META_BOX( author, "aut" ); 
    10511050        ADD_META_BOX( artist, "ART" ); 
    10521051        ADD_META_BOX( genre, "gen" ); 
  • src/input/input.c

    rbd3484b recdf0f1  
    22502250 
    22512251    GET_META( title, "meta-title" ); 
    2252     GET_META( author, "meta-author" ); 
    22532252    GET_META( artist, "meta-artist" ); 
    22542253    GET_META( genre, "meta-genre" ); 
  • src/input/meta.c

    ra0cbc6e recdf0f1  
    103103        { 
    104104            msg_Dbg( p_playlist, "unable to find art" ); 
     105            PL_UNLOCK; 
    105106            return VLC_EGENERIC; 
    106107        } 
    107108        module_Unneed( p_playlist, p_module ); 
    108109        p_playlist->p_private = NULL; 
     110        PL_UNLOCK; 
    109111 
    110112        if( !p_item->p_meta->psz_arturl || !*p_item->p_meta->psz_arturl ) 
     
    142144        if( utf8_stat( psz_filename+7, &a ) == 0 ) 
    143145        { 
    144             msg_Dbg( p_playlist, "album art %s already exists in cache" 
    145                              , psz_filename ); 
    146146            vlc_meta_SetArtURL( p_item->p_meta, psz_filename ); 
    147147            return VLC_SUCCESS; 
     
    212212        fclose( p_file ); 
    213213        stream_Delete( p_stream ); 
    214         msg_Dbg( p_playlist, "Album art saved to %s\n", psz_filename ); 
     214        msg_Dbg( p_playlist, "album art saved to %s\n", psz_filename ); 
    215215        free( p_item->p_meta->psz_arturl ); 
    216216        p_item->p_meta->psz_arturl = strdup( psz_filename ); 
     
    229229 
    230230    CHECK( title, TITLE ) 
    231     CHECK( author, AUTHOR ) 
    232231    CHECK( artist, ARTIST ) 
    233232    CHECK( genre, GENRE ) 
  • src/playlist/engine.c

    rde9d74a recdf0f1  
    566566                input_MetaFetch( p_playlist, p_item ); 
    567567                p_item->p_meta->i_status |= ITEM_META_FETCHED; 
     568                var_SetInteger( p_playlist, "item-change", p_item->i_id ); 
     569                /*  Fetch right now */ 
     570                if( var_GetInteger( p_playlist, "album-art" ) == ALBUM_ART_ALL ) 
     571                { 
     572                    vlc_mutex_lock( &p_obj->object_lock ); 
     573                    preparse_item_t p; 
     574                    p.p_item = p_item; 
     575                    p.b_fetch_art = VLC_TRUE; 
     576                    INSERT_ELEM( p_playlist->p_secondary_preparse->p_waiting, 
     577                                 p_playlist->p_secondary_preparse->i_waiting, 
     578                                 0, p ); 
     579                    vlc_mutex_unlock( &p_obj->object_lock ); 
     580                } 
     581                else 
     582                    vlc_gc_decref( p_item ); 
    568583            } 
    569584            else 
     
    571586                input_ArtFetch( p_playlist, p_item ); 
    572587                p_item->p_meta->i_status |= ITEM_ART_FETCHED; 
    573             } 
    574             var_SetInteger( p_playlist, "item-change", p_item->i_id ); 
    575             vlc_gc_decref( p_item ); 
     588                vlc_gc_decref( p_item ); 
     589           } 
    576590        } 
    577591        vlc_mutex_lock( &p_obj->object_lock );