blob: 224f92d7405074582eb688d591a48c7107d17ea2 (
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# Copyright 2019-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop linux-mod-r1 xdg
DESCRIPTION="Use your phone or tablet as webcam with a v4l device driver and app"
HOMEPAGE="https://www.dev47apps.com/droidcam/linux/"
SRC_URI="https://github.com/dev47apps/${PN}/archive/v${PV//_rc1/-RC}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${PV//_rc1/-RC}"
KEYWORDS="~amd64"
LICENSE="GPL-2"
SLOT="0"
IUSE="gtk"
# Requires connection to phone/tablet
RESTRICT="test"
DEPEND="
app-pda/libplist
app-pda/libusbmuxd
dev-libs/glib
dev-libs/libayatana-appindicator
dev-libs/libxml2
dev-util/android-tools
media-libs/alsa-lib
media-libs/libjpeg-turbo
>=media-libs/speex-1.2.0-r1
media-video/ffmpeg
gtk? (
x11-libs/gdk-pixbuf
x11-libs/gtk+:3
x11-libs/libX11
x11-libs/pango
)
"
RDEPEND="${DEPEND}"
BDEPEND="virtual/pkgconfig"
CONFIG_CHECK="~SND_ALOOP VIDEO_DEV MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT"
ERROR_SND_ALOOP="CONFIG_SND_ALOOP is optionally required for audio support"
PATCHES=(
"${FILESDIR}/${PN}-2.0.0-libusbmuxd-20.patch"
)
src_prepare() {
if ! use gtk; then
default
sed -i -e '/cflags gtk+/d' Makefile || die
else
default
# remove path and extension from Icon and Exec entry
sed -i -e 's/Icon=\/opt\/droidcam-icon.png/Icon=droidcam/g' \
-e 's/\/usr\/local\/bin\/droidcam/droidcam/g' \
droidcam.desktop || die
sed -i -e 's%/opt/droidcam-icon.png%/usr/share/icons/hicolor/96x96/apps/droidcam.png%g' src/droidcam.c || die
fi
}
src_configure() {
set_arch_to_kernel
default
}
src_compile() {
if use gtk; then
APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam
fi
APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam-cli
local modlist=(
v4l2loopback-dc=video:v4l2loopback:v4l2loopback:all
)
local modargs=(
KERNEL_DIR="${KV_OUT_DIR}"
)
linux-mod-r1_src_compile
}
src_test() {
pushd "v4l2loopback" || die
default
./test || die
popd || die
}
src_install() {
if use gtk; then
dobin droidcam
newicon -s 32 icon.png droidcam.png
newicon -s 96 icon2.png droidcam.png
domenu droidcam.desktop
fi
dobin droidcam-cli
# The cli and gui do not auto load the module if unloaded,
# so we just put it in modules-load.d to make sure it always works
insinto /etc/modules-load.d
if linux_config_exists; then
if linux_chkconfig_module SND_ALOOP; then
newins - "${PN}.conf" <<-EOF
v4l2loopback-dc
snd_aloop
EOF
else
newins - "${PN}.conf" <<-EOF
v4l2loopback-dc
EOF
fi
fi
linux-mod-r1_src_install
}
pkg_preinst() {
if use gtk; then
xdg_pkg_preinst
fi
}
pkg_postinst() {
linux-mod-r1_pkg_postinst
if use gtk; then
xdg_pkg_postinst
else
elog
elog "Only droidcam-cli has been installed since 'gtk' flag was not set"
elog
fi
elog "The default resolution for v4l2loopback-dc (i.e. droidcam) is 640x480."
elog "You can change this value in /etc/modprobe.d/v4l2loopback-dc.conf"
elog
elog "Links to the Android/iPhone/iPad apps can be found at"
elog "https://www.dev47apps.com/"
}
pkg_postrm() {
if use gtk; then
xdg_pkg_postrm
fi
}
|