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