File: avahi_daap.py

package info (click to toggle)
python-daap 0.7.1-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 156 kB
  • ctags: 122
  • sloc: python: 602; ansic: 377; makefile: 42; sh: 13
file content (22 lines) | stat: -rw-r--r-- 1,074 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import dbus
import avahi
import gobject
import dbus.glib

bus = dbus.SystemBus()
server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)

def new_service(interface, protocol, name, type, domain, flags):
    interface, protocol, name, type, domain, host, aprotocol, address, port, txt, flags = server.ResolveService(interface, protocol, name, type, domain, avahi.PROTO_UNSPEC, dbus.UInt32(0))
    print "Found service '%s' of type '%s' in domain '%s' at address '%s:%s'" % (name, type, domain, address, port)

def remove_service(interface, protocol, name, type, domain):
    print "Service '%s' of type '%s' in domain '%s' disappeared." % (name, type, domain)

stype = '_daap._tcp'
domain = 'local'
browser = dbus.Interface(bus.get_object(avahi.DBUS_NAME, server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, stype, domain, dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_BROWSER)

browser.connect_to_signal('ItemNew', new_service)
browser.connect_to_signal('ItemRemove', remove_service)
gobject.MainLoop().run()