#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_playlist.h>
+#include <vlc_services_discovery.h>
#include <vlc_network.h>
/*****************************************************************************
* Module descriptor
*****************************************************************************/
-vlc_module_begin();
- set_description( N_("HAL devices detection") );
- set_category( CAT_PLAYLIST );
- set_subcategory( SUBCAT_PLAYLIST_SD );
+vlc_module_begin ()
+ set_description( N_("HAL devices detection") )
+ set_category( CAT_PLAYLIST )
+ set_subcategory( SUBCAT_PLAYLIST_SD )
- set_capability( "services_discovery", 0 );
- set_callbacks( Open, Close );
+ set_capability( "services_discovery", 0 )
+ set_callbacks( Open, Close )
-vlc_module_end();
+vlc_module_end ()
/*****************************************************************************
return VLC_ENOMEM;
DBusError dbus_error;
- DBusConnection *p_connection;
+ DBusConnection *p_connection = NULL;
p_sd_global = p_sd;
p_sys->i_devices_number = 0;
if( dbus_error_is_set( &dbus_error ) )
{
msg_Err( p_sd, "unable to connect to DBUS: %s", dbus_error.message );
- dbus_error_free( &dbus_error );
- free( p_sys );
- return VLC_EGENERIC;
+ goto error;
}
libhal_ctx_set_dbus_connection( p_sys->p_ctx, p_connection );
p_sys->p_connection = p_connection;
if( vlc_clone( &p_sys->thread, Run, p_this, VLC_THREAD_PRIORITY_LOW ) )
goto error;
- services_discovery_SetLocalizedName( p_sd, _("Devices") );
-
return VLC_SUCCESS;
error:
+ if( p_connection )
+ dbus_connection_unref( p_connection );
dbus_error_free( &dbus_error );
+ libhal_ctx_free( p_sys->p_ctx );
free( p_sys );
return VLC_EGENERIC;
}
}
p_sys->pp_devices = NULL;
+ libhal_ctx_free( p_sys->p_ctx );
+
free( p_sys );
}
ParseDevice( p_sd, devices[ i ] );
libhal_free_string( devices[ i ] );
}
+ free( devices );
}
/* FIXME: Totally lame. There are DBus watch functions to do this properly.