X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fservices_discovery%2Fupnp_cc.cpp;h=5d4463c4b25265644ff34a5999e445a38c1f4786;hb=df509ccf56baa3e79a885f017aa97d205f2feabc;hp=91bec309b29de85bf476278a1a47c17014987484;hpb=00b95848260cd44f140a05da8aa5baf13580e2d3;p=vlc diff --git a/modules/services_discovery/upnp_cc.cpp b/modules/services_discovery/upnp_cc.cpp index 91bec309b2..5d4463c4b2 100644 --- a/modules/services_discovery/upnp_cc.cpp +++ b/modules/services_discovery/upnp_cc.cpp @@ -39,6 +39,7 @@ #include #include #include +#include /* FIXME: thread-safety ?? */ /* FIXME: playlist locking */ @@ -57,45 +58,20 @@ using namespace CyberLink; static int Open ( vlc_object_t * ); static void Close( vlc_object_t * ); -vlc_module_begin(); - set_shortname( "UPnP"); - set_description( N_("Universal Plug'n'Play discovery") ); - set_category( CAT_PLAYLIST ); - set_subcategory( SUBCAT_PLAYLIST_SD ); +VLC_SD_PROBE_HELPER("upnp", N_("Universal Plug'n'Play discovery")) - set_capability( "services_discovery", 0 ); - set_callbacks( Open, Close ); +vlc_module_begin () + set_shortname( "UPnP") + set_description( N_("Universal Plug'n'Play discovery") ) + set_category( CAT_PLAYLIST ) + set_subcategory( SUBCAT_PLAYLIST_SD ) -vlc_module_end(); + set_capability( "services_discovery", 0 ) + set_callbacks( Open, Close ) -/***************************************************************************** - * Local prototypes - *****************************************************************************/ - -/* Main functions */ - static void Run ( services_discovery_t *p_sd ); - -/***************************************************************************** - * Open: initialize and create stuff - *****************************************************************************/ -static int Open( vlc_object_t *p_this ) -{ - services_discovery_t *p_sd = ( services_discovery_t* )p_this; - - p_sd->pf_run = Run; - - services_discovery_SetLocalizedName( p_sd, _("Devices") ); - - return VLC_SUCCESS; -} + VLC_SD_PROBE_SUBMODULE - -/***************************************************************************** - * Close: - *****************************************************************************/ -static void Close( vlc_object_t *p_this ) -{ -} +vlc_module_end () /***************************************************************************** * Run: main UPnP thread @@ -145,24 +121,33 @@ class UPnPHandler : public MediaPlayer, public DeviceChangeListener, addSearchResponseListener( this ); //addEventListener( this ); } - }; -static void Run( services_discovery_t *p_sd ) +/***************************************************************************** + * Open: initialize and create stuff + *****************************************************************************/ +static int Open( vlc_object_t *p_this ) { - UPnPHandler u( p_sd ); + services_discovery_t *p_sd = ( services_discovery_t* )p_this; - u.start(); + UPnPHandler *u = new UPnPHandler( p_sd ); + u->start( ); + msg_Dbg( p_sd, "upnp discovery started" ); + p_sd->p_private = u; - msg_Dbg( p_sd, "UPnP discovery started" ); - /* read SAP packets */ - while( vlc_object_alive (p_sd) ) - { - msleep( 500 ); - } + return VLC_SUCCESS; +} + + +/***************************************************************************** + * Close: + *****************************************************************************/ +static void Close( vlc_object_t *p_this ) +{ + UPnPHandler *u = (UPnPHandler *)p_this->p_private; + u->stop( ); - u.stop(); - msg_Dbg( p_sd, "UPnP discovery stopped" ); + msg_Dbg( p_this, "upnp discovery started" ); } @@ -217,7 +202,7 @@ void UPnPHandler::AddContent( playlist_item_t *p_parent, ContentNode *node ) if ( node->isItemNode() ) { ItemNode *iNode = (ItemNode *)node; - input_item_t *p_input = input_ItemNew( p_sd, iNode->getResource(), title ); + input_item_t *p_input = input_item_New( p_sd, iNode->getResource(), title ); /* FIXME: playlist_AddInput() can fail */ playlist_BothAddInput( p_playlist, p_input, p_parent, PLAYLIST_APPEND, PLAYLIST_END, NULL, NULL,