summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-shairplay
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2014-12-03 15:17:05 +0100
committerJo-Philipp Wich <jow@openwrt.org>2015-01-08 16:26:20 +0100
commit1bb4822dca6113f73e3bc89e2acf15935e6f8e92 (patch)
tree35e16f100466e4e00657199b38bb3d87d52bf73f /applications/luci-app-shairplay
parent9edd0e46c3f880727738ce8ca6ff1c8b85f99ef4 (diff)
Rework LuCI build system
* Rename subdirectories to their repective OpenWrt package names * Make each LuCI module its own standalone package * Deploy a shared luci.mk which is used by each module Makefile Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'applications/luci-app-shairplay')
-rw-r--r--applications/luci-app-shairplay/Makefile14
-rw-r--r--applications/luci-app-shairplay/luasrc/controller/shairplay.lua25
-rw-r--r--applications/luci-app-shairplay/luasrc/model/cbi/shairplay.lua76
-rw-r--r--applications/luci-app-shairplay/root/etc/uci-defaults/luci-shairplay12
4 files changed, 127 insertions, 0 deletions
diff --git a/applications/luci-app-shairplay/Makefile b/applications/luci-app-shairplay/Makefile
new file mode 100644
index 000000000..dcc061178
--- /dev/null
+++ b/applications/luci-app-shairplay/Makefile
@@ -0,0 +1,14 @@
+#
+# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI Support for Shairplay
+LUCI_DEPENDS:=+shairplay
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-shairplay/luasrc/controller/shairplay.lua b/applications/luci-app-shairplay/luasrc/controller/shairplay.lua
new file mode 100644
index 000000000..3a2c2ea1b
--- /dev/null
+++ b/applications/luci-app-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-app-shairplay/luasrc/model/cbi/shairplay.lua b/applications/luci-app-shairplay/luasrc/model/cbi/shairplay.lua
new file mode 100644
index 000000000..e957ce697
--- /dev/null
+++ b/applications/luci-app-shairplay/luasrc/model/cbi/shairplay.lua
@@ -0,0 +1,76 @@
+--[[
+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"
+enable.rmempty = false
+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-app-shairplay/root/etc/uci-defaults/luci-shairplay b/applications/luci-app-shairplay/root/etc/uci-defaults/luci-shairplay
new file mode 100644
index 000000000..efc8a89bb
--- /dev/null
+++ b/applications/luci-app-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