aboutsummaryrefslogtreecommitdiff
path: root/multimedia/v4l2camera/files/v4l2camera.init
blob: a376eb12ecdeccc6510921b78d73d161ca98b74e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh /etc/rc.common

START=90
STOP=10

USE_PROCD=1

SERVICE=v4l2camera
PROG=/usr/bin/$SERVICE

error() {
        logger -t "$SERVICE" "$@"
}

start_instance() {
	local s="$1"

	config_get_bool enabled "$1" 'enabled' 0
	[ $enabled -eq 0 ] && return

	# validate device
	config_get device "$s" 'device'
	if [ ! -c "$device" ]; then
		error "device '$device' does not exist"
		return 1
	fi

	# get options
	config_get rtspport "$s" 'rtspport'
	config_get httpport "$s" 'httpport'
        config_get mode "$s" 'mode'
        config_get format "$s" 'format'

	# build args
	local args="-p /usr/share/$SERVICE"
	args="$args -R $rtspport"
	args="$args -P $httpport"
	if [ ! -z "$mode" ]; then
		args="$args -G$mode"
        fi
        if [ ! -z "$format" ]; then
                args="$args -f$format"
        fi
	cmd="$PROG $args $device"

	# procd stuff
	procd_open_instance
	procd_set_param file /etc/config/$SERVICE
	procd_set_param command $cmd
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_add_mdns "http" "tcp" "$httpport" "daemon=$SERVICE" "path=/"
	procd_close_instance
}

start_service() {
	config_load "$SERVICE"
	config_foreach start_instance "$SERVICE"
}

service_triggers() {
	procd_add_reload_trigger "$SERVICE"
}