+static void AddItem( services_discovery_t *p_sd, input_item_t * p_input,
+ const char* psz_device )
+{
+ services_discovery_sys_t *p_sys = p_sd->p_sys;
+ services_discovery_AddItem( p_sd, p_input, NULL /* no category */ );
+
+ struct udi_input_id_t *p_udi_entry;
+ p_udi_entry = malloc( sizeof( struct udi_input_id_t ) );
+ if( !p_udi_entry )
+ return;
+ p_udi_entry->psz_udi = strdup( psz_device );
+ if( !p_udi_entry->psz_udi )
+ {
+ free( p_udi_entry );
+ return;
+ }
+
+ vlc_gc_incref( p_input );
+ p_udi_entry->p_item = p_input;
+ TAB_APPEND( p_sys->i_devices_number, p_sys->pp_devices, p_udi_entry );
+}
+
+static void AddDvd( services_discovery_t *p_sd, const char *psz_device )