it had to happen sooner or later... in in in... we go! :)


			
			
				devs/devilhorns/wayland_egl
			
			
		
Carsten Haitzler 20 years ago
parent e1704a29b5
commit 7f3528ec27
  1. 2
      legacy/emotion/AUTHORS
  2. 28
      legacy/emotion/COPYING
  3. 33
      legacy/emotion/COPYING-PLAIN
  4. 0
      legacy/emotion/ChangeLog
  5. 145
      legacy/emotion/Doxyfile
  6. 14
      legacy/emotion/INSTALL
  7. 13
      legacy/emotion/Makefile.am
  8. 0
      legacy/emotion/NEWS
  9. 1
      legacy/emotion/README
  10. 137
      legacy/emotion/autogen.sh
  11. 175
      legacy/emotion/configure.in
  12. 4
      legacy/emotion/data/Makefile.am
  13. BIN
      legacy/emotion/data/theme.eet
  14. 178
      legacy/emotion/doc/emotion.css
  15. 2
      legacy/emotion/doc/foot.html
  16. 19
      legacy/emotion/doc/head.html
  17. BIN
      legacy/emotion/doc/img/emotion.png
  18. BIN
      legacy/emotion/doc/img/emotion_big.png
  19. BIN
      legacy/emotion/doc/img/emotion_mini.png
  20. BIN
      legacy/emotion/doc/img/emotion_small.png
  21. BIN
      legacy/emotion/doc/img/hilite.png
  22. 59
      legacy/emotion/emotion-config.in
  23. 22
      legacy/emotion/emotion.c.in
  24. 80
      legacy/emotion/emotion.spec
  25. 15
      legacy/emotion/gendoc
  26. 3
      legacy/emotion/src/Makefile.am
  27. 18
      legacy/emotion/src/bin/Makefile.am
  28. 760
      legacy/emotion/src/bin/emotion_test_main.c
  29. 87
      legacy/emotion/src/lib/Emotion.h
  30. 21
      legacy/emotion/src/lib/Makefile.am
  31. 69
      legacy/emotion/src/lib/emotion_private.h
  32. 944
      legacy/emotion/src/lib/emotion_smart.c
  33. 27
      legacy/emotion/src/modules/Makefile.am
  34. 1164
      legacy/emotion/src/modules/emotion_xine.c
  35. 48
      legacy/emotion/src/modules/emotion_xine.h
  36. 25
      legacy/emotion/src/modules/xine/Makefile.am
  37. 666
      legacy/emotion/src/modules/xine/emotion_xine_vo_out.c

@ -0,0 +1,2 @@
The Rasterman (Carsten Haitzler) <raster@rasterman.com>

@ -0,0 +1,28 @@
Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies of the Software and its Copyright notices. In addition publicly
documented acknowledgment must be given that this software has been used if no
source code of this software is made available publicly. This includes
acknowledgments in either Copyright notices, Manuals, Publicity and Marketing
documents or any documentation provided with any product containing this
software. This License does not apply to any software that links to the
libraries provided by this software (statically or dynamically), but only to
the software provided.
Please see the COPYING.PLAIN for a plain-english explanation of this notice
and it's intent.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

@ -0,0 +1,33 @@
Plain English Copyright Notice
This file is not intended to be the actual License. The reason this file
exists is that we here are programmers and engineers. We aren't lawyers. We
provide licenses that we THINK say the right things, but we have our own
intentions at heart. This is a plain-english explanation of what those
intentions are, and if you follow them you will be within the "spirit" of
the license.
The intent is for us to enjoy writing software that is useful to us (the
AUTHORS) and allow others to use it freely and also benefit from the work we
put into making it. We don't want to restrict others using it. They should
not *HAVE* to make the source code of the applications they write that
simply link to these libraries (be that statically or dynamically), or for
them to be limited as to what license they choose to use (be it open, closed
or anything else). But we would like to know you are using these libraries.
We simply would like to know that it has been useful to someone. This is why
we ask for acknowledgement of some sort.
You can do what you want with the source of this software - it doesn't
matter. We still have it here for ourselves and it is open and free to use
and download and play with. It can't be taken away. We don't really mind what
you do with the source to your software. We would simply like to know that
you are using it - especially if it makes it to a commerical product. If you
simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and
then make sure you include a paragraph or page in the manual for the product
with the copyright notice and state that you used this software, we will be
very happy. If you want to contribute back modifications and fixes you may have
made we will welcome those too with open arms (generally). If you want help
with changes needed, ports needed or features to be added, arrangements can
be easily made with some dialogue.
Carsten Haitzler <raster@rasterman.com>

