VLC_EXPORT( services_discovery_t *, services_discovery_Create, ( vlc_object_t * p_super, const char * psz_service_name ) );
VLC_EXPORT( void, services_discovery_Destroy, ( services_discovery_t * p_this ) );
VLC_EXPORT( int, services_discovery_Start, ( services_discovery_t * p_this ) );
+VLC_EXPORT( void, services_discovery_Stop, ( services_discovery_t * p_this ) );
/* Read info from discovery object */
VLC_EXPORT( char *, services_discovery_GetLocalizedName, ( services_discovery_t * p_this ) );
***********************************************************************/
void services_discovery_Destroy ( services_discovery_t * p_sd )
{
- vlc_object_kill( p_sd );
- if( p_sd->pf_run ) vlc_thread_join( p_sd );
+ vlc_event_manager_fini( &p_sd->event_manager );
free( p_sd->psz_module );
- module_Unneed( p_sd, p_sd->p_module );
-
- vlc_event_manager_fini( &p_sd->event_manager );
free( p_sd->psz_localized_name );
vlc_object_destroy( p_sd );
return VLC_SUCCESS;
}
+/***********************************************************************
+ * Stop
+ ***********************************************************************/
+void services_discovery_Stop ( services_discovery_t * p_sd )
+{
+ vlc_object_kill( p_sd );
+ if( p_sd->pf_run ) vlc_thread_join( p_sd );
+
+ module_Unneed( p_sd, p_sd->p_module );
+}
+
/***********************************************************************
* GetLocalizedName
***********************************************************************/
if( p_asd && p_asd->p_sd )
{
- services_discovery_Destroy( p_asd->p_sd );
+ services_discovery_Stop( p_asd->p_sd );
vlc_event_detach( services_discovery_EventManager( p_asd->p_sd ),
vlc_ServicesDiscoveryItemAdded,
}
PL_UNLOCK;
+ services_discovery_Destroy( p_asd->p_sd );
+
free( p_asd );
}
else