[Packages] multimedia/uvc-streamer: Add UCI configuration file and a init script
authorOliver Ertl <oliver@ertl-net.net>
Sun, 6 Jan 2008 11:08:15 +0000 (11:08 +0000)
committerOliver Ertl <oliver@ertl-net.net>
Sun, 6 Jan 2008 11:08:15 +0000 (11:08 +0000)
SVN-Revision: 10126

multimedia/uvc-streamer/Makefile
multimedia/uvc-streamer/files/uvc-streamer.config [new file with mode: 0644]
multimedia/uvc-streamer/files/uvc-streamer.init [new file with mode: 0644]

index 5d12808..f49c021 100644 (file)
@@ -40,7 +40,11 @@ MAKE_FLAGS += \
 
 define Package/uvc-streamer/install
        $(INSTALL_DIR) $(1)/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/uvc_stream $(1)/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/uvc_stream $(1)/sbin/$(PKG_NAME)
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME)
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
 endef
 
 $(eval $(call BuildPackage,uvc-streamer))
diff --git a/multimedia/uvc-streamer/files/uvc-streamer.config b/multimedia/uvc-streamer/files/uvc-streamer.config
new file mode 100644 (file)
index 0000000..95d1e6a
--- /dev/null
@@ -0,0 +1,6 @@
+config uvc-streamer
+       option device          '/dev/video0'
+       option resolution      '640x480'
+       option framespersecond '5'
+       option port            '8080'
+       option enabled         '1'
diff --git a/multimedia/uvc-streamer/files/uvc-streamer.init b/multimedia/uvc-streamer/files/uvc-streamer.init
new file mode 100644 (file)
index 0000000..46a36ef
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2007 OpenWrt.org
+START=50
+
+SSD=start-stop-daemon
+NAME=uvc_streamer
+PIDF=/var/run/$NAME.pid
+PROG=/sbin/$NAME
+
+append_bool() {
+       local section="$1"
+       local option="$2"
+       local value="$3"
+       local _val
+       config_get_bool _val "$section" "$option" '0'
+       [ "$_val" -gt 0 ] && append args "$3"
+}
+
+append_string() {
+       local section="$1"
+       local option="$2"
+       local value="$3"
+       local _val
+       config_get _val "$section" "$option"
+       [ -n "$_val" ] && append args "$3 $_val"
+}
+
+start_service() {
+       local section="$1"
+       args=""
+       append_string "$section" device "-d"
+       append_string "$section" resolution "-r"
+       append_bool "$section" framespersecond "-f"
+       append_string "$section" port "-p"
+       config_get_bool "enabled" "$section" "enabled" '1'
+       [ "$enabled" -gt 0 ] && $SSD -S -p $PIDF -q -x $PROG -- -b $args
+}
+
+stop_service() {
+       killall $NAME 2>&1 > /dev/null
+       # FIXME: Fix Busybox start-stop-daemon to work with multiple PIDs
+       # $SSD -K -p $PIDF -q
+}
+
+start() {
+       config_load "uvc-streamer"
+       config_foreach start_service "uvc-streamer"
+}
+
+stop() {
+       config_load "uvc-streamer"
+       config_foreach stop_service "uvc-streamer"
+}