X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fservices_discovery%2Fupnp_cc.cpp;h=aed508ba66a720f2d593176f5c4f7f392346c89a;hb=6511df53b2ea6320b5cf36a539ea6cffa99dffb9;hp=b4d1757ddb3ed563b488f3106432191d93e153d4;hpb=3561b9b28f58eb7a4183e158a8fd973800d31ceb;p=vlc diff --git a/modules/services_discovery/upnp_cc.cpp b/modules/services_discovery/upnp_cc.cpp index b4d1757ddb..aed508ba66 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,16 @@ 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_module_begin () + set_shortname( "UPnP") + set_description( N_("Universal Plug'n'Play discovery") ) + 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(); - -/***************************************************************************** - * 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; -} - - -/***************************************************************************** - * Close: - *****************************************************************************/ -static void Close( vlc_object_t *p_this ) -{ -} +vlc_module_end () /***************************************************************************** * Run: main UPnP thread @@ -145,24 +117,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( !p_sd->b_die ) - { - 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 +198,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,