Add automatic bit depth and speed selection for alsa devices. Set rate and format to "auto" by default. Always look for the greatest bit depth, but the lowest multiple of 44,100.

Improve support for big-endian CPUs by adding support for explicit -endian formats, i.e. S16_LE, S16_BE, S24_LE, S24_BE, S32_LE, S32_BE.

For the "disable_standby_mode" setting, change "while_active" to "auto".
This commit is contained in:
Mike Brady
2019-05-07 10:19:04 +01:00
parent 51c097cd12
commit 83c0405d03
21 changed files with 272 additions and 130 deletions
+7 -7
View File
@@ -441,8 +441,8 @@ gboolean notify_disable_standby_mode_callback(ShairportSync *skeleton,
} else if ((strcasecmp(th, "yes") == 0) || (strcasecmp(th, "on") == 0) || (strcasecmp(th, "always") == 0)) {
config.disable_standby_mode = disable_standby_always;
config.keep_dac_busy = 1;
} else if (strcasecmp(th, "while_active") == 0)
config.disable_standby_mode = disable_standby_while_active;
} else if (strcasecmp(th, "auto") == 0)
config.disable_standby_mode = disable_standby_auto;
else {
warn("An unrecognised disable_standby_mode: \"%s\" was requested via D-Bus interface.", th);
switch (config.disable_standby_mode) {
@@ -452,8 +452,8 @@ gboolean notify_disable_standby_mode_callback(ShairportSync *skeleton,
case disable_standby_always:
shairport_sync_set_disable_standby_mode(skeleton, "always");
break;
case disable_standby_while_active:
shairport_sync_set_disable_standby_mode(skeleton, "while_active");
case disable_standby_auto:
shairport_sync_set_disable_standby_mode(skeleton, "auto");
break;
default:
break;
@@ -757,9 +757,9 @@ static void on_dbus_name_acquired(GDBusConnection *connection, const gchar *name
shairport_sync_set_disable_standby_mode(SHAIRPORT_SYNC(shairportSyncSkeleton), "always");
debug(1, ">> disable standby mode set to \"always\"");
break;
case disable_standby_while_active:
shairport_sync_set_disable_standby_mode(SHAIRPORT_SYNC(shairportSyncSkeleton), "while_active");
debug(1, ">> disable standby mode set to \"while_active\"");
case disable_standby_auto:
shairport_sync_set_disable_standby_mode(SHAIRPORT_SYNC(shairportSyncSkeleton), "auto");
debug(1, ">> disable standby mode set to \"auto\"");
break;
default:
debug(1,"invalid disable_standby mode!");