From 81d712944d8f1d34b4cbc058dcb117773b124563 Mon Sep 17 00:00:00 2001 From: Wu SiYu Date: Mon, 4 Oct 2021 22:24:38 +0800 Subject: [PATCH] package: enhance luci-app-airplay2 (#7990) feature: add allow_session_interruption and session_timeout option bugfix: restart shairport-sync when new setting submitted on luci enhance: some text change and file rename --- .../luasrc/model/cbi/shairport-sync.lua | 14 ++++++++--- .../po/zh-cn/shairport-sync.po | 25 +++++++++++++++---- .../root/etc/config/shairport-sync | 2 ++ .../root/etc/init.d/shairport-sync | 5 ++++ ...-shairport-sync => 99_luci-shairport-sync} | 0 5 files changed, 38 insertions(+), 8 deletions(-) rename package/lean/luci-app-airplay2/root/etc/uci-defaults/{luci-shairport-sync => 99_luci-shairport-sync} (100%) diff --git a/package/lean/luci-app-airplay2/luasrc/model/cbi/shairport-sync.lua b/package/lean/luci-app-airplay2/luasrc/model/cbi/shairport-sync.lua index 0836b1e85..049ee6a8d 100644 --- a/package/lean/luci-app-airplay2/luasrc/model/cbi/shairport-sync.lua +++ b/package/lean/luci-app-airplay2/luasrc/model/cbi/shairport-sync.lua @@ -30,7 +30,7 @@ pw:depends("auth", "1") interpolation=s:option(ListValue, "interpolation", translate("Interpolation")) interpolation:value("basic", translate("Internal Basic Resampler")) -interpolation:value("soxr", translate("High quality SoX Resampler")) +interpolation:value("soxr", translate("High quality SoX Resampler (fast CPU required)")) port=s:option(Value, "port", translate("Port")) port.rmempty = false @@ -38,8 +38,9 @@ port.datatype = "port" alsa_output_device=s:option(ListValue, "alsa_output_device", translate("Alsa Output Device")) alsa_output_device:value("", translate("default")) -alsa_output_device:value("hw:0", translate("1st Soundcard")) -alsa_output_device:value("hw:1", translate("2nd Soundcard")) +alsa_output_device:value("hw:0", translate("1st Soundcard (hw:0)")) +alsa_output_device:value("hw:1", translate("2nd Soundcard (hw:1)")) +alsa_output_device:value("hw:2", translate("3nd Soundcard (hw:2)")) alsa_mixer_control_name=s:option(ListValue, "alsa_mixer_control_name", translate("Alsa Mixer Control Name")) alsa_mixer_control_name:value("", translate("default")) @@ -55,4 +56,11 @@ alsa_output_rate:value("352800", translate("352.8Khz")) alsa_buffer_length=s:option(Value, "alsa_buffer_length", translate("Alsa Buffer Length")) alsa_buffer_length.default = "6615" +allow_session_interruption=s:option(ListValue, "sesctl_session_interruption", translate("Allow session interruption")) +allow_session_interruption:value("no", translate("Not allow")) +allow_session_interruption:value("yes", translate("Allow")) + +session_timeout=s:option(Value, "sesctl_session_timeout", translate("Session timeout")) +session_timeout.default = "120" + return m \ No newline at end of file diff --git a/package/lean/luci-app-airplay2/po/zh-cn/shairport-sync.po b/package/lean/luci-app-airplay2/po/zh-cn/shairport-sync.po index 973fa31ca..7b7d0832d 100644 --- a/package/lean/luci-app-airplay2/po/zh-cn/shairport-sync.po +++ b/package/lean/luci-app-airplay2/po/zh-cn/shairport-sync.po @@ -37,7 +37,7 @@ msgstr "音频重采样" msgid "Internal Basic Resampler" msgstr "内置" -msgid "High quality SoX Resampler" +msgid "High quality SoX Resampler (fast CPU required)" msgstr "高质量 SoX 采样器(需要强力的CPU)" msgid "Alsa Output Device" @@ -46,14 +46,29 @@ msgstr "音频输出设备" msgid "Alsa Mixer Control Name" msgstr "硬件音量控制器名称" -msgid "1st Soundcard" -msgstr "第 1 张声卡" +msgid "1st Soundcard (hw:0)" +msgstr "第 1 张声卡 (hw:0)" -msgid "2nd Soundcard" -msgstr "第 2 张声卡" +msgid "2nd Soundcard (hw:1)" +msgstr "第 2 张声卡 (hw:1)" + +msgid "3nd Soundcard (hw:2)" +msgstr "第 3 张声卡 (hw:2)" msgid "Alsa Output Rate" msgstr "音频输出采样率" msgid "Alsa Buffer Length" msgstr "音频缓冲区长度" + +msgid "Allow session interruption" +msgstr "允许其他设备打断当前播放会话" + +msgid "Not allow" +msgstr "不允许" + +msgid "Allow" +msgstr "允许" + +msgid "Session timeout" +msgstr "会话超时" diff --git a/package/lean/luci-app-airplay2/root/etc/config/shairport-sync b/package/lean/luci-app-airplay2/root/etc/config/shairport-sync index 49571c74a..61a20bed0 100644 --- a/package/lean/luci-app-airplay2/root/etc/config/shairport-sync +++ b/package/lean/luci-app-airplay2/root/etc/config/shairport-sync @@ -8,4 +8,6 @@ config shairport-sync 'shairport_sync' option alsa_output_rate 'auto' option alsa_buffer_length '6615' option enabled '0' + option sesctl_session_interruption 'no' + option sesctl_session_timeout '120' diff --git a/package/lean/luci-app-airplay2/root/etc/init.d/shairport-sync b/package/lean/luci-app-airplay2/root/etc/init.d/shairport-sync index 8401ebf53..16b40ef52 100755 --- a/package/lean/luci-app-airplay2/root/etc/init.d/shairport-sync +++ b/package/lean/luci-app-airplay2/root/etc/init.d/shairport-sync @@ -137,6 +137,11 @@ service_triggers() { procd_add_reload_trigger "shairport-sync" } +reload_service() { + stop + start +} + start_service() { config_load shairport-sync config_foreach start_instance shairport-sync diff --git a/package/lean/luci-app-airplay2/root/etc/uci-defaults/luci-shairport-sync b/package/lean/luci-app-airplay2/root/etc/uci-defaults/99_luci-shairport-sync similarity index 100% rename from package/lean/luci-app-airplay2/root/etc/uci-defaults/luci-shairport-sync rename to package/lean/luci-app-airplay2/root/etc/uci-defaults/99_luci-shairport-sync