| 1 | import time |
| 2 | from struct import * |
| 3 | from Shairplay import * |
| 4 | |
| 5 | hwaddr = pack('BBBBBB', 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB) |
| 6 | class SampleCallbacks(RaopCallbacks): |
| 7 | def audio_init(self, bits, channels, samplerate): |
| 8 | print "Initializing", bits, channels, samplerate |
| 9 | def audio_process(self, session, buffer): |
| 10 | print "Processing", + len(buffer), "bytes of audio" |
| 11 | def audio_destroy(self, session): |
| 12 | print "Destroying" |
| 13 | def audio_set_volume(self, session, volume): |
| 14 | print "Set volume to", volume |
| 15 | def audio_set_metadata(self, session, metadata): |
| 16 | print "Got", len(metadata), "bytes of metadata" |
| 17 | def audio_set_coverart(self, session, coverart): |
| 18 | print "Got", len(coverart), "bytes of coverart" |
| 19 | |
| 20 | shairplay = LoadShairplay(".") |
| 21 | callbacks = SampleCallbacks() |
| 22 | |
| 23 | def log_callback(level, message): |
| 24 | print "Level", level, ":", message |
| 25 | |
| 26 | raop = RaopService(shairplay, 10, callbacks) |
| 27 | raop.set_log_level(RaopLogLevel.DEBUG) |
| 28 | raop.set_log_callback(log_callback) |
| 29 | port = raop.start(5000, hwaddr) |
| 30 | |
| 31 | dnssd = DnssdService(shairplay) |
| 32 | dnssd.register_raop("RAOP test", port, hwaddr) |
| 33 | |
| 34 | time.sleep(50) |
| 35 | |
| 36 | dnssd.unregister_raop() |
| 37 | raop.stop() |
| 38 | |
| 39 | del dnssd |
| 40 | del raop |
| 41 | |