upmpdcli: Add UPnP icon. Use procd for start/stop. Add uci config support for multipl... 667/head
authorTed Hess <thess@kitschensync.net>
Wed, 17 Dec 2014 19:41:36 +0000 (14:41 -0500)
committerTed Hess <thess@kitschensync.net>
Wed, 17 Dec 2014 19:41:36 +0000 (14:41 -0500)
Signed-off-by: Ted Hess <thess@kitschensync.net>
multimedia/upmpdcli/Makefile
multimedia/upmpdcli/files/upmpdcli.config [new file with mode: 0644]
multimedia/upmpdcli/files/upmpdcli.init
multimedia/upmpdcli/files/upmpdcli.png [new file with mode: 0644]
multimedia/upmpdcli/patches/010-Add_icon_config.patch [new file with mode: 0644]

index 62448d12a0b63a53d601687a21d2431cdd05d5d7..d921feecc8597801bfac6709a03f8f9bd78753ad 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=upmpdcli
 PKG_VERSION:=0.9.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -39,10 +39,13 @@ endef
 define Package/upmpdcli/install
        $(INSTALL_DIR) $(1)/etc
        $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/upmpdcli.conf $(1)/etc/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/upmpdcli.config $(1)/etc/config/upmpdcli
        $(INSTALL_DIR) $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/upmpdcli $(1)/usr/bin/
-       $(INSTALL_DIR) $(1)/usr/share
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/upmpdcli $(1)/usr/share/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/upmpdcli $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/share/upmpdcli
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/upmpdcli/* $(1)/usr/share/upmpdcli/
+       $(INSTALL_DATA) ./files/upmpdcli.png $(1)/usr/share/upmpdcli/
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/upmpdcli.init $(1)/etc/init.d/upmpdcli
 endef
diff --git a/multimedia/upmpdcli/files/upmpdcli.config b/multimedia/upmpdcli/files/upmpdcli.config
new file mode 100644 (file)
index 0000000..56b0ba3
--- /dev/null
@@ -0,0 +1,15 @@
+config upmpdcli lan
+       option interface 'br-lan'
+#      option friendly_name 'upmpdcli'
+#      option mpd_host '127.0.0.1'
+#      option mpd_port '6600'
+#      option upmpd_port '0'
+#      option config '/etc/upmpdcli.conf'
+
+# Add additional interfaces
+#
+#config upmpdcli wifi
+#      option interface 'wlan0'
+
+#config upmpdcli wan
+#      option interface 'eth0'
index b91e6f9256bbe8a4a5657b013dc0796bc281aed8..6c69209c24eb03ec0d53accfe7648a1fd6463f62 100644 (file)
@@ -1,18 +1,51 @@
 #!/bin/sh /etc/rc.common
 # Copyright (C) 2014 OpenWrt.org
 
+NAME=upmpdcli
 START=95
 
-create_user() {
-       group_exists upmpdcli || group_add upmpdcli 89
-       user_exists upmpdcli || user_add upmpdcli 89
+UPMPD_BIN=/usr/bin/${NAME}
+
+USE_PROCD=1
+
+append_arg() {
+        local cfg="$1"
+        local var="$2"
+        local opt="$3"
+        local def="$4"
+        local val
+
+        config_get val "$cfg" "$var"
+        [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
+}
+
+start_instance() {
+       local cfg="$1"
+       local interface
+
+       procd_open_instance
+
+       procd_set_param command "${UPMPD_BIN}"
+
+#      config_get interface "$cfg" interface
+#      procd_add_reload_interface_trigger $interface
+
+       append_arg "$cfg" interface "-i"
+       append_arg "$cfg" mpd_host "-h"
+       append_arg "$cfg" mpd_port "-p"
+       append_arg "$cfg" upmpd_port "-P"
+
+       append_arg "$cfg" config "-c"
+       append_arg "$cfg" friendly_name "-f"
+
+       procd_close_instance
 }
 
-start() {
-       create_user
-       service_start /usr/bin/upmpdcli -D
+service_triggers() {
+       procd_add_reload_trigger "${NAME}"
 }
 
-stop() {
-       service_stop /usr/bin/upmpdcli
+start_service() {
+       config_load ${NAME}
+       config_foreach start_instance ${NAME}
 }
diff --git a/multimedia/upmpdcli/files/upmpdcli.png b/multimedia/upmpdcli/files/upmpdcli.png
new file mode 100644 (file)
index 0000000..ba50c64
Binary files /dev/null and b/multimedia/upmpdcli/files/upmpdcli.png differ
diff --git a/multimedia/upmpdcli/patches/010-Add_icon_config.patch b/multimedia/upmpdcli/patches/010-Add_icon_config.patch
new file mode 100644 (file)
index 0000000..9b1ca6d
--- /dev/null
@@ -0,0 +1,9 @@
+--- a/src/upmpdcli.conf
++++ b/src/upmpdcli.conf
+@@ -53,3 +53,6 @@ ohmetapersist = 1
+ #  Path to the sc2mpd if it is not in /usr/bin and the location is not in
+ #  the PATH for the init scripts.
+ #sc2mpd = /usr/bin/sc2mpd
++
++# Icon for MPD UPnP interface
++iconpath = /usr/share/upmpdcli/upmpdcli.png