@ -0,0 +1,145 @@
PROJECT_NAME = Emotion
PROJECT_NUMBER =
OUTPUT_DIRECTORY = doc
INPUT = emotion.c
IMAGE_PATH = doc/img
OUTPUT_LANGUAGE = English
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER = doc/head.html
HTML_FOOTER = doc/foot.html
HTML_STYLESHEET = doc/emotion.css
HTML_ALIGN_MEMBERS = YES
ENUM_VALUES_PER_LINE = 1
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
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
DETAILS_AT_TOP = 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 =
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 =
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 = NO
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 =
MAX_DOT_GRAPH_WIDTH = 512
MAX_DOT_GRAPH_HEIGHT = 512
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
SEARCHENGINE = NO
CGI_NAME = search.cgi
CGI_URL =
DOC_URL =
DOC_ABSPATH =
BIN_ABSPATH = /usr/bin/
EXT_DOC_PATHS =

@ -0,0 +1,14 @@
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.

@ -0,0 +1,13 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = src data
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
config.h.in config.sub configure install-sh \
ltconfig ltmain.sh missing mkinstalldirs \
stamp-h.in emotion_docs.tar emotion_docs.tar.gz \
emotion.c acconfig.h
bin_SCRIPTS = emotion-config
EXTRA_DIST = README AUTHORS COPYING COPYING-PLAIN emotion.spec emotion.c.in gendoc Doxyfile emotion_docs.tar.gz

@ -0,0 +1 @@
Emotion 0.0.1

