summaryrefslogtreecommitdiffstats
path: root/multimedia/cheese
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/cheese')
-rw-r--r--multimedia/cheese/Makefile50
-rw-r--r--multimedia/cheese/distinfo4
-rw-r--r--multimedia/cheese/files/patch-cheese-config.h.in12
-rw-r--r--multimedia/cheese/files/patch-configure372
-rw-r--r--multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c680
-rw-r--r--multimedia/cheese/pkg-plist1003
6 files changed, 1250 insertions, 871 deletions
diff --git a/multimedia/cheese/Makefile b/multimedia/cheese/Makefile
index 823e05a50..bce8160f0 100644
--- a/multimedia/cheese/Makefile
+++ b/multimedia/cheese/Makefile
@@ -1,44 +1,46 @@
-# Created by: FreeBSD GNOME Team <gnome@FreeBSD.org>
# $FreeBSD$
-# $MCom: ports/trunk/multimedia/cheese/Makefile 18610 2013-06-30 16:33:05Z marcus $
+# $MCom: ports/trunk/multimedia/cheese3/Makefile 18610 2013-06-30 16:33:05Z marcus $
PORTNAME= cheese
-PORTVERSION= 2.32.0
-PORTREVISION= 4
+PORTVERSION= 3.6.0
CATEGORIES= multimedia gnome
MASTER_SITES= GNOME
-DIST_SUBDIR= gnome2
+DIST_SUBDIR= gnome3
MAINTAINER= gnome@FreeBSD.org
-COMMENT= A Photobooth-inspired app for taking pictures and videos from webcam
-
-BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev.h:${PORTSDIR}/multimedia/v4l_compat
-LIB_DEPENDS= libcanberra-gtk.so:${PORTSDIR}/audio/libcanberra \
- libhal.so:${PORTSDIR}/sysutils/hal
-
-CONFLICTS= cheese-3.[0-9]*
-
-NO_STAGE= yes
-USE_XORG= xxf86vm
-USE_BZIP2= yes
-USE_GNOME= gnomeprefix intlhack evolutiondataserver librsvg2 \
- gnomedocutils gnomedesktop
+COMMENT= Photobooth-inspired app for taking pictures and videos from webcam
+
+BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev.h:${PORTSDIR}/multimedia/v4l_compat \
+ ${LOCALBASE}/libdata/pkgconfig/gnome-video-effects.pc:${PORTSDIR}/graphics/gnome-video-effects \
+ vala>=0.14.0:${PORTSDIR}/lang/vala \
+ itstool:${PORTSDIR}/textproc/itstool
+LIB_DEPENDS= libcanberra-gtk3.so:${PORTSDIR}/audio/libcanberra-gtk3 \
+ libhal.so:${PORTSDIR}/sysutils/hal \
+ libgee.so.2:${PORTSDIR}/devel/libgee06 \
+ libclutter-gtk-1.0.so:${PORTSDIR}/graphics/clutter-gtk3 \
+ libclutter-gst-2.0.so:${PORTSDIR}/multimedia/clutter-gst
+RUN_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/gnome-video-effects.pc:${PORTSDIR}/graphics/gnome-video-effects
+
+USE_XORG= xxf86vm x11
+USE_XZ= yes
+USE_GNOME= gnomeprefix intlhack evolutiondataserver3 librsvg2 \
+ gnomedesktop3 libxml2:build introspection:build
USES= gettext gmake pathfix pkgconfig
-USE_GSTREAMER= gconf good ogg theora v4l2 vorbis
-INSTALLS_OMF= yes
+USE_GSTREAMER1= bad good jpeg ogg theora v4l2 vpx
INSTALLS_ICONS= yes
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
-CPPFLAGS+= -I${LOCALBASE}/include
+CPPFLAGS+= -I${LOCALBASE}/include -Wno-format-nonliteral
LDFLAGS+= -L${LOCALBASE}/lib
DOCS= AUTHORS COPYING ChangeLog NEWS README
-GCONF_SCHEMAS= cheese.schemas
+GLIB_SCHEMAS= org.gnome.Cheese.gschema.xml
post-install:
- @${MKDIR} ${DOCSDIR}
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
.for i in ${DOCS}
- @${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR}
+ @${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}
.endfor
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libcheese*.so.*
.include <bsd.port.mk>
diff --git a/multimedia/cheese/distinfo b/multimedia/cheese/distinfo
index 9be290828..cc496447b 100644
--- a/multimedia/cheese/distinfo
+++ b/multimedia/cheese/distinfo
@@ -1,2 +1,2 @@
-SHA256 (gnome2/cheese-2.32.0.tar.bz2) = 8debc47113d9889247f411d256a8eca0d8da49e5ab5909c200923945b8d5e087
-SIZE (gnome2/cheese-2.32.0.tar.bz2) = 5303805
+SHA256 (gnome3/cheese-3.6.0.tar.xz) = f0872c6c276fabf054e37e427cb4a4174351a439ebfae7431ecc09a1837e9a80
+SIZE (gnome3/cheese-3.6.0.tar.xz) = 3713072
diff --git a/multimedia/cheese/files/patch-cheese-config.h.in b/multimedia/cheese/files/patch-cheese-config.h.in
new file mode 100644
index 000000000..c9532cd4d
--- /dev/null
+++ b/multimedia/cheese/files/patch-cheese-config.h.in
@@ -0,0 +1,12 @@
+--- cheese-config.h.in 2012-05-17 20:48:10.000000000 +0200
++++ cheese-config.h.in 2012-06-13 10:31:28.000000000 +0200
+@@ -6,6 +6,9 @@
+ /* Define to 1 if you have the <dlfcn.h> header file. */
+ #undef HAVE_DLFCN_H
+
++/* Enable hal support */
++#undef HAVE_HAL
++
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+
diff --git a/multimedia/cheese/files/patch-configure b/multimedia/cheese/files/patch-configure
index 8befb947b..f8148f429 100644
--- a/multimedia/cheese/files/patch-configure
+++ b/multimedia/cheese/files/patch-configure
@@ -1,214 +1,196 @@
---- configure.orig 2010-04-27 17:32:36.000000000 +0200
-+++ configure 2010-04-27 17:32:36.000000000 +0200
-@@ -756,8 +756,8 @@ HAVE_XTEST_FALSE
- HAVE_XTEST_TRUE
- XTEST_LIBS
- OS_LINUX
--UDEV_LIBS
--UDEV_CFLAGS
-+HAL_LIBS
-+HAL_CFLAGS
- HAVE_GNOME_DOC_UTILS_FALSE
- HAVE_GNOME_DOC_UTILS_TRUE
- DISTCHECK_CONFIGURE_FLAGS
-@@ -975,8 +975,8 @@ LIBS
- CPPFLAGS
- CPP
- PKG_CONFIG
--UDEV_CFLAGS
--UDEV_LIBS
-+HAL_CFLAGS
-+HAL_LIBS
- CHEESE_CFLAGS
- CHEESE_LIBS'
-
-@@ -1646,8 +1646,8 @@ Some influential environment variables:
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
- PKG_CONFIG path to pkg-config utility
-- UDEV_CFLAGS C compiler flags for UDEV, overriding pkg-config
-- UDEV_LIBS linker flags for UDEV, overriding pkg-config
-+ HAL_CFLAGS C compiler flags for HAL, overriding pkg-config
-+ HAL_LIBS linker flags for HAL, overriding pkg-config
- CHEESE_CFLAGS
- C compiler flags for CHEESE, overriding pkg-config
- CHEESE_LIBS linker flags for CHEESE, overriding pkg-config
-@@ -13843,38 +13843,38 @@ LIBRSVG_REQUIRED=2.18.0
- # Check for udev
- #*******************************************************************************
-
--UDEV_PKG=
-+HAL_PKG=
-
- pkg_failed=no
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UDEV" >&5
--$as_echo_n "checking for UDEV... " >&6; }
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for HAL" >&5
-+$as_echo_n "checking for HAL... " >&6; }
+--- configure.orig 2013-04-07 22:02:48.205219751 +0000
++++ configure 2013-04-07 22:24:32.131129660 +0000
+@@ -12556,6 +12556,7 @@
+ GLIB_REQUIRED="glib-2.0 >= 2.28.0"
+ GOBJECT_REQUIRED="gobject-2.0 >= 2.28.0"
+ GIO_REQUIRED="gio-2.0 >= 2.28.0"
++DBUS_GLIB_REQUIRED="dbus-glib-1"
+ GTK_REQUIRED="gtk+-3.0 >= 3.4.4"
+ GDK_REQUIRED="gdk-3.0 >= 3.3.6"
+ GDK_PIXBUF_REQUIRED="gdk-pixbuf-2.0"
+@@ -12585,6 +12586,10 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Linux" >&5
+ $as_echo "Linux" >&6; }
+ UDEV_REQUIRED="gudev-1.0" ;; #(
++ *freebsd*) :
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: FreeBSD" >&5
++$as_echo "FreeBSD" >&6; }
++ HAL_REQUIRED="hal" ;; #(
+ *) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported operating system" >&5
+ $as_echo "unsupported operating system" >&6; } ;;
+@@ -12612,6 +12617,28 @@
+ $as_echo "not needed" >&6; }
+ fi
--if test -n "$UDEV_CFLAGS"; then
-- pkg_cv_UDEV_CFLAGS="$UDEV_CFLAGS"
-+if test -n "$HAL_CFLAGS"; then
-+ pkg_cv_HAL_CFLAGS="$HAL_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
-- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gudev-1.0\""; } >&5
-- ($PKG_CONFIG --exists --print-errors "gudev-1.0") 2>&5
-+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"hal\""; } >&5
-+ ($PKG_CONFIG --exists --print-errors "hal") 2>&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hal" >&5
++$as_echo_n "checking for hal... " >&6; }
++if test -n "$HAL_REQUIRED"; then :
++ if test -n "$PKG_CONFIG" && \
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$HAL_REQUIRED\""; } >&5
++ ($PKG_CONFIG --exists --print-errors "$HAL_REQUIRED") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
++$as_echo "found" >&6; }
++
++$as_echo "#define HAVE_HAL /**/" >>confdefs.h
++
++else
++ as_fn_error $? "$HAL_REQUIRED not found" "$LINENO" 5
++fi
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not needed" >&5
++$as_echo "not needed" >&6; }
++fi
++
+ for ac_header in sys/videoio.h
+ do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/videoio.h" "ac_cv_header_sys_videoio_h" "$ac_includes_default"
+@@ -12699,7 +12726,9 @@
+ \$CAIRO_REQUIRED
+ \$PANGOCAIRO_REQUIRED
+ \$CLUTTER_REQUIRED
++ \$DBUS_GLIB_REQUIRED
+ \$CLUTTERGST_REQUIRED
++ \$HAL_REQUIRED
+ \$UDEV_REQUIRED\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "$GLIB_REQUIRED
+ $GIO_REQUIRED
+@@ -12712,6 +12741,8 @@
+ $PANGOCAIRO_REQUIRED
+ $CLUTTER_REQUIRED
+ $CLUTTERGST_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $UDEV_REQUIRED") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-- pkg_cv_UDEV_CFLAGS=`$PKG_CONFIG --cflags "gudev-1.0" 2>/dev/null`
-+ pkg_cv_HAL_CFLAGS=`$PKG_CONFIG --cflags "hal" 2>/dev/null`
+@@ -12727,6 +12758,8 @@
+ $PANGOCAIRO_REQUIRED
+ $CLUTTER_REQUIRED
+ $CLUTTERGST_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $UDEV_REQUIRED" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
- pkg_failed=yes
- fi
- else
- pkg_failed=untried
- fi
--if test -n "$UDEV_LIBS"; then
-- pkg_cv_UDEV_LIBS="$UDEV_LIBS"
-+if test -n "$HAL_LIBS"; then
-+ pkg_cv_HAL_LIBS="$HAL_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
-- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gudev-1.0\""; } >&5
-- ($PKG_CONFIG --exists --print-errors "gudev-1.0") 2>&5
-+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"hal\""; } >&5
-+ ($PKG_CONFIG --exists --print-errors "hal") 2>&5
+@@ -12750,6 +12783,8 @@
+ \$PANGOCAIRO_REQUIRED
+ \$CLUTTER_REQUIRED
+ \$CLUTTERGST_REQUIRED
++ \$DBUS_GLIB_REQUIRED
++ \$HAL_REQUIRED
+ \$UDEV_REQUIRED\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "$GLIB_REQUIRED
+ $GIO_REQUIRED
+@@ -12762,6 +12797,8 @@
+ $PANGOCAIRO_REQUIRED
+ $CLUTTER_REQUIRED
+ $CLUTTERGST_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $UDEV_REQUIRED") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-- pkg_cv_UDEV_LIBS=`$PKG_CONFIG --libs "gudev-1.0" 2>/dev/null`
-+ pkg_cv_HAL_LIBS=`$PKG_CONFIG --libs "hal" 2>/dev/null`
+@@ -12777,6 +12814,8 @@
+ $PANGOCAIRO_REQUIRED
+ $CLUTTER_REQUIRED
+ $CLUTTERGST_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $UDEV_REQUIRED" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
- pkg_failed=yes
- fi
-@@ -13892,27 +13892,27 @@ else
- _pkg_short_errors_supported=no
- fi
- if test $_pkg_short_errors_supported = yes; then
-- UDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gudev-1.0" 2>&1`
-+ HAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "hal" 2>&1`
+@@ -12809,6 +12848,8 @@
+ $PANGOCAIRO_REQUIRED
+ $CLUTTER_REQUIRED
+ $CLUTTERGST_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $UDEV_REQUIRED" 2>&1`
else
-- UDEV_PKG_ERRORS=`$PKG_CONFIG --print-errors "gudev-1.0" 2>&1`
-+ HAL_PKG_ERRORS=`$PKG_CONFIG --print-errors "hal" 2>&1`
+ CHEESE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$GLIB_REQUIRED
+@@ -12822,6 +12863,8 @@
+ $PANGOCAIRO_REQUIRED
+ $CLUTTER_REQUIRED
+ $CLUTTERGST_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $UDEV_REQUIRED" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
-- echo "$UDEV_PKG_ERRORS" >&5
-+ echo "$HAL_PKG_ERRORS" >&5
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
-- UDEV_PKG=
-+ HAL_PKG=
- elif test $pkg_failed = untried; then
-- UDEV_PKG=
-+ HAL_PKG=
- else
-- UDEV_CFLAGS=$pkg_cv_UDEV_CFLAGS
-- UDEV_LIBS=$pkg_cv_UDEV_LIBS
-+ HAL_CFLAGS=$pkg_cv_HAL_CFLAGS
-+ HAL_LIBS=$pkg_cv_HAL_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
-
--$as_echo "#define HAVE_UDEV 1" >>confdefs.h
-+$as_echo "#define HAVE_HAL 1" >>confdefs.h
+@@ -12838,6 +12881,8 @@
+ $PANGOCAIRO_REQUIRED
+ $CLUTTER_REQUIRED
+ $CLUTTERGST_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $UDEV_REQUIRED) were not met:
-- UDEV_PKG=gudev-1.0
-+ HAL_PKG=hal
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking operating system" >&5
-@@ -13925,7 +13925,7 @@ $as_echo "#define OS_LINUX /**/" >>confd
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Linux" >&5
- $as_echo "Linux" >&6; }
-- if test x$UDEV_PKG = "x" ; then
-+ if test x$HAL_PKG = "x" ; then
- as_fn_error "libgudev is required under Linux and not installed" "$LINENO" 5
- fi
- ;;
-@@ -14034,7 +14034,7 @@ if test -n "$CHEESE_CFLAGS"; then
- dbus-glib-1 >= \$DBUS_GLIB_REQUIRED \\
- pangocairo >= \$PANGOCAIRO_REQUIRED \\
- librsvg-2.0 >= \$LIBRSVG_REQUIRED
-- libcanberra-gtk \$UDEV_PKG\""; } >&5
-+ libcanberra-gtk \$HAL_PKG\""; } >&5
- ($PKG_CONFIG --exists --print-errors "\
- glib-2.0 >= $GLIB_REQUIRED \
- gobject-2.0 >= $GOBJECT_REQUIRED \
-@@ -14050,7 +14050,7 @@ if test -n "$CHEESE_CFLAGS"; then
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED \
- pangocairo >= $PANGOCAIRO_REQUIRED \
- librsvg-2.0 >= $LIBRSVG_REQUIRED
-- libcanberra-gtk $UDEV_PKG") 2>&5
-+ libcanberra-gtk $HAL_PKG") 2>&5
+ $CHEESE_PKG_ERRORS
+@@ -12889,6 +12934,8 @@
+ \$GEE_REQUIRED
+ \$LIBCANBERRA_REQUIRED
+ \$UDEV_REQUIRED
++ \$DBUS_GLIB_REQUIRED
++ \$HAL_REQUIRED
+ \$GNOME_VIDEO_EFFECTS_REQUIRED\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "$GIO_REQUIRED
+ $GTK_REQUIRED
+@@ -12898,6 +12945,8 @@
+ $CLUTTERGTK_REQUIRED
+ $GEE_REQUIRED
+ $LIBCANBERRA_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $UDEV_REQUIRED
+ $GNOME_VIDEO_EFFECTS_REQUIRED") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-@@ -14069,7 +14069,7 @@ if test -n "$CHEESE_CFLAGS"; then
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED \
- pangocairo >= $PANGOCAIRO_REQUIRED \
- librsvg-2.0 >= $LIBRSVG_REQUIRED
-- libcanberra-gtk $UDEV_PKG" 2>/dev/null`
-+ libcanberra-gtk $HAL_PKG" 2>/dev/null`
- else
- pkg_failed=yes
- fi
-@@ -14095,7 +14095,7 @@ if test -n "$CHEESE_LIBS"; then
- dbus-glib-1 >= \$DBUS_GLIB_REQUIRED \\
- pangocairo >= \$PANGOCAIRO_REQUIRED \\
- librsvg-2.0 >= \$LIBRSVG_REQUIRED
-- libcanberra-gtk \$UDEV_PKG\""; } >&5
-+ libcanberra-gtk \$HAL_PKG\""; } >&5
- ($PKG_CONFIG --exists --print-errors "\
- glib-2.0 >= $GLIB_REQUIRED \
- gobject-2.0 >= $GOBJECT_REQUIRED \
-@@ -14111,7 +14111,7 @@ if test -n "$CHEESE_LIBS"; then
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED \
- pangocairo >= $PANGOCAIRO_REQUIRED \
- librsvg-2.0 >= $LIBRSVG_REQUIRED
-- libcanberra-gtk $UDEV_PKG") 2>&5
-+ libcanberra-gtk $HAL_PKG") 2>&5
+@@ -12943,6 +12992,8 @@
+ $GEE_REQUIRED
+ $LIBCANBERRA_REQUIRED
+ $UDEV_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $GNOME_VIDEO_EFFECTS_REQUIRED") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-@@ -14130,7 +14130,7 @@ if test -n "$CHEESE_LIBS"; then
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED \
- pangocairo >= $PANGOCAIRO_REQUIRED \
- librsvg-2.0 >= $LIBRSVG_REQUIRED
-- libcanberra-gtk $UDEV_PKG" 2>/dev/null`
-+ libcanberra-gtk $HAL_PKG" 2>/dev/null`
+@@ -12956,6 +13007,9 @@
+ $GEE_REQUIRED
+ $LIBCANBERRA_REQUIRED
+ $UDEV_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
++ $HAL_REQUIRED
+ $GNOME_VIDEO_EFFECTS_REQUIRED" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
- pkg_failed=yes
- fi
-@@ -14163,7 +14163,7 @@ fi
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED \
- pangocairo >= $PANGOCAIRO_REQUIRED \
- librsvg-2.0 >= $LIBRSVG_REQUIRED
-- libcanberra-gtk $UDEV_PKG" 2>&1`
-+ libcanberra-gtk $HAL_PKG" 2>&1`
+@@ -12986,6 +13040,8 @@
+ $GEE_REQUIRED
+ $LIBCANBERRA_REQUIRED
+ $UDEV_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $GNOME_VIDEO_EFFECTS_REQUIRED" 2>&1`
else
- CHEESE_PKG_ERRORS=`$PKG_CONFIG --print-errors "\
- glib-2.0 >= $GLIB_REQUIRED \
-@@ -14180,7 +14180,7 @@ fi
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED \
- pangocairo >= $PANGOCAIRO_REQUIRED \
- librsvg-2.0 >= $LIBRSVG_REQUIRED
-- libcanberra-gtk $UDEV_PKG" 2>&1`
-+ libcanberra-gtk $HAL_PKG" 2>&1`
+ CHEESE_GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$GIO_REQUIRED
+@@ -12997,6 +13053,8 @@
+ $GEE_REQUIRED
+ $LIBCANBERRA_REQUIRED
+ $UDEV_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $GNOME_VIDEO_EFFECTS_REQUIRED" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
- echo "$CHEESE_PKG_ERRORS" >&5
-@@ -14200,7 +14200,7 @@ fi
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED \
- pangocairo >= $PANGOCAIRO_REQUIRED \
- librsvg-2.0 >= $LIBRSVG_REQUIRED
-- libcanberra-gtk $UDEV_PKG) were not met:
-+ libcanberra-gtk $HAL_PKG) were not met:
-
- $CHEESE_PKG_ERRORS
+@@ -13011,6 +13069,8 @@
+ $GEE_REQUIRED
+ $LIBCANBERRA_REQUIRED
+ $UDEV_REQUIRED
++ $DBUS_GLIB_REQUIRED
++ $HAL_REQUIRED
+ $GNOME_VIDEO_EFFECTS_REQUIRED) were not met:
+ $CHEESE_GTK_PKG_ERRORS
diff --git a/multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c b/multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c
index 628066e47..995cb5d50 100644
--- a/multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c
+++ b/multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c
@@ -1,438 +1,290 @@
---- libcheese/cheese-camera-device-monitor.c.orig 2010-09-27 09:54:58.000000000 +0000
-+++ libcheese/cheese-camera-device-monitor.c 2013-02-08 19:52:15.000000000 +0000
-@@ -24,24 +24,11 @@
- #endif
-
- #include <glib-object.h>
-+#include <glib/gstdio.h>
- #include <dbus/dbus-glib-lowlevel.h>
-+#include <libhal.h>
- #include <string.h>
--
--#ifdef HAVE_UDEV
-- #define G_UDEV_API_IS_SUBJECT_TO_CHANGE 1
-- #include <gudev/gudev.h>
--#else
-- #include <fcntl.h>
-- #include <unistd.h>
-- #include <sys/ioctl.h>
-- #if USE_SYS_VIDEOIO_H > 0
-- #include <sys/types.h>
-- #include <sys/videoio.h>
-- #elif defined (__sun)
-- #include <sys/types.h>
-- #include <sys/videodev2.h>
-- #endif /* USE_SYS_VIDEOIO_H */
--#endif
-+#include <unistd.h>
-
- #include "cheese-camera-device-monitor.h"
- #include "cheese-marshal.h"
-@@ -54,9 +41,9 @@
- * #CheeseCameraDeviceMonitor provides a basic interface for
- * video4linux device enumeration and hotplugging.
- *
-- * It uses either GUdev or some platform specific code to list video
-+ * It uses either HAL or some platform specific code to list video
- * devices. It is also capable (right now in linux only, with the
-- * udev backend) to monitor device plugging and emit a
-+ * hal backend) to monitor device plugging and emit a
- * CheeseCameraDeviceMonitor::added or
- * CheeseCameraDeviceMonitor::removed signal when an event happens.
- */
-@@ -80,11 +67,9 @@ enum CheeseCameraDeviceMonitorError
-
- typedef struct
- {
--#ifdef HAVE_UDEV
-- GUdevClient *client;
--#else
-+ DBusConnection *connection;
-+ LibHalContext *hal_ctx;
- guint filler;
--#endif /* HAVE_UDEV */
- } CheeseCameraDeviceMonitorPrivate;
-
- enum
-@@ -102,111 +87,78 @@ cheese_camera_device_monitor_error_quark
- return g_quark_from_static_string ("cheese-camera-error-quark");
+--- libcheese/cheese-camera-device-monitor.c.orig 2012-08-22 21:04:40.000000000 +0200
++++ libcheese/cheese-camera-device-monitor.c 2013-09-22 23:12:35.072353163 +0200
+@@ -33,6 +33,14 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <sys/ioctl.h>
++ #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++ #include <errno.h>
++ #include <sys/param.h>
++ #include <sys/types.h>
++ #include <sys/socket.h>
++ #include <sys/un.h>
++ #include <linux/videodev.h>
++ #endif
+ #if USE_SYS_VIDEOIO_H > 0
+ #include <sys/types.h>
+ #include <sys/videoio.h>
+@@ -302,6 +310,220 @@
+ g_list_free (devices);
}
--#ifdef HAVE_UDEV
- static void
--cheese_camera_device_monitor_added (CheeseCameraDeviceMonitor *monitor,
-- GUdevDevice *udevice)
-+cheese_camera_device_monitor_handle_udi (CheeseCameraDeviceMonitor *monitor,
-+ const char *udi)
- {
-- const char *device_file;
-- const char *product_name;
-- const char *vendor;
-- const char *product;
-- const char *bus;
-- gint vendor_id = 0;
-- gint product_id = 0;
-+ CheeseCameraDeviceMonitorPrivate *priv = CHEESE_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor);
-+ char *device_file;
-+ char *product_name;
-+ char *capstr;
- gint v4l_version = 0;
-+ DBusError error;
-
-- const gchar *devpath = g_udev_device_get_property (udevice, "DEVPATH");
-+ GST_INFO ("Checking hal device '%s'", udi);
-
-- GST_INFO ("Checking udev device '%s'", devpath);
-+ dbus_error_init (&error);
-
-- bus = g_udev_device_get_property (udevice, "ID_BUS");
-- if (g_strcmp0 (bus, "usb") == 0)
-- {
-- vendor = g_udev_device_get_property (udevice, "ID_VENDOR_ID");
-- if (vendor != NULL)
-- vendor_id = g_ascii_strtoll (vendor, NULL, 16);
-- product = g_udev_device_get_property (udevice, "ID_MODEL_ID");
-- if (product != NULL)
-- product_id = g_ascii_strtoll (product, NULL, 16);
-- if (vendor_id == 0 || product_id == 0)
-- {
-- GST_WARNING ("Error getting vendor and product id");
-- }
-- else
-- {
-- GST_INFO ("Found device %04x:%04x, getting capabilities...", vendor_id, product_id);
-- }
-- }
-- else
-+ product_name = libhal_device_get_property_string (priv->hal_ctx, udi, "info.product", &error);
-+ if (dbus_error_is_set (&error))
- {
-- GST_INFO ("Not an usb device, skipping vendor and model id retrieval");
-+ GST_WARNING ("error getting product name: %s: %s", error.name, error.message);
-+ dbus_error_free (&error);
-+ return;
- }
-
-- device_file = g_udev_device_get_device_file (udevice);
-- if (device_file == NULL)
-+ device_file = libhal_device_get_property_string (priv->hal_ctx, udi, "video4linux.device", &error);
-+ if (dbus_error_is_set (&error))
- {
-- GST_WARNING ("Error getting V4L device");
-- return;
-+ GST_WARNING ("error getting V4L device for %s: %s: %s", udi, error.name, error.message);
-+ dbus_error_free (&error);
-+ libhal_free_string (product_name);
- }
-
-- /* vbi devices support capture capability too, but cannot be used,
-- * so detect them by device name */
-- if (strstr (device_file, "vbi"))
-+ if (g_access (device_file, (R_OK | W_OK)) == -1)
- {
-- GST_INFO ("Skipping vbi device: %s", device_file);
-+ GST_WARNING ("Device %s does not have proper permissions. Permissions must be 0666", device_file);
-+ libhal_free_string (product_name);
-+ libhal_free_string (device_file);
- return;
- }
-
-- v4l_version = g_udev_device_get_property_as_int (udevice, "ID_V4L_VERSION");
-- if (v4l_version == 2 || v4l_version == 1)
-+ capstr = libhal_device_get_property_string (priv->hal_ctx, udi, "video4linux.version", &error);
-+ if (dbus_error_is_set (&error))
- {
-- const char *caps;
--
-- caps = g_udev_device_get_property (udevice, "ID_V4L_CAPABILITIES");
-- if (caps == NULL || strstr (caps, ":capture:") == NULL)
-- {
-- GST_WARNING ("Device %s seems to not have the capture capability, (radio tuner?)"
-- "Removing it from device list.", device_file);
-- return;
-- }
-- product_name = g_udev_device_get_property (udevice, "ID_V4L_PRODUCT");
-- }
-- else if (v4l_version == 0)
-- {
-- GST_ERROR ("Fix your udev installation to include v4l_id, ignoring %s", device_file);
-+ GST_WARNING ("error getting V4L version for %s: %s: %s", udi, error.name, error.message);
-+ dbus_error_free (&error);
-+ libhal_free_string (product_name);
-+ libhal_free_string (device_file);
- return;
- }
-- else
-- {
-- g_assert_not_reached ();
-- }
-+
-+ v4l_version = atoi (capstr);
-+ libhal_free_string (capstr);
-
- g_signal_emit (monitor, monitor_signals[ADDED], 0,
-- devpath,
-+ udi,
- device_file,
- product_name,
- v4l_version);
- }
-
- static void
--cheese_camera_device_monitor_removed (CheeseCameraDeviceMonitor *monitor,
-- GUdevDevice *udevice)
--{
-- g_signal_emit (monitor, monitor_signals[REMOVED], 0,
-- g_udev_device_get_property (udevice, "DEVPATH"));
--}
-+cheese_camera_device_monitor_removed (LibHalContext *ctx,
-+ const char *udi)
-+ {
-+ CheeseCameraDeviceMonitor *monitor;
-+ void *data;
-
--static void
--cheese_camera_device_monitor_uevent_cb (GUdevClient *client,
-- const gchar *action,
-- GUdevDevice *udevice,
-- CheeseCameraDeviceMonitor *monitor)
--{
-- if (g_str_equal (action, "remove"))
-- cheese_camera_device_monitor_removed (monitor, udevice);
-- else if (g_str_equal (action, "add"))
-- cheese_camera_device_monitor_added (monitor, udevice);
-+ data = libhal_ctx_get_user_data (ctx);
-+ g_assert (data);
-+
-+ monitor = CHEESE_CAMERA_DEVICE_MONITOR (data);
-+
-+ g_signal_emit (monitor, monitor_signals[REMOVED], 0, udi);
- }
-
- /**
-@@ -222,115 +174,85 @@ void
- cheese_camera_device_monitor_coldplug (CheeseCameraDeviceMonitor *monitor)
- {
- CheeseCameraDeviceMonitorPrivate *priv = CHEESE_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor);
-- GList *devices, *l;
-- gint i = 0;
-+ int i;
-+ int num_udis = 0;
-+ char **udis;
-+ DBusError error;
-
-- if (priv->client == NULL)
-- return;
-+ GST_INFO ("Probing devices with HAL...");
-
-- GST_INFO ("Probing devices with udev...");
-+ if (priv->hal_ctx == NULL)
-+ return;
-
-- devices = g_udev_client_query_by_subsystem (priv->client, "video4linux");
-+ dbus_error_init (&error);
-
-- /* Initialize camera structures */
-- for (l = devices; l != NULL; l = l->next)
-+ udis = libhal_find_device_by_capability (priv->hal_ctx, "video4linux", &num_udis, &error);
-+
-+ if (dbus_error_is_set (&error))
- {
-- cheese_camera_device_monitor_added (monitor, l->data);
-- g_object_unref (l->data);
-- i++;
-+ GST_WARNING ("libhal_find_device_by_capability: %s: %s", error.name, error.message);
-+ dbus_error_free (&error);
-+ return;
- }
-- g_list_free (devices);
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++static void cheese_camera_device_monitor_init_event (CheeseCameraDeviceMonitor *monitor);
++static gboolean cheese_camera_device_monitor_is_camera (const char *devname);
++
++static gboolean cheese_camera_device_monitor_event_inited = FALSE;
+
-+ /* Initialize camera structures */
-+ for (i = 0; i < num_udis; i++)
-+ cheese_camera_device_monitor_handle_udi (monitor, udis[i]);
-+ libhal_free_string_array (udis);
-
- if (i == 0) GST_WARNING ("No device found");
- }
-
--#else /* HAVE_UDEV */
--void
--cheese_camera_device_monitor_coldplug (CheeseCameraDeviceMonitor *monitor)
-+static void
-+cheese_camera_device_monitor_added (LibHalContext *ctx, const char *udi)
- {
-- #if 0
-- CheeseCameraDeviceMonitorPrivate *priv = CHEESE_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor);
-- struct v4l2_capability v2cap;
-- struct video_capability v1cap;
-- int fd, ok;
--
-- if ((fd = open (device_path, O_RDONLY | O_NONBLOCK)) < 0)
-- {
-- g_warning ("Failed to open %s: %s", device_path, strerror (errno));
-- return;
-- }
-- ok = ioctl (fd, VIDIOC_QUERYCAP, &v2cap);
-- if (ok < 0)
-- {
-- ok = ioctl (fd, VIDIOCGCAP, &v1cap);
-- if (ok < 0)
-- {
-- g_warning ("Error while probing v4l capabilities for %s: %s",
-- device_path, strerror (errno));
-- close (fd);
-- return;
-- }
-- g_print ("Detected v4l device: %s\n", v1cap.name);
-- g_print ("Device type: %d\n", v1cap.type);
-- gstreamer_src = "v4lsrc";
-- product_name = v1cap.name;
-- }
-- else
-- {
-- guint cap = v2cap.capabilities;
-- g_print ("Detected v4l2 device: %s\n", v2cap.card);
-- g_print ("Driver: %s, version: %d\n", v2cap.driver, v2cap.version);
--
-- /* g_print ("Bus info: %s\n", v2cap.bus_info); */ /* Doesn't seem anything useful */
-- g_print ("Capabilities: 0x%08X\n", v2cap.capabilities);
-- if (!(cap & V4L2_CAP_VIDEO_CAPTURE))
-- {
-- g_print ("Device %s seems to not have the capture capability, (radio tuner?)\n"
-- "Removing it from device list.\n", device_path);
-- close (fd);
-- return;
-- }
-- gstreamer_src = "v4l2src";
-- product_name = (char *) v2cap.card;
-- }
-- close (fd);
-+ CheeseCameraDeviceMonitor *monitor;
-+ char **caps;
-+ guint i;
-+ void *data;
-
-- GList *devices, *l;
-+ data = libhal_ctx_get_user_data (ctx);
-+ g_assert (data);
-
-- g_print ("Probing devices with udev...\n");
-+ monitor = CHEESE_CAMERA_DEVICE_MONITOR (data);
-
-- if (priv->client == NULL)
-+ caps = libhal_device_get_property_strlist (ctx, udi, "info.capabilities", NULL);
-+ if (caps == NULL)
- return;
-
-- devices = g_udev_client_query_by_subsystem (priv->client, "video4linux");
--
-- /* Initialize camera structures */
-- for (l = devices; l != NULL; l = l->next)
-+ for (i = 0; caps[i] != NULL; i++)
- {
-- cheese_camera_device_monitor_added (monitor, l->data);
-- g_object_unref (l->data);
-+ if (g_strcmp0 (caps[i], "video4linux") == 0)
-+ {
-+ cheese_camera_device_monitor_handle_udi (monitor, udi);
-+ break;
-+ }
- }
-- g_list_free (devices);
-- #endif
--}
-
--#endif /* HAVE_UDEV */
-+ libhal_free_string_array (caps);
++static gboolean
++cheese_camera_device_monitor_is_camera (const char *devname){
++ gboolean is_camera = FALSE;
++ int fd;
++ struct v4l2_capability v2cap;
++ g_return_val_if_fail (devname != NULL, FALSE);
++
++ fd = open (devname, O_RDONLY);
++ if (fd < 0)
++ {
++ GST_WARNING("Failed to query: %s", devname);
++ return FALSE;
++ }
++ else{
++ if (ioctl (fd, VIDIOC_QUERYCAP, &v2cap) == 0)
++ {
++ is_camera = ((v2cap.capabilities & 0x00000001)==1);
++ }
++ else{
++ GST_WARNING("Failed to get product name for %s: %s", devname,
++ g_strerror (errno));
++ }
++ }
++
++ close (fd);
++
++ return is_camera;
+}
-
- static void
- cheese_camera_device_monitor_finalize (GObject *object)
- {
--#ifdef HAVE_UDEV
- CheeseCameraDeviceMonitor *monitor;
-
- monitor = CHEESE_CAMERA_DEVICE_MONITOR (object);
- CheeseCameraDeviceMonitorPrivate *priv = CHEESE_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor);
-
-- if (priv->client != NULL)
-+ if (priv->connection != NULL)
- {
-- g_object_unref (priv->client);
-- priv->client = NULL;
-+ dbus_connection_unref (priv->connection);
-+ priv->connection = NULL;
- }
--#endif /* HAVE_UDEV */
-+ if (priv->hal_ctx != NULL)
++
++static char *
++cheese_camera_device_monitor_get_product (const char *devname)
++{
++ int fd;
++ struct v4l2_capability v2cap;
++ char *product = NULL;
++
++ g_return_val_if_fail (devname != NULL, NULL);
++
++ fd = open (devname, O_RDONLY);
++ if (fd < 0)
+ {
-+ libhal_ctx_set_device_added (priv->hal_ctx, NULL);
-+ libhal_ctx_set_device_removed (priv->hal_ctx, NULL);
-+ libhal_ctx_free (priv->hal_ctx);
-+ priv->hal_ctx = NULL;
++ GST_WARNING("Failed to get product name for %s: %s", devname,
++ g_strerror (errno));
++ return NULL;
+ }
+
- G_OBJECT_CLASS (cheese_camera_device_monitor_parent_class)->finalize (object);
- }
-
-@@ -385,14 +307,52 @@ cheese_camera_device_monitor_class_init
- static void
- cheese_camera_device_monitor_init (CheeseCameraDeviceMonitor *monitor)
- {
--#ifdef HAVE_UDEV
-- CheeseCameraDeviceMonitorPrivate *priv = CHEESE_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor);
-- const gchar *const subsystems[] = {"video4linux", NULL};
--
-- priv->client = g_udev_client_new (subsystems);
-- g_signal_connect (G_OBJECT (priv->client), "uevent",
-- G_CALLBACK (cheese_camera_device_monitor_uevent_cb), monitor);
--#endif /* HAVE_UDEV */
-+ CheeseCameraDeviceMonitorPrivate *priv = CHEESE_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor);
-+ LibHalContext *hal_ctx;
-+ DBusError error;
-+
-+ dbus_error_init (&error);
-+
-+ priv->connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
-+ dbus_connection_set_exit_on_disconnect (priv->connection, FALSE);
-+
-+ hal_ctx = libhal_ctx_new ();
-+ if (hal_ctx == NULL)
++ if (ioctl (fd, VIDIOC_QUERYCAP, &v2cap) == 0)
+ {
-+ GST_WARNING ("Could not create libhal context");
-+ dbus_error_free (&error);
-+ return;
++ product = g_strdup ((const char *) v2cap.card);
++ }
++ else
++ {
++ GST_WARNING("Failed to get product name for %s: %s", devname,
++ g_strerror (errno));
+ }
+
-+ if (!libhal_ctx_set_dbus_connection (hal_ctx, priv->connection))
++ close (fd);
++
++ return product;
++}
++
++static void
++cheese_camera_device_monitor_process_event (const char *event,
++ CheeseCameraDeviceMonitor *monitor)
++{
++ g_return_if_fail (event != NULL);
++
++ GST_INFO ("Received devd event: %s", event);
++
++ switch (event[0])
+ {
-+ GST_WARNING ("libhal_ctx_set_dbus_connection: %s: %s", error.name, error.message);
-+ dbus_error_free (&error);
++ case '!':
++ {
++ GRegex *rex;
++ GMatchInfo *info;
++
++ rex = g_regex_new ("subsystem=CDEV type=(CREATE|DESTROY) cdev=(video[0-9]+)", 0, 0, NULL);
++ if (g_regex_match (rex, event, 0, &info))
++ {
++ char *devname, *type, *vdev, *product = NULL;
++ CheeseCameraDevice *device;
++ GError *error = NULL;
++
++ type = g_match_info_fetch (info, 1);
++ vdev = g_match_info_fetch (info, 2);
++
++ devname = g_strdup_printf ("/dev/%s", vdev);
++
++ if (g_strcmp0 (type, "DESTROY") == 0)
++ {
++ g_signal_emit (monitor, monitor_signals[REMOVED], 0,
++ devname);
++ }
++ else
++ {
++ if(cheese_camera_device_monitor_is_camera (devname))
++ {
++ product = cheese_camera_device_monitor_get_product (devname);
++ if (product == NULL)
++ product = g_strdup ("WebCamd Device");
++ device = cheese_camera_device_new (devname, devname,
++ product,
++ 2,
++ &error);
++ if (device == NULL)
++ GST_WARNING ("Device initialization for %s failed: %s",
++ devname,
++ (error != NULL) ? error->message : "Unknown reason");
++ g_signal_emit (monitor, monitor_signals[ADDED], 0, device);
++ }
++
++ g_free (product);
++ }
++ g_free (devname);
++ g_free (vdev);
++ g_free (type);
++ }
++ g_match_info_free (info);
++ g_regex_unref (rex);
++ break;
++ }
++ default:
++ break;
++ }
++}
++
++static gboolean
++cheese_camera_device_monitor_event_cb (GIOChannel *source,
++ GIOCondition condition,
++ gpointer user_data)
++{
++ char *event;
++ gsize terminator;
++ GIOStatus status;
++ CheeseCameraDeviceMonitor *monitor;
++
++ monitor = (CheeseCameraDeviceMonitor *) user_data;
++
++ status = g_io_channel_read_line (source, &event, NULL, &terminator, NULL);
++ if (status == G_IO_STATUS_NORMAL)
++ {
++ event[terminator] = 0;
++ cheese_camera_device_monitor_process_event (event, monitor);
++ g_free (event);
++ }
++ else
++ {
++ if (cheese_camera_device_monitor_event_inited)
++ {
++ int fd;
++
++ cheese_camera_device_monitor_init_event (monitor);
++ fd = g_io_channel_unix_get_fd (source);
++ g_io_channel_shutdown (source, FALSE, NULL);
++ close (fd);
++
++ return FALSE;
++ }
++ }
++
++ return TRUE;
++}
++
++void
++cheese_camera_device_monitor_coldplug (CheeseCameraDeviceMonitor *monitor)
++{
++ GDir *dir;
++ GError *error = NULL;
++ const char *fname;
++
++ dir = g_dir_open ("/dev", 0, &error);
++ if (dir == NULL)
++ {
++ GST_WARNING ("Failed to open /dev for reading: %s",
++ (error != NULL) ? error->message : "Unknown error");
+ return;
+ }
+
-+ if (!libhal_ctx_init (hal_ctx, &error))
++ while ((fname = g_dir_read_name (dir)) != NULL)
+ {
-+ if (dbus_error_is_set (&error))
++ if ( strncmp (fname, "video", strlen ("video")) == 0)
+ {
-+ GST_WARNING ("libhal_ctx_init: %s: %s", error.name, error.message);
-+ dbus_error_free (&error);
++ char *devname, *product;
++
++ devname = g_strdup_printf ("/dev/%s", fname);
++ if (cheese_camera_device_monitor_is_camera (devname))
++ {
++ CheeseCameraDevice *device;
++ GError *derr = NULL;
++
++ product = cheese_camera_device_monitor_get_product (devname);
++ if (product == NULL)
++ product = g_strdup ("WebCamd Device");
++
++ device = cheese_camera_device_new (devname, devname, product, 2, &derr);
++ if (device == NULL)
++ GST_WARNING ("Device initialization for %s failed: %s", devname,
++ (derr != NULL) ? derr->message : "Unknown reason");
++
++ g_signal_emit (monitor, monitor_signals[ADDED], 0, device);
++
++ g_free (product);
++ }
++ g_free (devname);
+ }
-+ GST_WARNING ("Could not initialise connection to hald.\n"
-+ "Normally this means the HAL daemon (hald) is not running or not ready");
++ }
++ g_dir_close (dir);
++}
+ #else /* HAVE_UDEV */
+ void
+ cheese_camera_device_monitor_coldplug (CheeseCameraDeviceMonitor *monitor)
+@@ -430,6 +652,42 @@
+ g_type_class_add_private (klass, sizeof (CheeseCameraDeviceMonitorPrivate));
+ }
+
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++static void
++cheese_camera_device_monitor_init_event (CheeseCameraDeviceMonitor *monitor)
++{
++ int event_fd;
++ struct sockaddr_un addr;
++
++ event_fd = socket (PF_UNIX, SOCK_STREAM, 0);
++ if (event_fd < 0)
++ {
++ GST_WARNING ("Failed to create devd socket: %s", g_strerror (errno));
++ cheese_camera_device_monitor_event_inited = FALSE;
+ return;
+ }
+
-+ dbus_connection_setup_with_g_main (priv->connection, NULL);
++ addr.sun_family = AF_UNIX;
++ strncpy (addr.sun_path, "/var/run/devd.pipe", sizeof (addr.sun_path));
++ if (connect (event_fd, (struct sockaddr *) &addr, sizeof (addr)) == 0)
++ {
++ GIOChannel *channel;
+
-+ if (!libhal_ctx_set_user_data (hal_ctx, monitor))
-+ GST_WARNING ("Failed to set user data on HAL context");
-+ if (!libhal_ctx_set_device_added (hal_ctx, cheese_camera_device_monitor_added))
-+ GST_WARNING ("Failed to connect to device added signal from HAL");
-+ if (!libhal_ctx_set_device_removed (hal_ctx, cheese_camera_device_monitor_removed))
-+ GST_WARNING ("Failed to connect to device removed signal from HAL");
++ channel = g_io_channel_unix_new (event_fd);
++ g_io_add_watch (channel, G_IO_IN, cheese_camera_device_monitor_event_cb, monitor);
++ g_io_channel_unref (channel);
++ cheese_camera_device_monitor_event_inited = TRUE;
++ }
++ else
++ {
++ GST_WARNING("Failed to connect to /var/run/devd.pipe: %s",
++ g_strerror (errno));
++ close (event_fd);
++ cheese_camera_device_monitor_event_inited = FALSE;
++ }
++}
++#endif
+
-+ priv->hal_ctx = hal_ctx;
+ static void
+ cheese_camera_device_monitor_init (CheeseCameraDeviceMonitor *monitor)
+ {
+@@ -440,6 +698,8 @@
+ priv->client = g_udev_client_new (subsystems);
+ g_signal_connect (G_OBJECT (priv->client), "uevent",
+ G_CALLBACK (cheese_camera_device_monitor_uevent_cb), monitor);
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++ cheese_camera_device_monitor_init_event (monitor);
+ #endif /* HAVE_UDEV */
}
- /**
diff --git a/multimedia/cheese/pkg-plist b/multimedia/cheese/pkg-plist
index 2755ff708..372bf891c 100644
--- a/multimedia/cheese/pkg-plist
+++ b/multimedia/cheese/pkg-plist
@@ -1,201 +1,716 @@
bin/cheese
include/cheese/cheese-avatar-chooser.h
include/cheese/cheese-camera-device-monitor.h
+include/cheese/cheese-camera-device.h
+include/cheese/cheese-camera.h
+include/cheese/cheese-effect.h
+include/cheese/cheese-gtk.h
include/cheese/cheese-widget.h
-lib/libcheese-gtk.a
+include/cheese/cheese.h
+lib/girepository-1.0/Cheese-3.0.typelib
lib/libcheese-gtk.la
lib/libcheese-gtk.so
-lib/libcheese-gtk.so.18
+lib/libcheese-gtk.so.23
+lib/libcheese.la
+lib/libcheese.so
+lib/libcheese.so.7
libdata/pkgconfig/cheese-gtk.pc
-libexec/cheese/cheese-bugreport.sh
+libdata/pkgconfig/cheese.pc
share/applications/cheese.desktop
+%%DATADIR%%/cheese-actions.ui
+%%DATADIR%%/cheese-main-window.ui
%%DATADIR%%/cheese-prefs.ui
-%%DATADIR%%/cheese-ui.xml
-%%DATADIR%%/cheese.ui
-%%DATADIR%%/effects/Hulk.png
-%%DATADIR%%/effects/Mauve.png
-%%DATADIR%%/effects/NoirBlanc.png
-%%DATADIR%%/effects/Saturation.png
-%%DATADIR%%/effects/dicetv.png
-%%DATADIR%%/effects/edgetv.png
-%%DATADIR%%/effects/identity.png
-%%DATADIR%%/effects/shagadelictv.png
-%%DATADIR%%/effects/vertigotv.png
-%%DATADIR%%/effects/videoflip_h.png
-%%DATADIR%%/effects/videoflip_v.png
-%%DATADIR%%/effects/warptv.png
-%%DATADIR%%/gtkrc
-%%DATADIR%%/icons/hicolor/16x16/actions/browse-webcam-effects.png
-%%DATADIR%%/icons/hicolor/16x16/actions/cheese-take-burst.png
-%%DATADIR%%/icons/hicolor/16x16/actions/cheese-take-photo.png
-%%DATADIR%%/icons/hicolor/22x22/actions/browse-webcam-effects.png
-%%DATADIR%%/icons/hicolor/22x22/actions/cheese-take-burst.png
-%%DATADIR%%/icons/hicolor/22x22/actions/cheese-take-photo.png
-%%DATADIR%%/icons/hicolor/24x24/actions/browse-webcam-effects.png
-%%DATADIR%%/icons/hicolor/24x24/actions/cheese-take-burst.png
-%%DATADIR%%/icons/hicolor/24x24/actions/cheese-take-photo.png
-%%DATADIR%%/icons/hicolor/32x32/actions/browse-webcam-effects.png
-%%DATADIR%%/icons/hicolor/32x32/actions/cheese-take-burst.png
-%%DATADIR%%/icons/hicolor/32x32/actions/cheese-take-photo.png
-%%DATADIR%%/icons/hicolor/48x48/actions/browse-webcam-effects.png
-%%DATADIR%%/icons/hicolor/48x48/actions/cheese-take-burst.png
-%%DATADIR%%/icons/hicolor/48x48/actions/cheese-take-photo.png
-%%DATADIR%%/icons/hicolor/scalable/actions/browse-webcam-effects.svg
-%%DATADIR%%/icons/hicolor/scalable/actions/cheese-take-burst.svg
-%%DATADIR%%/icons/hicolor/scalable/actions/cheese-take-photo.svg
+%%DATADIR%%/cheese-viewport.json
+%%DATADIR%%/cheese.catalog
+%%DATADIR%%/cheese.css
%%DATADIR%%/pixmaps/camera-icon.svg
%%DATADIR%%/pixmaps/cheese-1.svg
%%DATADIR%%/pixmaps/cheese-2.svg
%%DATADIR%%/pixmaps/cheese-3.svg
%%DATADIR%%/pixmaps/thumbnail-frame.png
-share/dbus-1/services/org.gnome.Cheese.service
%%DOCSDIR%%/AUTHORS
%%DOCSDIR%%/COPYING
%%DOCSDIR%%/ChangeLog
%%DOCSDIR%%/CheeseAvatarChooser.html
+%%DOCSDIR%%/CheeseCamera.html
+%%DOCSDIR%%/CheeseCameraDevice.html
%%DOCSDIR%%/CheeseCameraDeviceMonitor.html
+%%DOCSDIR%%/CheeseEffect.html
+%%DOCSDIR%%/CheeseFileUtil.html
+%%DOCSDIR%%/CheeseFlash.html
%%DOCSDIR%%/CheeseWidget.html
%%DOCSDIR%%/NEWS
%%DOCSDIR%%/README
+%%DOCSDIR%%/annotation-glossary.html
+%%DOCSDIR%%/api-index-deprecated.html
%%DOCSDIR%%/api-index-full.html
-%%DOCSDIR%%/ch01.html
-%%DOCSDIR%%/cheese.devhelp
+%%DOCSDIR%%/cheese-Initializing-libcheese-gtk.html
+%%DOCSDIR%%/cheese-Initializing-libcheese.html
+%%DOCSDIR%%/cheese-overview.html
%%DOCSDIR%%/cheese.devhelp2
+%%DOCSDIR%%/cheese.html
+%%DOCSDIR%%/cheese_architecture.png
%%DOCSDIR%%/home.png
%%DOCSDIR%%/index.html
%%DOCSDIR%%/index.sgml
%%DOCSDIR%%/left.png
+%%DOCSDIR%%/libcheese-gtk.html
+%%DOCSDIR%%/libcheese.html
%%DOCSDIR%%/object-tree.html
%%DOCSDIR%%/right.png
+%%DOCSDIR%%/running-cheese.html
%%DOCSDIR%%/style.css
%%DOCSDIR%%/up.png
-share/gnome/help/cheese/C/cheese.xml
-share/gnome/help/cheese/C/figures/cheese-effects.jpg
-share/gnome/help/cheese/C/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/C/figures/cheese-main.jpg
-share/gnome/help/cheese/C/figures/cheese-preferences.jpg
-share/gnome/help/cheese/C/figures/cheese-share.jpg
-share/gnome/help/cheese/C/figures/cheese-wide.jpg
-share/gnome/help/cheese/C/legal.xml
-share/gnome/help/cheese/ca/cheese.xml
-share/gnome/help/cheese/ca/figures/cheese-effects.jpg
-share/gnome/help/cheese/ca/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/ca/figures/cheese-main.jpg
-share/gnome/help/cheese/ca/figures/cheese-preferences.jpg
-share/gnome/help/cheese/ca/figures/cheese-share.jpg
-share/gnome/help/cheese/ca/figures/cheese-wide.jpg
-share/gnome/help/cheese/cs/cheese.xml
-share/gnome/help/cheese/cs/figures/cheese-effects.jpg
-share/gnome/help/cheese/cs/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/cs/figures/cheese-main.jpg
-share/gnome/help/cheese/cs/figures/cheese-preferences.jpg
-share/gnome/help/cheese/cs/figures/cheese-share.jpg
-share/gnome/help/cheese/cs/figures/cheese-wide.jpg
-share/gnome/help/cheese/de/cheese.xml
-share/gnome/help/cheese/de/figures/cheese-effects.jpg
-share/gnome/help/cheese/de/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/de/figures/cheese-main.jpg
-share/gnome/help/cheese/de/figures/cheese-preferences.jpg
-share/gnome/help/cheese/de/figures/cheese-share.jpg
-share/gnome/help/cheese/de/figures/cheese-wide.jpg
-share/gnome/help/cheese/el/cheese.xml
-share/gnome/help/cheese/el/figures/cheese-effects.jpg
-share/gnome/help/cheese/el/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/el/figures/cheese-main.jpg
-share/gnome/help/cheese/el/figures/cheese-preferences.jpg
-share/gnome/help/cheese/el/figures/cheese-share.jpg
-share/gnome/help/cheese/el/figures/cheese-wide.jpg
-share/gnome/help/cheese/en_GB/cheese.xml
-share/gnome/help/cheese/en_GB/figures/cheese-effects.jpg
-share/gnome/help/cheese/en_GB/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/en_GB/figures/cheese-main.jpg
-share/gnome/help/cheese/en_GB/figures/cheese-preferences.jpg
-share/gnome/help/cheese/en_GB/figures/cheese-share.jpg
-share/gnome/help/cheese/en_GB/figures/cheese-wide.jpg
-share/gnome/help/cheese/es/cheese.xml
-share/gnome/help/cheese/es/figures/cheese-effects.jpg
-share/gnome/help/cheese/es/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/es/figures/cheese-main.jpg
-share/gnome/help/cheese/es/figures/cheese-preferences.jpg
-share/gnome/help/cheese/es/figures/cheese-share.jpg
-share/gnome/help/cheese/es/figures/cheese-wide.jpg
-share/gnome/help/cheese/fr/cheese.xml
-share/gnome/help/cheese/fr/figures/cheese-effects.jpg
-share/gnome/help/cheese/fr/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/fr/figures/cheese-main.jpg
-share/gnome/help/cheese/fr/figures/cheese-preferences.jpg
-share/gnome/help/cheese/fr/figures/cheese-share.jpg
-share/gnome/help/cheese/fr/figures/cheese-wide.jpg
-share/gnome/help/cheese/it/cheese.xml
-share/gnome/help/cheese/it/figures/cheese-effects.jpg
-share/gnome/help/cheese/it/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/it/figures/cheese-main.jpg
-share/gnome/help/cheese/it/figures/cheese-preferences.jpg
-share/gnome/help/cheese/it/figures/cheese-share.jpg
-share/gnome/help/cheese/it/figures/cheese-wide.jpg
-share/gnome/help/cheese/nl/cheese.xml
-share/gnome/help/cheese/nl/figures/cheese-effects.jpg
-share/gnome/help/cheese/nl/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/nl/figures/cheese-main.jpg
-share/gnome/help/cheese/nl/figures/cheese-preferences.jpg
-share/gnome/help/cheese/nl/figures/cheese-share.jpg
-share/gnome/help/cheese/nl/figures/cheese-wide.jpg
-share/gnome/help/cheese/oc/cheese.xml
-share/gnome/help/cheese/oc/figures/cheese-effects.jpg
-share/gnome/help/cheese/oc/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/oc/figures/cheese-main.jpg
-share/gnome/help/cheese/oc/figures/cheese-preferences.jpg
-share/gnome/help/cheese/oc/figures/cheese-share.jpg
-share/gnome/help/cheese/oc/figures/cheese-wide.jpg
-share/gnome/help/cheese/pt_BR/cheese.xml
-share/gnome/help/cheese/pt_BR/figures/cheese-effects.jpg
-share/gnome/help/cheese/pt_BR/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/pt_BR/figures/cheese-main.jpg
-share/gnome/help/cheese/pt_BR/figures/cheese-preferences.jpg
-share/gnome/help/cheese/pt_BR/figures/cheese-share.jpg
-share/gnome/help/cheese/pt_BR/figures/cheese-wide.jpg
-share/gnome/help/cheese/ru/cheese.xml
-share/gnome/help/cheese/ru/figures/cheese-effects.jpg
-share/gnome/help/cheese/ru/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/ru/figures/cheese-main.jpg
-share/gnome/help/cheese/ru/figures/cheese-preferences.jpg
-share/gnome/help/cheese/ru/figures/cheese-share.jpg
-share/gnome/help/cheese/ru/figures/cheese-wide.jpg
-share/gnome/help/cheese/sl/cheese.xml
-share/gnome/help/cheese/sl/figures/cheese-effects.jpg
-share/gnome/help/cheese/sl/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/sl/figures/cheese-main.jpg
-share/gnome/help/cheese/sl/figures/cheese-preferences.jpg
-share/gnome/help/cheese/sl/figures/cheese-share.jpg
-share/gnome/help/cheese/sl/figures/cheese-wide.jpg
-share/gnome/help/cheese/sv/cheese.xml
-share/gnome/help/cheese/sv/figures/cheese-effects.jpg
-share/gnome/help/cheese/sv/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/sv/figures/cheese-main.jpg
-share/gnome/help/cheese/sv/figures/cheese-preferences.jpg
-share/gnome/help/cheese/sv/figures/cheese-share.jpg
-share/gnome/help/cheese/sv/figures/cheese-wide.jpg
-share/gnome/help/cheese/th/cheese.xml
-share/gnome/help/cheese/th/figures/cheese-effects.jpg
-share/gnome/help/cheese/th/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/th/figures/cheese-main.jpg
-share/gnome/help/cheese/th/figures/cheese-preferences.jpg
-share/gnome/help/cheese/th/figures/cheese-share.jpg
-share/gnome/help/cheese/th/figures/cheese-wide.jpg
-share/gnome/help/cheese/zh_CN/cheese.xml
-share/gnome/help/cheese/zh_CN/figures/cheese-effects.jpg
-share/gnome/help/cheese/zh_CN/figures/cheese-fullscreen.jpg
-share/gnome/help/cheese/zh_CN/figures/cheese-main.jpg
-share/gnome/help/cheese/zh_CN/figures/cheese-preferences.jpg
-share/gnome/help/cheese/zh_CN/figures/cheese-share.jpg
-share/gnome/help/cheese/zh_CN/figures/cheese-wide.jpg
+share/gir-1.0/Cheese-3.0.gir
+share/help/C/cheese/effects-apply.page
+share/help/C/cheese/figures/cheese-delete.png
+share/help/C/cheese/figures/cheese-effects.png
+share/help/C/cheese/figures/cheese-introduction.png
+share/help/C/cheese/figures/cheese-record.png
+share/help/C/cheese/figures/cheese-save.png
+share/help/C/cheese/figures/cheese-take.png
+share/help/C/cheese/figures/cheese.png
+share/help/C/cheese/figures/effects.png
+share/help/C/cheese/figures/image-properties.png
+share/help/C/cheese/figures/settings.png
+share/help/C/cheese/index.page
+share/help/C/cheese/introduction.page
+share/help/C/cheese/mode-wide.page
+share/help/C/cheese/photo-delete.page
+share/help/C/cheese/photo-save.page
+share/help/C/cheese/photo-take.page
+share/help/C/cheese/photo-view.page
+share/help/C/cheese/pref-burst-mode.page
+share/help/C/cheese/pref-countdown.page
+share/help/C/cheese/pref-flash.page
+share/help/C/cheese/pref-fullscreen.page
+share/help/C/cheese/pref-image-properties.page
+share/help/C/cheese/pref-photo-resolution.page
+share/help/C/cheese/video-record.page
+share/help/ca/cheese/effects-apply.page
+share/help/ca/cheese/figures/cheese-delete.png
+share/help/ca/cheese/figures/cheese-effects.png
+share/help/ca/cheese/figures/cheese-introduction.png
+share/help/ca/cheese/figures/cheese-record.png
+share/help/ca/cheese/figures/cheese-save.png
+share/help/ca/cheese/figures/cheese-take.png
+share/help/ca/cheese/figures/cheese.png
+share/help/ca/cheese/figures/effects.png
+share/help/ca/cheese/figures/image-properties.png
+share/help/ca/cheese/figures/settings.png
+share/help/ca/cheese/index.page
+share/help/ca/cheese/introduction.page
+share/help/ca/cheese/mode-wide.page
+share/help/ca/cheese/photo-delete.page
+share/help/ca/cheese/photo-save.page
+share/help/ca/cheese/photo-take.page
+share/help/ca/cheese/photo-view.page
+share/help/ca/cheese/pref-burst-mode.page
+share/help/ca/cheese/pref-countdown.page
+share/help/ca/cheese/pref-flash.page
+share/help/ca/cheese/pref-fullscreen.page
+share/help/ca/cheese/pref-image-properties.page
+share/help/ca/cheese/pref-photo-resolution.page
+share/help/ca/cheese/video-record.page
+share/help/cs/cheese/effects-apply.page
+share/help/cs/cheese/figures/cheese-delete.png
+share/help/cs/cheese/figures/cheese-effects.png
+share/help/cs/cheese/figures/cheese-introduction.png
+share/help/cs/cheese/figures/cheese-record.png
+share/help/cs/cheese/figures/cheese-save.png
+share/help/cs/cheese/figures/cheese-take.png
+share/help/cs/cheese/figures/cheese.png
+share/help/cs/cheese/figures/effects.png
+share/help/cs/cheese/figures/image-properties.png
+share/help/cs/cheese/figures/settings.png
+share/help/cs/cheese/index.page
+share/help/cs/cheese/introduction.page
+share/help/cs/cheese/mode-wide.page
+share/help/cs/cheese/photo-delete.page
+share/help/cs/cheese/photo-save.page
+share/help/cs/cheese/photo-take.page
+share/help/cs/cheese/photo-view.page
+share/help/cs/cheese/pref-burst-mode.page
+share/help/cs/cheese/pref-countdown.page
+share/help/cs/cheese/pref-flash.page
+share/help/cs/cheese/pref-fullscreen.page
+share/help/cs/cheese/pref-image-properties.page
+share/help/cs/cheese/pref-photo-resolution.page
+share/help/cs/cheese/video-record.page
+share/help/de/cheese/effects-apply.page
+share/help/de/cheese/figures/cheese-delete.png
+share/help/de/cheese/figures/cheese-effects.png
+share/help/de/cheese/figures/cheese-introduction.png
+share/help/de/cheese/figures/cheese-record.png
+share/help/de/cheese/figures/cheese-save.png
+share/help/de/cheese/figures/cheese-take.png
+share/help/de/cheese/figures/cheese.png
+share/help/de/cheese/figures/effects.png
+share/help/de/cheese/figures/image-properties.png
+share/help/de/cheese/figures/settings.png
+share/help/de/cheese/index.page
+share/help/de/cheese/introduction.page
+share/help/de/cheese/mode-wide.page
+share/help/de/cheese/photo-delete.page
+share/help/de/cheese/photo-save.page
+share/help/de/cheese/photo-take.page
+share/help/de/cheese/photo-view.page
+share/help/de/cheese/pref-burst-mode.page
+share/help/de/cheese/pref-countdown.page
+share/help/de/cheese/pref-flash.page
+share/help/de/cheese/pref-fullscreen.page
+share/help/de/cheese/pref-image-properties.page
+share/help/de/cheese/pref-photo-resolution.page
+share/help/de/cheese/video-record.page
+share/help/el/cheese/effects-apply.page
+share/help/el/cheese/figures/cheese-delete.png
+share/help/el/cheese/figures/cheese-effects.png
+share/help/el/cheese/figures/cheese-introduction.png
+share/help/el/cheese/figures/cheese-record.png
+share/help/el/cheese/figures/cheese-save.png
+share/help/el/cheese/figures/cheese-take.png
+share/help/el/cheese/figures/cheese.png
+share/help/el/cheese/figures/effects.png
+share/help/el/cheese/figures/image-properties.png
+share/help/el/cheese/figures/settings.png
+share/help/el/cheese/index.page
+share/help/el/cheese/introduction.page
+share/help/el/cheese/mode-wide.page
+share/help/el/cheese/photo-delete.page
+share/help/el/cheese/photo-save.page
+share/help/el/cheese/photo-take.page
+share/help/el/cheese/photo-view.page
+share/help/el/cheese/pref-burst-mode.page
+share/help/el/cheese/pref-countdown.page
+share/help/el/cheese/pref-flash.page
+share/help/el/cheese/pref-fullscreen.page
+share/help/el/cheese/pref-image-properties.page
+share/help/el/cheese/pref-photo-resolution.page
+share/help/el/cheese/video-record.page
+share/help/en_GB/cheese/effects-apply.page
+share/help/en_GB/cheese/figures/cheese-delete.png
+share/help/en_GB/cheese/figures/cheese-effects.png
+share/help/en_GB/cheese/figures/cheese-introduction.png
+share/help/en_GB/cheese/figures/cheese-record.png
+share/help/en_GB/cheese/figures/cheese-save.png
+share/help/en_GB/cheese/figures/cheese-take.png
+share/help/en_GB/cheese/figures/cheese.png
+share/help/en_GB/cheese/figures/effects.png
+share/help/en_GB/cheese/figures/image-properties.png
+share/help/en_GB/cheese/figures/settings.png
+share/help/en_GB/cheese/index.page
+share/help/en_GB/cheese/introduction.page
+share/help/en_GB/cheese/mode-wide.page
+share/help/en_GB/cheese/photo-delete.page
+share/help/en_GB/cheese/photo-save.page
+share/help/en_GB/cheese/photo-take.page
+share/help/en_GB/cheese/photo-view.page
+share/help/en_GB/cheese/pref-burst-mode.page
+share/help/en_GB/cheese/pref-countdown.page
+share/help/en_GB/cheese/pref-flash.page
+share/help/en_GB/cheese/pref-fullscreen.page
+share/help/en_GB/cheese/pref-image-properties.page
+share/help/en_GB/cheese/pref-photo-resolution.page
+share/help/en_GB/cheese/video-record.page
+share/help/es/cheese/effects-apply.page
+share/help/es/cheese/figures/cheese-delete.png
+share/help/es/cheese/figures/cheese-effects.png
+share/help/es/cheese/figures/cheese-introduction.png
+share/help/es/cheese/figures/cheese-record.png
+share/help/es/cheese/figures/cheese-save.png
+share/help/es/cheese/figures/cheese-take.png
+share/help/es/cheese/figures/cheese.png
+share/help/es/cheese/figures/effects.png
+share/help/es/cheese/figures/image-properties.png
+share/help/es/cheese/figures/settings.png
+share/help/es/cheese/index.page
+share/help/es/cheese/introduction.page
+share/help/es/cheese/mode-wide.page
+share/help/es/cheese/photo-delete.page
+share/help/es/cheese/photo-save.page
+share/help/es/cheese/photo-take.page
+share/help/es/cheese/photo-view.page
+share/help/es/cheese/pref-burst-mode.page
+share/help/es/cheese/pref-countdown.page
+share/help/es/cheese/pref-flash.page
+share/help/es/cheese/pref-fullscreen.page
+share/help/es/cheese/pref-image-properties.page
+share/help/es/cheese/pref-photo-resolution.page
+share/help/es/cheese/video-record.page
+share/help/fi/cheese/effects-apply.page
+share/help/fi/cheese/figures/cheese-delete.png
+share/help/fi/cheese/figures/cheese-effects.png
+share/help/fi/cheese/figures/cheese-introduction.png
+share/help/fi/cheese/figures/cheese-record.png
+share/help/fi/cheese/figures/cheese-save.png
+share/help/fi/cheese/figures/cheese-take.png
+share/help/fi/cheese/figures/cheese.png
+share/help/fi/cheese/figures/effects.png
+share/help/fi/cheese/figures/image-properties.png
+share/help/fi/cheese/figures/settings.png
+share/help/fi/cheese/index.page
+share/help/fi/cheese/introduction.page
+share/help/fi/cheese/mode-wide.page
+share/help/fi/cheese/photo-delete.page
+share/help/fi/cheese/photo-save.page
+share/help/fi/cheese/photo-take.page
+share/help/fi/cheese/photo-view.page
+share/help/fi/cheese/pref-burst-mode.page
+share/help/fi/cheese/pref-countdown.page
+share/help/fi/cheese/pref-flash.page
+share/help/fi/cheese/pref-fullscreen.page
+share/help/fi/cheese/pref-image-properties.page
+share/help/fi/cheese/pref-photo-resolution.page
+share/help/fi/cheese/video-record.page
+share/help/fr/cheese/effects-apply.page
+share/help/fr/cheese/figures/cheese-delete.png
+share/help/fr/cheese/figures/cheese-effects.png
+share/help/fr/cheese/figures/cheese-introduction.png
+share/help/fr/cheese/figures/cheese-record.png
+share/help/fr/cheese/figures/cheese-save.png
+share/help/fr/cheese/figures/cheese-take.png
+share/help/fr/cheese/figures/cheese.png
+share/help/fr/cheese/figures/effects.png
+share/help/fr/cheese/figures/image-properties.png
+share/help/fr/cheese/figures/settings.png
+share/help/fr/cheese/index.page
+share/help/fr/cheese/introduction.page
+share/help/fr/cheese/mode-wide.page
+share/help/fr/cheese/photo-delete.page
+share/help/fr/cheese/photo-save.page
+share/help/fr/cheese/photo-take.page
+share/help/fr/cheese/photo-view.page
+share/help/fr/cheese/pref-burst-mode.page
+share/help/fr/cheese/pref-countdown.page
+share/help/fr/cheese/pref-flash.page
+share/help/fr/cheese/pref-fullscreen.page
+share/help/fr/cheese/pref-image-properties.page
+share/help/fr/cheese/pref-photo-resolution.page
+share/help/fr/cheese/video-record.page
+share/help/gl/cheese/effects-apply.page
+share/help/gl/cheese/figures/cheese-delete.png
+share/help/gl/cheese/figures/cheese-effects.png
+share/help/gl/cheese/figures/cheese-introduction.png
+share/help/gl/cheese/figures/cheese-record.png
+share/help/gl/cheese/figures/cheese-save.png
+share/help/gl/cheese/figures/cheese-take.png
+share/help/gl/cheese/figures/cheese.png
+share/help/gl/cheese/figures/effects.png
+share/help/gl/cheese/figures/image-properties.png
+share/help/gl/cheese/figures/settings.png
+share/help/gl/cheese/index.page
+share/help/gl/cheese/introduction.page
+share/help/gl/cheese/mode-wide.page
+share/help/gl/cheese/photo-delete.page
+share/help/gl/cheese/photo-save.page
+share/help/gl/cheese/photo-take.page
+share/help/gl/cheese/photo-view.page
+share/help/gl/cheese/pref-burst-mode.page
+share/help/gl/cheese/pref-countdown.page
+share/help/gl/cheese/pref-flash.page
+share/help/gl/cheese/pref-fullscreen.page
+share/help/gl/cheese/pref-image-properties.page
+share/help/gl/cheese/pref-photo-resolution.page
+share/help/gl/cheese/video-record.page
+share/help/hu/cheese/effects-apply.page
+share/help/hu/cheese/figures/cheese-delete.png
+share/help/hu/cheese/figures/cheese-effects.png
+share/help/hu/cheese/figures/cheese-introduction.png
+share/help/hu/cheese/figures/cheese-record.png
+share/help/hu/cheese/figures/cheese-save.png
+share/help/hu/cheese/figures/cheese-take.png
+share/help/hu/cheese/figures/cheese.png
+share/help/hu/cheese/figures/effects.png
+share/help/hu/cheese/figures/image-properties.png
+share/help/hu/cheese/figures/settings.png
+share/help/hu/cheese/index.page
+share/help/hu/cheese/introduction.page
+share/help/hu/cheese/mode-wide.page
+share/help/hu/cheese/photo-delete.page
+share/help/hu/cheese/photo-save.page
+share/help/hu/cheese/photo-take.page
+share/help/hu/cheese/photo-view.page
+share/help/hu/cheese/pref-burst-mode.page
+share/help/hu/cheese/pref-countdown.page
+share/help/hu/cheese/pref-flash.page
+share/help/hu/cheese/pref-fullscreen.page
+share/help/hu/cheese/pref-image-properties.page
+share/help/hu/cheese/pref-photo-resolution.page
+share/help/hu/cheese/video-record.page
+share/help/id/cheese/effects-apply.page
+share/help/id/cheese/figures/cheese-delete.png
+share/help/id/cheese/figures/cheese-effects.png
+share/help/id/cheese/figures/cheese-introduction.png
+share/help/id/cheese/figures/cheese-record.png
+share/help/id/cheese/figures/cheese-save.png
+share/help/id/cheese/figures/cheese-take.png
+share/help/id/cheese/figures/cheese.png
+share/help/id/cheese/figures/effects.png
+share/help/id/cheese/figures/image-properties.png
+share/help/id/cheese/figures/settings.png
+share/help/id/cheese/index.page
+share/help/id/cheese/introduction.page
+share/help/id/cheese/mode-wide.page
+share/help/id/cheese/photo-delete.page
+share/help/id/cheese/photo-save.page
+share/help/id/cheese/photo-take.page
+share/help/id/cheese/photo-view.page
+share/help/id/cheese/pref-burst-mode.page
+share/help/id/cheese/pref-countdown.page
+share/help/id/cheese/pref-flash.page
+share/help/id/cheese/pref-fullscreen.page
+share/help/id/cheese/pref-image-properties.page
+share/help/id/cheese/pref-photo-resolution.page
+share/help/id/cheese/video-record.page
+share/help/it/cheese/effects-apply.page
+share/help/it/cheese/figures/cheese-delete.png
+share/help/it/cheese/figures/cheese-effects.png
+share/help/it/cheese/figures/cheese-introduction.png
+share/help/it/cheese/figures/cheese-record.png
+share/help/it/cheese/figures/cheese-save.png
+share/help/it/cheese/figures/cheese-take.png
+share/help/it/cheese/figures/cheese.png
+share/help/it/cheese/figures/effects.png
+share/help/it/cheese/figures/image-properties.png
+share/help/it/cheese/figures/settings.png
+share/help/it/cheese/index.page
+share/help/it/cheese/introduction.page
+share/help/it/cheese/mode-wide.page
+share/help/it/cheese/photo-delete.page
+share/help/it/cheese/photo-save.page
+share/help/it/cheese/photo-take.page
+share/help/it/cheese/photo-view.page
+share/help/it/cheese/pref-burst-mode.page
+share/help/it/cheese/pref-countdown.page
+share/help/it/cheese/pref-flash.page
+share/help/it/cheese/pref-fullscreen.page
+share/help/it/cheese/pref-image-properties.page
+share/help/it/cheese/pref-photo-resolution.page
+share/help/it/cheese/video-record.page
+share/help/ko/cheese/effects-apply.page
+share/help/ko/cheese/figures/cheese-delete.png
+share/help/ko/cheese/figures/cheese-effects.png
+share/help/ko/cheese/figures/cheese-introduction.png
+share/help/ko/cheese/figures/cheese-record.png
+share/help/ko/cheese/figures/cheese-save.png
+share/help/ko/cheese/figures/cheese-take.png
+share/help/ko/cheese/figures/cheese.png
+share/help/ko/cheese/figures/effects.png
+share/help/ko/cheese/figures/image-properties.png
+share/help/ko/cheese/figures/settings.png
+share/help/ko/cheese/index.page
+share/help/ko/cheese/introduction.page
+share/help/ko/cheese/mode-wide.page
+share/help/ko/cheese/photo-delete.page
+share/help/ko/cheese/photo-save.page
+share/help/ko/cheese/photo-take.page
+share/help/ko/cheese/photo-view.page
+share/help/ko/cheese/pref-burst-mode.page
+share/help/ko/cheese/pref-countdown.page
+share/help/ko/cheese/pref-flash.page
+share/help/ko/cheese/pref-fullscreen.page
+share/help/ko/cheese/pref-image-properties.page
+share/help/ko/cheese/pref-photo-resolution.page
+share/help/ko/cheese/video-record.page
+share/help/lv/cheese/effects-apply.page
+share/help/lv/cheese/figures/cheese-delete.png
+share/help/lv/cheese/figures/cheese-effects.png
+share/help/lv/cheese/figures/cheese-introduction.png
+share/help/lv/cheese/figures/cheese-record.png
+share/help/lv/cheese/figures/cheese-save.png
+share/help/lv/cheese/figures/cheese-take.png
+share/help/lv/cheese/figures/cheese.png
+share/help/lv/cheese/figures/effects.png
+share/help/lv/cheese/figures/image-properties.png
+share/help/lv/cheese/figures/settings.png
+share/help/lv/cheese/index.page
+share/help/lv/cheese/introduction.page
+share/help/lv/cheese/mode-wide.page
+share/help/lv/cheese/photo-delete.page
+share/help/lv/cheese/photo-save.page
+share/help/lv/cheese/photo-take.page
+share/help/lv/cheese/photo-view.page
+share/help/lv/cheese/pref-burst-mode.page
+share/help/lv/cheese/pref-countdown.page
+share/help/lv/cheese/pref-flash.page
+share/help/lv/cheese/pref-fullscreen.page
+share/help/lv/cheese/pref-image-properties.page
+share/help/lv/cheese/pref-photo-resolution.page
+share/help/lv/cheese/video-record.page
+share/help/nl/cheese/effects-apply.page
+share/help/nl/cheese/figures/cheese-delete.png
+share/help/nl/cheese/figures/cheese-effects.png
+share/help/nl/cheese/figures/cheese-introduction.png
+share/help/nl/cheese/figures/cheese-record.png
+share/help/nl/cheese/figures/cheese-save.png
+share/help/nl/cheese/figures/cheese-take.png
+share/help/nl/cheese/figures/cheese.png
+share/help/nl/cheese/figures/effects.png
+share/help/nl/cheese/figures/image-properties.png
+share/help/nl/cheese/figures/settings.png
+share/help/nl/cheese/index.page
+share/help/nl/cheese/introduction.page
+share/help/nl/cheese/mode-wide.page
+share/help/nl/cheese/photo-delete.page
+share/help/nl/cheese/photo-save.page
+share/help/nl/cheese/photo-take.page
+share/help/nl/cheese/photo-view.page
+share/help/nl/cheese/pref-burst-mode.page
+share/help/nl/cheese/pref-countdown.page
+share/help/nl/cheese/pref-flash.page
+share/help/nl/cheese/pref-fullscreen.page
+share/help/nl/cheese/pref-image-properties.page
+share/help/nl/cheese/pref-photo-resolution.page
+share/help/nl/cheese/video-record.page
+share/help/oc/cheese/effects-apply.page
+share/help/oc/cheese/figures/cheese-delete.png
+share/help/oc/cheese/figures/cheese-effects.png
+share/help/oc/cheese/figures/cheese-introduction.png
+share/help/oc/cheese/figures/cheese-record.png
+share/help/oc/cheese/figures/cheese-save.png
+share/help/oc/cheese/figures/cheese-take.png
+share/help/oc/cheese/figures/cheese.png
+share/help/oc/cheese/figures/effects.png
+share/help/oc/cheese/figures/image-properties.png
+share/help/oc/cheese/figures/settings.png
+share/help/oc/cheese/index.page
+share/help/oc/cheese/introduction.page
+share/help/oc/cheese/mode-wide.page
+share/help/oc/cheese/photo-delete.page
+share/help/oc/cheese/photo-save.page
+share/help/oc/cheese/photo-take.page
+share/help/oc/cheese/photo-view.page
+share/help/oc/cheese/pref-burst-mode.page
+share/help/oc/cheese/pref-countdown.page
+share/help/oc/cheese/pref-flash.page
+share/help/oc/cheese/pref-fullscreen.page
+share/help/oc/cheese/pref-image-properties.page
+share/help/oc/cheese/pref-photo-resolution.page
+share/help/oc/cheese/video-record.page
+share/help/pa/cheese/effects-apply.page
+share/help/pa/cheese/figures/cheese-delete.png
+share/help/pa/cheese/figures/cheese-effects.png
+share/help/pa/cheese/figures/cheese-introduction.png
+share/help/pa/cheese/figures/cheese-record.png
+share/help/pa/cheese/figures/cheese-save.png
+share/help/pa/cheese/figures/cheese-take.png
+share/help/pa/cheese/figures/cheese.png
+share/help/pa/cheese/figures/effects.png
+share/help/pa/cheese/figures/image-properties.png
+share/help/pa/cheese/figures/settings.png
+share/help/pa/cheese/index.page
+share/help/pa/cheese/introduction.page
+share/help/pa/cheese/mode-wide.page
+share/help/pa/cheese/photo-delete.page
+share/help/pa/cheese/photo-save.page
+share/help/pa/cheese/photo-take.page
+share/help/pa/cheese/photo-view.page
+share/help/pa/cheese/pref-burst-mode.page
+share/help/pa/cheese/pref-countdown.page
+share/help/pa/cheese/pref-flash.page
+share/help/pa/cheese/pref-fullscreen.page
+share/help/pa/cheese/pref-image-properties.page
+share/help/pa/cheese/pref-photo-resolution.page
+share/help/pa/cheese/video-record.page
+share/help/pt_BR/cheese/effects-apply.page
+share/help/pt_BR/cheese/figures/cheese-delete.png
+share/help/pt_BR/cheese/figures/cheese-effects.png
+share/help/pt_BR/cheese/figures/cheese-introduction.png
+share/help/pt_BR/cheese/figures/cheese-record.png
+share/help/pt_BR/cheese/figures/cheese-save.png
+share/help/pt_BR/cheese/figures/cheese-take.png
+share/help/pt_BR/cheese/figures/cheese.png
+share/help/pt_BR/cheese/figures/effects.png
+share/help/pt_BR/cheese/figures/image-properties.png
+share/help/pt_BR/cheese/figures/settings.png
+share/help/pt_BR/cheese/index.page
+share/help/pt_BR/cheese/introduction.page
+share/help/pt_BR/cheese/mode-wide.page
+share/help/pt_BR/cheese/photo-delete.page
+share/help/pt_BR/cheese/photo-save.page
+share/help/pt_BR/cheese/photo-take.page
+share/help/pt_BR/cheese/photo-view.page
+share/help/pt_BR/cheese/pref-burst-mode.page
+share/help/pt_BR/cheese/pref-countdown.page
+share/help/pt_BR/cheese/pref-flash.page
+share/help/pt_BR/cheese/pref-fullscreen.page
+share/help/pt_BR/cheese/pref-image-properties.page
+share/help/pt_BR/cheese/pref-photo-resolution.page
+share/help/pt_BR/cheese/video-record.page
+share/help/ru/cheese/effects-apply.page
+share/help/ru/cheese/figures/cheese-delete.png
+share/help/ru/cheese/figures/cheese-effects.png
+share/help/ru/cheese/figures/cheese-introduction.png
+share/help/ru/cheese/figures/cheese-record.png
+share/help/ru/cheese/figures/cheese-save.png
+share/help/ru/cheese/figures/cheese-take.png
+share/help/ru/cheese/figures/cheese.png
+share/help/ru/cheese/figures/effects.png
+share/help/ru/cheese/figures/image-properties.png
+share/help/ru/cheese/figures/settings.png
+share/help/ru/cheese/index.page
+share/help/ru/cheese/introduction.page
+share/help/ru/cheese/mode-wide.page
+share/help/ru/cheese/photo-delete.page
+share/help/ru/cheese/photo-save.page
+share/help/ru/cheese/photo-take.page
+share/help/ru/cheese/photo-view.page
+share/help/ru/cheese/pref-burst-mode.page
+share/help/ru/cheese/pref-countdown.page
+share/help/ru/cheese/pref-flash.page
+share/help/ru/cheese/pref-fullscreen.page
+share/help/ru/cheese/pref-image-properties.page
+share/help/ru/cheese/pref-photo-resolution.page
+share/help/ru/cheese/video-record.page
+share/help/sl/cheese/effects-apply.page
+share/help/sl/cheese/figures/cheese-delete.png
+share/help/sl/cheese/figures/cheese-effects.png
+share/help/sl/cheese/figures/cheese-introduction.png
+share/help/sl/cheese/figures/cheese-record.png
+share/help/sl/cheese/figures/cheese-save.png
+share/help/sl/cheese/figures/cheese-take.png
+share/help/sl/cheese/figures/cheese.png
+share/help/sl/cheese/figures/effects.png
+share/help/sl/cheese/figures/image-properties.png
+share/help/sl/cheese/figures/settings.png
+share/help/sl/cheese/index.page
+share/help/sl/cheese/introduction.page
+share/help/sl/cheese/mode-wide.page
+share/help/sl/cheese/photo-delete.page
+share/help/sl/cheese/photo-save.page
+share/help/sl/cheese/photo-take.page
+share/help/sl/cheese/photo-view.page
+share/help/sl/cheese/pref-burst-mode.page
+share/help/sl/cheese/pref-countdown.page
+share/help/sl/cheese/pref-flash.page
+share/help/sl/cheese/pref-fullscreen.page
+share/help/sl/cheese/pref-image-properties.page
+share/help/sl/cheese/pref-photo-resolution.page
+share/help/sl/cheese/video-record.page
+share/help/sv/cheese/effects-apply.page
+share/help/sv/cheese/figures/cheese-delete.png
+share/help/sv/cheese/figures/cheese-effects.png
+share/help/sv/cheese/figures/cheese-introduction.png
+share/help/sv/cheese/figures/cheese-record.png
+share/help/sv/cheese/figures/cheese-save.png
+share/help/sv/cheese/figures/cheese-take.png
+share/help/sv/cheese/figures/cheese.png
+share/help/sv/cheese/figures/effects.png
+share/help/sv/cheese/figures/image-properties.png
+share/help/sv/cheese/figures/settings.png
+share/help/sv/cheese/index.page
+share/help/sv/cheese/introduction.page
+share/help/sv/cheese/mode-wide.page
+share/help/sv/cheese/photo-delete.page
+share/help/sv/cheese/photo-save.page
+share/help/sv/cheese/photo-take.page
+share/help/sv/cheese/photo-view.page
+share/help/sv/cheese/pref-burst-mode.page
+share/help/sv/cheese/pref-countdown.page
+share/help/sv/cheese/pref-flash.page
+share/help/sv/cheese/pref-fullscreen.page
+share/help/sv/cheese/pref-image-properties.page
+share/help/sv/cheese/pref-photo-resolution.page
+share/help/sv/cheese/video-record.page
+share/help/te/cheese/effects-apply.page
+share/help/te/cheese/figures/cheese-delete.png
+share/help/te/cheese/figures/cheese-effects.png
+share/help/te/cheese/figures/cheese-introduction.png
+share/help/te/cheese/figures/cheese-record.png
+share/help/te/cheese/figures/cheese-save.png
+share/help/te/cheese/figures/cheese-take.png
+share/help/te/cheese/figures/cheese.png
+share/help/te/cheese/figures/effects.png
+share/help/te/cheese/figures/image-properties.png
+share/help/te/cheese/figures/settings.png
+share/help/te/cheese/index.page
+share/help/te/cheese/introduction.page
+share/help/te/cheese/mode-wide.page
+share/help/te/cheese/photo-delete.page
+share/help/te/cheese/photo-save.page
+share/help/te/cheese/photo-take.page
+share/help/te/cheese/photo-view.page
+share/help/te/cheese/pref-burst-mode.page
+share/help/te/cheese/pref-countdown.page
+share/help/te/cheese/pref-flash.page
+share/help/te/cheese/pref-fullscreen.page
+share/help/te/cheese/pref-image-properties.page
+share/help/te/cheese/pref-photo-resolution.page
+share/help/te/cheese/video-record.page
+share/help/th/cheese/effects-apply.page
+share/help/th/cheese/figures/cheese-delete.png
+share/help/th/cheese/figures/cheese-effects.png
+share/help/th/cheese/figures/cheese-introduction.png
+share/help/th/cheese/figures/cheese-record.png
+share/help/th/cheese/figures/cheese-save.png
+share/help/th/cheese/figures/cheese-take.png
+share/help/th/cheese/figures/cheese.png
+share/help/th/cheese/figures/effects.png
+share/help/th/cheese/figures/image-properties.png
+share/help/th/cheese/figures/settings.png
+share/help/th/cheese/index.page
+share/help/th/cheese/introduction.page
+share/help/th/cheese/mode-wide.page
+share/help/th/cheese/photo-delete.page
+share/help/th/cheese/photo-save.page
+share/help/th/cheese/photo-take.page
+share/help/th/cheese/photo-view.page
+share/help/th/cheese/pref-burst-mode.page
+share/help/th/cheese/pref-countdown.page
+share/help/th/cheese/pref-flash.page
+share/help/th/cheese/pref-fullscreen.page
+share/help/th/cheese/pref-image-properties.page
+share/help/th/cheese/pref-photo-resolution.page
+share/help/th/cheese/video-record.page
+share/help/zh_CN/cheese/effects-apply.page
+share/help/zh_CN/cheese/figures/cheese-delete.png
+share/help/zh_CN/cheese/figures/cheese-effects.png
+share/help/zh_CN/cheese/figures/cheese-introduction.png
+share/help/zh_CN/cheese/figures/cheese-record.png
+share/help/zh_CN/cheese/figures/cheese-save.png
+share/help/zh_CN/cheese/figures/cheese-take.png
+share/help/zh_CN/cheese/figures/cheese.png
+share/help/zh_CN/cheese/figures/effects.png
+share/help/zh_CN/cheese/figures/image-properties.png
+share/help/zh_CN/cheese/figures/settings.png
+share/help/zh_CN/cheese/index.page
+share/help/zh_CN/cheese/introduction.page
+share/help/zh_CN/cheese/mode-wide.page
+share/help/zh_CN/cheese/photo-delete.page
+share/help/zh_CN/cheese/photo-save.page
+share/help/zh_CN/cheese/photo-take.page
+share/help/zh_CN/cheese/photo-view.page
+share/help/zh_CN/cheese/pref-burst-mode.page
+share/help/zh_CN/cheese/pref-countdown.page
+share/help/zh_CN/cheese/pref-flash.page
+share/help/zh_CN/cheese/pref-fullscreen.page
+share/help/zh_CN/cheese/pref-image-properties.page
+share/help/zh_CN/cheese/pref-photo-resolution.page
+share/help/zh_CN/cheese/video-record.page
+share/icons/hicolor/16x16/actions/browse-webcam-effects.png
+share/icons/hicolor/16x16/actions/cheese-take-burst.png
+share/icons/hicolor/16x16/actions/cheese-take-photo.png
share/icons/hicolor/16x16/apps/cheese.png
+share/icons/hicolor/22x22/actions/browse-webcam-effects.png
+share/icons/hicolor/22x22/actions/cheese-take-burst.png
+share/icons/hicolor/22x22/actions/cheese-take-photo.png
share/icons/hicolor/22x22/apps/cheese.png
+share/icons/hicolor/24x24/actions/browse-webcam-effects.png
+share/icons/hicolor/24x24/actions/cheese-take-burst.png
+share/icons/hicolor/24x24/actions/cheese-take-photo.png
share/icons/hicolor/24x24/apps/cheese.png
share/icons/hicolor/256x256/apps/cheese.png
+share/icons/hicolor/32x32/actions/browse-webcam-effects.png
+share/icons/hicolor/32x32/actions/cheese-take-burst.png
+share/icons/hicolor/32x32/actions/cheese-take-photo.png
share/icons/hicolor/32x32/apps/cheese.png
+share/icons/hicolor/48x48/actions/browse-webcam-effects.png
+share/icons/hicolor/48x48/actions/cheese-take-burst.png
+share/icons/hicolor/48x48/actions/cheese-take-photo.png
share/icons/hicolor/48x48/apps/cheese.png
-share/icons/hicolor/scalable/apps/cheese.svg
+share/icons/hicolor/scalable/actions/browse-webcam-effects.svg
+share/icons/hicolor/scalable/actions/cheese-take-burst.svg
+share/icons/hicolor/scalable/actions/cheese-take-photo.svg
share/locale/af/LC_MESSAGES/cheese.mo
share/locale/ar/LC_MESSAGES/cheese.mo
share/locale/as/LC_MESSAGES/cheese.mo
@@ -214,9 +729,11 @@ share/locale/dz/LC_MESSAGES/cheese.mo
share/locale/el/LC_MESSAGES/cheese.mo
share/locale/en@shaw/LC_MESSAGES/cheese.mo
share/locale/en_GB/LC_MESSAGES/cheese.mo
+share/locale/eo/LC_MESSAGES/cheese.mo
share/locale/es/LC_MESSAGES/cheese.mo
share/locale/et/LC_MESSAGES/cheese.mo
share/locale/eu/LC_MESSAGES/cheese.mo
+share/locale/fa/LC_MESSAGES/cheese.mo
share/locale/fi/LC_MESSAGES/cheese.mo
share/locale/fr/LC_MESSAGES/cheese.mo
share/locale/ga/LC_MESSAGES/cheese.mo
@@ -231,9 +748,11 @@ share/locale/it/LC_MESSAGES/cheese.mo
share/locale/ja/LC_MESSAGES/cheese.mo
share/locale/ka/LC_MESSAGES/cheese.mo
share/locale/kk/LC_MESSAGES/cheese.mo
+share/locale/km/LC_MESSAGES/cheese.mo
share/locale/kn/LC_MESSAGES/cheese.mo
share/locale/ko/LC_MESSAGES/cheese.mo
share/locale/ku/LC_MESSAGES/cheese.mo
+share/locale/ky/LC_MESSAGES/cheese.mo
share/locale/lt/LC_MESSAGES/cheese.mo
share/locale/lv/LC_MESSAGES/cheese.mo
share/locale/mai/LC_MESSAGES/cheese.mo
@@ -254,6 +773,7 @@ share/locale/pt/LC_MESSAGES/cheese.mo
share/locale/pt_BR/LC_MESSAGES/cheese.mo
share/locale/ro/LC_MESSAGES/cheese.mo
share/locale/ru/LC_MESSAGES/cheese.mo
+share/locale/sk/LC_MESSAGES/cheese.mo
share/locale/sl/LC_MESSAGES/cheese.mo
share/locale/sq/LC_MESSAGES/cheese.mo
share/locale/sr/LC_MESSAGES/cheese.mo
@@ -266,85 +786,13 @@ share/locale/tr/LC_MESSAGES/cheese.mo
share/locale/ug/LC_MESSAGES/cheese.mo
share/locale/uk/LC_MESSAGES/cheese.mo
share/locale/vi/LC_MESSAGES/cheese.mo
+share/locale/xh/LC_MESSAGES/cheese.mo
share/locale/zh_CN/LC_MESSAGES/cheese.mo
share/locale/zh_HK/LC_MESSAGES/cheese.mo
share/locale/zh_TW/LC_MESSAGES/cheese.mo
-share/omf/cheese/cheese-C.omf
-share/omf/cheese/cheese-ca.omf
-share/omf/cheese/cheese-cs.omf
-share/omf/cheese/cheese-de.omf
-share/omf/cheese/cheese-el.omf
-share/omf/cheese/cheese-en_GB.omf
-share/omf/cheese/cheese-es.omf
-share/omf/cheese/cheese-fr.omf
-share/omf/cheese/cheese-it.omf
-share/omf/cheese/cheese-nl.omf
-share/omf/cheese/cheese-oc.omf
-share/omf/cheese/cheese-pt_BR.omf
-share/omf/cheese/cheese-ru.omf
-share/omf/cheese/cheese-sl.omf
-share/omf/cheese/cheese-sv.omf
-share/omf/cheese/cheese-th.omf
-share/omf/cheese/cheese-zh_CN.omf
-@dirrm share/omf/cheese
-@dirrmtry share/icons/hicolor/256x256/apps
-@dirrmtry share/icons/hicolor/256x256
-@dirrm share/gnome/help/cheese/zh_CN/figures
-@dirrm share/gnome/help/cheese/zh_CN
-@dirrm share/gnome/help/cheese/th/figures
-@dirrm share/gnome/help/cheese/th
-@dirrm share/gnome/help/cheese/sv/figures
-@dirrm share/gnome/help/cheese/sv
-@dirrm share/gnome/help/cheese/sl/figures
-@dirrm share/gnome/help/cheese/sl
-@dirrm share/gnome/help/cheese/ru/figures
-@dirrm share/gnome/help/cheese/ru
-@dirrm share/gnome/help/cheese/pt_BR/figures
-@dirrm share/gnome/help/cheese/pt_BR
-@dirrm share/gnome/help/cheese/oc/figures
-@dirrm share/gnome/help/cheese/oc
-@dirrm share/gnome/help/cheese/nl/figures
-@dirrm share/gnome/help/cheese/nl
-@dirrm share/gnome/help/cheese/it/figures
-@dirrm share/gnome/help/cheese/it
-@dirrm share/gnome/help/cheese/fr/figures
-@dirrm share/gnome/help/cheese/fr
-@dirrm share/gnome/help/cheese/es/figures
-@dirrm share/gnome/help/cheese/es
-@dirrm share/gnome/help/cheese/en_GB/figures
-@dirrm share/gnome/help/cheese/en_GB
-@dirrm share/gnome/help/cheese/el/figures
-@dirrm share/gnome/help/cheese/el
-@dirrm share/gnome/help/cheese/de/figures
-@dirrm share/gnome/help/cheese/de
-@dirrm share/gnome/help/cheese/cs/figures
-@dirrm share/gnome/help/cheese/cs
-@dirrm share/gnome/help/cheese/ca/figures
-@dirrm share/gnome/help/cheese/ca
-@dirrm share/gnome/help/cheese/C/figures
-@dirrm share/gnome/help/cheese/C
-@dirrm share/gnome/help/cheese
-@dirrm %%DOCSDIR%%
-@dirrm %%DATADIR%%/pixmaps
-@dirrm %%DATADIR%%/icons/hicolor/scalable/actions
-@dirrm %%DATADIR%%/icons/hicolor/scalable
-@dirrm %%DATADIR%%/icons/hicolor/48x48/actions
-@dirrm %%DATADIR%%/icons/hicolor/48x48
-@dirrm %%DATADIR%%/icons/hicolor/32x32/actions
-@dirrm %%DATADIR%%/icons/hicolor/32x32
-@dirrm %%DATADIR%%/icons/hicolor/24x24/actions
-@dirrm %%DATADIR%%/icons/hicolor/24x24
-@dirrm %%DATADIR%%/icons/hicolor/22x22/actions
-@dirrm %%DATADIR%%/icons/hicolor/22x22
-@dirrm %%DATADIR%%/icons/hicolor/16x16/actions
-@dirrm %%DATADIR%%/icons/hicolor/16x16
-@dirrm %%DATADIR%%/icons/hicolor
-@dirrm %%DATADIR%%/icons
-@dirrm %%DATADIR%%/effects
-@dirrm %%DATADIR%%
-@dirrmtry share/applications
-@dirrm libexec/cheese
-@dirrm include/cheese
+share/locale/zu/LC_MESSAGES/cheese.mo
+@dirrmtry share/locale/zu/LC_MESSAGES
+@dirrmtry share/locale/zu
@dirrmtry share/locale/zh_HK/LC_MESSAGES
@dirrmtry share/locale/zh_HK
@dirrmtry share/locale/ug/LC_MESSAGES
@@ -381,3 +829,86 @@ share/omf/cheese/cheese-zh_CN.omf
@dirrmtry share/locale/ast
@dirrmtry share/locale/as/LC_MESSAGES
@dirrmtry share/locale/as
+@dirrmtry share/icons/hicolor/256x256/apps
+@dirrmtry share/icons/hicolor/256x256
+@dirrmtry share/help/zh_CN/cheese/figures
+@dirrmtry share/help/zh_CN/cheese
+@dirrmtry share/help/zh_CN
+@dirrmtry share/help/th/cheese/figures
+@dirrmtry share/help/th/cheese
+@dirrmtry share/help/th
+@dirrmtry share/help/te/cheese/figures
+@dirrmtry share/help/te/cheese
+@dirrmtry share/help/te
+@dirrmtry share/help/sv/cheese/figures
+@dirrmtry share/help/sv/cheese
+@dirrmtry share/help/sv
+@dirrmtry share/help/sl/cheese/figures
+@dirrmtry share/help/sl/cheese
+@dirrmtry share/help/sl
+@dirrmtry share/help/ru/cheese/figures
+@dirrmtry share/help/ru/cheese
+@dirrmtry share/help/ru
+@dirrmtry share/help/pt_BR/cheese/figures
+@dirrmtry share/help/pt_BR/cheese
+@dirrmtry share/help/pt_BR
+@dirrmtry share/help/pa/cheese/figures
+@dirrmtry share/help/pa/cheese
+@dirrmtry share/help/pa
+@dirrmtry share/help/oc/cheese/figures
+@dirrmtry share/help/oc/cheese
+@dirrmtry share/help/oc
+@dirrmtry share/help/nl/cheese/figures
+@dirrmtry share/help/nl/cheese
+@dirrmtry share/help/nl
+@dirrmtry share/help/lv/cheese/figures
+@dirrmtry share/help/lv/cheese
+@dirrmtry share/help/lv
+@dirrmtry share/help/ko/cheese/figures
+@dirrmtry share/help/ko/cheese
+@dirrmtry share/help/ko
+@dirrmtry share/help/it/cheese/figures
+@dirrmtry share/help/it/cheese
+@dirrmtry share/help/it
+@dirrmtry share/help/id/cheese/figures
+@dirrmtry share/help/id/cheese
+@dirrmtry share/help/id
+@dirrmtry share/help/hu/cheese/figures
+@dirrmtry share/help/hu/cheese
+@dirrmtry share/help/hu
+@dirrmtry share/help/gl/cheese/figures
+@dirrmtry share/help/gl/cheese
+@dirrmtry share/help/gl
+@dirrmtry share/help/fr/cheese/figures
+@dirrmtry share/help/fr/cheese
+@dirrmtry share/help/fr
+@dirrmtry share/help/fi/cheese/figures
+@dirrmtry share/help/fi/cheese
+@dirrmtry share/help/fi
+@dirrmtry share/help/es/cheese/figures
+@dirrmtry share/help/es/cheese
+@dirrmtry share/help/es
+@dirrmtry share/help/en_GB/cheese/figures
+@dirrmtry share/help/en_GB/cheese
+@dirrmtry share/help/en_GB
+@dirrmtry share/help/el/cheese/figures
+@dirrmtry share/help/el/cheese
+@dirrmtry share/help/el
+@dirrmtry share/help/de/cheese/figures
+@dirrmtry share/help/de/cheese
+@dirrmtry share/help/de
+@dirrmtry share/help/cs/cheese/figures
+@dirrmtry share/help/cs/cheese
+@dirrmtry share/help/cs
+@dirrmtry share/help/ca/cheese/figures
+@dirrmtry share/help/ca/cheese
+@dirrmtry share/help/ca
+@dirrmtry share/help/C/cheese/figures
+@dirrmtry share/help/C/cheese
+@dirrmtry share/help/C
+@dirrmtry share/help
+@dirrm %%DOCSDIR%%
+@dirrm %%DATADIR%%/pixmaps
+@dirrm %%DATADIR%%
+@dirrmtry share/applications
+@dirrm include/cheese