emotion moved into efl

SVN revision: 82513
This commit is contained in:
Gustavo Sverzut Barbieri 2013-01-10 06:08:41 +00:00
parent ff2a1607cf
commit 09e6baa5a4
44 changed files with 0 additions and 3761 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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%;
}

View File

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

View File

@ -1,18 +0,0 @@
<div id="push"></div>
</div> <!-- #content -->
</div> <!-- .layout -->
</div> <!-- #container -->
<div id="footer">
<table><tr>
<td class="copyright">Copyright &copy;$year Enlightenment</td>
<td class="generated">Docs generated $datetime</td>
</tr></table>
</div>
</body>
</html>

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@ -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%;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +0,0 @@
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS =
if EMOTION_BUILD_GENERIC_VLC
SUBDIRS += vlc
endif

View File

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

View File

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

View File

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

View File

@ -1,4 +0,0 @@
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = xine gstreamer generic

View File

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

View File

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

View File

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