logo
Free, Micro AI Code Reviews That Run on Git Commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt

Net::UPnP - Perl extension for UPnP

Author

Description

       This package provides some functions to control UPnP devices.

       Currently, the package provides only functions for the control point.  To control UPnP devices, see
       Net::UPnP::ControlPoint.

       As a sample of the control point, the package provides Net::UPnP::AV::MediaServer to control the devices
       such as DLNA media servers. As the example, please dms2vodcast.pl that converts from the MPEG2 movies to
       the MPEG4 one and outputs the RSS file for Vodcasting.

Name

       Net::UPnP - Perl extension for UPnP

See Also

       Net::UPnP::ControlPoint

       Net::UPnP::AV::MediaServer

Synopsis

           use Net::UPnP::ControlPoint;

           my $obj = Net::UPnP::ControlPoint->new();

           @dev_list = $obj->search(st =>'upnp:rootdevice', mx => 3);

           $devNum= 0;
           foreach $dev (@dev_list) {
               $device_type = $dev->getdevicetype();
               if  ($device_type ne 'urn:schemas-upnp-org:device:MediaServer:1') {
                   next;
               }
               print "[$devNum] : " . $dev->getfriendlyname() . "\n";
               unless ($dev->getservicebyname('urn:schemas-upnp-org:service:ContentDirectory:1')) {
                   next;
               }
               $condir_service = $dev->getservicebyname('urn:schemas-upnp-org:service:ContentDirectory:1');
               unless (defined(condir_service)) {
                   next;
               }
               %action_in_arg = (
                       'ObjectID' => 0,
                       'BrowseFlag' => 'BrowseDirectChildren',
                       'Filter' => '*',
                       'StartingIndex' => 0,
                       'RequestedCount' => 0,
                       'SortCriteria' => '',
                   );
               $action_res = $condir_service->postcontrol('Browse', \%action_in_arg);
               unless ($action_res->getstatuscode() == 200) {
                       next;
               }
               $actrion_out_arg = $action_res->getargumentlist();
               unless ($actrion_out_arg->{'Result'}) {
                   next;
               }
               $result = $actrion_out_arg->{'Result'};
               while ($result =~ m/<dc:title>(.*?)<\/dc:title>/sgi) {
                   print "\t$1\n";
               }
               $devNum++;
           }

See Also