@ -0,0 +1,137 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
PKG_NAME="the package."
DIE=0
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`autoconf' installed to."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
(libtool --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`libtool' installed."
echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
}
grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && {
grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \
(gettext --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`gettext' installed."
echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
}
(automake --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`automake' installed."
echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
NO_AUTOMAKE=yes
}
# if no automake, don't bother testing for aclocal
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
echo "installed doesn't appear recent enough."
echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
if test -z "$*"; then
echo "**Warning**: I am going to run \`configure' with no arguments."
echo "If you wish to pass any to it, please specify them on the"
echo \`$0\'" command line."
echo
fi
case $CC in
xlc )
am_opt=--include-deps;;
esac
for coin in `find $srcdir -name configure.in -print`
do
dr=`dirname $coin`
if test -f $dr/NO-AUTO-GEN; then
echo skipping $dr -- flagged as no auto-gen
else
echo processing $dr
macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
( cd $dr
aclocalinclude="$ACLOCAL_FLAGS"
for k in $macrodirs; do
if test -d $k; then
aclocalinclude="$aclocalinclude -I $k"
##else
## echo "**Warning**: No such directory \`$k'. Ignored."
fi
done
if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then
if grep "sed.*POTFILES" configure.in >/dev/null; then
: do nothing -- we still have an old unmodified configure.in
else
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "Running gettextize... Ignore non-fatal messages."
echo "no" | gettextize --force --copy
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
fi
fi
if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "Running gettextize... Ignore non-fatal messages."
echo "no" | gettextize --force --copy
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
fi
if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
echo "Running libtoolize..."
libtoolize --force --copy
fi
echo "Running aclocal $aclocalinclude ..."
aclocal $aclocalinclude
if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
echo "Running autoheader..."
autoheader
fi
echo "Running automake --gnu $am_opt ..."
automake --add-missing --gnu $am_opt
echo "Running autoconf ..."
autoconf
)
fi
done
#conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile $PKG_NAME
else
echo Skipping configure process.
fi

@ -0,0 +1,175 @@
dnl Process this file with autoconf to produce a configure script.
# get rid of that stupid cache mechanism
rm -f config.cache
AC_INIT(configure.in)
AM_INIT_AUTOMAKE(emotion, 0.0.1)
AM_CONFIG_HEADER(config.h)
AC_C_BIGENDIAN
AC_ISC_POSIX
AC_PROG_CC
AM_PROG_CC_STDC
AC_HEADER_STDC
AC_C_CONST
AM_ENABLE_SHARED
AM_PROG_LIBTOOL
if test "x${exec_prefix}" = "xNONE"; then
if test "x${prefix}" = "xNONE"; then
bindir="${ac_default_prefix}/bin";
else
bindir="${prefix}/bin";
fi
else
if test "x${prefix}" = "xNONE"; then
bindir="${ac_default_prefix}/bin";
else
bindir="${prefix}/bin";
fi
fi
if test "x${exec_prefix}" = "xNONE"; then
if test "x${prefix}" = "xNONE"; then
libdir="${ac_default_prefix}/lib";
else
libdir="${prefix}/lib";
fi
else
if test "x${prefix}" = "xNONE"; then
libdir="${ac_default_prefix}/lib";
else
libdir="${prefix}/lib";
fi
fi
dnl Set PACKAGE_DATA_DIR in config.h.
if test "x${datadir}" = 'x${prefix}/share'; then
if test "x${prefix}" = "xNONE"; then
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${ac_default_prefix}/share/${PACKAGE}", [Package Data Directory])
else
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${prefix}/share/${PACKAGE}", [Package Data Directory])
fi
else
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${datadir}/${PACKAGE}", [Package Data Directory])
fi
dnl Set PACKAGE_BIN_DIR in config.h.
if test "x${bindir}" = 'xNONE'; then
if test "x${prefix}" = "xNONE"; then
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${ac_default_prefix}/bin", [Install Location for Executables])
else
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${prefix}/bin", [Install Location for Executables])
fi
else
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${bindir}". [Install Location for Executables])
fi
dnl Set PACKAGE_LIB_DIR in config.h.
if test "x${libdir}" = 'xNONE'; then
if test "x${prefix}" = "xNONE"; then
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${ac_default_prefix}/lib", [Install Location for Libraries])
else
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${prefix}/lib", [Install Location for Libraries])
fi
else
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${libdir}", [Install Location for Libraries])
fi
dnl Set PACKAGE_SOURCE_DIR in config.h.
packagesrcdir=`cd $srcdir && pwd`
AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}", [Source Directory])
function vser
{
v=$1
VSTART=`echo $v | awk -F_ '{printf("%s", $1);}'`
V1=`echo $VSTART | awk -F\. '{printf("%s", $1);}'`
V2=`echo $VSTART | awk -F\. '{printf("%s", $2);}'`
V3=`echo $VSTART | awk -F\. '{printf("%s", $3);}'`
V4="0"
VEND=`echo $v | awk -F_ '{printf("%s", $2);}'`
if test -n "$VEND"; then
V4=`echo $VEND | sed s/pre//`
fi
V3=$(( $V3 * 100 ));
V2=$(( $V2 * 10000 ));
V1=$(( $V1 * 1000000 ));
V=$(( $V4 + $V3 + $V2 + $V1 ));
echo $V
}
if [ test -z "$EET_CONFIG" ]; then EET_CONFIG="eet-config"; fi
if [ test -z "$EVAS_CONFIG" ]; then EVAS_CONFIG="evas-config"; fi
if [ test -z "$EDJE_CONFIG" ]; then EDJE_CONFIG="edje-config"; fi
if [ test -z "$ECORE_CONFIG" ]; then ECORE_CONFIG="ecore-config"; fi
if [ test -z "$EMBRYO_CONFIG" ]; then EMBRYO_CONFIG="embryo-config"; fi
if [ test -z "$XINE_CONFIG" ]; then XINE_CONFIG="xine-config"; fi
V=`$ECORE_CONFIG --version`
VV=`vser $V`
VM="1.0.0_pre7"
VVM=`vser $VM`
if test $VV -lt $VVM; then
echo "Error. Ecore is not at least "$VM". It is "$V". Abort."
exit -1
fi
V=`$EVAS_CONFIG --version`
VV=`vser $V`
VM="1.0.0_pre13"
VVM=`vser $VM`
if test $VV -lt $VVM; then
echo "Error. Evas is not at least "$VM". It is "$V". Abort."
exit -1
fi
V=`$EDJE_CONFIG --version`
VV=`vser $V`
VM="0.5.0"
VVM=`vser $VM`
if test $VV -lt $VVM; then
echo "Error. Edje is not at least "$VM". It is "$V". Abort."
exit -1
fi
V=`$XINE_CONFIG --version`
VV=`vser $V`
VM="1.0.0"
VVM=`vser $VM`
if test $VV -lt $VVM; then
echo "Error. Xine is not at least "$VM". It is "$V". Abort."
exit -1
fi
my_cflags=`$EVAS_CONFIG --cflags`" "`$ECORE_CONFIG --cflags`
my_libs=`$EVAS_CONFIG --libs`" "`$ECORE_CONFIG --libs`
AC_SUBST(my_cflags)
AC_SUBST(my_libs)
edje_cflags=`$EDJE_CONFIG --cflags`
edje_libs=`$EDJE_CONFIG --libs`
AC_SUBST(edje_cflags)
AC_SUBST(edje_libs)
xine_cflags=`$XINE_CONFIG --cflags`
xine_libs=`$XINE_CONFIG --libs`
xine_plugins=`$XINE_CONFIG --plugindir`
AC_SUBST(xine_cflags)
AC_SUBST(xine_libs)
AC_SUBST(xine_plugins)
AC_OUTPUT([
Makefile
src/Makefile
src/lib/Makefile
src/modules/Makefile
src/modules/xine/Makefile
src/bin/Makefile
data/Makefile
emotion-config
],[
chmod +x emotion-config
])

