Class: Airplay::Client
- Inherits:
-
Object
- Object
- Airplay::Client
- Defined in:
- lib/airplay/client.rb
Defined Under Namespace
Classes: ServerNotFoundError
Instance Attribute Summary collapse
-
#active_server ⇒ Object
readonly
Returns the value of attribute active_server.
-
#servers ⇒ Object
readonly
Returns the value of attribute servers.
Instance Method Summary collapse
- #browse ⇒ Object
- #find_by_name(name) ⇒ Object
-
#initialize(server = false) ⇒ Client
constructor
A new instance of Client.
- #send_image(image, transition = :none) ⇒ Object
- #use(server) ⇒ Object
Constructor Details
#initialize(server = false) ⇒ Client
Returns a new instance of Client.
4 5 6 7 |
# File 'lib/airplay/client.rb', line 4 def initialize(server = false) browse unless server use servers.first if servers.any? end |
Instance Attribute Details
#active_server ⇒ Object (readonly)
Returns the value of attribute active_server.
2 3 4 |
# File 'lib/airplay/client.rb', line 2 def active_server @active_server end |
#servers ⇒ Object (readonly)
Returns the value of attribute servers.
2 3 4 |
# File 'lib/airplay/client.rb', line 2 def servers @servers end |
Instance Method Details
#browse ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/airplay/client.rb', line 21 def browse @servers = [] DNSSD.browse!(Airplay::Protocol::SEARCH) do |reply| resolver = DNSSD::Service.new target = nil resolver.resolve(reply) do |resolved| target = resolved.target break unless resolved.flags.more_coming? end info = Socket.getaddrinfo(target, nil, Socket::AF_INET) ip_address = info[0][2] @servers << Airplay::Node.new(reply.name, reply.domain, ip_address) break unless reply.flags.more_coming? end @servers end |
#find_by_name(name) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/airplay/client.rb', line 13 def find_by_name(name) found_server = @servers.detect do |server| server if server.name == name end raise Airplay::Client::ServerNotFoundError unless found_server found_server end |