Replace AirTunes with AirPlay in doc and log messages

This commit is contained in:
ejurgensen 2014-02-07 22:10:40 +01:00
parent 0ec6e2f072
commit 01f290cc2a
3 changed files with 47 additions and 47 deletions

View File

@ -191,10 +191,10 @@ The LSB header below sums it up:
# Should-Start: avahi
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: media server with support for RSP, DAAP, DACP and AirTunes
# Short-Description: media server with support for RSP, DAAP, DACP and AirPlay
# Description: forked-daapd is an iTunes-compatible media server for
# sharing your media library over the local network with RSP
# clients like the SoundBridge from Roku and DAAP clients
# like iTunes. It can also stream music to AirTunes devices,
# like iTunes. It can also stream music to AirPlay devices,
# and it can be controlled by Apple Remote (and compatibles).
### END INIT INFO

26
README
View File

@ -24,6 +24,14 @@ forked-daapd is a complete rewrite of mt-daapd (Firefly Media Server).
Supported clients
-----------------
forked-daapd supports streaming to AirPlay devices (like the AirPort Express,
Shairport and various AirPlay speakers).
Like iTunes, you can control forked-daapd with Apple Remote, or with a
compatible Android app like Retune, TunesRemote+ or Hyperfine Remote. Another
controller is TunesRemoteSE, which is based on Java and runs in Windows, MacOS
and Linux.
forked-daapd supports iTunes clients as well as a number of devices similar
to the SoundBridge.
@ -33,14 +41,6 @@ or RSP.
A single forked-daapd instance can handle several clients concurrently,
regardless of the protocol.
forked-daapd support streaming to AirTunes devices (like the AirPort Express,
Shairport and various AirPlay speakers).
Like iTunes, you can control forked-daapd with Apple Remote, or with a
compatible Android app like Retune, TunesRemote+ or Hyperfine Remote. Another
controller is TunesRemoteSE, which is based on Java and runs in Windows, MacOS
and Linux.
Using Remote
------------
@ -118,7 +118,7 @@ Hit Ctrl-C to terminate avahi-browse.
------------------------
Remote gets a list of output devices from the server; this list includes any
and all devices on the network we know of that advertise AirTunes: AirPort
and all devices on the network we know of that advertise AirPlay: AirPort
Express, Apple TV, ... It also includes the local audio output, that is, the
sound card on the server (even if there is no soundcard).
@ -132,11 +132,11 @@ server startup, provided they appear in the 5 minutes following the startup
and no playback has occured yet.
AirTunes devices (AirPlay speakers)
-----------------------------------
AirPlay devices/speakers
------------------------
forked-daapd will discover the AirTunes devices available on your network. For
devices that are password-protected, the device's AirTunes name and password
forked-daapd will discover the AirPlay devices available on your network. For
devices that are password-protected, the device's AirPlay name and password
must be given in the configuration file. See the sample configuration file
for the syntax.

View File