@ -0,0 +1,4 @@
filesdir = $(datadir)/emotion/data
files_DATA = theme.eet
EXTRA_DIST = $(files_DATA)

Binary file not shown.

@ -0,0 +1,178 @@
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;
}

@ -0,0 +1,2 @@
</body>
</html>

@ -0,0 +1,19 @@
<html>
<head>
<title>$title</title>
<link href=emotion.css rel=stylesheet type=text/css>
</head>
<body>
<div class=nav>
<table border=0 align=center><tr>
<td width=16><img src=emotion_mini.png width=16 height=16 alt=E></td>
<td width=100% align=center>
E : M : O : T : I : O : N
</td>
<td width=16><img src=emotion_mini.png width=16 height=16 alt=E></td>
</tr></table>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

@ -0,0 +1,59 @@
#!/bin/sh
prefix=@prefix@
exec_prefix=@exec_prefix@
exec_prefix_set=no
usage="\
Usage: evas-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"
if test $# -eq 0; then
echo "${usage}" 1>&2
exit 1
fi
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $1 in
--prefix=*)
prefix=$optarg
if test $exec_prefix_set = no ; then
exec_prefix=$optarg
fi
;;
--prefix)
echo $prefix
;;
--exec-prefix=*)
exec_prefix=$optarg
exec_prefix_set=yes
;;
--exec-prefix)
echo $exec_prefix
;;
--version)
echo @VERSION@
;;
--cflags)
if test @includedir@ != /usr/include ; then
includes=-I@includedir@
fi
echo $includes
;;
--libs)
libdirs=-L@libdir@
echo $libdirs -lemotion @my_libs@ -ldl
;;
*)
echo "${usage}" 1>&2
exit 1
;;
esac
shift
done
exit 0

@ -0,0 +1,22 @@
/**
@file
@brief Emotion Media Library
These routines are used for Emotion.
*/
/**
@mainpage Emotion Library Documentation
@image html emotion.png
@version 0.0.1
@author Carsten Haitzler <raster@rasterman.com>
@date 2003-2004
@section intro What is Emotion?
A media object library for Evas and Ecore.
@todo Complete documentation of API
*/

