|
@ -1,98 +0,0 @@
|
||||||
*.o
|
|
||||||
*.swp
|
|
||||||
*.swo
|
|
||||||
*~
|
|
||||||
ABOUT-NLS
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
aclocal.m4
|
|
||||||
autom4te.cache/
|
|
||||||
config.cache
|
|
||||||
config.cache-env
|
|
||||||
config.guess
|
|
||||||
config.h
|
|
||||||
config.h.in
|
|
||||||
config.log
|
|
||||||
config.status
|
|
||||||
config.sub
|
|
||||||
configure
|
|
||||||
data/Makefile
|
|
||||||
data/Makefile.in
|
|
||||||
data/icon.edj
|
|
||||||
data/theme.edj
|
|
||||||
depcomp
|
|
||||||
doc/Doxyfile
|
|
||||||
doc/Makefile
|
|
||||||
doc/Makefile.in
|
|
||||||
emotion.pc
|
|
||||||
emotion.spec
|
|
||||||
install-sh
|
|
||||||
libtool
|
|
||||||
ltmain.sh
|
|
||||||
m4/libtool.m4
|
|
||||||
m4/ltoptions.m4
|
|
||||||
m4/ltsugar.m4
|
|
||||||
m4/ltversion.m4
|
|
||||||
m4/lt~obsolete.m4
|
|
||||||
missing
|
|
||||||
src/Makefile
|
|
||||||
src/Makefile.in
|
|
||||||
src/bin/.deps/
|
|
||||||
src/bin/.libs/
|
|
||||||
src/bin/Makefile
|
|
||||||
src/bin/Makefile.in
|
|
||||||
src/bin/emotion_test
|
|
||||||
src/edje_external/.deps/
|
|
||||||
src/edje_external/.libs/
|
|
||||||
src/edje_external/Makefile
|
|
||||||
src/edje_external/Makefile.in
|
|
||||||
src/edje_external/module.la
|
|
||||||
src/edje_external/module_la-emotion.lo
|
|
||||||
src/examples/.deps/
|
|
||||||
src/examples/.libs/
|
|
||||||
src/examples/Makefile
|
|
||||||
src/examples/Makefile.in
|
|
||||||
src/examples/emotion_basic_example
|
|
||||||
src/examples/emotion_border_example
|
|
||||||
src/examples/emotion_generic_example
|
|
||||||
src/examples/emotion_generic_subtitle_example
|
|
||||||
src/examples/emotion_signals_example
|
|
||||||
src/generic_players/Makefile
|
|
||||||
src/generic_players/Makefile.in
|
|
||||||
src/generic_players/vlc/.deps/
|
|
||||||
src/generic_players/vlc/Makefile
|
|
||||||
src/generic_players/vlc/Makefile.in
|
|
||||||
src/generic_players/vlc/em_generic_vlc
|
|
||||||
src/lib/.deps/
|
|
||||||
src/lib/.libs/
|
|
||||||
src/lib/Makefile
|
|
||||||
src/lib/Makefile.in
|
|
||||||
src/lib/emotion_main.lo
|
|
||||||
src/lib/emotion_smart.lo
|
|
||||||
src/lib/libemotion.la
|
|
||||||
src/modules/Makefile
|
|
||||||
src/modules/Makefile.in
|
|
||||||
src/modules/generic/.deps/
|
|
||||||
src/modules/generic/.libs/
|
|
||||||
src/modules/generic/Makefile
|
|
||||||
src/modules/generic/Makefile.in
|
|
||||||
src/modules/generic/em_generic.la
|
|
||||||
src/modules/generic/em_generic_la-emotion_generic.lo
|
|
||||||
src/modules/gstreamer/.deps/
|
|
||||||
src/modules/gstreamer/.libs/
|
|
||||||
src/modules/gstreamer/Makefile
|
|
||||||
src/modules/gstreamer/Makefile.in
|
|
||||||
src/modules/gstreamer/gstreamer.la
|
|
||||||
src/modules/gstreamer/gstreamer_la-emotion_alloc.lo
|
|
||||||
src/modules/gstreamer/gstreamer_la-emotion_convert.lo
|
|
||||||
src/modules/gstreamer/gstreamer_la-emotion_fakeeos.lo
|
|
||||||
src/modules/gstreamer/gstreamer_la-emotion_gstreamer.lo
|
|
||||||
src/modules/gstreamer/gstreamer_la-emotion_sink.lo
|
|
||||||
src/modules/xine/.deps/
|
|
||||||
src/modules/xine/.libs/
|
|
||||||
src/modules/xine/Makefile
|
|
||||||
src/modules/xine/Makefile.in
|
|
||||||
src/modules/xine/xine.la
|
|
||||||
src/modules/xine/xine_la-emotion_xine.lo
|
|
||||||
src/modules/xine/xine_la-emotion_xine_vo_out.lo
|
|
||||||
stamp-h1
|
|
|
@ -1,11 +0,0 @@
|
||||||
Carsten Haitzler <raster@rasterman.com>
|
|
||||||
Vincent Torri <torri@maths.univ-evry.fr>
|
|
||||||
Nicolas Aguirre <aguirre.nicolas@gmail.com>
|
|
||||||
Sebastian Dransfeld <sd@tango.flipp.net>
|
|
||||||
Cedric Bail <cedric.bail@free.fr>
|
|
||||||
Rafael Antognolli <antognolli@profusion.mobi>
|
|
||||||
Jérôme Pinot <ngc891@gmail.com>
|
|
||||||
Pierre Le Magourou <pierre.lemagourou@openwide.fr>
|
|
||||||
Hugo Camboulive <hugo.camboulive@zodiacaerospace.com>
|
|
||||||
Sohyun Kim <anna1014.kim@samsung.com>
|
|
||||||
Leandro Dorileo <dorileo@profusion.mobi>
|
|
|
@ -1,14 +0,0 @@
|
||||||
COMPILING and INSTALLING:
|
|
||||||
|
|
||||||
If you got a official release tar archive do:
|
|
||||||
./configure
|
|
||||||
|
|
||||||
( otherwise if you got this from enlightenment cvs do: ./autogen.sh )
|
|
||||||
|
|
||||||
Then to compile:
|
|
||||||
make
|
|
||||||
|
|
||||||
To install (run this as root, or the user who handles installs):
|
|
||||||
make install
|
|
||||||
|
|
||||||
NOTE: You MUST make install Emotion for it to run properly.
|
|
|
@ -1,52 +0,0 @@
|
||||||
## Process this file with automake to produce Makefile.in
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
|
||||||
|
|
||||||
SUBDIRS = src data doc
|
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = \
|
|
||||||
Makefile.in \
|
|
||||||
aclocal.m4 \
|
|
||||||
config.guess \
|
|
||||||
config.h.in \
|
|
||||||
config.sub \
|
|
||||||
configure \
|
|
||||||
depcomp \
|
|
||||||
install-sh \
|
|
||||||
ltconfig \
|
|
||||||
ltmain.sh \
|
|
||||||
missing \
|
|
||||||
mkinstalldirs \
|
|
||||||
stamp-h.in \
|
|
||||||
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \
|
|
||||||
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \
|
|
||||||
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
README \
|
|
||||||
AUTHORS \
|
|
||||||
COPYING \
|
|
||||||
autogen.sh \
|
|
||||||
emotion.spec \
|
|
||||||
emotion.spec.in \
|
|
||||||
emotion.pc.in \
|
|
||||||
m4/ac_attribute.m4 \
|
|
||||||
m4/efl_binary.m4 \
|
|
||||||
m4/efl_doxygen.m4 \
|
|
||||||
m4/efl_edje_external.m4 \
|
|
||||||
m4/efl_examples.m4 \
|
|
||||||
m4/efl_shm_open.m4 \
|
|
||||||
m4/emotion_check.m4 \
|
|
||||||
m4/gst-element-check.m4
|
|
||||||
|
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
|
||||||
pkgconfig_DATA = emotion.pc
|
|
||||||
|
|
||||||
.PHONY: doc
|
|
||||||
|
|
||||||
# Documentation
|
|
||||||
|
|
||||||
doc:
|
|
||||||
@echo "entering doc/"
|
|
||||||
make -C doc doc
|
|
|
@ -1,27 +0,0 @@
|
||||||
|
|
||||||
Emotion smart object
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
|
|
||||||
Xine module
|
|
||||||
-----------
|
|
||||||
|
|
||||||
* Fix seek and get_pos threads delete bugs (infinite loop)
|
|
||||||
* Add support of visualizations for audio files (Goom...)
|
|
||||||
|
|
||||||
|
|
||||||
Gstreamer module
|
|
||||||
----------------
|
|
||||||
|
|
||||||
* Add gststreamselector to support multiple video and audio streams.
|
|
||||||
* Add API for visualisation plugins
|
|
||||||
* Add http source (N. Aguirre)
|
|
||||||
* Add mms source
|
|
||||||
* Add rtsp source
|
|
||||||
* Add dvb source
|
|
||||||
* Add v4l2 source (no v4l1 source) (N. Aguirre)
|
|
||||||
* Add dvd source (waiting for the dvdnav gstreamer source plugin, though...)
|
|
||||||
* Add daap source
|
|
||||||
* Add upnp source
|
|
||||||
* Implement time shifting
|
|
||||||
* Add evas sink to gstreamer (in progress: V. Torri)
|
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
rm -rf autom4te.cache
|
|
||||||
rm -f aclocal.m4 ltmain.sh
|
|
||||||
|
|
||||||
touch README
|
|
||||||
touch ABOUT-NLS
|
|
||||||
|
|
||||||
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
|
|
||||||
echo "Running autoheader..." ; autoheader || exit 1
|
|
||||||
echo "Running autoconf..." ; autoconf || exit 1
|
|
||||||
echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
|
|
||||||
echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
|
|
||||||
|
|
||||||
W=0
|
|
||||||
|
|
||||||
rm -f config.cache-env.tmp
|
|
||||||
echo "OLD_PARM=\"$@\"" >> config.cache-env.tmp
|
|
||||||
echo "OLD_CFLAGS=\"$CFLAGS\"" >> config.cache-env.tmp
|
|
||||||
echo "OLD_PATH=\"$PATH\"" >> config.cache-env.tmp
|
|
||||||
echo "OLD_PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\"" >> config.cache-env.tmp
|
|
||||||
echo "OLD_LDFLAGS=\"$LDFLAGS\"" >> config.cache-env.tmp
|
|
||||||
|
|
||||||
cmp config.cache-env.tmp config.cache-env >> /dev/null
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
W=1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $W -ne 0 ]; then
|
|
||||||
echo "Cleaning configure cache...";
|
|
||||||
rm -f config.cache config.cache-env
|
|
||||||
mv config.cache-env.tmp config.cache-env
|
|
||||||
else
|
|
||||||
rm -f config.cache-env.tmp
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$NOCONFIGURE" ]; then
|
|
||||||
./configure -C "$@"
|
|
||||||
fi
|
|
|
@ -1,370 +0,0 @@
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
m4_define([v_maj], [1])
|
|
||||||
m4_define([v_min], [7])
|
|
||||||
m4_define([v_mic], [99])
|
|
||||||
m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
|
|
||||||
m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
|
|
||||||
##-- When released, remove the dnl on the below line
|
|
||||||
dnl m4_undefine([v_rev])
|
|
||||||
##-- When doing snapshots - change soname. remove dnl on below line
|
|
||||||
m4_define([relname], [ver-pre-svn-07])
|
|
||||||
m4_define([v_rel], [-release relname])
|
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])],
|
|
||||||
[m4_define([v_ver], [v_maj.v_min.v_mic])])
|
|
||||||
m4_define([lt_rev], m4_eval(v_maj + v_min))
|
|
||||||
m4_define([lt_cur], v_mic)
|
|
||||||
m4_define([lt_age], v_min)
|
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
|
|
||||||
AC_INIT([emotion], [v_ver], [enlightenment-devel@lists.sourceforge.net])
|
|
||||||
AC_PREREQ([2.60])
|
|
||||||
AC_CONFIG_SRCDIR([configure.ac])
|
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
|
||||||
AC_CANONICAL_BUILD
|
|
||||||
AC_CANONICAL_HOST
|
|
||||||
AC_ISC_POSIX
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.6 dist-bzip2])
|
|
||||||
AC_CONFIG_HEADERS([config.h])
|
|
||||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
||||||
|
|
||||||
AC_LIBTOOL_WIN32_DLL
|
|
||||||
define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
|
|
||||||
define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
|
|
||||||
AC_PROG_LIBTOOL
|
|
||||||
|
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
|
|
||||||
m4_ifdef([v_rel], , [m4_define([v_rel], [])])
|
|
||||||
AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
|
|
||||||
AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
|
|
||||||
AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
|
|
||||||
AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
|
|
||||||
version_info="lt_rev:lt_cur:lt_age"
|
|
||||||
release_info="v_rel"
|
|
||||||
AC_SUBST(version_info)
|
|
||||||
AC_SUBST(release_info)
|
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
|
||||||
VMAJ=v_maj
|
|
||||||
AC_SUBST(VMAJ)
|
|
||||||
|
|
||||||
want_generic="yes"
|
|
||||||
case "$host_os" in
|
|
||||||
mingw*)
|
|
||||||
want_xine="no"
|
|
||||||
want_gstreamer="yes"
|
|
||||||
want_generic="no"
|
|
||||||
want_generic_vlc="no"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
want_xine="yes"
|
|
||||||
want_gstreamer="yes"
|
|
||||||
want_generic_vlc="yes"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
requirement_emotion=""
|
|
||||||
|
|
||||||
### Additional options to configure
|
|
||||||
|
|
||||||
EFL_ENABLE_BIN([emotion-test])
|
|
||||||
|
|
||||||
# edje_cc
|
|
||||||
|
|
||||||
AC_ARG_WITH([edje-cc],
|
|
||||||
[AC_HELP_STRING([--with-edje-cc=PATH], [specify a specific path to edje_cc])],
|
|
||||||
[
|
|
||||||
v=$withval;
|
|
||||||
edje_cc=$v
|
|
||||||
echo " Enlightenment edje_cc explicitly set to "$edje_cc;
|
|
||||||
],
|
|
||||||
[edje_cc=$(pkg-config --variable=prefix edje)/bin/edje_cc])
|
|
||||||
AC_SUBST(edje_cc)
|
|
||||||
|
|
||||||
|
|
||||||
### Checks for programs
|
|
||||||
AC_PROG_CC
|
|
||||||
|
|
||||||
# pkg-config
|
|
||||||
PKG_PROG_PKG_CONFIG
|
|
||||||
|
|
||||||
# Check whether pkg-config supports Requires.private
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
|
|
||||||
pkgconfig_requires_private="Requires.private"
|
|
||||||
else
|
|
||||||
pkgconfig_requires_private="Requires"
|
|
||||||
fi
|
|
||||||
AC_SUBST(pkgconfig_requires_private)
|
|
||||||
|
|
||||||
# doxygen program for documentation building
|
|
||||||
|
|
||||||
EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
|
|
||||||
|
|
||||||
|
|
||||||
### Checks for libraries
|
|
||||||
|
|
||||||
requirement_emotion="ecore >= 1.6.99 evas >= 1.6.99 eet >= 1.6.99 eina >= 1.6.99"
|
|
||||||
PKG_CHECK_MODULES(EMOTION, [${requirement_emotion}])
|
|
||||||
|
|
||||||
|
|
||||||
if test "x${have_emotion_test}" = "xyes" ; then
|
|
||||||
PKG_CHECK_MODULES(EMOTION_BIN, [eina >= 1.6.99 evas >= 1.6.99 ecore >= 1.6.99 ecore-evas >= 1.6.99 edje >= 1.6.99])
|
|
||||||
fi
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(ECORE_X, [ecore-x >= 1.6.99 ecore-evas >= 1.6.99], [have_ecore_x="yes"], [have_ecore_x="no"])
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(ECORE_FB, [ecore-fb >= 1.6.99], [have_ecore_fb="yes"], [have_ecore_fb="no"])
|
|
||||||
|
|
||||||
if test "x${have_ecore_x}" = "xyes" ; then
|
|
||||||
AC_DEFINE(EMOTION_HAVE_ECORE_X, 1, [Define to 1 if Ecore_X is enabled])
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x${have_ecore_fb}" = "xyes" ; then
|
|
||||||
AC_DEFINE(EMOTION_HAVE_ECORE_FB, 1, [Define to 1 if Ecore_Fb is enabled])
|
|
||||||
fi
|
|
||||||
|
|
||||||
PKG_CHECK_EXISTS([evas-software-x11 >= 1.6.99], [AC_DEFINE(HAVE_EVAS_SOFWARE_X11, 1, [Evas Software Xlib Engine Support])])
|
|
||||||
|
|
||||||
PKG_CHECK_EXISTS([evas-xrender-x11 >= 1.6.99], [AC_DEFINE(HAVE_EVAS_XRENDER_X11, 1, [Evas Software Xlib Engine Support])])
|
|
||||||
|
|
||||||
PKG_CHECK_EXISTS([evas-opengl-x11 >= 1.6.99], [AC_DEFINE(HAVE_EVAS_OPENGL_X11, 1, [Evas OpenGL Xlib Engine Support])])
|
|
||||||
|
|
||||||
PKG_CHECK_EXISTS([evas-fb >= 1.6.99], [AC_DEFINE(HAVE_EVAS_FB, 1, [Evas Framebuffer Engine Support])])
|
|
||||||
|
|
||||||
EFL_EDJE_EXTERNAL([have_edje_external="yes"], [have_edje_external="no"])
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(EEZE, [eeze >= 1.6.99], [have_eeze="yes"], [have_eeze="no"])
|
|
||||||
|
|
||||||
if test "x${have_eeze}" = "xyes"; then
|
|
||||||
AC_DEFINE(EMOTION_HAVE_EEZE, 1, [Define to 1 if Eeze is available])
|
|
||||||
requirement_emotion="${requirement_emotion} eeze >= 1.6.99"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES([EIO], [eio >= 1.6.99], [have_eio="yes"], [have_eio="no"])
|
|
||||||
if test "x${have_eio}" = "xyes"; then
|
|
||||||
AC_DEFINE(HAVE_EIO, 1, [Use EIO for asynchronous file access])
|
|
||||||
requirement_emotion="eio >= 1.6.99 ${requirement_emotion}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL([HAVE_EIO], [test "x${have_eio}" = "xyes"])
|
|
||||||
|
|
||||||
# ecore-x availability, used for XV, VAAPI, VDPAU output.
|
|
||||||
|
|
||||||
have_ecore_x="no"
|
|
||||||
AC_ARG_ENABLE([ecore-x],
|
|
||||||
[AC_HELP_STRING([--disable-ecore-x], [disable ecore-x support. @<:@default=detect@:>@])],
|
|
||||||
[
|
|
||||||
if test "x${enableval}" = "xyes" || test "x${enableval}" = "xauto" ; then
|
|
||||||
want_ecore_x=${enableval}
|
|
||||||
else
|
|
||||||
want_ecore_x="no"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[want_ecore_x="auto"])
|
|
||||||
|
|
||||||
if ! test "x$want_ecore_x" = "xno" ; then
|
|
||||||
PKG_CHECK_MODULES([ECORE_X],
|
|
||||||
[ecore-x >= 1.6.99],
|
|
||||||
[
|
|
||||||
AC_DEFINE(HAVE_ECORE_X, 1, [X11 support for Ecore])
|
|
||||||
have_ecore_x="yes"
|
|
||||||
requirement_elm="ecore-x >= 1.6.99 ${requirement_elm}"
|
|
||||||
],
|
|
||||||
[have_ecore_x="no"]
|
|
||||||
)
|
|
||||||
else
|
|
||||||
have_ecore_x="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$want_ecore_x" = "xyes" && test "x$have_ecore_x" = "xno" ; then
|
|
||||||
AC_MSG_ERROR([ecore-x support requested, but not found by pkg-config.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
### Checks for header files
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS([unistd.h])
|
|
||||||
|
|
||||||
# Check for video4linux
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for V4L2])
|
|
||||||
AC_COMPILE_IFELSE(
|
|
||||||
[AC_LANG_PROGRAM(
|
|
||||||
[[
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <linux/videodev2.h>
|
|
||||||
]],
|
|
||||||
[[
|
|
||||||
fprintf(stdout, "%i\n", V4L2_CAP_VIDEO_CAPTURE);
|
|
||||||
]])],
|
|
||||||
[
|
|
||||||
AC_DEFINE(HAVE_V4L2, 1, [Define to 1 if you have Video4Linux 2 available])
|
|
||||||
have_v4l2="yes"
|
|
||||||
],
|
|
||||||
[have_v4l2="no"])
|
|
||||||
AC_MSG_RESULT([${have_v4l2}])
|
|
||||||
|
|
||||||
### Checks for types
|
|
||||||
|
|
||||||
|
|
||||||
### Checks for structures
|
|
||||||
|
|
||||||
|
|
||||||
### Checks for compiler characteristics
|
|
||||||
AC_C_BIGENDIAN
|
|
||||||
AC_C___ATTRIBUTE__
|
|
||||||
|
|
||||||
EFL_EMOTION_BUILD=""
|
|
||||||
case "$host_os" in
|
|
||||||
mingw32ce*)
|
|
||||||
EMOTION_CPPFLAGS="-D_WIN32_WCE=0x0420"
|
|
||||||
EFL_EMOTION_BUILD="-DEFL_EMOTION_BUILD"
|
|
||||||
;;
|
|
||||||
mingw*)
|
|
||||||
EMOTION_CPPFLAGS="-D_WIN32_WINNT=0x0501"
|
|
||||||
EFL_EMOTION_BUILD="-DEFL_EMOTION_BUILD"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
AC_SUBST(EFL_EMOTION_BUILD)
|
|
||||||
AC_SUBST(EMOTION_CPPFLAGS)
|
|
||||||
|
|
||||||
|
|
||||||
### Checks for linker characteristics
|
|
||||||
|
|
||||||
# use --enable-auto-import on Windows
|
|
||||||
|
|
||||||
lt_enable_auto_import=""
|
|
||||||
case "$host_os" in
|
|
||||||
mingw*)
|
|
||||||
lt_enable_auto_import="-Wl,--enable-auto-import"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
AC_SUBST(lt_enable_auto_import)
|
|
||||||
|
|
||||||
|
|
||||||
### Checks for library functions
|
|
||||||
AC_FUNC_ALLOCA
|
|
||||||
|
|
||||||
|
|
||||||
### Modules
|
|
||||||
|
|
||||||
EMOTION_CHECK_MODULE([Xine], [${want_xine}])
|
|
||||||
EMOTION_CHECK_MODULE([Gstreamer], [${want_gstreamer}])
|
|
||||||
EMOTION_CHECK_MODULE([Generic], [${want_generic}])
|
|
||||||
|
|
||||||
EMOTION_CHECK_GENERIC_PLAYER([VLC], [${want_generic_vlc}])
|
|
||||||
|
|
||||||
if test "x${enable_xine}" = "xno" && test "x${enable_gstreamer}" = "xno" && test "x${enable_generic}" = "xno" ; then
|
|
||||||
AC_MSG_ERROR([Xine, Gstreamer or Generic backends must be selected to build Emotion])
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if gstreamer X Overlay is available
|
|
||||||
build_xoverlay="no"
|
|
||||||
if test "x${enable_gstreamer}" = "xyes" ; then
|
|
||||||
PKG_CHECK_MODULES([GSTREAMER_INTERFACE],
|
|
||||||
[gstreamer-interfaces-0.10 >= 0.10.34],
|
|
||||||
[build_xoverlay="yes"],
|
|
||||||
[build_xoverlay="no"])
|
|
||||||
if test "x${build_xoverlay}" = "xyes" ; then
|
|
||||||
save_CPPFLAGS=$CPPFLAGS
|
|
||||||
CPPFLAGS="$CPPFLAGS ${GSTREAMER_CFLAGS} ${GSTREAMER_INTERFACE_CFLAGS}"
|
|
||||||
AC_CHECK_HEADER([gst/interfaces/xoverlay.h],
|
|
||||||
[
|
|
||||||
AC_DEFINE(HAVE_XOVERLAY_H, 1, [Build with Gstreamer Xoverlay support])
|
|
||||||
build_xoverlay="yes"
|
|
||||||
],
|
|
||||||
[build_xoverlay="no"])
|
|
||||||
CPPFLAGS=$save_CPPFLAGS
|
|
||||||
|
|
||||||
save_LDFLAGS=${LDFLAGS}
|
|
||||||
LDFLAGS="${LDFLAGS} ${GSTREAMER_INTERFACES}"
|
|
||||||
AC_CHECK_LIB([gstinterfaces-0.10],
|
|
||||||
[gst_x_overlay_set_window_handle],
|
|
||||||
[AC_DEFINE([HAVE_X_OVERLAY_SET], [1], [Use gst_x_overlay_set_window_handle instead of old deprecated gst_x_overlay_set_xwindow_id])])
|
|
||||||
LDFLAGS=$sava_LDFLAGS
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
### install and build examples
|
|
||||||
|
|
||||||
EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"])
|
|
||||||
EFL_CHECK_INSTALL_EXAMPLES([enable_install_examples="yes"], [enable_install_examples="no"])
|
|
||||||
|
|
||||||
AC_SUBST(requirement_emotion)
|
|
||||||
|
|
||||||
AC_OUTPUT([
|
|
||||||
Makefile
|
|
||||||
emotion.pc
|
|
||||||
emotion.spec
|
|
||||||
src/Makefile
|
|
||||||
src/lib/Makefile
|
|
||||||
src/modules/Makefile
|
|
||||||
src/modules/xine/Makefile
|
|
||||||
src/modules/gstreamer/Makefile
|
|
||||||
src/modules/generic/Makefile
|
|
||||||
src/edje_external/Makefile
|
|
||||||
src/generic_players/Makefile
|
|
||||||
src/generic_players/vlc/Makefile
|
|
||||||
src/bin/Makefile
|
|
||||||
src/examples/Makefile
|
|
||||||
doc/Makefile
|
|
||||||
doc/Doxyfile
|
|
||||||
data/Makefile
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
## Info
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
echo "------------------------------------------------------------------------"
|
|
||||||
echo "$PACKAGE $VERSION"
|
|
||||||
echo "------------------------------------------------------------------------"
|
|
||||||
echo
|
|
||||||
echo "Configuration Options Summary:"
|
|
||||||
echo
|
|
||||||
echo " Modules:"
|
|
||||||
echo " Xine...............: ${enable_xine}"
|
|
||||||
echo " Gstreamer..........: ${enable_gstreamer} (X: ${have_ecore_x}/${build_xoverlay})"
|
|
||||||
echo " Generic............: ${enable_generic}"
|
|
||||||
|
|
||||||
if test "x${enable_generic}" = "xyes" || test "x${enable_generic}" = "xstatic"; then
|
|
||||||
echo
|
|
||||||
echo " Generic Players:"
|
|
||||||
echo " VLC................: ${enable_generic_vlc}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo " Build emotion_test...: $have_emotion_test"
|
|
||||||
echo " edje_cc..............: ${edje_cc}"
|
|
||||||
echo
|
|
||||||
echo " Edje EXTERNAL support: ${have_edje_external}"
|
|
||||||
echo
|
|
||||||
echo " Eio..................: ${have_eio}"
|
|
||||||
echo " V4L2.................: ${have_v4l2}"
|
|
||||||
echo
|
|
||||||
echo "Documentation..........: ${build_doc}"
|
|
||||||
echo "Examples.............: ${enable_build_examples}"
|
|
||||||
echo "Examples installed...: ${enable_install_examples}"
|
|
||||||
echo
|
|
||||||
echo "Compilation............: make (or gmake)"
|
|
||||||
echo " CPPFLAGS.............: $CPPFLAGS"
|
|
||||||
echo " CFLAGS...............: $CFLAGS"
|
|
||||||
echo " LDFLAGS..............: $LDFLAGS"
|
|
||||||
echo
|
|
||||||
echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
|
|
||||||
echo " prefix...............: $prefix"
|
|
||||||
echo
|
|
||||||
if test "x${have_static_module}" = "xyes" ; then
|
|
||||||
echo -e "\0033\01331;31mWarning\0033\01331;0m: You are trying to link statically one or more modules to Emotion."
|
|
||||||
echo " You must know what you are doing, or else you will have a lot of problems."
|
|
||||||
echo " And asparagus will disappear from the earth."
|
|
||||||
echo " Think about that."
|
|
||||||
echo
|
|
||||||
fi
|
|
|
@ -1,57 +0,0 @@
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
EDJE_CC = @edje_cc@
|
|
||||||
EDJE_FLAGS = -id $(top_srcdir)/data -fd $(top_srcdir)/data
|
|
||||||
|
|
||||||
filesdir = $(datadir)/$(PACKAGE)/data
|
|
||||||
|
|
||||||
files_DATA =
|
|
||||||
|
|
||||||
if BUILD_EMOTION_TEST
|
|
||||||
files_DATA += theme.edj
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ENABLE_EDJE_EXTERNAL
|
|
||||||
files_DATA += icon.edj
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
bpause.png \
|
|
||||||
bplay.png \
|
|
||||||
bstop.png \
|
|
||||||
e_logo.png \
|
|
||||||
fr1.png \
|
|
||||||
fr2.png \
|
|
||||||
fr3.png \
|
|
||||||
fr4.png \
|
|
||||||
fr5.png \
|
|
||||||
fr6.png \
|
|
||||||
fr7.png \
|
|
||||||
h_slider.png \
|
|
||||||
knob.png \
|
|
||||||
orb.png \
|
|
||||||
pnl.png \
|
|
||||||
sl.png \
|
|
||||||
tiles.png \
|
|
||||||
video_frame_bottom.png \
|
|
||||||
video_frame_left.png \
|
|
||||||
video_frame_right.png \
|
|
||||||
video_frame_top.png \
|
|
||||||
whb.png \
|
|
||||||
window_inner_shadow.png \
|
|
||||||
theme.edc \
|
|
||||||
icon.edc
|
|
||||||
|
|
||||||
theme.edj: Makefile theme.edc
|
|
||||||
$(EDJE_CC) $(EDJE_FLAGS) \
|
|
||||||
$(top_srcdir)/data/theme.edc \
|
|
||||||
$(top_builddir)/data/theme.edj
|
|
||||||
|
|
||||||
icon.edj: Makefile icon.edc
|
|
||||||
$(EDJE_CC) $(EDJE_FLAGS) \
|
|
||||||
$(top_srcdir)/data/icon.edc \
|
|
||||||
$(top_builddir)/data/icon.edj
|
|
||||||
|
|
||||||
clean-local:
|
|
||||||
rm -f *.edj
|
|
|
@ -1,137 +0,0 @@
|
||||||
PROJECT_NAME = Emotion
|
|
||||||
PROJECT_NUMBER = @PACKAGE_VERSION@
|
|
||||||
OUTPUT_DIRECTORY = .
|
|
||||||
INPUT = @top_srcdir@/src/lib \
|
|
||||||
@srcdir@/examples.dox
|
|
||||||
IMAGE_PATH = @srcdir@/img
|
|
||||||
OUTPUT_LANGUAGE = English
|
|
||||||
GENERATE_HTML = YES
|
|
||||||
HTML_OUTPUT = html
|
|
||||||
HTML_FILE_EXTENSION = .html
|
|
||||||
HTML_HEADER = @srcdir@/head.html
|
|
||||||
HTML_FOOTER = @srcdir@/foot.html
|
|
||||||
HTML_STYLESHEET = @srcdir@/e.css
|
|
||||||
ENUM_VALUES_PER_LINE = 1
|
|
||||||
GENERATE_HTMLHELP = NO
|
|
||||||
CHM_FILE =
|
|
||||||
HHC_LOCATION =
|
|
||||||
GENERATE_CHI = NO
|
|
||||||
BINARY_TOC = NO
|
|
||||||
TOC_EXPAND = NO
|
|
||||||
DISABLE_INDEX = YES
|
|
||||||
EXTRACT_ALL = NO
|
|
||||||
EXTRACT_PRIVATE = NO
|
|
||||||
EXTRACT_STATIC = NO
|
|
||||||
EXTRACT_LOCAL_CLASSES = NO
|
|
||||||
HIDE_UNDOC_MEMBERS = YES
|
|
||||||
HIDE_UNDOC_CLASSES = YES
|
|
||||||
HIDE_FRIEND_COMPOUNDS = YES
|
|
||||||
BRIEF_MEMBER_DESC = YES
|
|
||||||
REPEAT_BRIEF = YES
|
|
||||||
ALWAYS_DETAILED_SEC = NO
|
|
||||||
INLINE_INHERITED_MEMB = NO
|
|
||||||
FULL_PATH_NAMES = NO
|
|
||||||
STRIP_FROM_PATH =
|
|
||||||
INTERNAL_DOCS = NO
|
|
||||||
STRIP_CODE_COMMENTS = YES
|
|
||||||
CASE_SENSE_NAMES = YES
|
|
||||||
SHORT_NAMES = NO
|
|
||||||
HIDE_SCOPE_NAMES = NO
|
|
||||||
VERBATIM_HEADERS = NO
|
|
||||||
SHOW_INCLUDE_FILES = NO
|
|
||||||
JAVADOC_AUTOBRIEF = YES
|
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
|
||||||
INHERIT_DOCS = YES
|
|
||||||
INLINE_INFO = YES
|
|
||||||
SORT_MEMBER_DOCS = YES
|
|
||||||
DISTRIBUTE_GROUP_DOC = NO
|
|
||||||
TAB_SIZE = 2
|
|
||||||
GENERATE_TODOLIST = YES
|
|
||||||
GENERATE_TESTLIST = YES
|
|
||||||
GENERATE_BUGLIST = YES
|
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
|
||||||
ALIASES =
|
|
||||||
ENABLED_SECTIONS =
|
|
||||||
MAX_INITIALIZER_LINES = 30
|
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
|
||||||
SHOW_USED_FILES = NO
|
|
||||||
QUIET = NO
|
|
||||||
WARNINGS = YES
|
|
||||||
WARN_IF_UNDOCUMENTED = YES
|
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
|
||||||
WARN_LOGFILE =
|
|
||||||
FILE_PATTERNS =
|
|
||||||
RECURSIVE = NO
|
|
||||||
EXCLUDE =
|
|
||||||
EXCLUDE_SYMLINKS = NO
|
|
||||||
EXCLUDE_PATTERNS =
|
|
||||||
EXAMPLE_PATH = @top_srcdir@/src/examples @top_srcdir@/src/bin
|
|
||||||
EXAMPLE_PATTERNS =
|
|
||||||
EXAMPLE_RECURSIVE = NO
|
|
||||||
INPUT_FILTER =
|
|
||||||
FILTER_SOURCE_FILES = NO
|
|
||||||
SOURCE_BROWSER = NO
|
|
||||||
INLINE_SOURCES = NO
|
|
||||||
REFERENCED_BY_RELATION = YES
|
|
||||||
REFERENCES_RELATION = YES
|
|
||||||
ALPHABETICAL_INDEX = YES
|
|
||||||
COLS_IN_ALPHA_INDEX = 2
|
|
||||||
IGNORE_PREFIX = emotion_ _emotion_ Emotion_ _Emotion_ EMOTION_ _EMOTION_
|
|
||||||
GENERATE_TREEVIEW = NO
|
|
||||||
TREEVIEW_WIDTH = 250
|
|
||||||
GENERATE_LATEX = YES
|
|
||||||
LATEX_OUTPUT = latex
|
|
||||||
LATEX_CMD_NAME = latex
|
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
|
||||||
COMPACT_LATEX = NO
|
|
||||||
PAPER_TYPE = a4wide
|
|
||||||
EXTRA_PACKAGES =
|
|
||||||
LATEX_HEADER =
|
|
||||||
PDF_HYPERLINKS = YES
|
|
||||||
USE_PDFLATEX = YES
|
|
||||||
LATEX_BATCHMODE = NO
|
|
||||||
GENERATE_RTF = NO
|
|
||||||
RTF_OUTPUT = rtf
|
|
||||||
COMPACT_RTF = NO
|
|
||||||
RTF_HYPERLINKS = NO
|
|
||||||
RTF_STYLESHEET_FILE =
|
|
||||||
RTF_EXTENSIONS_FILE =
|
|
||||||
GENERATE_MAN = YES
|
|
||||||
MAN_OUTPUT = man
|
|
||||||
MAN_EXTENSION = .3
|
|
||||||
MAN_LINKS = YES
|
|
||||||
GENERATE_XML = NO
|
|
||||||
XML_SCHEMA =
|
|
||||||
XML_DTD =
|
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
|
||||||
ENABLE_PREPROCESSING = YES
|
|
||||||
MACRO_EXPANSION = NO
|
|
||||||
EXPAND_ONLY_PREDEF = NO
|
|
||||||
SEARCH_INCLUDES = NO
|
|
||||||
INCLUDE_PATH =
|
|
||||||
INCLUDE_FILE_PATTERNS =
|
|
||||||
PREDEFINED =
|
|
||||||
EXPAND_AS_DEFINED =
|
|
||||||
SKIP_FUNCTION_MACROS = YES
|
|
||||||
TAGFILES =
|
|
||||||
GENERATE_TAGFILE =
|
|
||||||
ALLEXTERNALS = NO
|
|
||||||
EXTERNAL_GROUPS = YES
|
|
||||||
PERL_PATH = /usr/bin/perl
|
|
||||||
CLASS_DIAGRAMS = NO
|
|
||||||
HIDE_UNDOC_RELATIONS = YES
|
|
||||||
HAVE_DOT = NO
|
|
||||||
CLASS_GRAPH = NO
|
|
||||||
COLLABORATION_GRAPH = NO
|
|
||||||
TEMPLATE_RELATIONS = NO
|
|
||||||
INCLUDE_GRAPH = NO
|
|
||||||
INCLUDED_BY_GRAPH = NO
|
|
||||||
GRAPHICAL_HIERARCHY = NO
|
|
||||||
DOT_IMAGE_FORMAT = png
|
|
||||||
DOT_PATH =
|
|
||||||
DOTFILE_DIRS =
|
|
||||||
DOT_GRAPH_MAX_NODES = 50
|
|
||||||
GENERATE_LEGEND = YES
|
|
||||||
DOT_CLEANUP = YES
|
|
||||||
SEARCHENGINE = NO
|
|
|
@ -1,33 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
.PHONY: doc
|
|
||||||
|
|
||||||
PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
|
|
||||||
|
|
||||||
if EFL_BUILD_DOC
|
|
||||||
|
|
||||||
doc-clean:
|
|
||||||
rm -rf html/ latex/ man/ xml/ $(top_builddir)/$(PACKAGE_DOCNAME).tar*
|
|
||||||
|
|
||||||
doc: all doc-clean
|
|
||||||
$(efl_doxygen)
|
|
||||||
cp $(srcdir)/img/* html/
|
|
||||||
cp $(srcdir)/img/* latex/
|
|
||||||
rm -rf $(PACKAGE_DOCNAME).tar*
|
|
||||||
mkdir -p $(PACKAGE_DOCNAME)/doc
|
|
||||||
cp -R html/ latex/ man/ $(PACKAGE_DOCNAME)/doc
|
|
||||||
tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/
|
|
||||||
bzip2 -9 $(PACKAGE_DOCNAME).tar
|
|
||||||
rm -rf $(PACKAGE_DOCNAME)/
|
|
||||||
mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir)
|
|
||||||
|
|
||||||
clean-local: doc-clean
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
doc:
|
|
||||||
@echo "Documentation not built. Run ./configure --help"
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_DIST = Doxyfile.in $(wildcard img/*.*) e.css head.html foot.html examples.dox
|
|
|
@ -1,273 +0,0 @@
|
||||||
/*
|
|
||||||
Author:
|
|
||||||
Andres Blanc <andresblanc@gmail.com>
|
|
||||||
DaveMDS Andreoli <dave@gurumeditation.it>
|
|
||||||
|
|
||||||
Supported Browsers:
|
|
||||||
ie7, opera9, konqueror4 and firefox3
|
|
||||||
|
|
||||||
Please use a different file for ie6, ie5, etc. hacks.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/* Necessary to place the footer at the bottom of the page */
|
|
||||||
html, body {
|
|
||||||
height: 100%;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#container {
|
|
||||||
min-height: 100%;
|
|
||||||
height: auto !important;
|
|
||||||
height: 100%;
|
|
||||||
margin: 0 auto -53px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer, #push {
|
|
||||||
height: 53px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
* html #container {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Prevent floating elements overflowing containers */
|
|
||||||
.clear {
|
|
||||||
clear: both;
|
|
||||||
width: 0px;
|
|
||||||
height: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Flexible & centered layout from 750 to 960 pixels */
|
|
||||||
.layout {
|
|
||||||
max-width: 960px;
|
|
||||||
min-width: 760px;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
/*font-family: Lucida Grande, Helvetica, sans-serif;*/
|
|
||||||
font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Prevent design overflowing the viewport in small resolutions */
|
|
||||||
#container {
|
|
||||||
padding-right: 17px;
|
|
||||||
padding-left: 17px;
|
|
||||||
background-image: url(head_bg.png);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************/
|
|
||||||
/* Top main menu */
|
|
||||||
/****************************/
|
|
||||||
#header_logo {
|
|
||||||
background-image : url(logo.png);
|
|
||||||
width : 61px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header_logo a {
|
|
||||||
position : absolute;
|
|
||||||
border : 0px;
|
|
||||||
background-color : transparent;
|
|
||||||
top : 0px;
|
|
||||||
width : 60px;
|
|
||||||
height : 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header_menu {
|
|
||||||
background-image : url(header_menu_background.png);
|
|
||||||
font : normal 10pt verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif;
|
|
||||||
text-align : right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header_last {
|
|
||||||
background-image : url(header_menu_background_last.png);
|
|
||||||
width : 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
td.nav_passive {
|
|
||||||
background : url(header_menu_unselected_background.png) 0 0 no-repeat;
|
|
||||||
height : 63px;
|
|
||||||
font-family : "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif;
|
|
||||||
font-size : 11px;
|
|
||||||
padding : 20px 10px 20px 10px;
|
|
||||||
vertical-align : middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
td.nav_active {
|
|
||||||
background : url(header_menu_current_background.png) 0 0 no-repeat;
|
|
||||||
height : 63px;
|
|
||||||
color : #646464;
|
|
||||||
font-family : "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif;
|
|
||||||
font-size : 11px;
|
|
||||||
font-weight : bold;
|
|
||||||
padding : 20px 10px 20px 10px;
|
|
||||||
vertical-align : middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header_menu a {
|
|
||||||
display : block;
|
|
||||||
text-decoration : none;
|
|
||||||
cursor : pointer;
|
|
||||||
color : #cdcdcd;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#header {
|
|
||||||
width: 100%;
|
|
||||||
height: 102px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header h1 {
|
|
||||||
width: 63px;
|
|
||||||
height: 63px;
|
|
||||||
position: absolute;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header h1 span {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header h2 {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* .menu-container is used to set properties common to .menu and .submenu */
|
|
||||||
#header .menu-container {
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu-container ul {
|
|
||||||
list-style-type: none;
|
|
||||||
list-style-position: inside;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu-container li {
|
|
||||||
display: block;
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu {
|
|
||||||
height: 63px;
|
|
||||||
display: block;
|
|
||||||
background-image: url(menu_bg.png);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu ul {
|
|
||||||
height: 100%;
|
|
||||||
display: block;
|
|
||||||
background-image: url(menu_bg_last.png);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: top right;
|
|
||||||
padding-right: 17px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu li {
|
|
||||||
height: 100%;
|
|
||||||
text-align: center;
|
|
||||||
background-image: url(menu_bg_unsel.png);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu a {
|
|
||||||
height: 100%;
|
|
||||||
display: block;
|
|
||||||
color: #cdcdcd;
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 10pt;
|
|
||||||
line-height: 59px;
|
|
||||||
text-align: center;
|
|
||||||
padding: 0px 15px 0px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu li:hover {
|
|
||||||
background-image: url(menu_bg_hover.png);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu li:hover a {
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu li.current {
|
|
||||||
background-image: url(menu_bg_current.png);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .menu li.current a {
|
|
||||||
color: #646464;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Hide all the submenus but the current */
|
|
||||||
#header .submenu ul {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .submenu .current {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .submenu {
|
|
||||||
font: bold 10px verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif;
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .submenu a {
|
|
||||||
color: #888888;
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 0.9em;
|
|
||||||
line-height: 15px;
|
|
||||||
padding:0px 5px 0px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .submenu a:hover {
|
|
||||||
color: #444444;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .submenu li {
|
|
||||||
border-left: 1px solid #DDDDDD;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .submenu li:last-child {
|
|
||||||
border-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .doxytitle {
|
|
||||||
position: absolute;
|
|
||||||
font-size: 1.8em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #444444;
|
|
||||||
line-height: 35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header small {
|
|
||||||
font-size: 0.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer {
|
|
||||||
background-image: url(foot_bg.png);
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer table {
|
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
white-space: nowrap;
|
|
||||||
padding: 5px 30px 5px 30px;
|
|
||||||
font-size: 0.8em;
|
|
||||||
font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif;
|
|
||||||
color: #888888;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer td.copyright {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,178 +0,0 @@
|
||||||
td.md {
|
|
||||||
background-color: #ffffff;
|
|
||||||
font-family: monospace;
|
|
||||||
text-align: left;
|
|
||||||
vertical-align: center;
|
|
||||||
font-size: 10;
|
|
||||||
padding-right : 1px;
|
|
||||||
padding-top : 1px;
|
|
||||||
padding-left : 1px;
|
|
||||||
padding-bottom : 1px;
|
|
||||||
margin-left : 1px;
|
|
||||||
margin-right : 1px;
|
|
||||||
margin-top : 1px;
|
|
||||||
margin-bottom : 1px
|
|
||||||
}
|
|
||||||
td.mdname {
|
|
||||||
font-family: monospace;
|
|
||||||
text-align: left;
|
|
||||||
vertical-align: center;
|
|
||||||
font-size: 10;
|
|
||||||
padding-right : 1px;
|
|
||||||
padding-top : 1px;
|
|
||||||
padding-left : 1px;
|
|
||||||
padding-bottom : 1px;
|
|
||||||
margin-left : 1px;
|
|
||||||
margin-right : 1px;
|
|
||||||
margin-top : 1px;
|
|
||||||
margin-bottom : 1px
|
|
||||||
}
|
|
||||||
h1
|
|
||||||
{
|
|
||||||
text-align: center;
|
|
||||||
color: #333333
|
|
||||||
}
|
|
||||||
h2
|
|
||||||
{
|
|
||||||
text-align: left;
|
|
||||||
color: #333333
|
|
||||||
}
|
|
||||||
h3
|
|
||||||
{
|
|
||||||
text-align: left;
|
|
||||||
color: #333333
|
|
||||||
}
|
|
||||||
a:link
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #444444;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
a:visited
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #666666;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
a:hover
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #000000;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
a.nav:link
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #444444;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
a.nav:visited
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #666666;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
a.nav:hover
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #000000;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
a.qindex:link
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #444444;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
a.qindex:visited
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #666666;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
a.qindex:hover
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: #000000;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
p
|
|
||||||
{
|
|
||||||
color: #000000;
|
|
||||||
font-family: sans-serif;
|
|
||||||
font-size: 10;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
background-image: url("hilite.png");
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: left top;
|
|
||||||
background-color: #dddddd;
|
|
||||||
color: #000000;
|
|
||||||
font-family: sans-serif;
|
|
||||||
padding: 8px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
div.fragment
|
|
||||||
{
|
|
||||||
background-image: url("hilite.png");
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: left top;
|
|
||||||
border: thin solid #888888;
|
|
||||||
background-color: #eeeeee;
|
|
||||||
padding: 4px;
|
|
||||||
text-align: left;
|
|
||||||
vertical-align: center;
|
|
||||||
font-size: 12;
|
|
||||||
}
|
|
||||||
hr
|
|
||||||
{
|
|
||||||
border: 0;
|
|
||||||
background-color: #000000;
|
|
||||||
width: 80%;
|
|
||||||
height: 1;
|
|
||||||
}
|
|
||||||
dl
|
|
||||||
{
|
|
||||||
background-image: url("hilite.png");
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: left top;
|
|
||||||
border: thin solid #aaaaaa;
|
|
||||||
background-color: #eeeeee;
|
|
||||||
padding: 4px;
|
|
||||||
text-align: left;
|
|
||||||
vertical-align: center;
|
|
||||||
font-size: 12;
|
|
||||||
}
|
|
||||||
em
|
|
||||||
{
|
|
||||||
color: #334466;
|
|
||||||
font-family: courier;
|
|
||||||
font-size: 10;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.nav
|
|
||||||
{
|
|
||||||
border: thin solid #000000;
|
|
||||||
background-color: #ffffff;
|
|
||||||
padding: 1px;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: center;
|
|
||||||
font-size: 12;
|
|
||||||
}
|
|
||||||
div.body
|
|
||||||
{
|
|
||||||
border: thin solid #000000;
|
|
||||||
background-color: #ffffff;
|
|
||||||
padding: 4px;
|
|
||||||
text-align: left;
|
|
||||||
font-size: 10;
|
|
||||||
}
|
|
||||||
div.diag
|
|
||||||
{
|
|
||||||
border: thin solid #888888;
|
|
||||||
background-color: #eeeeee;
|
|
||||||
padding: 4px;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 8;
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
|
|
||||||
<div id="push"></div>
|
|
||||||
</div> <!-- #content -->
|
|
||||||
</div> <!-- .layout -->
|
|
||||||
|
|
||||||
</div> <!-- #container -->
|
|
||||||
|
|
||||||
|
|
||||||
<div id="footer">
|
|
||||||
<table><tr>
|
|
||||||
<td class="copyright">Copyright ©$year Enlightenment</td>
|
|
||||||
<td class="generated">Docs generated $datetime</td>
|
|
||||||
</tr></table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,68 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>$title</title>
|
|
||||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
|
|
||||||
<meta name="author" content="Andres Blanc" >
|
|
||||||
|
|
||||||
<link rel="icon" href="img/favicon.png" type="image/x-icon">
|
|
||||||
<link rel="shortcut icon" href="img/favicon.png" type="image/x-icon">
|
|
||||||
<link rel="icon" href="img/favicon.png" type="image/ico">
|
|
||||||
<link rel="shortcut icon" href="img/favicon.png" type="image/ico">
|
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="e.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="edoxy.css">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div id="container">
|
|
||||||
|
|
||||||
<div id="header">
|
|
||||||
<div class="layout">
|
|
||||||
|
|
||||||
<h1><span>Enlightenment</span></h1>
|
|
||||||
<h2><span>Beauty at your fingertips</span></h2>
|
|
||||||
|
|
||||||
<table cellspacing="0" cellpadding="0" width="100%"><tr>
|
|
||||||
<td id="header_logo">
|
|
||||||
<a href="http://www.enlightenment.org"></a>
|
|
||||||
</td>
|
|
||||||
<td id="header_menu">
|
|
||||||
<table cellspacing="0" cellpadding="0" align="right"><tr>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=home">Home</a></td>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=news">News</a></td>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=about">About</a></td>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=download">Download</a></td>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=support">Support</a></td>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=contribute">Contribute</a></td>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=contact">Contact</a></td>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://trac.enlightenment.org/e">Tracker</a></td>
|
|
||||||
<td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=docs">Docs</a></td>
|
|
||||||
</tr></table>
|
|
||||||
</td>
|
|
||||||
<td id="header_last"></td>
|
|
||||||
</tr></table>
|
|
||||||
|
|
||||||
<div class="doxytitle">
|
|
||||||
$projectname Documentation <small>at $date</small>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="menu-container">
|
|
||||||
<div class="submenu">
|
|
||||||
<ul class="current">
|
|
||||||
<li><a href="files.html">Files</a></li>
|
|
||||||
<li><a href="globals.html">Globals</a></li>
|
|
||||||
<li><a href="modules.html">Modules</a></li>
|
|
||||||
<li><a href="pages.html">Related Pages</a></li>
|
|
||||||
<li class="current"><a href="index.html">Main Page</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="content">
|
|
||||||
<div class="layout">
|
|
Before Width: | Height: | Size: 29 KiB |
|
@ -1,486 +0,0 @@
|
||||||
/*
|
|
||||||
* This file contain a custom doxygen style to match e.org graphics
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
|
|
||||||
font-family: Geneva, Arial, Helvetica, sans-serif;
|
|
||||||
}*/
|
|
||||||
BODY, TD {
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
H1 {
|
|
||||||
text-align: center;
|
|
||||||
font-size: 160%;
|
|
||||||
}
|
|
||||||
H2 {
|
|
||||||
font-size: 120%;
|
|
||||||
}
|
|
||||||
H3 {
|
|
||||||
font-size: 100%;
|
|
||||||
}
|
|
||||||
CAPTION {
|
|
||||||
font-weight: bold
|
|
||||||
}
|
|
||||||
DIV.qindex {
|
|
||||||
width: 100%;
|
|
||||||
background-color: #e8eef2;
|
|
||||||
border: 1px solid #84b0c7;
|
|
||||||
text-align: center;
|
|
||||||
margin: 2px;
|
|
||||||
padding: 2px;
|
|
||||||
line-height: 140%;
|
|
||||||
}
|
|
||||||
DIV.navpath {
|
|
||||||
width: 100%;
|
|
||||||
background-color: #e8eef2;
|
|
||||||
border: 1px solid #84b0c7;
|
|
||||||
text-align: center;
|
|
||||||
margin: 2px;
|
|
||||||
padding: 2px;
|
|
||||||
line-height: 140%;
|
|
||||||
}
|
|
||||||
DIV.navtab {
|
|
||||||
background-color: #e8eef2;
|
|
||||||
border: 1px solid #84b0c7;
|
|
||||||
text-align: center;
|
|
||||||
margin: 2px;
|
|
||||||
margin-right: 15px;
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
TD.navtab {
|
|
||||||
font-size: 70%;
|
|
||||||
}
|
|
||||||
A.qindex {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #1A419D;
|
|
||||||
}
|
|
||||||
A.qindex:visited {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #1A419D
|
|
||||||
}
|
|
||||||
A.qindex:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #ddddff;
|
|
||||||
}
|
|
||||||
A.qindexHL {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: bold;
|
|
||||||
background-color: #6666cc;
|
|
||||||
color: #ffffff;
|
|
||||||
border: 1px double #9295C2;
|
|
||||||
}
|
|
||||||
A.qindexHL:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #6666cc;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
A.qindexHL:visited {
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #6666cc;
|
|
||||||
color: #ffffff
|
|
||||||
}
|
|
||||||
A.el {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: bold
|
|
||||||
}
|
|
||||||
A.elRef {
|
|
||||||
font-weight: bold
|
|
||||||
}
|
|
||||||
A.code:link {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: normal;
|
|
||||||
color: #0000FF
|
|
||||||
}
|
|
||||||
A.code:visited {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: normal;
|
|
||||||
color: #0000FF
|
|
||||||
}
|
|
||||||
A.codeRef:link {
|
|
||||||
font-weight: normal;
|
|
||||||
color: #0000FF
|
|
||||||
}
|
|
||||||
A.codeRef:visited {
|
|
||||||
font-weight: normal;
|
|
||||||
color: #0000FF
|
|
||||||
}
|
|
||||||
A:hover, A:visited:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
/* background-color: #f2f2ff; */
|
|
||||||
color: #000055;
|
|
||||||
}
|
|
||||||
A.anchor {
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
DL.el {
|
|
||||||
margin-left: -1cm
|
|
||||||
}
|
|
||||||
.fragment {
|
|
||||||
font-family: monospace, fixed;
|
|
||||||
font-size: 95%;
|
|
||||||
}
|
|
||||||
PRE.fragment {
|
|
||||||
border: 1px solid #CCCCCC;
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
margin-top: 4px;
|
|
||||||
margin-bottom: 4px;
|
|
||||||
margin-left: 2px;
|
|
||||||
margin-right: 8px;
|
|
||||||
padding-left: 6px;
|
|
||||||
padding-right: 6px;
|
|
||||||
padding-top: 4px;
|
|
||||||
padding-bottom: 4px;
|
|
||||||
}
|
|
||||||
DIV.ah {
|
|
||||||
background-color: black;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #ffffff;
|
|
||||||
margin-bottom: 3px;
|
|
||||||
margin-top: 3px
|
|
||||||
}
|
|
||||||
|
|
||||||
DIV.groupHeader {
|
|
||||||
margin-left: 16px;
|
|
||||||
margin-top: 12px;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
DIV.groupText {
|
|
||||||
margin-left: 16px;
|
|
||||||
font-style: italic;
|
|
||||||
font-size: 90%
|
|
||||||
}
|
|
||||||
/*BODY {
|
|
||||||
background: white;
|
|
||||||
color: black;
|
|
||||||
margin-right: 20px;
|
|
||||||
margin-left: 20px;
|
|
||||||
}*/
|
|
||||||
TD.indexkey {
|
|
||||||
background-color: #e8eef2;
|
|
||||||
font-weight: bold;
|
|
||||||
padding-right : 10px;
|
|
||||||
padding-top : 2px;
|
|
||||||
padding-left : 10px;
|
|
||||||
padding-bottom : 2px;
|
|
||||||
margin-left : 0px;
|
|
||||||
margin-right : 0px;
|
|
||||||
margin-top : 2px;
|
|
||||||
margin-bottom : 2px;
|
|
||||||
border: 1px solid #CCCCCC;
|
|
||||||
}
|
|
||||||
TD.indexvalue {
|
|
||||||
background-color: #e8eef2;
|
|
||||||
font-style: italic;
|
|
||||||
padding-right : 10px;
|
|
||||||
padding-top : 2px;
|
|
||||||
padding-left : 10px;
|
|
||||||
padding-bottom : 2px;
|
|
||||||
margin-left : 0px;
|
|
||||||
margin-right : 0px;
|
|
||||||
margin-top : 2px;
|
|
||||||
margin-bottom : 2px;
|
|
||||||
border: 1px solid #CCCCCC;
|
|
||||||
}
|
|
||||||
TR.memlist {
|
|
||||||
background-color: #f0f0f0;
|
|
||||||
}
|
|
||||||
P.formulaDsp {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
IMG.formulaDsp {
|
|
||||||
}
|
|
||||||
IMG.formulaInl {
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
SPAN.keyword { color: #008000 }
|
|
||||||
SPAN.keywordtype { color: #604020 }
|
|
||||||
SPAN.keywordflow { color: #e08000 }
|
|
||||||
SPAN.comment { color: #800000 }
|
|
||||||
SPAN.preprocessor { color: #806020 }
|
|
||||||
SPAN.stringliteral { color: #002080 }
|
|
||||||
SPAN.charliteral { color: #008080 }
|
|
||||||
SPAN.vhdldigit { color: #ff00ff }
|
|
||||||
SPAN.vhdlchar { color: #000000 }
|
|
||||||
SPAN.vhdlkeyword { color: #700070 }
|
|
||||||
SPAN.vhdllogic { color: #ff0000 }
|
|
||||||
|
|
||||||
.mdescLeft {
|
|
||||||
padding: 0px 8px 4px 8px;
|
|
||||||
font-size: 80%;
|
|
||||||
font-style: italic;
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
border-top: 1px none #E0E0E0;
|
|
||||||
border-right: 1px none #E0E0E0;
|
|
||||||
border-bottom: 1px none #E0E0E0;
|
|
||||||
border-left: 1px none #E0E0E0;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
.mdescRight {
|
|
||||||
padding: 0px 8px 4px 8px;
|
|
||||||
font-size: 80%;
|
|
||||||
font-style: italic;
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
border-top: 1px none #E0E0E0;
|
|
||||||
border-right: 1px none #E0E0E0;
|
|
||||||
border-bottom: 1px none #E0E0E0;
|
|
||||||
border-left: 1px none #E0E0E0;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
.memItemLeft {
|
|
||||||
padding: 1px 0px 0px 8px;
|
|
||||||
margin: 4px;
|
|
||||||
border-top-width: 1px;
|
|
||||||
border-right-width: 1px;
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
border-left-width: 1px;
|
|
||||||
border-top-color: #E0E0E0;
|
|
||||||
border-right-color: #E0E0E0;
|
|
||||||
border-bottom-color: #E0E0E0;
|
|
||||||
border-left-color: #E0E0E0;
|
|
||||||
border-top-style: solid;
|
|
||||||
border-right-style: none;
|
|
||||||
border-bottom-style: none;
|
|
||||||
border-left-style: none;
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
.memItemRight {
|
|
||||||
padding: 1px 8px 0px 8px;
|
|
||||||
margin: 4px;
|
|
||||||
border-top-width: 1px;
|
|
||||||
border-right-width: 1px;
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
border-left-width: 1px;
|
|
||||||
border-top-color: #E0E0E0;
|
|
||||||
border-right-color: #E0E0E0;
|
|
||||||
border-bottom-color: #E0E0E0;
|
|
||||||
border-left-color: #E0E0E0;
|
|
||||||
border-top-style: solid;
|
|
||||||
border-right-style: none;
|
|
||||||
border-bottom-style: none;
|
|
||||||
border-left-style: none;
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
.memTemplItemLeft {
|
|
||||||
padding: 1px 0px 0px 8px;
|
|
||||||
margin: 4px;
|
|
||||||
border-top-width: 1px;
|
|
||||||
border-right-width: 1px;
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
border-left-width: 1px;
|
|
||||||
border-top-color: #E0E0E0;
|
|
||||||
border-right-color: #E0E0E0;
|
|
||||||
border-bottom-color: #E0E0E0;
|
|
||||||
border-left-color: #E0E0E0;
|
|
||||||
border-top-style: none;
|
|
||||||
border-right-style: none;
|
|
||||||
border-bottom-style: none;
|
|
||||||
border-left-style: none;
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
.memTemplItemRight {
|
|
||||||
padding: 1px 8px 0px 8px;
|
|
||||||
margin: 4px;
|
|
||||||
border-top-width: 1px;
|
|
||||||
border-right-width: 1px;
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
border-left-width: 1px;
|
|
||||||
border-top-color: #E0E0E0;
|
|
||||||
border-right-color: #E0E0E0;
|
|
||||||
border-bottom-color: #E0E0E0;
|
|
||||||
border-left-color: #E0E0E0;
|
|
||||||
border-top-style: none;
|
|
||||||
border-right-style: none;
|
|
||||||
border-bottom-style: none;
|
|
||||||
border-left-style: none;
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
.memTemplParams {
|
|
||||||
padding: 1px 0px 0px 8px;
|
|
||||||
margin: 4px;
|
|
||||||
border-top-width: 1px;
|
|
||||||
border-right-width: 1px;
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
border-left-width: 1px;
|
|
||||||
border-top-color: #E0E0E0;
|
|
||||||
border-right-color: #E0E0E0;
|
|
||||||
border-bottom-color: #E0E0E0;
|
|
||||||
border-left-color: #E0E0E0;
|
|
||||||
border-top-style: solid;
|
|
||||||
border-right-style: none;
|
|
||||||
border-bottom-style: none;
|
|
||||||
border-left-style: none;
|
|
||||||
color: #606060;
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
.search {
|
|
||||||
color: #003399;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
FORM.search {
|
|
||||||
margin-bottom: 0px;
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
INPUT.search {
|
|
||||||
font-size: 75%;
|
|
||||||
color: #000080;
|
|
||||||
font-weight: normal;
|
|
||||||
background-color: #e8eef2;
|
|
||||||
}
|
|
||||||
TD.tiny {
|
|
||||||
font-size: 75%;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
color: #1A41A8;
|
|
||||||
}
|
|
||||||
a:visited {
|
|
||||||
color: #2A3798;
|
|
||||||
}
|
|
||||||
.dirtab {
|
|
||||||
padding: 4px;
|
|
||||||
border-collapse: collapse;
|
|
||||||
border: 1px solid #84b0c7;
|
|
||||||
}
|
|
||||||
TH.dirtab {
|
|
||||||
background: #e8eef2;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
HR {
|
|
||||||
height: 1px;
|
|
||||||
border: none;
|
|
||||||
border-top: 1px solid black;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Style for detailed member documentation */
|
|
||||||
.memtemplate {
|
|
||||||
font-size: 80%;
|
|
||||||
color: #606060;
|
|
||||||
font-weight: normal;
|
|
||||||
margin-left: 3px;
|
|
||||||
}
|
|
||||||
.memnav {
|
|
||||||
background-color: #eeeeee;
|
|
||||||
border: 1px solid #dddddd;
|
|
||||||
text-align: center;
|
|
||||||
margin: 2px;
|
|
||||||
margin-right: 15px;
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
.memitem {
|
|
||||||
padding: 4px;
|
|
||||||
background-color: #eeeeee;
|
|
||||||
border-width: 1px;
|
|
||||||
border-style: solid;
|
|
||||||
border-color: #dddddd;
|
|
||||||
-moz-border-radius: 4px 4px 4px 4px;
|
|
||||||
}
|
|
||||||
.memname {
|
|
||||||
white-space: nowrap;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
.memdoc{
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
.memproto {
|
|
||||||
background-color: #111111;
|
|
||||||
width: 100%;
|
|
||||||
border-width: 1px;
|
|
||||||
border-style: solid;
|
|
||||||
border-color: #000000;
|
|
||||||
font-weight: bold;
|
|
||||||
-moz-border-radius: 4px 4px 4px 4px;
|
|
||||||
}
|
|
||||||
.paramkey {
|
|
||||||
text-align: right;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
.paramtype {
|
|
||||||
white-space: nowrap;
|
|
||||||
color: #aaaaaa;
|
|
||||||
}
|
|
||||||
.paramname {
|
|
||||||
color: #ff0000;
|
|
||||||
font-style: italic;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
/* End Styling for detailed member documentation */
|
|
||||||
|
|
||||||
/* for the tree view */
|
|
||||||
.ftvtree {
|
|
||||||
font-family: sans-serif;
|
|
||||||
margin:0.5em;
|
|
||||||
}
|
|
||||||
/* these are for tree view when used as main index */
|
|
||||||
.directory {
|
|
||||||
font-size: 9pt;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.directory h3 {
|
|
||||||
margin: 0px;
|
|
||||||
margin-top: 1em;
|
|
||||||
font-size: 11pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The following two styles can be used to replace the root node title */
|
|
||||||
/* with an image of your choice. Simply uncomment the next two styles, */
|
|
||||||
/* specify the name of your image and be sure to set 'height' to the */
|
|
||||||
/* proper pixel height of your image. */
|
|
||||||
|
|
||||||
/* .directory h3.swap { */
|
|
||||||
/* height: 61px; */
|
|
||||||
/* background-repeat: no-repeat; */
|
|
||||||
/* background-image: url("yourimage.gif"); */
|
|
||||||
/* } */
|
|
||||||
/* .directory h3.swap span { */
|
|
||||||
/* display: none; */
|
|
||||||
/* } */
|
|
||||||
|
|
||||||
.directory > h3 {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
.directory p {
|
|
||||||
margin: 0px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.directory div {
|
|
||||||
display: none;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
.directory img {
|
|
||||||
vertical-align: -30%;
|
|
||||||
}
|
|
||||||
/* these are for tree view when not used as main index */
|
|
||||||
.directory-alt {
|
|
||||||
font-size: 100%;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.directory-alt h3 {
|
|
||||||
margin: 0px;
|
|
||||||
margin-top: 1em;
|
|
||||||
font-size: 11pt;
|
|
||||||
}
|
|
||||||
.directory-alt > h3 {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
.directory-alt p {
|
|
||||||
margin: 0px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.directory-alt div {
|
|
||||||
display: none;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
.directory-alt img {
|
|
||||||
vertical-align: -30%;
|
|
||||||
}
|
|
||||||
|
|
Before Width: | Height: | Size: 173 B |
Before Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 192 B |
Before Width: | Height: | Size: 637 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 3.7 KiB |
|
@ -1,88 +0,0 @@
|
||||||
%{!?_rel:%{expand:%%global _rel 0.enl%{?dist}}}
|
|
||||||
%define _missing_doc_files_terminate_build 0
|
|
||||||
|
|
||||||
Summary: emotion
|
|
||||||
Name: @PACKAGE@
|
|
||||||
Version: @VERSION@
|
|
||||||
Release: %{_rel}
|
|
||||||
License: BSD
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
URL: http://www.enlightenment.org/
|
|
||||||
Source: ftp://ftp.enlightenment.org/pub/emotion/%{name}-%{version}.tar.gz
|
|
||||||
Packager: %{?_packager:%{_packager}}%{!?_packager:Michael Jennings <mej@eterm.org>}
|
|
||||||
Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)}
|
|
||||||
Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}}
|
|
||||||
#BuildSuggests: xorg-x11-devel XFree86-devel libX11-devel libxine1-devel xine-lib-devel
|
|
||||||
#BuildSuggests: gstreamer-devel gstreamer-plugins-devel gstreamer-plugins-base-devel gstreamer-ffmpeg
|
|
||||||
BuildRequires: eina-devel, evas-devel, ecore-devel, edje-devel, edje-bin
|
|
||||||
BuildRequires: /usr/bin/xine-config gstreamer-plugins-base-devel
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
|
||||||
|
|
||||||
%description
|
|
||||||
Emotion is a Media Library
|
|
||||||
|
|
||||||
|
|
||||||
%package devel
|
|
||||||
Summary: Emotion headers, static libraries, documentation and test programs
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
Requires: %{name} = %{version}
|
|
||||||
Requires: efl-devel edje-devel
|
|
||||||
|
|
||||||
%description devel
|
|
||||||
Headers, static libraries, test programs and documentation for Emotion
|
|
||||||
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -q
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
|
||||||
%{configure} --prefix=%{_prefix} --enable-static --enable-shared
|
|
||||||
%{__make} %{?_smp_mflags} %{?mflags}
|
|
||||||
|
|
||||||
|
|
||||||
%install
|
|
||||||
%{__make} %{?mflags_install} DESTDIR=$RPM_BUILD_ROOT install
|
|
||||||
test -x `which doxygen` && sh gendoc || :
|
|
||||||
|
|
||||||
# Remove useless static modules
|
|
||||||
%{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/*a
|
|
||||||
|
|
||||||
|
|
||||||
%post
|
|
||||||
/sbin/ldconfig || :
|
|
||||||
|
|
||||||
|
|
||||||
%postun
|
|
||||||
/sbin/ldconfig || :
|
|
||||||
|
|
||||||
|
|
||||||
%clean
|
|
||||||
test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
|
|
||||||
%files
|
|
||||||
%defattr(-, root, root)
|
|
||||||
%doc AUTHORS COPYING* README
|
|
||||||
%dir %{_libdir}/%{name}
|
|
||||||
%{_bindir}/%{name}_*
|
|
||||||
%{_libdir}/libemotion.so.*
|
|
||||||
%{_libdir}/%{name}/*.so
|
|
||||||
#%{_libdir}/xine/plugins/*/xineplug_vo_out_emotion.so
|
|
||||||
%{_datadir}/%{name}
|
|
||||||
|
|
||||||
%files devel
|
|
||||||
%defattr(-, root, root)
|
|
||||||
%doc doc/html
|
|
||||||
%{_includedir}/emotion-1/*.h
|
|
||||||
%{_libdir}/libemotion.a
|
|
||||||
%{_libdir}/libemotion.la
|
|
||||||
%{_libdir}/libemotion.so
|
|
||||||
%{_libdir}/edje/modules/emotion/*/module.la
|
|
||||||
%{_libdir}/edje/modules/emotion/*/module.so
|
|
||||||
#%{_libdir}/xine/plugins/*/xineplug_vo_out_emotion.a
|
|
||||||
#%{_libdir}/xine/plugins/*/xineplug_vo_out_emotion.la
|
|
||||||
%{_libdir}/pkgconfig/%{name}.pc
|
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
|
|
@ -1,46 +0,0 @@
|
||||||
dnl Copyright (C) 2004-2008 Kim Woelders
|
|
||||||
dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
|
|
||||||
dnl That code is public domain and can be freely used or copied.
|
|
||||||
dnl Originally snatched from somewhere...
|
|
||||||
|
|
||||||
dnl Macro for checking if the compiler supports __attribute__
|
|
||||||
|
|
||||||
dnl Usage: AC_C___ATTRIBUTE__
|
|
||||||
dnl call AC_DEFINE for HAVE___ATTRIBUTE__ and __UNUSED__
|
|
||||||
dnl if the compiler supports __attribute__, HAVE___ATTRIBUTE__ is
|
|
||||||
dnl defined to 1 and __UNUSED__ is defined to __attribute__((unused))
|
|
||||||
dnl otherwise, HAVE___ATTRIBUTE__ is not defined and __UNUSED__ is
|
|
||||||
dnl defined to nothing.
|
|
||||||
|
|
||||||
AC_DEFUN([AC_C___ATTRIBUTE__],
|
|
||||||
[
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for __attribute__])
|
|
||||||
|
|
||||||
AC_CACHE_VAL([ac_cv___attribute__],
|
|
||||||
[AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
int func(int x);
|
|
||||||
int foo(int x __attribute__ ((unused)))
|
|
||||||
{
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[],
|
|
||||||
[ac_cv___attribute__="yes"],
|
|
||||||
[ac_cv___attribute__="no"]
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
|
|
||||||
AC_MSG_RESULT($ac_cv___attribute__)
|
|
||||||
|
|
||||||
if test "x${ac_cv___attribute__}" = "xyes" ; then
|
|
||||||
AC_DEFINE([HAVE___ATTRIBUTE__], [1], [Define to 1 if your compiler has __attribute__])
|
|
||||||
AC_DEFINE([__UNUSED__], [__attribute__((unused))], [Macro declaring a function argument to be unused])
|
|
||||||
else
|
|
||||||
AC_DEFINE([__UNUSED__], [], [Macro declaring a function argument to be unused])
|
|
||||||
fi
|
|
||||||
|
|
||||||
])
|
|
|
@ -1,44 +0,0 @@
|
||||||
dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
|
|
||||||
dnl That code is public domain and can be freely used or copied.
|
|
||||||
|
|
||||||
dnl Macro that check if a binary is built or not
|
|
||||||
|
|
||||||
dnl Usage: EFL_ENABLE_BIN(binary[, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
|
||||||
dnl Call AC_SUBST(BINARY_PRG) (BINARY is the uppercase of binary, - being transformed into _)
|
|
||||||
dnl Define have_binary (- is transformed into _)
|
|
||||||
dnl Define conditional BUILD_BINARY (BINARY is the uppercase of binary, - being transformed into _)
|
|
||||||
|
|
||||||
AC_DEFUN([EFL_ENABLE_BIN],
|
|
||||||
[
|
|
||||||
|
|
||||||
m4_pushdef([UP], m4_translit([[$1]], [-a-z], [_A-Z]))dnl
|
|
||||||
m4_pushdef([DOWN], m4_translit([[$1]], [-A-Z], [_a-z]))dnl
|
|
||||||
|
|
||||||
have_[]m4_defn([DOWN])="yes"
|
|
||||||
|
|
||||||
dnl configure option
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([$1],
|
|
||||||
[AC_HELP_STRING([--disable-$1], [disable building of ]DOWN)],
|
|
||||||
[
|
|
||||||
if test "x${enableval}" = "xyes" ; then
|
|
||||||
have_[]m4_defn([DOWN])="yes"
|
|
||||||
else
|
|
||||||
have_[]m4_defn([DOWN])="no"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to build ]DOWN[ binary])
|
|
||||||
AC_MSG_RESULT([$have_[]m4_defn([DOWN])])
|
|
||||||
|
|
||||||
if test "x$have_[]m4_defn([DOWN])" = "xyes"; then
|
|
||||||
UP[]_PRG=DOWN[${EXEEXT}]
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(UP[]_PRG)
|
|
||||||
|
|
||||||
AM_CONDITIONAL(BUILD_[]UP, test "x$have_[]m4_defn([DOWN])" = "xyes")
|
|
||||||
|
|
||||||
AS_IF([test "x$have_[]m4_defn([DOWN])" = "xyes"], [$2], [$3])
|
|
||||||
|
|
||||||
])
|
|
|
@ -1,94 +0,0 @@
|
||||||
dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
|
|
||||||
dnl That code is public domain and can be freely used or copied.
|
|
||||||
|
|
||||||
dnl Macro that check if doxygen is available or not.
|
|
||||||
|
|
||||||
dnl EFL_CHECK_DOXYGEN([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
|
||||||
dnl Test for the doxygen program
|
|
||||||
dnl Defines efl_doxygen
|
|
||||||
dnl Defines the automake conditionnal EFL_BUILD_DOC
|
|
||||||
dnl
|
|
||||||
AC_DEFUN([EFL_CHECK_DOXYGEN],
|
|
||||||
[
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Disable the build of the documentation
|
|
||||||
dnl
|
|
||||||
AC_ARG_ENABLE([doc],
|
|
||||||
[AC_HELP_STRING(
|
|
||||||
[--disable-doc],
|
|
||||||
[Disable documentation build @<:@default=enabled@:>@])],
|
|
||||||
[
|
|
||||||
if test "x${enableval}" = "xyes" ; then
|
|
||||||
efl_enable_doc="yes"
|
|
||||||
else
|
|
||||||
efl_enable_doc="no"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[efl_enable_doc="yes"])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to build documentation])
|
|
||||||
AC_MSG_RESULT([${efl_enable_doc}])
|
|
||||||
|
|
||||||
if test "x${efl_enable_doc}" = "xyes" ; then
|
|
||||||
|
|
||||||
dnl Specify the file name, without path
|
|
||||||
|
|
||||||
efl_doxygen="doxygen"
|
|
||||||
|
|
||||||
AC_ARG_WITH([doxygen],
|
|
||||||
[AC_HELP_STRING(
|
|
||||||
[--with-doxygen=FILE],
|
|
||||||
[doxygen program to use @<:@default=doxygen@:>@])],
|
|
||||||
|
|
||||||
dnl Check the given doxygen program.
|
|
||||||
|
|
||||||
[efl_doxygen=${withval}
|
|
||||||
AC_CHECK_PROG([efl_have_doxygen],
|
|
||||||
[${efl_doxygen}],
|
|
||||||
[yes],
|
|
||||||
[no])
|
|
||||||
if test "x${efl_have_doxygen}" = "xno" ; then
|
|
||||||
echo "WARNING:"
|
|
||||||
echo "The doxygen program you specified:"
|
|
||||||
echo "${efl_doxygen}"
|
|
||||||
echo "was not found. Please check the path and make sure "
|
|
||||||
echo "the program exists and is executable."
|
|
||||||
AC_MSG_WARN([no doxygen detected. Documentation will not be built])
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[AC_CHECK_PROG([efl_have_doxygen],
|
|
||||||
[${efl_doxygen}],
|
|
||||||
[yes],
|
|
||||||
[no])
|
|
||||||
if test "x${efl_have_doxygen}" = "xno" ; then
|
|
||||||
echo "WARNING:"
|
|
||||||
echo "The doxygen program was not found in your execute path."
|
|
||||||
echo "You may have doxygen installed somewhere not covered by your path."
|
|
||||||
echo ""
|
|
||||||
echo "If this is the case make sure you have the packages installed, AND"
|
|
||||||
echo "that the doxygen program is in your execute path (see your"
|
|
||||||
echo "shell manual page on setting the \$PATH environment variable), OR"
|
|
||||||
echo "alternatively, specify the program to use with --with-doxygen."
|
|
||||||
AC_MSG_WARN([no doxygen detected. Documentation will not be built])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
else
|
|
||||||
efl_have_doxygen="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Substitution
|
|
||||||
dnl
|
|
||||||
AC_SUBST([efl_doxygen])
|
|
||||||
|
|
||||||
if ! test "x${efl_have_doxygen}" = "xyes" ; then
|
|
||||||
efl_enable_doc="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(EFL_BUILD_DOC, test "x${efl_have_doxygen}" = "xyes")
|
|
||||||
|
|
||||||
AS_IF([test "x$efl_have_doxygen" = "xyes"], [$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl End of efl_doxygen.m4
|
|
|
@ -1,56 +0,0 @@
|
||||||
dnl Copyright (C) 2010-2011 Vincent Torri <vtorri at univ-evry dot fr>
|
|
||||||
dnl That code is public domain and can be freely used or copied.
|
|
||||||
|
|
||||||
dnl Macro that check if edje external should be enabled or not
|
|
||||||
|
|
||||||
dnl Usage: EFL_EDJE_EXTERNAL([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
|
||||||
dnl Call AC_SUBST(EDJE_EXTERNAL_CFLAGS)
|
|
||||||
dnl Call AC_SUBST(EDJE_EXTERNAL_LIBS)
|
|
||||||
dnl Define conditional ENABLE_EDJE_EXTERNAL
|
|
||||||
|
|
||||||
AC_DEFUN([EFL_EDJE_EXTERNAL],
|
|
||||||
[
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([edje-external],
|
|
||||||
[AC_HELP_STRING([--disable-edje-external],
|
|
||||||
[disable providing Edje EXTERNAL support. @<:@default=enabled@:>@])],
|
|
||||||
[
|
|
||||||
if test "x${enableval}" = "xyes" ; then
|
|
||||||
_efl_want_edje_external="yes"
|
|
||||||
else
|
|
||||||
_efl_want_edje_external="no"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[_efl_want_edje_external="auto"])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([if should provide Edje EXTERNAL support...])
|
|
||||||
AC_MSG_RESULT([${_efl_want_edje_external}])
|
|
||||||
|
|
||||||
_efl_enable_edje_external="no"
|
|
||||||
if ! test "x${_efl_want_edje_external}" = "xno" ; then
|
|
||||||
PKG_CHECK_MODULES([EDJE_EXTERNAL],
|
|
||||||
[edje >= 1.0.0],
|
|
||||||
[_efl_enable_edje_external="yes"],
|
|
||||||
[_efl_enable_edje_external="no"])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(EDJE_EXTERNAL_CFLAGS)
|
|
||||||
AC_SUBST(EDJE_EXTERNAL_LIBS)
|
|
||||||
|
|
||||||
if test "x${_efl_want_edje_external}" = "xyes" && test "x${_efl_enable_edje_external}" = "xno" ; then
|
|
||||||
AC_MSG_ERROR([Edje EXTERNAL support requested, but Edje not found by pkg-config.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x${_efl_enable_edje_external}" = "xyes" ; then
|
|
||||||
EDJE_VERSION=`${PKG_CONFIG} edje --modversion | awk -F . '{printf("%s.%s.%s", $[]1, $[]2, $[]3);}'`
|
|
||||||
MODULE_EDJE="$host_os-$host_cpu-${EDJE_VERSION}"
|
|
||||||
AC_DEFINE_UNQUOTED(MODULE_EDJE, "$MODULE_EDJE", "Edje module architecture")
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(MODULE_EDJE)
|
|
||||||
|
|
||||||
AM_CONDITIONAL([ENABLE_EDJE_EXTERNAL], [test "x${_efl_enable_edje_external}" = "xyes"])
|
|
||||||
|
|
||||||
AS_IF([test "x${_efl_enable_edje_external}" = "xyes"], [$1], [$2])
|
|
||||||
|
|
||||||
])
|
|
|
@ -1,63 +0,0 @@
|
||||||
dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
|
|
||||||
dnl That code is public domain and can be freely used or copied.
|
|
||||||
|
|
||||||
dnl Macro that check if building examples is wanted.
|
|
||||||
|
|
||||||
dnl Usage: EFL_CHECK_BUILD_EXAMPLES([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
|
||||||
dnl Defines the automake conditionnal EFL_ENABLE_BUILD_EXAMPLES
|
|
||||||
|
|
||||||
AC_DEFUN([EFL_CHECK_BUILD_EXAMPLES],
|
|
||||||
[
|
|
||||||
|
|
||||||
dnl configure option
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([build-examples],
|
|
||||||
[AC_HELP_STRING([--enable-build-examples], [enable building examples @<:@default=disabled@:>@])],
|
|
||||||
[
|
|
||||||
if test "x${enableval}" = "xyes" ; then
|
|
||||||
_efl_enable_build_examples="yes"
|
|
||||||
else
|
|
||||||
_efl_enable_build_examples="no"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[_efl_enable_build_examples="no"])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether examples are built])
|
|
||||||
AC_MSG_RESULT([${_efl_enable_build_examples}])
|
|
||||||
|
|
||||||
AM_CONDITIONAL(EFL_BUILD_EXAMPLES, test "x${_efl_enable_build_examples}" = "xyes")
|
|
||||||
|
|
||||||
AS_IF([test "x$_efl_enable_build_examples" = "xyes"], [$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
dnl Macro that check if installing examples is wanted.
|
|
||||||
|
|
||||||
dnl Usage: EFL_CHECK_INSTALL_EXAMPLES([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
|
||||||
dnl Defines the automake conditionnal EFL_ENABLE_INSTALL_EXAMPLES
|
|
||||||
|
|
||||||
AC_DEFUN([EFL_CHECK_INSTALL_EXAMPLES],
|
|
||||||
[
|
|
||||||
|
|
||||||
dnl configure option
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([install-examples],
|
|
||||||
[AC_HELP_STRING([--enable-install-examples], [enable installing example source files @<:@default=disabled@:>@])],
|
|
||||||
[
|
|
||||||
if test "x${enableval}" = "xyes" ; then
|
|
||||||
_efl_enable_install_examples="yes"
|
|
||||||
else
|
|
||||||
_efl_enable_install_examples="no"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[_efl_enable_install_examples="no"])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether examples are installed])
|
|
||||||
AC_MSG_RESULT([${_efl_enable_install_examples}])
|
|
||||||
|
|
||||||
AM_CONDITIONAL(EFL_INSTALL_EXAMPLES, test "x${_efl_enable_install_examples}" = "xyes")
|
|
||||||
|
|
||||||
AS_IF([test "x$_efl_enable_install_examples" = "xyes"], [$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl End of efl_examples.m4
|
|
|
@ -1,69 +0,0 @@
|
||||||
dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
|
|
||||||
dnl That code is public domain and can be freely used or copied.
|
|
||||||
|
|
||||||
dnl Macro that check if shm_open function is available or not.
|
|
||||||
|
|
||||||
dnl Usage: EFL_CHECK_SHM_OPEN([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
|
||||||
dnl Call AC_SUBST(EFL_SHM_OPEN_LIBS)
|
|
||||||
dnl Define HAVE_SHM_OPEN to 1if shm_open is available
|
|
||||||
|
|
||||||
AC_DEFUN([EFL_CHECK_SHM_OPEN],
|
|
||||||
[
|
|
||||||
_efl_have_shm_open="no"
|
|
||||||
|
|
||||||
dnl Check is shm_open is in libc
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for shm_open in libc])
|
|
||||||
AC_LINK_IFELSE(
|
|
||||||
[AC_LANG_PROGRAM(
|
|
||||||
[[
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <sys/stat.h> /* For mode constants */
|
|
||||||
#include <fcntl.h> /* For O_* constants */
|
|
||||||
]],
|
|
||||||
[[
|
|
||||||
int fd;
|
|
||||||
|
|
||||||
fd = shm_open("/dev/null", O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO);
|
|
||||||
]])],
|
|
||||||
[_efl_have_shm_open="yes"],
|
|
||||||
[_efl_have_shm_open="no"])
|
|
||||||
|
|
||||||
AC_MSG_RESULT([${_efl_have_shm_open}])
|
|
||||||
|
|
||||||
if test "x$_efl_have_shm_open" = "xno" ; then
|
|
||||||
AC_MSG_CHECKING([for shm_open in librt])
|
|
||||||
|
|
||||||
LIBS_save="${LIBS}"
|
|
||||||
LIBS="${LIBS} -lrt"
|
|
||||||
AC_LINK_IFELSE(
|
|
||||||
[AC_LANG_PROGRAM(
|
|
||||||
[[
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <sys/stat.h> /* For mode constants */
|
|
||||||
#include <fcntl.h> /* For O_* constants */
|
|
||||||
]],
|
|
||||||
[[
|
|
||||||
int fd;
|
|
||||||
|
|
||||||
fd = shm_open("/dev/null", O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO);
|
|
||||||
]])],
|
|
||||||
[
|
|
||||||
EFL_SHM_OPEN_LIBS="-lrt"
|
|
||||||
_efl_have_shm_open="yes"],
|
|
||||||
[_efl_have_shm_open="no"])
|
|
||||||
|
|
||||||
LIBS="${LIBS_save}"
|
|
||||||
|
|
||||||
AC_MSG_RESULT([${_efl_have_shm_open}])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST([EFL_SHM_OPEN_LIBS])
|
|
||||||
|
|
||||||
if test "x$_efl_have_shm_open" = "xyes" ; then
|
|
||||||
AC_DEFINE([HAVE_SHM_OPEN], [1], [Define to 1 if you have the `shm_open' function.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AS_IF([test "x$_efl_have_shm_open" = "xyes"], [$1], [$2])
|
|
||||||
|
|
||||||
])
|
|
|
@ -1,216 +0,0 @@
|
||||||
|
|
||||||
dnl use: EMOTION_CHECK_DEP_XINE(want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
||||||
|
|
||||||
AC_DEFUN([EMOTION_CHECK_DEP_XINE],
|
|
||||||
[
|
|
||||||
|
|
||||||
requirement=""
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES([XINE],
|
|
||||||
[libxine >= 1.1.1 evas >= 1.0.0],
|
|
||||||
[
|
|
||||||
have_dep="yes"
|
|
||||||
requirement="libxine"
|
|
||||||
],
|
|
||||||
[have_dep="no"])
|
|
||||||
|
|
||||||
if test "x$1" = "xstatic" ; then
|
|
||||||
requirement_emotion="${requirement} ${requirement_emotion}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AS_IF([test "x$have_dep" = "xyes"], [$2], [$3])
|
|
||||||
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl use: EMOTION_CHECK_DEP_GSTREAMER(want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
||||||
|
|
||||||
AC_DEFUN([EMOTION_CHECK_DEP_GSTREAMER],
|
|
||||||
[
|
|
||||||
|
|
||||||
GST_REQS=0.10.2
|
|
||||||
GSTPLUG_REQS=0.10.1
|
|
||||||
GST_MAJORMINOR=0.10
|
|
||||||
|
|
||||||
requirement=""
|
|
||||||
PKG_CHECK_MODULES([GSTREAMER],
|
|
||||||
[gstreamer-$GST_MAJORMINOR >= $GST_REQS gstreamer-plugins-base-$GST_MAJORMINOR >= $GSTPLUG_REQS gstreamer-video-$GST_MAJORMINOR >= $GSTPLUG_REQS evas >= 1.0.0 eina >= 1.1.99],
|
|
||||||
[
|
|
||||||
have_dep="yes"
|
|
||||||
requirement="gstreamer-$GST_MAJORMINOR gstreamer-plugins-base-$GST_MAJORMINOR"
|
|
||||||
],
|
|
||||||
[have_dep="no"])
|
|
||||||
|
|
||||||
if test "x$1" = "xstatic" ; then
|
|
||||||
requirement_emotion="${requirement} ${requirement_emotion}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AS_IF([test "x$have_dep" = "xyes"], [$2], [$3])
|
|
||||||
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl use: EMOTION_CHECK_DEP_GENERIC_VLC(want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
||||||
|
|
||||||
AC_DEFUN([EMOTION_CHECK_DEP_GENERIC_VLC],
|
|
||||||
[
|
|
||||||
|
|
||||||
requirement=""
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES([GENERIC_VLC],
|
|
||||||
[libvlc >= 0.9 eina >= 1.1.99],
|
|
||||||
[
|
|
||||||
have_dep="yes"
|
|
||||||
requirement="libvlc"
|
|
||||||
],
|
|
||||||
[have_dep="no"])
|
|
||||||
|
|
||||||
if test "x$1" = "xstatic" ; then
|
|
||||||
requirement_emotion="${requirement} ${requirement_emotion}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AS_IF([test "x$have_dep" = "xyes"], [$2], [$3])
|
|
||||||
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl use: EMOTION_CHECK_DEP_GENERIC(want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
||||||
|
|
||||||
AC_DEFUN([EMOTION_CHECK_DEP_GENERIC],
|
|
||||||
[
|
|
||||||
|
|
||||||
requirement=""
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES([GENERIC],
|
|
||||||
[evas >= 1.0.0],
|
|
||||||
[
|
|
||||||
have_dep="yes"
|
|
||||||
],
|
|
||||||
[have_dep="no"])
|
|
||||||
|
|
||||||
if test "x$1" = "xstatic" ; then
|
|
||||||
requirement_emotion="${requirement} ${requirement_emotion}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AS_IF([test "x$have_dep" = "xyes"], [$2], [$3])
|
|
||||||
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl use: EMOTION_CHECK_MODULE(description, want_module[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
||||||
AC_DEFUN([EMOTION_CHECK_MODULE],
|
|
||||||
[
|
|
||||||
m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl
|
|
||||||
m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl
|
|
||||||
|
|
||||||
want_module="$2"
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([DOWN],
|
|
||||||
[AC_HELP_STRING([--enable-]DOWN, [enable build of $1 module @<:@default=yes@:>@])],
|
|
||||||
[
|
|
||||||
if test "x${enableval}" = "xyes" ; then
|
|
||||||
enable_module="yes"
|
|
||||||
else
|
|
||||||
if test "x${enableval}" = "xstatic" ; then
|
|
||||||
enable_module="static"
|
|
||||||
else
|
|
||||||
enable_module="no"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[enable_module="yes"])
|
|
||||||
|
|
||||||
if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then
|
|
||||||
want_module="yes"
|
|
||||||
fi
|
|
||||||
|
|
||||||
have_module="no"
|
|
||||||
if test "x${want_module}" = "xyes" && (test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic") ; then
|
|
||||||
m4_default([EMOTION_CHECK_DEP_]m4_defn([UP]))(${enable_module}, [have_module="yes"], [have_module="no"])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable $1 module built])
|
|
||||||
AC_MSG_RESULT([${have_module}])
|
|
||||||
|
|
||||||
static_module="no"
|
|
||||||
if test "x${have_module}" = "xyes" && test "x${enable_module}" = "xstatic" ; then
|
|
||||||
static_module="yes"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(EMOTION_BUILD_[]UP, [test "x${have_module}" = "xyes"])
|
|
||||||
AM_CONDITIONAL(EMOTION_STATIC_BUILD_[]UP, [test "x${static_module}" = "xyes"])
|
|
||||||
|
|
||||||
if test "x${static_module}" = "xyes" ; then
|
|
||||||
AC_DEFINE(EMOTION_STATIC_BUILD_[]UP, 1, [Set to 1 if $1 is statically built])
|
|
||||||
have_static_module="yes"
|
|
||||||
fi
|
|
||||||
|
|
||||||
enable_[]DOWN="no"
|
|
||||||
if test "x${have_module}" = "xyes" ; then
|
|
||||||
enable_[]DOWN=${enable_module}
|
|
||||||
AC_DEFINE(EMOTION_BUILD_[]UP, 1, [Set to 1 if $1 is built])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AS_IF([test "x$have_module" = "xyes"], [$3], [$4])
|
|
||||||
|
|
||||||
m4_popdef([UP])
|
|
||||||
m4_popdef([DOWN])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl use: EMOTION_CHECK_GENERIC_PLAYER(description, want_module[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
||||||
AC_DEFUN([EMOTION_CHECK_GENERIC_PLAYER],
|
|
||||||
[
|
|
||||||
m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl
|
|
||||||
m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl
|
|
||||||
|
|
||||||
want_module="$2"
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(generic-[]DOWN,
|
|
||||||
[AC_HELP_STRING([--enable-generic-]DOWN, [enable build of Generic Player $1 @<:@default=yes@:>@])],
|
|
||||||
[
|
|
||||||
if test "x${enableval}" = "xyes" ; then
|
|
||||||
enable_module="yes"
|
|
||||||
else
|
|
||||||
enable_module="no"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[enable_module="auto"])
|
|
||||||
|
|
||||||
# shm_open
|
|
||||||
EFL_CHECK_SHM_OPEN([have_shm_open="yes"], [have_shm_open="no"])
|
|
||||||
|
|
||||||
if test "x${have_shm_open}" != "xyes"; then
|
|
||||||
enable_generic="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x${enable_generic}" != "xyes" && test "x${enable_generic}" != "xstatic"; then
|
|
||||||
if test "x${enable_module}" = "xyes"; then
|
|
||||||
AC_MSG_WARN([Generic module is disabled, force disable of Generic Player $1])
|
|
||||||
fi
|
|
||||||
enable_module="no"
|
|
||||||
want_module="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x${enable_module}" = "xauto"; then
|
|
||||||
enable_module="${want_module}"
|
|
||||||
elif test "x${enable_module}" = "xyes"; then
|
|
||||||
want_module="yes"
|
|
||||||
fi
|
|
||||||
|
|
||||||
have_module="no"
|
|
||||||
if test "x${want_module}" = "xyes" && test "x${enable_module}" = "xyes"; then
|
|
||||||
m4_default([EMOTION_CHECK_DEP_GENERIC_]m4_defn([UP]))(${enable_module}, [have_module="yes"], [have_module="no"])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([Whether to enable Generic Player $1])
|
|
||||||
AC_MSG_RESULT([${have_module}])
|
|
||||||
|
|
||||||
AM_CONDITIONAL(EMOTION_BUILD_GENERIC_[]UP, [test "x${have_module}" = "xyes"])
|
|
||||||
|
|
||||||
enable_generic_[]DOWN="no"
|
|
||||||
if test "x${have_module}" = "xyes" ; then
|
|
||||||
enable_generic_[]DOWN=${enable_module}
|
|
||||||
AC_DEFINE(EMOTION_BUILD_GENERIC_[]UP, 1, [Set to 1 if $1 is built])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AS_IF([test "x$have_module" = "xyes"], [$3], [$4])
|
|
||||||
|
|
||||||
m4_popdef([UP])
|
|
||||||
m4_popdef([DOWN])
|
|
||||||
])
|
|
|
@ -1,23 +0,0 @@
|
||||||
dnl Perform a check for a GStreamer element using gst-inspect
|
|
||||||
dnl Thomas Vander Stichele <thomas at apestaart dot org>
|
|
||||||
dnl Last modification: 25/01/2005
|
|
||||||
|
|
||||||
dnl AM_GST_ELEMENT_CHECK(ELEMENT-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
|
|
||||||
|
|
||||||
AC_DEFUN([AM_GST_ELEMENT_CHECK],
|
|
||||||
[
|
|
||||||
if test "x$GST_INSPECT" = "x"; then
|
|
||||||
AC_CHECK_PROGS(GST_INSPECT, gst-inspect gst-inspect-0.10, [])
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$GST_INSPECT" != "x"; then
|
|
||||||
AC_MSG_CHECKING(GStreamer element $1)
|
|
||||||
if $GST_INSPECT $1 > /dev/null 2> /dev/null ; then
|
|
||||||
AC_MSG_RESULT(found.)
|
|
||||||
$2
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(not found.)
|
|
||||||
$3
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
|
|
@ -1,12 +0,0 @@
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
SUBDIRS = lib bin modules examples
|
|
||||||
|
|
||||||
if ENABLE_EDJE_EXTERNAL
|
|
||||||
SUBDIRS += edje_external
|
|
||||||
endif
|
|
||||||
|
|
||||||
if EMOTION_BUILD_GENERIC
|
|
||||||
SUBDIRS += generic_players
|
|
||||||
endif
|
|
|
@ -1,26 +0,0 @@
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/lib \
|
|
||||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
|
||||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
|
||||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
|
||||||
@EMOTION_CFLAGS@ \
|
|
||||||
@EMOTION_CPPFLAGS@ \
|
|
||||||
@EMOTION_BIN_CFLAGS@ \
|
|
||||||
@ECORE_X_CFLAGS@ \
|
|
||||||
@ECORE_FB_CFLAGS@
|
|
||||||
|
|
||||||
bin_PROGRAMS =
|
|
||||||
|
|
||||||
if BUILD_EMOTION_TEST
|
|
||||||
|
|
||||||
bin_PROGRAMS += emotion_test
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
emotion_test_SOURCES = emotion_test_main.c
|
|
||||||
|
|
||||||
emotion_test_LDADD = @ECORE_X_CFLAGS@ @ECORE_FB_CFLAGS@ @EMOTION_BIN_LIBS@ $(top_builddir)/src/lib/libemotion.la
|
|
|
@ -1,18 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/lib \
|
|
||||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
|
||||||
@EMOTION_CPPFLAGS@ \
|
|
||||||
@EMOTION_CFLAGS@ \
|
|
||||||
@EDJE_EXTERNAL_CFLAGS@ \
|
|
||||||
@EFL_EMOTION_BUILD@
|
|
||||||
|
|
||||||
pkgdir = $(libdir)/edje/modules/emotion/$(MODULE_EDJE)
|
|
||||||
pkg_LTLIBRARIES = module.la
|
|
||||||
|
|
||||||
module_la_SOURCES = emotion.c
|
|
||||||
module_la_LIBADD = @EMOTION_LIBS@ $(top_builddir)/src/lib/libemotion.la @EDJE_EXTERNAL_LIBS@
|
|
||||||
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
|
|
||||||
module_la_LIBTOOLFLAGS = --tag=disable-static
|
|
|
@ -1,41 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
examplesdir = $(datadir)/$(PACKAGE)/examples
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I. \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/lib \
|
|
||||||
@EMOTION_CFLAGS@ \
|
|
||||||
@EMOTION_CPPFLAGS@ \
|
|
||||||
@EMOTION_BIN_CFLAGS@
|
|
||||||
|
|
||||||
LDADD = \
|
|
||||||
$(top_builddir)/src/lib/libemotion.la \
|
|
||||||
@EMOTION_BIN_LIBS@
|
|
||||||
|
|
||||||
SRCS = \
|
|
||||||
emotion_basic_example.c \
|
|
||||||
emotion_generic_example.c \
|
|
||||||
emotion_generic_subtitle_example.c \
|
|
||||||
emotion_border_example.c \
|
|
||||||
emotion_signals_example.c
|
|
||||||
|
|
||||||
EXTRA_DIST = $(SRCS)
|
|
||||||
|
|
||||||
examples_PROGRAMS =
|
|
||||||
|
|
||||||
if EFL_INSTALL_EXAMPLES
|
|
||||||
filesdir = $(datadir)/$(PACKAGE)/examples
|
|
||||||
files_DATA = $(SRCS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if EFL_BUILD_EXAMPLES
|
|
||||||
examples_PROGRAMS += \
|
|
||||||
emotion_basic_example \
|
|
||||||
emotion_generic_example \
|
|
||||||
emotion_generic_subtitle_example \
|
|
||||||
emotion_border_example \
|
|
||||||
emotion_signals_example
|
|
||||||
endif
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
SUBDIRS =
|
|
||||||
|
|
||||||
if EMOTION_BUILD_GENERIC_VLC
|
|
||||||
SUBDIRS += vlc
|
|
||||||
endif
|
|
|
@ -1,18 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/lib \
|
|
||||||
-I$(top_srcdir)/src/modules \
|
|
||||||
-I$(top_srcdir)/src/modules/generic \
|
|
||||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
|
||||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
|
||||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
|
||||||
@GENERIC_VLC_CFLAGS@
|
|
||||||
|
|
||||||
internal_bindir = $(libdir)/emotion/utils
|
|
||||||
internal_bin_PROGRAMS = em_generic_vlc
|
|
||||||
|
|
||||||
em_generic_vlc_SOURCES = emotion_generic_vlc.c
|
|
||||||
em_generic_vlc_DEPENDENCIES = $(top_srcdir)/src/modules/generic/Emotion_Generic_Plugin.h
|
|
||||||
em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ @EFL_SHM_OPEN_LIBS@ -lpthread
|
|
|
@ -1,916 +0,0 @@
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <limits.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
#include <poll.h>
|
|
||||||
|
|
||||||
#include <sys/prctl.h>
|
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
#include <vlc/vlc.h>
|
|
||||||
|
|
||||||
#include <Emotion_Generic_Plugin.h>
|
|
||||||
#include <Eina.h>
|
|
||||||
|
|
||||||
static int _em_vlc_log_dom = -1;
|
|
||||||
#define ERR(...) EINA_LOG_DOM_ERR(_em_vlc_log_dom, __VA_ARGS__)
|
|
||||||
#define DBG(...) EINA_LOG_DOM_DBG(_em_vlc_log_dom, __VA_ARGS__)
|
|
||||||
#define INF(...) EINA_LOG_DOM_INFO(_em_vlc_log_dom, __VA_ARGS__)
|
|
||||||
#define WRN(...) EINA_LOG_DOM_WARN(_em_vlc_log_dom, __VA_ARGS__)
|
|
||||||
#define CRIT(...) EINA_LOG_DOM_CRIT(_em_vlc_log_dom, __VA_ARGS__)
|
|
||||||
|
|
||||||
enum _Thread_Events {
|
|
||||||
EM_THREAD_POSITION_CHANGED,
|
|
||||||
EM_THREAD_PLAYBACK_STARTED,
|
|
||||||
EM_THREAD_PLAYBACK_STOPPED,
|
|
||||||
EM_THREAD_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _App {
|
|
||||||
Emotion_Generic_Video_Shared *vs;
|
|
||||||
Emotion_Generic_Video_Frame vf;
|
|
||||||
libvlc_instance_t *libvlc;
|
|
||||||
libvlc_media_t *m;
|
|
||||||
libvlc_media_player_t *mp;
|
|
||||||
libvlc_event_manager_t *event_mgr;
|
|
||||||
libvlc_event_manager_t *mevent_mgr;
|
|
||||||
char *filename;
|
|
||||||
char *subtitle_path;
|
|
||||||
char *shmname;
|
|
||||||
void *tmpbuffer;
|
|
||||||
int w, h;
|
|
||||||
int fd_read; // read commands from theads here
|
|
||||||
int fd_write; // write commands from threads here
|
|
||||||
int em_read; // read commands from emotion here
|
|
||||||
int em_write; // write commands to emotion here
|
|
||||||
int size_sent;
|
|
||||||
int opening;
|
|
||||||
int closing;
|
|
||||||
int playing;
|
|
||||||
};
|
|
||||||
|
|
||||||
static pthread_mutex_t _mutex_fd = PTHREAD_MUTEX_INITIALIZER;
|
|
||||||
|
|
||||||
int
|
|
||||||
_em_read_safe(int fd, void *buf, ssize_t size)
|
|
||||||
{
|
|
||||||
ssize_t todo;
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
todo = size;
|
|
||||||
p = buf;
|
|
||||||
|
|
||||||
while (todo > 0)
|
|
||||||
{
|
|
||||||
ssize_t r;
|
|
||||||
|
|
||||||
r = read(fd, p, todo);
|
|
||||||
if (r > 0)
|
|
||||||
{
|
|
||||||
todo -= r;
|
|
||||||
p += r;
|
|
||||||
}
|
|
||||||
else if (r == 0)
|
|
||||||
return 0;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (errno == EINTR || errno == EAGAIN)
|
|
||||||
continue;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ERR("could not read from fd %d: %s", fd, strerror(errno));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_em_write_safe(int fd, const void *buf, ssize_t size)
|
|
||||||
{
|
|
||||||
ssize_t todo;
|
|
||||||
const char *p;
|
|
||||||
|
|
||||||
todo = size;
|
|
||||||
p = buf;
|
|
||||||
|
|
||||||
while (todo > 0)
|
|
||||||
{
|
|
||||||
ssize_t r;
|
|
||||||
|
|
||||||
r = write(fd, p, todo);
|
|
||||||
if (r > 0)
|
|
||||||
{
|
|
||||||
todo -= r;
|
|
||||||
p += r;
|
|
||||||
}
|
|
||||||
else if (r == 0)
|
|
||||||
return 0;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (errno == EINTR || errno == EAGAIN)
|
|
||||||
continue;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ERR("could not write to fd %d: %s", fd, strerror(errno));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
_em_str_read(int fd, char **str)
|
|
||||||
{
|
|
||||||
int size;
|
|
||||||
int r;
|
|
||||||
char buf[PATH_MAX];
|
|
||||||
|
|
||||||
r = _em_read_safe(fd, &size, sizeof(size));
|
|
||||||
if (!r)
|
|
||||||
{
|
|
||||||
*str = NULL;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!size)
|
|
||||||
{
|
|
||||||
*str = NULL;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
r = _em_read_safe(fd, buf, size);
|
|
||||||
if (!r)
|
|
||||||
{
|
|
||||||
*str = NULL;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
*str = strdup(buf);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
_em_cmd_read(struct _App *app)
|
|
||||||
{
|
|
||||||
int cmd;
|
|
||||||
_em_read_safe(app->em_read, &cmd, sizeof(cmd));
|
|
||||||
|
|
||||||
return cmd;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_cmd_start(struct _App *app, int cmd)
|
|
||||||
{
|
|
||||||
pthread_mutex_lock(&_mutex_fd);
|
|
||||||
_em_write_safe(app->em_write, &cmd, sizeof(cmd));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_cmd_finish(struct _App *app __UNUSED__)
|
|
||||||
{
|
|
||||||
pthread_mutex_unlock(&_mutex_fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_cmd(struct _App *app, int cmd)
|
|
||||||
{
|
|
||||||
_send_cmd_start(app, cmd);
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_cmd_str(struct _App *app, const char *str)
|
|
||||||
{
|
|
||||||
int len;
|
|
||||||
if (str)
|
|
||||||
len = strlen(str) + 1;
|
|
||||||
else
|
|
||||||
len = 0;
|
|
||||||
_em_write_safe(app->em_write, &len, sizeof(len));
|
|
||||||
_em_write_safe(app->em_write, str, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define SEND_CMD_PARAM(app, i) \
|
|
||||||
_em_write_safe((app)->em_write, &(i), sizeof((i)));
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_resize(struct _App *app, int width, int height)
|
|
||||||
{
|
|
||||||
_send_cmd_start(app, EM_RESULT_FRAME_SIZE);
|
|
||||||
SEND_CMD_PARAM(app, width);
|
|
||||||
SEND_CMD_PARAM(app, height);
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_length_changed(struct _App *app, const struct libvlc_event_t *ev)
|
|
||||||
{
|
|
||||||
float length = ev->u.media_player_length_changed.new_length;
|
|
||||||
length /= 1000;
|
|
||||||
|
|
||||||
_send_cmd_start(app, EM_RESULT_LENGTH_CHANGED);
|
|
||||||
SEND_CMD_PARAM(app, length);
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_time_changed(struct _App *app, const struct libvlc_event_t *ev)
|
|
||||||
{
|
|
||||||
float new_time = ev->u.media_player_time_changed.new_time;
|
|
||||||
new_time /= 1000;
|
|
||||||
if (app->vs->frame_drop > 1)
|
|
||||||
return;
|
|
||||||
_send_cmd_start(app, EM_RESULT_POSITION_CHANGED);
|
|
||||||
SEND_CMD_PARAM(app, new_time);
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_seekable_changed(struct _App *app, const struct libvlc_event_t *ev)
|
|
||||||
{
|
|
||||||
int seekable = ev->u.media_player_seekable_changed.new_seekable;
|
|
||||||
_send_cmd_start(app, EM_RESULT_SEEKABLE_CHANGED);
|
|
||||||
SEND_CMD_PARAM(app, seekable);
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void *
|
|
||||||
_lock(void *data, void **pixels)
|
|
||||||
{
|
|
||||||
struct _App *app = data;
|
|
||||||
|
|
||||||
if (app->playing)
|
|
||||||
*pixels = app->vf.frames[app->vs->frame.player];
|
|
||||||
else
|
|
||||||
*pixels = NULL;
|
|
||||||
|
|
||||||
return NULL; // picture identifier, not needed here
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_unlock(void *data __UNUSED__, void *id __UNUSED__, void *const *pixels __UNUSED__)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_display(void *data, void *id __UNUSED__)
|
|
||||||
{
|
|
||||||
struct _App *app = data;
|
|
||||||
if (!app->playing)
|
|
||||||
return;
|
|
||||||
|
|
||||||
sem_wait(&app->vs->lock);
|
|
||||||
app->vs->frame.last = app->vs->frame.player;
|
|
||||||
app->vs->frame.player = app->vs->frame.next;
|
|
||||||
app->vs->frame.next = app->vs->frame.last;
|
|
||||||
if (!app->vs->frame_drop++)
|
|
||||||
_send_cmd(app, EM_RESULT_FRAME_NEW);
|
|
||||||
sem_post(&app->vs->lock);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void *
|
|
||||||
_tmp_lock(void *data, void **pixels)
|
|
||||||
{
|
|
||||||
struct _App *app = data;
|
|
||||||
*pixels = app->tmpbuffer;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_tmp_unlock(void *data __UNUSED__, void *id __UNUSED__, void *const *pixels __UNUSED__)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_tmp_display(void *data __UNUSED__, void *id __UNUSED__)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_play(struct _App *app)
|
|
||||||
{
|
|
||||||
float pos;
|
|
||||||
|
|
||||||
if (!app->mp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_em_read_safe(app->em_read, &pos, sizeof(pos));
|
|
||||||
|
|
||||||
if (app->playing)
|
|
||||||
{
|
|
||||||
libvlc_media_player_set_pause(app->mp, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
libvlc_time_t new_time = pos * 1000;
|
|
||||||
libvlc_media_player_set_time(app->mp, new_time);
|
|
||||||
libvlc_media_player_play(app->mp);
|
|
||||||
|
|
||||||
if (app->subtitle_path)
|
|
||||||
libvlc_video_set_subtitle_file(app->mp, app->subtitle_path);
|
|
||||||
|
|
||||||
app->playing = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_stop(struct _App *app)
|
|
||||||
{
|
|
||||||
if (app->mp)
|
|
||||||
libvlc_media_player_set_pause(app->mp, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_file_closed(struct _App *app)
|
|
||||||
{
|
|
||||||
app->closing = 0;
|
|
||||||
emotion_generic_shm_free(app->vs);
|
|
||||||
_send_cmd(app, EM_RESULT_FILE_CLOSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_file_set(struct _App *app)
|
|
||||||
{
|
|
||||||
if (app->opening)
|
|
||||||
_send_cmd(app, EM_RESULT_FILE_SET);
|
|
||||||
|
|
||||||
if (app->closing)
|
|
||||||
_send_file_closed(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_event_cb(const struct libvlc_event_t *ev, void *data)
|
|
||||||
{
|
|
||||||
struct _App *app = data;
|
|
||||||
int thread_event;
|
|
||||||
|
|
||||||
switch (ev->type) {
|
|
||||||
case libvlc_MediaPlayerTimeChanged:
|
|
||||||
_send_time_changed(app, ev);
|
|
||||||
break;
|
|
||||||
case libvlc_MediaPlayerPositionChanged:
|
|
||||||
thread_event = EM_THREAD_POSITION_CHANGED;
|
|
||||||
write(app->fd_write, &thread_event, sizeof(thread_event));
|
|
||||||
break;
|
|
||||||
case libvlc_MediaPlayerLengthChanged:
|
|
||||||
_send_length_changed(app, ev);
|
|
||||||
break;
|
|
||||||
case libvlc_MediaPlayerSeekableChanged:
|
|
||||||
_send_seekable_changed(app, ev);
|
|
||||||
break;
|
|
||||||
case libvlc_MediaPlayerPlaying:
|
|
||||||
_send_resize(app, app->w, app->h);
|
|
||||||
thread_event = EM_THREAD_PLAYBACK_STARTED;
|
|
||||||
write(app->fd_write, &thread_event, sizeof(thread_event));
|
|
||||||
break;
|
|
||||||
case libvlc_MediaPlayerStopped:
|
|
||||||
_send_file_set(app);
|
|
||||||
break;
|
|
||||||
case libvlc_MediaPlayerEndReached:
|
|
||||||
thread_event = EM_THREAD_PLAYBACK_STOPPED;
|
|
||||||
write(app->fd_write, &thread_event, sizeof(thread_event));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_subtitle_set(struct _App *app)
|
|
||||||
{
|
|
||||||
_em_str_read(app->em_read, &app->subtitle_path);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_file_set(struct _App *app)
|
|
||||||
{
|
|
||||||
if (app->opening)
|
|
||||||
{
|
|
||||||
libvlc_media_release(app->m);
|
|
||||||
libvlc_media_player_release(app->mp);
|
|
||||||
free(app->filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
_em_str_read(app->em_read, &app->filename);
|
|
||||||
|
|
||||||
app->m = libvlc_media_new_path(app->libvlc, app->filename);
|
|
||||||
if (!app->m)
|
|
||||||
{
|
|
||||||
ERR("could not open path: \"%s\"", app->filename);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
app->mp = libvlc_media_player_new_from_media(app->m);
|
|
||||||
if (!app->mp)
|
|
||||||
{
|
|
||||||
ERR("could not create new player from media.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
app->opening = 1;
|
|
||||||
libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4);
|
|
||||||
libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, app);
|
|
||||||
app->event_mgr = libvlc_media_player_event_manager(app->mp);
|
|
||||||
libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged,
|
|
||||||
_event_cb, app);
|
|
||||||
libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped,
|
|
||||||
_event_cb, app);
|
|
||||||
|
|
||||||
app->mevent_mgr = libvlc_media_event_manager(app->m);
|
|
||||||
|
|
||||||
app->tmpbuffer = malloc(sizeof(char) * DEFAULTWIDTH * DEFAULTHEIGHT * 4);
|
|
||||||
libvlc_audio_set_mute(app->mp, 1);
|
|
||||||
libvlc_media_player_play(app->mp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_position_set(struct _App *app)
|
|
||||||
{
|
|
||||||
if (!app->mp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
float position;
|
|
||||||
_em_read_safe(app->em_read, &position, sizeof(position));
|
|
||||||
|
|
||||||
libvlc_time_t new_time = position * 1000;
|
|
||||||
libvlc_media_player_set_time(app->mp, new_time);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_speed_set(struct _App *app)
|
|
||||||
{
|
|
||||||
float rate;
|
|
||||||
|
|
||||||
if (!app->mp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_em_read_safe(app->em_read, &rate, sizeof(rate));
|
|
||||||
|
|
||||||
libvlc_media_player_set_rate(app->mp, rate);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_mute_set(struct _App *app)
|
|
||||||
{
|
|
||||||
int mute;
|
|
||||||
|
|
||||||
if (!app->mp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_em_read_safe(app->em_read, &mute, sizeof(mute));
|
|
||||||
|
|
||||||
libvlc_audio_set_mute(app->mp, mute);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_volume_set(struct _App *app)
|
|
||||||
{
|
|
||||||
float volume;
|
|
||||||
int vol;
|
|
||||||
|
|
||||||
if (!app->mp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_em_read_safe(app->em_read, &volume, sizeof(volume));
|
|
||||||
vol = volume * 100;
|
|
||||||
|
|
||||||
libvlc_audio_set_volume(app->mp, vol);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_spu_track_set(struct _App *app)
|
|
||||||
{
|
|
||||||
int track;
|
|
||||||
|
|
||||||
_em_read_safe(app->em_read, &track, sizeof(track));
|
|
||||||
|
|
||||||
libvlc_video_set_spu(app->mp, track);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_audio_track_set(struct _App *app)
|
|
||||||
{
|
|
||||||
int track;
|
|
||||||
|
|
||||||
_em_read_safe(app->em_read, &track, sizeof(track));
|
|
||||||
|
|
||||||
libvlc_audio_set_track(app->mp, track);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_video_track_set(struct _App *app)
|
|
||||||
{
|
|
||||||
int track;
|
|
||||||
|
|
||||||
_em_read_safe(app->em_read, &track, sizeof(track));
|
|
||||||
|
|
||||||
libvlc_video_set_track(app->mp, track);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_file_set_done(struct _App *app)
|
|
||||||
{
|
|
||||||
int r;
|
|
||||||
|
|
||||||
app->opening = 0;
|
|
||||||
|
|
||||||
r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf);
|
|
||||||
if (!r)
|
|
||||||
{
|
|
||||||
free(app->filename);
|
|
||||||
libvlc_media_release(app->m);
|
|
||||||
libvlc_media_player_release(app->mp);
|
|
||||||
app->filename = NULL;
|
|
||||||
app->m = NULL;
|
|
||||||
app->mp = NULL;
|
|
||||||
_send_cmd_start(app, EM_RESULT_FILE_SET_DONE);
|
|
||||||
SEND_CMD_PARAM(app, r);
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
app->w = app->vs->width;
|
|
||||||
app->h = app->vs->height;
|
|
||||||
libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4);
|
|
||||||
libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app);
|
|
||||||
|
|
||||||
|
|
||||||
libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying,
|
|
||||||
_event_cb, app);
|
|
||||||
libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged,
|
|
||||||
_event_cb, app);
|
|
||||||
libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged,
|
|
||||||
_event_cb, app);
|
|
||||||
libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged,
|
|
||||||
_event_cb, app);
|
|
||||||
libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached,
|
|
||||||
_event_cb, app);
|
|
||||||
|
|
||||||
libvlc_audio_set_mute(app->mp, 0);
|
|
||||||
|
|
||||||
_send_cmd_start(app, EM_RESULT_FILE_SET_DONE);
|
|
||||||
SEND_CMD_PARAM(app, r);
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_file_close(struct _App *app)
|
|
||||||
{
|
|
||||||
app->playing = 0;
|
|
||||||
if (app->opening)
|
|
||||||
goto release_resources;
|
|
||||||
|
|
||||||
if (libvlc_media_player_get_state(app->mp) != libvlc_Playing)
|
|
||||||
{
|
|
||||||
_send_file_closed(app);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
app->closing = 1;
|
|
||||||
|
|
||||||
release_resources:
|
|
||||||
libvlc_media_player_stop(app->mp);
|
|
||||||
if (app->filename)
|
|
||||||
free(app->filename);
|
|
||||||
if (app->mp)
|
|
||||||
{
|
|
||||||
libvlc_media_release(app->m);
|
|
||||||
libvlc_media_player_release(app->mp);
|
|
||||||
free(app->tmpbuffer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_process_emotion_commands(struct _App *app)
|
|
||||||
{
|
|
||||||
int cmd = _em_cmd_read(app);
|
|
||||||
switch (cmd) {
|
|
||||||
case EM_CMD_FILE_SET:
|
|
||||||
_file_set(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_FILE_SET_DONE:
|
|
||||||
_file_set_done(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_SUBTITLE_SET:
|
|
||||||
_subtitle_set(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_FILE_CLOSE:
|
|
||||||
_file_close(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_PLAY:
|
|
||||||
_play(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_STOP:
|
|
||||||
_stop(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_POSITION_SET:
|
|
||||||
_position_set(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_SPEED_SET:
|
|
||||||
_speed_set(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_AUDIO_MUTE_SET:
|
|
||||||
_mute_set(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_VOLUME_SET:
|
|
||||||
_volume_set(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_SPU_TRACK_SET:
|
|
||||||
_spu_track_set(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_AUDIO_TRACK_SET:
|
|
||||||
_audio_track_set(app);
|
|
||||||
break;
|
|
||||||
case EM_CMD_VIDEO_TRACK_SET:
|
|
||||||
_video_track_set(app);
|
|
||||||
break;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_track_info(struct _App *app, int cmd, int current, int count, libvlc_track_description_t *desc)
|
|
||||||
{
|
|
||||||
_send_cmd_start(app, cmd);
|
|
||||||
SEND_CMD_PARAM(app, current);
|
|
||||||
SEND_CMD_PARAM(app, count);
|
|
||||||
while (desc)
|
|
||||||
{
|
|
||||||
int tid = desc->i_id;
|
|
||||||
const char *name = desc->psz_name;
|
|
||||||
SEND_CMD_PARAM(app, tid);
|
|
||||||
_send_cmd_str(app, name);
|
|
||||||
desc = desc->p_next;
|
|
||||||
}
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_all_track_info(struct _App *app)
|
|
||||||
{
|
|
||||||
int track_count, current;
|
|
||||||
libvlc_track_description_t *desc;
|
|
||||||
|
|
||||||
current = libvlc_audio_get_track(app->mp);
|
|
||||||
track_count = libvlc_audio_get_track_count(app->mp);
|
|
||||||
desc = libvlc_audio_get_track_description(app->mp);
|
|
||||||
|
|
||||||
_send_track_info(app, EM_RESULT_AUDIO_TRACK_INFO,
|
|
||||||
current, track_count, desc);
|
|
||||||
|
|
||||||
current = libvlc_video_get_track(app->mp);
|
|
||||||
track_count = libvlc_video_get_track_count(app->mp);
|
|
||||||
desc = libvlc_video_get_track_description(app->mp);
|
|
||||||
|
|
||||||
_send_track_info(app, EM_RESULT_VIDEO_TRACK_INFO,
|
|
||||||
current, track_count, desc);
|
|
||||||
|
|
||||||
current = libvlc_video_get_spu(app->mp);
|
|
||||||
track_count = libvlc_video_get_spu_count(app->mp);
|
|
||||||
desc = libvlc_video_get_spu_description(app->mp);
|
|
||||||
|
|
||||||
_send_track_info(app, EM_RESULT_SPU_TRACK_INFO,
|
|
||||||
current, track_count, desc);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_send_all_meta_info(struct _App *app)
|
|
||||||
{
|
|
||||||
const char *meta;
|
|
||||||
|
|
||||||
_send_cmd_start(app, EM_RESULT_META_INFO);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Will send in this order: title, artist, album, year,
|
|
||||||
* genre, comments, disc id and track count.
|
|
||||||
*/
|
|
||||||
meta = libvlc_media_get_meta(app->m, libvlc_meta_Title);
|
|
||||||
_send_cmd_str(app, meta);
|
|
||||||
meta = libvlc_media_get_meta(app->m, libvlc_meta_Artist);
|
|
||||||
_send_cmd_str(app, meta);
|
|
||||||
meta = libvlc_media_get_meta(app->m, libvlc_meta_Album);
|
|
||||||
_send_cmd_str(app, meta);
|
|
||||||
meta = libvlc_media_get_meta(app->m, libvlc_meta_Date);
|
|
||||||
_send_cmd_str(app, meta);
|
|
||||||
meta = libvlc_media_get_meta(app->m, libvlc_meta_Genre);
|
|
||||||
_send_cmd_str(app, meta);
|
|
||||||
meta = NULL; // sending empty comments
|
|
||||||
_send_cmd_str(app, meta);
|
|
||||||
meta = NULL; // sending empty disc id
|
|
||||||
_send_cmd_str(app, meta);
|
|
||||||
meta = libvlc_media_get_meta(app->m, libvlc_meta_TrackNumber);
|
|
||||||
_send_cmd_str(app, meta);
|
|
||||||
_send_cmd_finish(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_position_changed(struct _App *app)
|
|
||||||
{
|
|
||||||
if (!app->opening)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* sending size info only once */
|
|
||||||
int r;
|
|
||||||
unsigned int w, h;
|
|
||||||
r = libvlc_video_get_size(app->mp, 0, &w, &h);
|
|
||||||
if (r < 0)
|
|
||||||
{
|
|
||||||
w = 1;
|
|
||||||
h = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (w > 0 || h > 0)
|
|
||||||
{
|
|
||||||
_send_resize(app, w, h);
|
|
||||||
app->size_sent = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* sending audio track info */
|
|
||||||
_send_all_track_info(app);
|
|
||||||
|
|
||||||
/* sending meta info */
|
|
||||||
_send_all_meta_info(app);
|
|
||||||
|
|
||||||
if (app->size_sent)
|
|
||||||
libvlc_media_player_stop(app->mp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_process_thread_events(struct _App *app)
|
|
||||||
{
|
|
||||||
int event;
|
|
||||||
size_t size;
|
|
||||||
|
|
||||||
size = read(app->fd_read, &event, sizeof(event));
|
|
||||||
if (size != sizeof(event))
|
|
||||||
{
|
|
||||||
ERR("player: problem when reading thread event. size = %zd", size);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (event) {
|
|
||||||
case EM_THREAD_POSITION_CHANGED:
|
|
||||||
_position_changed(app);
|
|
||||||
break;
|
|
||||||
case EM_THREAD_PLAYBACK_STARTED:
|
|
||||||
_send_cmd(app, EM_RESULT_PLAYBACK_STARTED);
|
|
||||||
break;
|
|
||||||
case EM_THREAD_PLAYBACK_STOPPED:
|
|
||||||
app->playing = 0;
|
|
||||||
_send_cmd(app, EM_RESULT_PLAYBACK_STOPPED);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, const char *argv[])
|
|
||||||
{
|
|
||||||
struct _App app;
|
|
||||||
struct pollfd fds[3];
|
|
||||||
int tpipe[2]; // pipe for comunicating events from threads
|
|
||||||
char cwidth[64], cheight[64], cpitch[64], chroma[64];
|
|
||||||
char buf[64];
|
|
||||||
|
|
||||||
if (!eina_init())
|
|
||||||
{
|
|
||||||
EINA_LOG_CRIT("Can't initialize generic vlc player, eina failed.");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
_em_vlc_log_dom = eina_log_domain_register("emotion_generic_vlc",
|
|
||||||
EINA_COLOR_CYAN);
|
|
||||||
if (_em_vlc_log_dom < 0)
|
|
||||||
{
|
|
||||||
EINA_LOG_CRIT("Unable to register emotion_generic_vlc log domain.");
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!eina_log_domain_level_check(_em_vlc_log_dom, EINA_LOG_LEVEL_WARN))
|
|
||||||
eina_log_domain_level_set("emotion_generic_vlc", EINA_LOG_LEVEL_WARN);
|
|
||||||
|
|
||||||
const char *vlc_argv[] =
|
|
||||||
{
|
|
||||||
"--quiet",
|
|
||||||
"--vout",
|
|
||||||
"vmem",
|
|
||||||
"--vmem-width",
|
|
||||||
cwidth,
|
|
||||||
"--vmem-height",
|
|
||||||
cheight,
|
|
||||||
"--vmem-pitch",
|
|
||||||
cpitch,
|
|
||||||
"--vmem-chroma",
|
|
||||||
chroma
|
|
||||||
};
|
|
||||||
|
|
||||||
if (argc < 3)
|
|
||||||
{
|
|
||||||
ERR("missing parameters.");
|
|
||||||
ERR("syntax:\n\t%s <fd read> <fd write>", argv[0]);
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
app.em_read = atoi(argv[1]);
|
|
||||||
app.em_write = atoi(argv[2]);
|
|
||||||
|
|
||||||
int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv);
|
|
||||||
snprintf(cwidth, sizeof(cwidth), "%d", DEFAULTWIDTH);
|
|
||||||
snprintf(cheight, sizeof(cheight), "%d", DEFAULTHEIGHT);
|
|
||||||
snprintf(cpitch, sizeof(cpitch), "%d", DEFAULTWIDTH * 4);
|
|
||||||
snprintf(chroma, sizeof(chroma), "RV32");
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Naughty xattr in emotion uses ecore_thread to run its thing, this
|
|
||||||
* may leave emotion's reference count high and it won't kill us...
|
|
||||||
* letting us play the video in the background. not good.
|
|
||||||
*
|
|
||||||
* prctl(PR_SET_PDEATHSIG) is a linux only thing. Need to find ways
|
|
||||||
* to do it on other platforms. Until then leave it breaking on
|
|
||||||
* such platforms so people port it instead of ignoring.
|
|
||||||
*/
|
|
||||||
prctl(PR_SET_PDEATHSIG, SIGHUP);
|
|
||||||
|
|
||||||
app.libvlc = libvlc_new(vlc_argc, vlc_argv);
|
|
||||||
app.mp = NULL;
|
|
||||||
app.filename = NULL;
|
|
||||||
app.subtitle_path = NULL;
|
|
||||||
app.w = 0;
|
|
||||||
app.h = 0;
|
|
||||||
app.size_sent = 0;
|
|
||||||
app.opening = 0;
|
|
||||||
app.playing = 0;
|
|
||||||
app.closing = 0;
|
|
||||||
|
|
||||||
if (_em_cmd_read(&app) != EM_CMD_INIT)
|
|
||||||
{
|
|
||||||
ERR("wrong init command!");
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
int size;
|
|
||||||
_em_read_safe(app.em_read, &size, sizeof(size));
|
|
||||||
_em_read_safe(app.em_read, buf, size);
|
|
||||||
app.shmname = strdup(buf);
|
|
||||||
|
|
||||||
_send_cmd(&app, EM_RESULT_INIT);
|
|
||||||
|
|
||||||
pipe(tpipe);
|
|
||||||
app.fd_read = tpipe[0];
|
|
||||||
app.fd_write = tpipe[1];
|
|
||||||
fds[0].fd = app.em_read;
|
|
||||||
fds[0].events = POLLIN;
|
|
||||||
fds[1].fd = app.fd_read;
|
|
||||||
fds[1].events = POLLIN;
|
|
||||||
fds[2].fd = STDERR_FILENO;
|
|
||||||
fds[2].events = 0;
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
int r;
|
|
||||||
|
|
||||||
r = poll(fds, 3, -1);
|
|
||||||
if (r == 0)
|
|
||||||
continue;
|
|
||||||
else if (r < 0)
|
|
||||||
{
|
|
||||||
ERR("an error ocurred on poll(): %s", strerror(errno));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fds[0].revents & (POLLERR | POLLHUP | POLLNVAL))
|
|
||||||
{
|
|
||||||
ERR("error communicating with stdin", stderr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (fds[1].revents & (POLLERR | POLLHUP | POLLNVAL))
|
|
||||||
{
|
|
||||||
ERR("error communicating with thread", stderr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fds[0].revents & POLLIN)
|
|
||||||
_process_emotion_commands(&app);
|
|
||||||
if (fds[1].revents & POLLIN)
|
|
||||||
_process_thread_events(&app);
|
|
||||||
if (fds[2].revents & (POLLERR | POLLHUP | POLLNVAL))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
libvlc_release(app.libvlc);
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
error:
|
|
||||||
eina_shutdown();
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
#undef SEND_CMD_PARAM
|
|
|
@ -1,59 +0,0 @@
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/lib \
|
|
||||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
|
||||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
|
||||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
|
||||||
@EMOTION_CPPFLAGS@ \
|
|
||||||
@EMOTION_CFLAGS@ \
|
|
||||||
@EIO_CFLAGS@ \
|
|
||||||
@EFL_EMOTION_BUILD@ \
|
|
||||||
@EEZE_CFLAGS@
|
|
||||||
|
|
||||||
if EMOTION_STATIC_BUILD_XINE
|
|
||||||
AM_CPPFLAGS += @XINE_CFLAGS@
|
|
||||||
endif
|
|
||||||
|
|
||||||
if EMOTION_STATIC_BUILD_GSTREAMER
|
|
||||||
AM_CPPFLAGS += @GSTREAMER_CFLAGS@
|
|
||||||
endif
|
|
||||||
|
|
||||||
lib_LTLIBRARIES = libemotion.la
|
|
||||||
includes_HEADERS = Emotion.h
|
|
||||||
includesdir = $(includedir)/emotion-@VMAJ@
|
|
||||||
|
|
||||||
libemotion_la_SOURCES = emotion_smart.c emotion_main.c
|
|
||||||
|
|
||||||
if EMOTION_STATIC_BUILD_XINE
|
|
||||||
libemotion_la_SOURCES += \
|
|
||||||
$(top_srcdir)/src/modules/xine/emotion_xine.c \
|
|
||||||
$(top_srcdir)/src/modules/xine/emotion_xine_vo_out.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if EMOTION_STATIC_BUILD_GSTREAMER
|
|
||||||
libemotion_la_SOURCES += \
|
|
||||||
$(top_srcdir)/src/modules/gstreamer/emotion_gstreamer.c \
|
|
||||||
$(top_srcdir)/src/modules/gstreamer/emotion_sink.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if EMOTION_STATIC_BUILD_GENERIC
|
|
||||||
libemotion_la_SOURCES += \
|
|
||||||
$(top_srcdir)/src/modules/generic/emotion_generic.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
libemotion_la_LIBADD = @EMOTION_LIBS@ @EIO_LIBS@ @EEZE_LIBS@
|
|
||||||
|
|
||||||
if EMOTION_STATIC_BUILD_XINE
|
|
||||||
libemotion_la_LIBADD += @XINE_LIBS@
|
|
||||||
endif
|
|
||||||
|
|
||||||
if EMOTION_STATIC_BUILD_GSTREAMER
|
|
||||||
libemotion_la_LIBADD += @GSTREAMER_LIBS@
|
|
||||||
endif
|
|
||||||
|
|
||||||
libemotion_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@
|
|
||||||
|
|
||||||
EXTRA_DIST = emotion_private.h
|
|
|
@ -1,4 +0,0 @@
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
SUBDIRS = xine gstreamer generic
|
|
|
@ -1,31 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/lib \
|
|
||||||
-I$(top_srcdir)/src/modules \
|
|
||||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
|
||||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
|
||||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
|
||||||
@EMOTION_CFLAGS@ \
|
|
||||||
@EMOTION_CPPFLAGS@ \
|
|
||||||
@EFL_EMOTION_BUILD@
|
|
||||||
|
|
||||||
if EMOTION_BUILD_GENERIC
|
|
||||||
if !EMOTION_STATIC_BUILD_GENERIC
|
|
||||||
|
|
||||||
pkgdir = $(libdir)/emotion
|
|
||||||
|
|
||||||
pkg_LTLIBRARIES = em_generic.la
|
|
||||||
includes_HEADERS = Emotion_Generic_Plugin.h
|
|
||||||
includesdir = $(includedir)/emotion-@VMAJ@
|
|
||||||
noinst_HEADERS = emotion_generic.h
|
|
||||||
|
|
||||||
em_generic_la_SOURCES = emotion_generic.c
|
|
||||||
em_generic_la_LIBADD = @EMOTION_LIBS@ @EFL_SHM_OPEN_LIBS@ $(top_builddir)/src/lib/libemotion.la
|
|
||||||
em_generic_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
|
|
||||||
em_generic_la_LIBTOOLFLAGS = --tag=disable-static
|
|
||||||
em_generic_la_DEPENDENCIES = emotion_generic.h Emotion_Generic_Plugin.h
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|
|
@ -1,37 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/lib \
|
|
||||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
|
||||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
|
||||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
|
||||||
@EMOTION_CFLAGS@ \
|
|
||||||
@EMOTION_CPPFLAGS@ \
|
|
||||||
@EFL_EMOTION_BUILD@ \
|
|
||||||
@GSTREAMER_CFLAGS@ \
|
|
||||||
@GSTREAMER_INTERFACE_CFLAGS@ \
|
|
||||||
@ECORE_X_CFLAGS@
|
|
||||||
|
|
||||||
if EMOTION_BUILD_GSTREAMER
|
|
||||||
if !EMOTION_STATIC_BUILD_GSTREAMER
|
|
||||||
|
|
||||||
pkgdir = $(libdir)/emotion
|
|
||||||
|
|
||||||
pkg_LTLIBRARIES = gstreamer.la
|
|
||||||
gstreamer_la_SOURCES = \
|
|
||||||
emotion_gstreamer.c \
|
|
||||||
emotion_sink.c \
|
|
||||||
emotion_alloc.c \
|
|
||||||
emotion_fakeeos.c \
|
|
||||||
emotion_convert.c
|
|
||||||
|
|
||||||
gstreamer_la_LIBADD = @EMOTION_LIBS@ @ECORE_X_LIBS@ @GSTREAMER_LIBS@ @GSTREAMER_INTERFACE_LIBS@ $(top_builddir)/src/lib/libemotion.la
|
|
||||||
gstreamer_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
|
|
||||||
gstreamer_la_LIBTOOLFLAGS = --tag=disable-static
|
|
||||||
gstreamer_la_DEPENDENCIES = $(top_builddir)/config.h
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_DIST = emotion_gstreamer.h
|
|
|
@ -1,31 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/lib \
|
|
||||||
-I$(top_srcdir)/src/modules \
|
|
||||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
|
||||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
|
||||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
|
||||||
@EMOTION_CFLAGS@ \
|
|
||||||
@EMOTION_CPPFLAGS@ \
|
|
||||||
@EFL_EMOTION_BUILD@ \
|
|
||||||
@XINE_CFLAGS@
|
|
||||||
|
|
||||||
if EMOTION_BUILD_XINE
|
|
||||||
if !EMOTION_STATIC_BUILD_XINE
|
|
||||||
|
|
||||||
pkgdir = $(libdir)/emotion
|
|
||||||
|
|
||||||
pkg_LTLIBRARIES = xine.la
|
|
||||||
|
|
||||||
xine_la_SOURCES = \
|
|
||||||
emotion_xine.c \
|
|
||||||
emotion_xine.h \
|
|
||||||
emotion_xine_vo_out.c
|
|
||||||
xine_la_LIBADD = @EMOTION_LIBS@ @XINE_LIBS@ $(top_builddir)/src/lib/libemotion.la -lpthread
|
|
||||||
xine_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
|
|
||||||
xine_la_LIBTOOLFLAGS = --tag=disable-static
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|