X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fservices_discovery%2Fmediadirs.c;h=63f9cb7110e9fdf9b3ae1234d16d80b154a5dfcb;hb=15e31aa8a7a30df086bb31422b750dcbd632dfae;hp=6cd5e605d71079c3030f9fd27655f599a71be5ce;hpb=e80d880336624f91fd039952ac95aefd5a9e2e7e;p=vlc diff --git a/modules/services_discovery/mediadirs.c b/modules/services_discovery/mediadirs.c index 6cd5e605d7..63f9cb7110 100644 --- a/modules/services_discovery/mediadirs.c +++ b/modules/services_discovery/mediadirs.c @@ -190,7 +190,7 @@ static void *Run( void *data ) !S_ISDIR( st.st_mode ) ) continue; - char* psz_uri = make_URI( psz_dir ); + char* psz_uri = make_URI( psz_dir, "file" ); input_item_t* p_root = input_item_New( p_sd, psz_uri, NULL ); if( p_sys->i_type == Picture ) @@ -258,34 +258,47 @@ static void input_item_subitem_added( const vlc_event_t * p_event, static int onNewFileAdded( vlc_object_t *p_this, char const *psz_var, vlc_value_t oldval, vlc_value_t newval, void *p_data ) { + (void)p_this; + services_discovery_t *p_sd = p_data; + services_discovery_sys_t *p_sys = p_sd->p_sys; - (void)p_this; (void)psz_var; (void)oldval; + (void)psz_var; (void)oldval; char* psz_file = newval.psz_string; if( !psz_file || !*psz_file ) return VLC_EGENERIC; - char* psz_uri = make_URI( psz_file ); + char* psz_uri = make_URI( psz_file, "file" ); input_item_t* p_item = input_item_New( p_sd, psz_uri, NULL ); - if( fileType( p_sd, psz_file ) == Picture ) + if( p_sys->i_type == Picture ) { - formatSnapshotItem( p_item ); - services_discovery_AddItem( p_sd, p_item, NULL ); + if( fileType( p_sd, psz_file ) == Picture ) + { + formatSnapshotItem( p_item ); + services_discovery_AddItem( p_sd, p_item, NULL ); - msg_Dbg( p_sd, "New snapshot added : %s", psz_file ); + msg_Dbg( p_sd, "New snapshot added : %s", psz_file ); + } } - else if( fileType( p_sd, psz_file ) == Audio ) + else if( p_sys->i_type == Audio ) { - services_discovery_AddItem( p_sd, p_item, NULL ); + if( fileType( p_sd, psz_file ) == Audio ) + { + services_discovery_AddItem( p_sd, p_item, NULL ); - msg_Dbg( p_sd, "New recorded audio added : %s", psz_file ); + msg_Dbg( p_sd, "New recorded audio added : %s", psz_file ); + } } - else if( fileType( p_sd, psz_file ) == Video ) + else if( p_sys->i_type == Video ) { - services_discovery_AddItem( p_sd, p_item, NULL ); + if( fileType( p_sd, psz_file ) == Video || + fileType( p_sd, psz_file ) == Unknown ) + { + services_discovery_AddItem( p_sd, p_item, NULL ); - msg_Dbg( p_sd, "New recorded video added : %s", psz_file ); + msg_Dbg( p_sd, "New recorded video added : %s", psz_file ); + } } vlc_gc_decref( p_item ); @@ -299,33 +312,12 @@ void formatSnapshotItem( input_item_t *p_item ) if( !p_item ) return; - char* psz_file = NULL; - char* psz_option = NULL; char* psz_uri = input_item_GetURI( p_item ); - if( !psz_uri ) - goto end; - /* copy the snapshot mrl as a ArtURL */ - input_item_SetArtURL( p_item, psz_uri ); - - psz_file = make_path( psz_uri ); - if( !psz_file ) - goto end; - - if( asprintf( &psz_option, "fake-file=%s", psz_file ) == -1 ) - { - psz_option = NULL; - goto end; - } - - /* display still image as a video */ - input_item_SetURI( p_item, "fake://" ); - input_item_AddOption( p_item, psz_option, VLC_INPUT_OPTION_TRUSTED ); + if( psz_uri ) + input_item_SetArtURL( p_item, psz_uri ); -end: - free( psz_option ); - free( psz_file ); free( psz_uri ); }