@ -0,0 +1,80 @@
# Note that this is NOT a relocatable package
%define ver 0.0.1
%define rel 1
%define prefix /usr
Summary: emotion
Name: emotion
Version: %ver
Release: %rel
Copyright: BSD
Group: System Environment/Libraries
Source: ftp://ftp.enlightenment.org/pub/emotion/emotion-%{ver}.tar.gz
BuildRoot: /var/tmp/emotion-root
Packager: The Rasterman <raster@rasterman.com>
URL: http://www.enlightenment.org/
BuildRequires: libjpeg-devel
BuildRequires: zlib-devel
Requires: libjpeg
Requires: zlib
Docdir: %{prefix}/doc
%description
Emotion is a Media Library
%package devel
Summary: Emotion headers, static libraries, documentation and test programs
Group: System Environment/Libraries
Requires: %{name} = %{version}
%description devel
Headers, static libraries, test programs and documentation for Eet
%prep
rm -rf $RPM_BUILD_ROOT
%setup -q
%build
./configure --prefix=%prefix
if [ "$SMP" != "" ]; then
(make "MAKE=make -k -j $SMP"; exit 0)
make
else
make
fi
###########################################################################
%install
make DESTDIR=$RPM_BUILD_ROOT install
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%defattr(-,root,root)
%attr(755,root,root) %{prefix}/lib/libemotion.so*
%attr(755,root,root) %{prefix}/lib/libemotion.la
%files devel
%attr(755,root,root) %{prefix}/lib/libemotion.a
%attr(755,root,root) %{prefix}/bin/emotion*
%{prefix}/include/Emotion*
%{_datadir}/emotion
%doc AUTHORS
%doc COPYING
%doc README
%doc emotion_docs.tar.gz
%changelog
* Sat Jun 23 2001 The Rasterman <raster@rasterman.com>
- Created spec file

