X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fservices_discovery%2Fmediadirs.c;h=63f9cb7110e9fdf9b3ae1234d16d80b154a5dfcb;hb=818e9afa5d316a43d7dd75531670ec47d76f9d8c;hp=946a17ef18982e626de3b2fc56e286293854d29c;hpb=7e45ab1b284217f191c35c5c2916742b4fbe39ee;p=vlc diff --git a/modules/services_discovery/mediadirs.c b/modules/services_discovery/mediadirs.c index 946a17ef18..63f9cb7110 100644 --- a/modules/services_discovery/mediadirs.c +++ b/modules/services_discovery/mediadirs.c @@ -69,21 +69,21 @@ vlc_module_begin () set_shortname( N_("Video") ) set_description( N_("My Videos") ) - set_capability( "services_discovery", 10 ) + set_capability( "services_discovery", 0 ) set_callbacks( OpenVideo, Close ) add_shortcut( "video_dir" ) add_submodule () set_shortname( N_("Audio") ) set_description( N_("My Music") ) - set_capability( "services_discovery", 10 ) + set_capability( "services_discovery", 0 ) set_callbacks( OpenAudio, Close ) add_shortcut( "audio_dir" ) add_submodule () set_shortname( N_("Picture") ) set_description( N_("My Pictures") ) - set_capability( "services_discovery", 10 ) + set_capability( "services_discovery", 0 ) set_callbacks( OpenPicture, Close ) add_shortcut( "picture_dir" ) @@ -190,11 +190,7 @@ static void *Run( void *data ) !S_ISDIR( st.st_mode ) ) continue; - // TODO: make_URI is only for file://, what about dir:// ? - // char* psz_uri = make_URI( psz_dir ); - char* psz_uri; - if( asprintf( &psz_uri, "dir://%s", psz_dir ) == -1 ) - continue; + 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 ) @@ -262,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 ); @@ -303,28 +312,13 @@ void formatSnapshotItem( input_item_t *p_item ) if( !p_item ) return; - if( !p_item->p_meta ) - p_item->p_meta = vlc_meta_New(); + char* psz_uri = input_item_GetURI( p_item ); /* copy the snapshot mrl as a ArtURL */ - if( p_item->p_meta ) - { - char* psz_uri = NULL; - psz_uri = input_item_GetURI( p_item ); - if( psz_uri ) - input_item_SetArtURL( p_item, psz_uri ); - free( psz_uri ); - } + if( psz_uri ) + input_item_SetArtURL( p_item, psz_uri ); - /** - * TODO: select the best mrl for displaying snapshots - * - vlc://pause:10 => snapshot are displayed as Art - * - file:///path/image.ext => snapshot are displayed as videos - **/ - input_item_SetURI( p_item, "vlc://pause:10" ); - - // input_item_AddOption( p_item, "fake-duration=10000", - // VLC_INPUT_OPTION_TRUSTED ); + free( psz_uri ); } @@ -356,10 +350,10 @@ static int vlc_sd_probe_Open( vlc_object_t *obj ) vlc_probe_t *probe = (vlc_probe_t *)obj; vlc_sd_probe_Add( probe, "video_dir{longname=\"My Videos\"}", - N_("My Videos") ); + N_("My Videos"), SD_CAT_MYCOMPUTER ); vlc_sd_probe_Add( probe, "audio_dir{longname=\"My Music\"}", - N_("My Music") ); + N_("My Music"), SD_CAT_MYCOMPUTER ); vlc_sd_probe_Add( probe, "picture_dir{longname=\"My Pictures\"}", - N_("My Pictures") ); + N_("My Pictures"), SD_CAT_MYCOMPUTER ); return VLC_PROBE_CONTINUE; }