@ -170,7 +170,7 @@ static uint64_t pb_pos;
/* Stream position (packets) */
static uint64_t last_rtptime;
/* AirTunes devices */
/* AirPlay devices */
static int dev_autoselect;
static struct raop_device *dev_list;
@ -1535,7 +1535,7 @@ device_remove(struct raop_device *dev)
if (!rd)
return;
DPRINTF(E_DBG, L_PLAYER, "Removing AirTunes device %s; stopped advertising\n", dev->name);
DPRINTF(E_DBG, L_PLAYER, "Removing AirPlay device %s; stopped advertising\n", dev->name);
/* Make sure device isn't selected anymore */
if (dev->selected)
@ -1662,7 +1662,7 @@ device_remove_family(struct player_command *cmd)
if (!rd)
{
DPRINTF(E_WARN, L_PLAYER, "AirTunes device %s stopped advertising, but not in our list\n", dev->name);
DPRINTF(E_WARN, L_PLAYER, "AirPlay device %s stopped advertising, but not in our list\n", dev->name);
device_free(dev);
return 0;
@ -1709,12 +1709,12 @@ device_streaming_cb(struct raop_device *dev, struct raop_session *rs, enum raop_
ret = device_check(dev);
if (ret < 0)
{
DPRINTF(E_WARN, L_PLAYER, "AirTunes device disappeared during streaming!\n");
DPRINTF(E_WARN, L_PLAYER, "AirPlay device disappeared during streaming!\n");
return;
}
DPRINTF(E_LOG, L_PLAYER, "AirTunes device %s FAILED\n", dev->name);
DPRINTF(E_LOG, L_PLAYER, "AirPlay device %s FAILED\n", dev->name);
if (player_state == PLAY_PLAYING)
speaker_deselect_raop(dev);
@ -1731,12 +1731,12 @@ device_streaming_cb(struct raop_device *dev, struct raop_session *rs, enum raop_
ret = device_check(dev);
if (ret < 0)
{
DPRINTF(E_WARN, L_PLAYER, "AirTunes device disappeared during streaming!\n");
DPRINTF(E_WARN, L_PLAYER, "AirPlay device disappeared during streaming!\n");
return;
}
DPRINTF(E_INFO, L_PLAYER, "AirTunes device %s stopped\n", dev->name);
DPRINTF(E_INFO, L_PLAYER, "AirPlay device %s stopped\n", dev->name);
dev->session = NULL;
@ -1779,7 +1779,7 @@ device_shutdown_cb(struct raop_device *dev, struct raop_session *rs, enum raop_s
ret = device_check(dev);
if (ret < 0)
{
DPRINTF(E_WARN, L_PLAYER, "AirTunes device disappeared before shutdown completion!\n");
DPRINTF(E_WARN, L_PLAYER, "AirPlay device disappeared before shutdown completion!\n");
if (cur_cmd->ret != -2)
cur_cmd->ret = -1;
@ -1823,7 +1823,7 @@ device_activate_cb(struct raop_device *dev, struct raop_session *rs, enum raop_s
ret = device_check(dev);
if (ret < 0)
{
DPRINTF(E_WARN, L_PLAYER, "AirTunes device disappeared during startup!\n");
DPRINTF(E_WARN, L_PLAYER, "AirPlay device disappeared during startup!\n");
raop_set_status_cb(rs, device_lost_cb);
raop_device_stop(rs);
@ -1900,7 +1900,7 @@ device_probe_cb(struct raop_device *dev, struct raop_session *rs, enum raop_sess
ret = device_check(dev);
if (ret < 0)
{
DPRINTF(E_WARN, L_PLAYER, "AirTunes device disappeared during probe!\n");
DPRINTF(E_WARN, L_PLAYER, "AirPlay device disappeared during probe!\n");
if (cur_cmd->ret != -2)
cur_cmd->ret = -1;
@ -1947,7 +1947,7 @@ device_restart_cb(struct raop_device *dev, struct raop_session *rs, enum raop_se
ret = device_check(dev);
if (ret < 0)
{
DPRINTF(E_WARN, L_PLAYER, "AirTunes device disappeared during restart!\n");
DPRINTF(E_WARN, L_PLAYER, "AirPlay device disappeared during restart!\n");
raop_set_status_cb(rs, device_lost_cb);
raop_device_stop(rs);
@ -2396,7 +2396,7 @@ playback_start(struct player_command *cmd)
ret = raop_device_start(rd, device_restart_cb, last_rtptime + AIRTUNES_V2_PACKET_SAMPLES);
if (ret < 0)
{
DPRINTF(E_LOG, L_PLAYER, "Could not start selected AirTunes device %s\n", rd->name);
DPRINTF(E_LOG, L_PLAYER, "Could not start selected AirPlay device %s\n", rd->name);
continue;
}
@ -2414,12 +2414,12 @@ playback_start(struct player_command *cmd)
ret = raop_device_start(rd, device_restart_cb, last_rtptime + AIRTUNES_V2_PACKET_SAMPLES);
if (ret < 0)
{
DPRINTF(E_DBG, L_PLAYER, "Could not autoselect AirTunes device %s\n", rd->name);
DPRINTF(E_DBG, L_PLAYER, "Could not autoselect AirPlay device %s\n", rd->name);
speaker_deselect_raop(rd);
continue;
}
DPRINTF(E_INFO, L_PLAYER, "Autoselecting AirTunes device %s\n", rd->name);
DPRINTF(E_INFO, L_PLAYER, "Autoselecting AirPlay device %s\n", rd->name);
cmd->raop_pending++;
break;
}
@ -2654,7 +2654,7 @@ speaker_enumerate(struct player_command *cmd)
laudio_name = cfg_getstr(cfg_getsec(cfg, "audio"), "nickname");
/* Auto-select local audio if there are no AirTunes devices */
/* Auto-select local audio if there are no AirPlay devices */
if (!dev_list && !laudio_selected)
speaker_select_laudio();
@ -3793,7 +3793,7 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
ret = safe_hextou64(name, &id);
if (ret < 0)
{
DPRINTF(E_LOG, L_PLAYER, "Could not extract AirTunes device ID (%s)\n", name);
DPRINTF(E_LOG, L_PLAYER, "Could not extract AirPlay device ID (%s)\n", name);
return;
}
@ -3801,18 +3801,18 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
at_name = strchr(name, '@');
if (!at_name)
{
DPRINTF(E_LOG, L_PLAYER, "Could not extract AirTunes device name (%s)\n", name);
DPRINTF(E_LOG, L_PLAYER, "Could not extract AirPlay device name (%s)\n", name);
return;
}
at_name++;
DPRINTF(E_DBG, L_PLAYER, "Event for AirTunes device %" PRIx64 "/%s (%d)\n", id, at_name, port);
DPRINTF(E_DBG, L_PLAYER, "Event for AirPlay device %" PRIx64 "/%s (%d)\n", id, at_name, port);
rd = (struct raop_device *)malloc(sizeof(struct raop_device));
if (!rd)
{
DPRINTF(E_LOG, L_PLAYER, "Out of memory for new AirTunes device\n");
DPRINTF(E_LOG, L_PLAYER, "Out of memory for new AirPlay device\n");
return;
}
@ -3844,21 +3844,21 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
p = keyval_get(txt, "tp");
if (!p)
{
DPRINTF(E_LOG, L_PLAYER, "AirTunes %s: no tp field in TXT record!\n", name);
DPRINTF(E_LOG, L_PLAYER, "AirPlay %s: no tp field in TXT record!\n", name);
goto free_rd;
}
if (*p == '\0')
{
DPRINTF(E_LOG, L_PLAYER, "AirTunes %s: tp has no value\n", name);
DPRINTF(E_LOG, L_PLAYER, "AirPlay %s: tp has no value\n", name);
goto free_rd;
}
if (!strstr(p, "UDP"))
{
DPRINTF(E_LOG, L_PLAYER, "AirTunes %s: device does not support AirTunes v2 (tp=%s), discarding\n", name, p);
DPRINTF(E_LOG, L_PLAYER, "AirPlay %s: device does not support AirTunes v2 (tp=%s), discarding\n", name, p);
goto free_rd;
}
@ -3867,13 +3867,13 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
p = keyval_get(txt, "pw");
if (!p)
{
DPRINTF(E_INFO, L_PLAYER, "AirTunes %s: no pw field in TXT record, assuming no password protection\n", name);
DPRINTF(E_INFO, L_PLAYER, "AirPlay %s: no pw field in TXT record, assuming no password protection\n", name);
has_password = 0;
}
else if (*p == '\0')
{
DPRINTF(E_LOG, L_PLAYER, "AirTunes %s: pw has no value\n", name);
DPRINTF(E_LOG, L_PLAYER, "AirPlay %s: pw has no value\n", name);
goto free_rd;
}
@ -3884,14 +3884,14 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
if (has_password)
{
DPRINTF(E_LOG, L_PLAYER, "AirTunes device %s is password-protected\n", name);
DPRINTF(E_LOG, L_PLAYER, "AirPlay device %s is password-protected\n", name);
apex = cfg_gettsec(cfg, "apex", at_name);
if (apex)
password = cfg_getstr(apex, "password");
if (!password)
DPRINTF(E_LOG, L_PLAYER, "No password given in config for AirTunes device %s\n", name);
DPRINTF(E_LOG, L_PLAYER, "No password given in config for AirPlay device %s\n", name);
}
devtype = RAOP_DEV_APEX_80211N;
@ -3899,7 +3899,7 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
p = keyval_get(txt, "am");
if (!p)
{
DPRINTF(E_INFO, L_PLAYER, "AirTunes %s: no am field in TXT record, assuming old Airport Express\n", name);
DPRINTF(E_INFO, L_PLAYER, "AirPlay %s: no am field in TXT record, assuming old Airport Express\n", name);
/* Old AirPort Express */
devtype = RAOP_DEV_APEX_80211G;
@ -3909,7 +3909,7 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
if (*p == '\0')
{
DPRINTF(E_LOG, L_PLAYER, "AirTunes %s: am has no value\n", name);
DPRINTF(E_LOG, L_PLAYER, "AirPlay %s: am has no value\n", name);
goto no_am;
}
@ -3924,14 +3924,14 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
p = keyval_get(txt, "md");
if (!p)
{
DPRINTF(E_INFO, L_PLAYER, "AirTunes %s: no md field in TXT record.\n", name);
DPRINTF(E_INFO, L_PLAYER, "AirPlay %s: no md field in TXT record.\n", name);
goto no_md;
}
if (*p == '\0')
{
DPRINTF(E_LOG, L_PLAYER, "AirTunes %s: md has no value\n", name);
DPRINTF(E_LOG, L_PLAYER, "AirPlay %s: md has no value\n", name);
goto no_md;
}
@ -3939,7 +3939,7 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
wants_metadata = 1;
no_md:
DPRINTF(E_DBG, L_PLAYER, "AirTunes device %s: password: %s, type %s\n", name, (password) ? "yes" : "no", raop_devtype[devtype]);
DPRINTF(E_DBG, L_PLAYER, "AirPlay device %s: password: %s, type %s\n", name, (password) ? "yes" : "no", raop_devtype[devtype]);
rd->advertised = 1;
@ -4167,7 +4167,7 @@ player_init(void)
ret = mdns_browse("_raop._tcp", mdns_flags, raop_device_cb);
if (ret < 0)
{
DPRINTF(E_FATAL, L_PLAYER, "Could not add mDNS browser for AirTunes devices\n");
DPRINTF(E_FATAL, L_PLAYER, "Could not add mDNS browser for AirPlay devices\n");
goto mdns_browse_fail;
}