@ -0,0 +1,15 @@
#!/bin/sh
cp ./emotion.c.in ./emotion.c
for I in `find ./src/lib -name "Emotion.h" -print`; do
cat $I >> ./emotion.c
done
#for I in `find ./src/lib -name "*.c" -print`; do
# cat $I >> ./emotion.c
#done
rm -rf ./doc/html ./doc/latex ./doc/man
doxygen
cp doc/img/*.png doc/html/
rm -f emotion_docs.tar emotion_docs.tar.gz
tar -cvf emotion_docs.tar doc/html doc/man doc/latex
gzip -9 emotion_docs.tar
exit 0

@ -0,0 +1,3 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = lib bin modules

@ -0,0 +1,18 @@
## Process this file with automake to produce Makefile.in
INCLUDES = \
-I$(top_srcdir) \
-I$(top_srcdir)/src/lib \
@my_cflags@ @edje_cflags@
bin_PROGRAMS = \
emotion_test
emotion_test_SOURCES = \
emotion_test_main.c
emotion_test_LDADD = \
@my_libs@ @edje_libs@ \
$(top_builddir)/src/lib/libemotion.la

@ -0,0 +1,760 @@
#include <Evas.h>
#include <Ecore.h>
#ifndef FB_ONLY
#include <Ecore_X.h>
#else
#include <Ecore_Fb.h>
#endif
#include <Ecore_Evas.h>
#include <Edje.h>
#include "Emotion.h"
#include "config.h"
typedef struct _Frame_Data Frame_Data;
struct _Frame_Data
{
char moving : 1;
char resizing : 1;
int button;
Evas_Coord x, y;
};
static int main_start(int argc, char **argv);
static void main_stop(void);
static void main_resize(Ecore_Evas *ee);
static int main_signal_exit(void *data, int ev_type, void *ev);
static void main_delete_request(Ecore_Evas *ee);
void bg_setup(void);
void bg_resize(Evas_Coord w, Evas_Coord h);
static void bg_key_down(void *data, Evas * e, Evas_Object * obj, void *event_info);
static Evas_Object *o_bg = NULL;
double start_time = 0.0;
Ecore_Evas *ecore_evas = NULL;
Evas *evas = NULL;
int startw = 800;
int starth = 600;
Evas_List *video_objs = NULL;
static int
main_start(int argc, char **argv)
{
int mode = 0;
start_time = ecore_time_get();
if (!ecore_init()) return -1;
ecore_app_args_set(argc, (const char **)argv);
ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, NULL);
if (!ecore_evas_init()) return -1;
#ifndef FB_ONLY
{
int i;
for (i = 1; i < argc; i++)
{
if (((!strcmp(argv[i], "-g")) ||
(!strcmp(argv[i], "-geometry")) ||
(!strcmp(argv[i], "--geometry"))) && (i < (argc - 1)))
{
int n, w, h;
char buf[16], buf2[16];
n = sscanf(argv[i +1], "%10[^x]x%10s", buf, buf2);
if (n == 2)
{
w = atoi(buf);
h = atoi(buf2);
startw = w;
starth = h;
}
i++;
}
else if (!strcmp(argv[i], "-gl"))
{
mode = 1;
}
else if (!strcmp(argv[i], "-fb"))
{
mode = 2;
}
}
}
if (mode == 0)
ecore_evas = ecore_evas_software_x11_new(NULL, 0, 0, 0, startw, starth);
else if (mode == 1)
ecore_evas = ecore_evas_gl_x11_new(NULL, 0, 0, 0, startw, starth);
else if (mode == 2)
ecore_evas = ecore_evas_fb_new(NULL, 0, startw, starth);
#else
startw = 240;
starth = 320;
ecore_evas = ecore_evas_fb_new(NULL, 270, startw, starth);
#endif
if (!ecore_evas) return -1;
ecore_evas_callback_delete_request_set(ecore_evas, main_delete_request);
ecore_evas_callback_resize_set(ecore_evas, main_resize);
ecore_evas_title_set(ecore_evas, "Evas Media Test Program");
ecore_evas_name_class_set(ecore_evas, "evas_media_test", "main");
ecore_evas_show(ecore_evas);
evas = ecore_evas_get(ecore_evas);
evas_image_cache_set(evas, 8 * 1024 * 1024);
evas_font_cache_set(evas, 1 * 1024 * 1024);
evas_font_path_append(evas, PACKAGE_DATA_DIR"/data/fonts");
edje_init();
edje_frametime_set(1.0 / 30.0);
return 1;
}
static void
main_stop(void)
{
ecore_evas_shutdown();
ecore_shutdown();
}
static void
main_resize(Ecore_Evas *ee)
{
Evas_Coord w, h;
evas_output_viewport_get(evas, NULL, NULL, &w, &h);
bg_resize(w, h);
}
static int
main_signal_exit(void *data, int ev_type, void *ev)
{
ecore_main_loop_quit();
return 1;
}
static void
main_delete_request(Ecore_Evas *ee)
{
ecore_main_loop_quit();
}
void
bg_setup(void)
{
Evas_Object *o;
o = edje_object_add(evas);
edje_object_file_set(o, PACKAGE_DATA_DIR"/data/theme.eet", "background");
evas_object_move(o, 0, 0);
evas_object_resize(o, startw, starth);
evas_object_layer_set(o, -999);
evas_object_show(o);
evas_object_focus_set(o, 1);
evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, bg_key_down, NULL);
o_bg = o;
}
void
bg_resize(Evas_Coord w, Evas_Coord h)
{
evas_object_resize(o_bg, w, h);
}
static void
broadcast_event(Emotion_Event ev)
{
Evas_List *l;
for (l = video_objs; l; l = l->next)
{
Evas_Object *obj;
obj = l->data;
emotion_object_event_simple_send(obj, ev);
}
}
static void
bg_key_down(void *data, Evas * e, Evas_Object * obj, void *event_info)
{
Evas_Event_Key_Down *ev;
ev = (Evas_Event_Key_Down *)event_info;
if (!strcmp(ev->keyname, "Escape"))
ecore_main_loop_quit();
else if (!strcmp(ev->keyname, "Up"))
broadcast_event(EMOTION_EVENT_UP);
else if (!strcmp(ev->keyname, "Down"))
broadcast_event(EMOTION_EVENT_DOWN);
else if (!strcmp(ev->keyname, "Left"))
broadcast_event(EMOTION_EVENT_LEFT);
else if (!strcmp(ev->keyname, "Right"))
broadcast_event(EMOTION_EVENT_RIGHT);
else if (!strcmp(ev->keyname, "Return"))
broadcast_event(EMOTION_EVENT_SELECT);
else if (!strcmp(ev->keyname, "m"))
broadcast_event(EMOTION_EVENT_MENU1);
else if (!strcmp(ev->keyname, "Prior"))
broadcast_event(EMOTION_EVENT_PREV);
else if (!strcmp(ev->keyname, "Next"))
broadcast_event(EMOTION_EVENT_NEXT);
else if (!strcmp(ev->keyname, "0"))
broadcast_event(EMOTION_EVENT_0);
else if (!strcmp(ev->keyname, "1"))
broadcast_event(EMOTION_EVENT_1);
else if (!strcmp(ev->keyname, "2"))
broadcast_event(EMOTION_EVENT_2);
else if (!strcmp(ev->keyname, "3"))
broadcast_event(EMOTION_EVENT_3);
else if (!strcmp(ev->keyname, "4"))
broadcast_event(EMOTION_EVENT_4);
else if (!strcmp(ev->keyname, "5"))
broadcast_event(EMOTION_EVENT_5);
else if (!strcmp(ev->keyname, "6"))
broadcast_event(EMOTION_EVENT_6);
else if (!strcmp(ev->keyname, "7"))
broadcast_event(EMOTION_EVENT_7);
else if (!strcmp(ev->keyname, "8"))
broadcast_event(EMOTION_EVENT_8);
else if (!strcmp(ev->keyname, "9"))
broadcast_event(EMOTION_EVENT_9);
else if (!strcmp(ev->keyname, "-"))
broadcast_event(EMOTION_EVENT_10);
else if (!strcmp(ev->keyname, "bracketleft"))
{
Evas_List *l;
for (l = video_objs; l; l = l->next)
{
Evas_Object *obj;
obj = l->data;
emotion_object_audio_volume_set(obj, emotion_object_audio_volume_get(obj) - 0.1);
}
}
else if (!strcmp(ev->keyname, "bracketright"))
{
Evas_List *l;
for (l = video_objs; l; l = l->next)
{
Evas_Object *obj;
obj = l->data;
emotion_object_audio_volume_set(obj, emotion_object_audio_volume_get(obj) + 0.1);
}
}
else if (!strcmp(ev->keyname, "v"))
{
Evas_List *l;
for (l = video_objs; l; l = l->next)
{
Evas_Object *obj;
obj = l->data;
if (emotion_object_video_mute_get(obj))
emotion_object_video_mute_set(obj, 0);
else
emotion_object_video_mute_set(obj, 1);
}
}
else if (!strcmp(ev->keyname, "a"))
{
Evas_List *l;
for (l = video_objs; l; l = l->next)
{
Evas_Object *obj;
obj = l->data;
if (emotion_object_audio_mute_get(obj))
{
emotion_object_audio_mute_set(obj, 0);
printf("unmute\n");
}
else
{
emotion_object_audio_mute_set(obj, 1);
printf("mute\n");
}
}
}
else if (!strcmp(ev->keyname, "i"))
{
Evas_List *l;
for (l = video_objs; l; l = l->next)
{
Evas_Object *obj;
obj = l->data;
printf("audio channels: %i\n", emotion_object_audio_channel_count(obj));
printf("video channels: %i\n", emotion_object_video_channel_count(obj));
printf("spu channels: %i\n", emotion_object_spu_channel_count(obj));
printf("seekable: %i\n", emotion_object_seekable_get(obj));
}
}
else if (!strcmp(ev->keyname, "f"))
{
if (!ecore_evas_fullscreen_get(ecore_evas))
ecore_evas_fullscreen_set(ecore_evas, 1);
else
ecore_evas_fullscreen_set(ecore_evas, 0);
}
else if (!strcmp(ev->keyname, "d"))
{
if (!ecore_evas_avoid_damage_get(ecore_evas))
ecore_evas_avoid_damage_set(ecore_evas, 1);
else
ecore_evas_avoid_damage_set(ecore_evas, 0);
}
else if (!strcmp(ev->keyname, "s"))
{
if (!ecore_evas_shaped_get(ecore_evas))
{
ecore_evas_shaped_set(ecore_evas, 1);
evas_object_hide(o_bg);
}
else
{
ecore_evas_shaped_set(ecore_evas, 0);
evas_object_show(o_bg);
}
}
else if (!strcmp(ev->keyname, "b"))
{
if (!ecore_evas_borderless_get(ecore_evas))
ecore_evas_borderless_set(ecore_evas, 1);
else
ecore_evas_borderless_set(ecore_evas, 0);
}
else
{
printf("UNHANDLED: %s\n", ev->keyname);
}
}
static void
video_obj_in_cb(void *data, Evas *ev, Evas_Object *obj, void *event_info)
{
// evas_object_color_set(obj, 255, 255, 255, 100);
}
static void
video_obj_out_cb(void *data, Evas *ev, Evas_Object *obj, void *event_info)
{
// evas_object_color_set(obj, 255, 255, 255, 200);
}
static void
video_obj_down_cb(void *data, Evas *ev, Evas_Object *obj, void *event_info)
{
Evas_Event_Mouse_Down *e;
e = event_info;
evas_object_color_set(obj, 255, 50, 40, 200);
evas_object_raise(obj);
}
static void
video_obj_up_cb(void *data, Evas *ev, Evas_Object *obj, void *event_info)
{
Evas_Event_Mouse_Up *e;
e = event_info;
evas_object_color_set(obj, 255, 255, 255, 100);
}
static void
video_obj_move_cb(void *data, Evas *ev, Evas_Object *obj, void *event_info)
{
Evas_Event_Mouse_Move *e;
e = event_info;
if (e->buttons & 0x1)
{
Evas_Coord x, y;
evas_object_geometry_get(obj, &x, &y, NULL, NULL);
x += e->cur.canvas.x - e->prev.canvas.x;
y += e->cur.canvas.y - e->prev.canvas.y;
evas_object_move(obj, x, y);
}
else if (e->buttons & 0x4)
{
Evas_Coord w, h;
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
w += e->cur.canvas.x - e->prev.canvas.x;
h += e->cur.canvas.y - e->prev.canvas.y;
evas_object_resize(obj, w, h);
}
}
static void
video_obj_frame_decode_cb(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *oe;
double pos, len;
char buf[256];
int ph, pm, ps, pf, lh, lm, ls;
oe = data;
pos = emotion_object_position_get(obj);
len = emotion_object_play_length_get(obj);
// printf("%3.3f, %3.3f\n", pos, len);
edje_object_part_drag_value_set(oe, "video_progress", pos / len, 0.0);
lh = len / 3600;
lm = len / 60 - (lh * 60);
ls = len - (lm * 60);
ph = pos / 3600;
pm = pos / 60 - (ph * 60);
ps = pos - (pm * 60);
pf = pos * 100 - (ps * 100) - (pm * 60 * 100) - (ph * 60 * 60 * 100);
snprintf(buf, sizeof(buf), "%i:%02i:%02i.%02i / %i:%02i:%02i",
ph, pm, ps, pf, lh, lm, ls);
edje_object_part_text_set(oe, "video_progress_txt", buf);
if (0)
{
double t;
static double pt = 0.0;
t = ecore_time_get();
printf("FPS: %3.3f\n", 1.0 / (t - pt));
pt = t;
}
}
static void
video_obj_frame_resize_cb(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *oe;
int iw, ih;
Evas_Coord w, h;
double ratio;
oe = data;
emotion_object_size_get(obj, &iw, &ih);
ratio = emotion_object_ratio_get(obj);
printf("HANDLE %ix%i @ %3.3f\n", iw, ih, ratio);
if (ratio > 0.0) iw = ih * ratio;
edje_extern_object_min_size_set(obj, iw, ih);
edje_object_part_swallow(oe, "video_swallow", obj);
edje_object_size_min_calc(oe, &w, &h);
evas_object_resize(oe, w, h);
edje_extern_object_min_size_set(obj, 0, 0);
edje_object_part_swallow(oe, "video_swallow", obj);
}
static void
video_obj_length_change_cb(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *oe;
double pos, len;
char buf[256];
int ph, pm, ps, pf, lh, lm, ls;
oe = data;
pos = emotion_object_position_get(obj);
len = emotion_object_play_length_get(obj);
edje_object_part_drag_value_set(oe, "video_progress", pos / len, 0.0);
lh = len / 3600;
lm = len / 60 - (lh * 60);
ls = len - (lm * 60);
ph = pos / 3600;
pm = pos / 60 - (ph * 60);
ps = pos - (pm * 60);
pf = pos * 100 - (ps * 100) - (