#!/bin/sh /etc/rc.common
-# Copyright (C) 2009 OpenWrt.org
+# Copyright (C) 2009-2011 OpenWrt.org
+
START=50
-SSD=start-stop-daemon
-NAME=mjpg_streamer
-PIDF=/var/run/$NAME.pid
-PROG=/usr/bin/$NAME
+SERVICE_DAEMONIZE=1
+SERVICE_WRITE_PID=1
+
+PROG=/usr/bin/mjpg_streamer
+
+error() {
+ echo "${initscript}:" "$@" 1>&2
+}
+
+section_enabled() {
+ config_get_bool enabled "$1" 'enabled' 0
+ [ $enabled -gt 0 ]
+}
+
+start_instance() {
+ local s="$1"
+
+ section_enabled "$s" || return 1
+
+ config_get device "$s" 'device'
+ config_get resolution "$s" 'resolution'
+ config_get fps "$s" 'fps'
+ config_get port "$s" 'port'
+
+ [ -c "$device" ] || {
+ error "device '$device' does not exist"
+ return 1
+ }
+
+ service_start /usr/bin/mjpg_streamer --input "input_uvc.so \
+ --device $device --fps $fps --resolution $resolution" \
+ --output "output_http.so --port $port"
+}
+
+stop_instance() {
+ local s="$1"
+
+ section_enabled "$s" || return 1
+
+ service_stop /usr/bin/mjpg_streamer
+}
start() {
- config_load mjpg-streamer
- config_get device core device
- config_get resolution core resolution
- config_get fps core fps
- config_get port core port
- config_get_bool enabled core enabled
- [ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port" &
+ config_load 'mjpg-streamer'
+ config_foreach start_instance 'mjpg-streamer'
}
stop() {
- $SSD -K -p $PIDF
+ config_load 'mjpg-streamer'
+ config_foreach stop_instance 'mjpg-streamer'
}
-