diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2014-10-28 16:29:29 +0100 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2014-10-28 16:29:29 +0100 |
commit | a33be327312ee5fd0981be65001074e72a7f3d81 (patch) | |
tree | fcd90e7fc10200867ff6235575f7343e5c0b67cd /applications/luci-shairplay | |
parent | 2826426c6a518867d695f05e514e41703deac3a1 (diff) |
applications/luci-shairplay: add new package.
This adds support for configuring shairplay.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'applications/luci-shairplay')
4 files changed, 116 insertions, 0 deletions
diff --git a/applications/luci-shairplay/Makefile b/applications/luci-shairplay/Makefile new file mode 100644 index 000000000..b6c2db4a5 --- /dev/null +++ b/applications/luci-shairplay/Makefile @@ -0,0 +1,4 @@ +PO = shairplay + +include ../../build/config.mk +include ../../build/module.mk diff --git a/applications/luci-shairplay/luasrc/controller/shairplay.lua b/applications/luci-shairplay/luasrc/controller/shairplay.lua new file mode 100644 index 000000000..3a2c2ea1b --- /dev/null +++ b/applications/luci-shairplay/luasrc/controller/shairplay.lua @@ -0,0 +1,25 @@ +--[[ +LuCI - Lua Configuration Interface - Shairplay support + +Copyright 2014 Álvaro Fernández Rojas <noltari@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- + +module("luci.controller.shairplay", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/shairplay") then + return + end + + local page = entry({"admin", "services", "shairplay"}, cbi("shairplay"), _("Shairplay")) + page.dependent = true + +end diff --git a/applications/luci-shairplay/luasrc/model/cbi/shairplay.lua b/applications/luci-shairplay/luasrc/model/cbi/shairplay.lua new file mode 100644 index 000000000..553917454 --- /dev/null +++ b/applications/luci-shairplay/luasrc/model/cbi/shairplay.lua @@ -0,0 +1,75 @@ +--[[ +LuCI - Lua Configuration Interface - Shairplay support + +Copyright 2014 Álvaro Fernández Rojas <noltari@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- + +m = Map("shairplay", "Shairplay", translate("Shairplay is a simple AirPlay server implementation, here you can configure the settings.")) + +s = m:section(TypedSection, "shairplay", "") +s.addremove = true +s.anonymous = false + +enable=s:option(Flag, "disabled", translate("Enabled")) +enable.enabled="0" +enable.disabled="1" +enable.default = "1" +respawn=s:option(Flag, "respawn", translate("Respawn")) +respawn.default = false + +apname = s:option(Value, "apname", translate("Airport Name")) +apname.rmempty = true + +port=s:option(Value, "port", translate("Port")) +port.rmempty = true +port.datatype = "port" + +pw = s:option(Value, "password", translate("Password")) +pw.rmempty = true +pw.password = true + +hwaddr=s:option(Value, "hwaddr", translate("HW Address")) +hwaddr.rmempty = true +hwaddr.datatype = "macaddr" + +ao_driver=s:option(ListValue, "ao_driver", translate("AO Driver")) +ao_driver:value("", translate("Default")) +ao_driver:value("alsa") +--ao_driver:value("alsa05") +--ao_driver:value("arts") +--ao_driver:value("esd") +--ao_driver:value("irix") +--ao_driver:value("nas") +ao_driver:value("oss") +--ao_driver:value("sun") + +ao_devicename=s:option(Value, "ao_devicename", translate("AO Device Name")) +ao_devicename.rmempty = true + +ao_deviceid = s:option(ListValue, "ao_deviceid", translate("AO Device ID")) +ao_deviceid.rmempty = true +ao_deviceid:value("", translate("Default")) +local pats = io.popen("find /proc/asound/ -type d -name 'card*' | sort") +if pats then + local l + while true do + l = pats:read("*l") + if not l then break end + + l = string.gsub(l, "/proc/asound/card", "") + if l then + ao_deviceid:value(l) + end + end + pats:close() +end + +return m diff --git a/applications/luci-shairplay/root/etc/uci-defaults/luci-shairplay b/applications/luci-shairplay/root/etc/uci-defaults/luci-shairplay new file mode 100644 index 000000000..efc8a89bb --- /dev/null +++ b/applications/luci-shairplay/root/etc/uci-defaults/luci-shairplay @@ -0,0 +1,12 @@ +#!/bin/sh + +# needed for "Save and Apply" to restart shairplay +uci -q batch <<-EOF >/dev/null + delete ucitrack.@shairplay[-1] + add ucitrack shairplay + set ucitrack.@shairplay[-1].init="shairplay" + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 |