Sha256: e42fa03c26fb674e54b5e17ea69c7c453ac25d3e31113a6304fb6c5606dcdd71

Contents?: true

Size: 1.31 KB

Versions: 2

Compression:

Stored size: 1.31 KB

Contents

require_relative 'ssdp/multicast_connection'
require_relative 'ssdp/searcher'
require_relative 'ssdp/listener'
require_relative 'ssdp/notifier'
require_relative 'ssdp/search_responder.rb'
require_relative 'ssdp/msearch_responder.rb'
require_relative 'ssdp/usearch_responder.rb'


module RUPNP

  # SSDP module. This a discovery part of UPnP.
  # @author Sylvain Daubert
  module SSDP

    # Some shorcut for common targets
    KNOWN_TARGETS = {
      :all  => 'ssdp:all',
      :root => 'upnp:rootdevice'
    }


    # Search devices
    # @param [Symbol,String] target
    # @param [Hash] options see {SSDP::Searcher#initialize}
    def self.search(target=:all, options={})
      options[:search_target] =  KNOWN_TARGETS[target] || target
      EM.open_datagram_socket '0.0.0.0', 0, SSDP::Searcher, options
    end

    # Listen for devices' announces
    # @param [Hash] options see {SSDP::Listener#initialize}
    def self.listen(options={})
      EM.open_datagram_socket(MULTICAST_IP, DISCOVERY_PORT,
                              SSDP::Listener, options)
    end

    # Notify announces
    # @param [Hash] options see {SSDP::Notifier#initialize}
    def self.notify(type, stype, options={})
      EM.open_datagram_socket(MULTICAST_IP, DISCOVERY_PORT,
                              SSDP::Notifier, type, stype, options)
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rupnp-0.3.0 lib/rupnp/ssdp.rb
rupnp-0.2.2 lib/rupnp/ssdp.rb