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)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, "file" ); input_item_t* p_item = input_item_New( psz_uri, NULL ); if( p_sys->i_type == Picture ) { 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 ); } } else if( p_sys->i_type == Audio ) { 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 ); } } else if( p_sys->i_type == Video ) { 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 ); } } vlc_gc_decref( p_item ); free( psz_uri ); return VLC_SUCCESS; }
/***************************************************************************** * Callbacks and helper functions *****************************************************************************/ static void input_item_subitem_added( const vlc_event_t * p_event, void * user_data ) { services_discovery_t *p_sd = user_data; services_discovery_sys_t *p_sys = p_sd->p_sys; /* retrieve new item */ input_item_t *p_item = p_event->u.input_item_subitem_added.p_new_child; if( p_sys->i_type == Picture ) formatSnapshotItem( p_item ); services_discovery_AddItem( p_sd, p_item, NULL ); }
/***************************************************************************** * Callbacks and helper functions *****************************************************************************/ static void input_subnode_added( const vlc_event_t *p_event, void *user_data ) { services_discovery_t *p_sd = user_data; services_discovery_sys_t *p_sys = p_sd->p_sys; input_item_node_t *root = p_event->u.input_item_subitem_tree_added.p_root; for( int i = 0; i < root->i_children; i++ ) { input_item_node_t *child = root->pp_children[i]; input_item_t *item = child->p_item; if( p_sys->i_type == Picture ) formatSnapshotItem( item ); services_discovery_AddItem( p_sd, item ); } }