|
@ -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
|