} shairplay_session_t;
+static int running;
+
+
static ao_device *
audio_open_device(shairplay_options_t *opt, int bits, int channels, int samplerate)
{
raop_t *raop;
raop_callbacks_t raop_cbs;
+ int error;
+
memset(&options, 0, sizeof(options));
if (parse_options(&options, argc, argv)) {
return 0;
raop_set_log_level(raop, RAOP_LOG_DEBUG);
raop_start(raop, &options.port, hwaddr, sizeof(hwaddr), NULL);
- dnssd = dnssd_init(NULL);
+ error = 0;
+ dnssd = dnssd_init(&error);
+ if (error) {
+ fprintf(stderr, "ERROR: Could not initialize dnssd library!\n");
+ fprintf(stderr, "------------------------------------------\n");
+ fprintf(stderr, "You could try the following resolutions based on your OS:\n");
+ fprintf(stderr, "Windows: Try installing http://support.apple.com/kb/DL999\n");
+ fprintf(stderr, "Debian/Ubuntu: Try installing libavahi-compat-libdnssd1 package\n");
+ raop_destroy(raop);
+ return -1;
+ }
+
dnssd_register_raop(dnssd, options.apname, options.port, hwaddr, sizeof(hwaddr), 0);
+ dnssd_register_airplay(dnssd, options.apname, 1234, hwaddr, sizeof(hwaddr));
+ running = 1;
+ while (running) {
#ifndef WIN32
- sleep(100);
+ sleep(1);
#else
- Sleep(100*1000);
+ Sleep(1000);
#endif
+ }
dnssd_unregister_raop(dnssd);
dnssd_destroy(dnssd);