class Druzy::Protocol::Plugin::Upnp::UpnpRenderer
Public Class Methods
new(druzy_device)
click to toggle source
Calls superclass method
# File lib/druzy/protocol/plugin/upnp.rb, line 41 def initialize(druzy_device) @druzy_device = druzy_device @av_transport_id=nil @connection_id=nil @rcs_id=nil super(@druzy_device.udn,"upnp",@druzy_device.friendly_name,@druzy_device.icon_list.first) end
Public Instance Methods
pause()
click to toggle source
# File lib/druzy/protocol/plugin/upnp.rb, line 56 def pause @druzy_device.AVTransport.Pause("InstanceID" => @av_transport_id) end
play()
click to toggle source
# File lib/druzy/protocol/plugin/upnp.rb, line 52 def play @druzy_device.AVTransport.Play("InstanceID" => @av_transport_id, "Speed" => 1) end
send(file)
click to toggle source
# File lib/druzy/protocol/plugin/upnp.rb, line 64 def send(file) #vérification du protocol protocols = @druzy_device.ConnectionManager.GetProtocolInfo["Sink"] mimetype=FileMagic.new(FileMagic::MAGIC_MIME_TYPE).file(file) ask_protocol="http-get:*:"+mimetype+":*" if protocols[ask_protocol] != nil if @connection_id == nil || @av_transport_id == nil || @rcs_id == nil ids=@druzy_device.ConnectionManager.PrepareForConnection("RemoteProtocolInfo" => ask_protocol, "PeerConnectionManager" => "/", "PeerConnectionID" => -1, "Direction" => "Output") @connection_id = ids["ConnectionID"] @av_transport_id = ids["AVTransportID"] @rcs_id = ids["RcsID"] end #ajout du fichier au serveur r=Druzy::Server::RestrictedFileServer.instance(PORT) r.add_file(file) #preparation de currentUriMetadata xml = %Q(<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"> <item id="#{r.get_address(file)}" parentID="0" restricted="false"> <dc:title>#{File.basename(file,".*")}</dc:title> <dc:creator></dc:creator> <upnp:class> object.item </upnp:class> <res protocolInfo="#{ask_protocol}"> #{r.get_address(file)} </res> </item> </DIDL-Lite>) #envoie de l'url au renderer @druzy_device.AVTransport.SetAVTransportURI("InstanceID" => @av_transport_id, "CurrentURI" => r.get_address(file), "CurrentURIMetaData" => xml) end end
stop()
click to toggle source
# File lib/druzy/protocol/plugin/upnp.rb, line 60 def stop @druzy_device.AVTransport.Stop("InstanceID" => @av_transport_id) end