autofool cleanups... argh! i hate autofools!
SVN revision: 10574
This commit is contained in:
parent
6b55e5b817
commit
b97f661628
|
@ -1,147 +1,13 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Run this to generate all the initial makefiles, etc.
|
|
||||||
|
|
||||||
srcdir=`dirname $0`
|
rm -rf autom4te.cache
|
||||||
PKG_NAME="libecore"
|
rm -f aclocal.m4
|
||||||
|
|
||||||
DIE=0
|
echo "Running aclocal..."; aclocal $ACLOCAL_FLAGS -I m4 \
|
||||||
|
&& echo "Running autoheader..."; autoheader \
|
||||||
|
&& echo "Running autoconf..."; autoconf \
|
||||||
|
&& echo "Running libtoolize..."; libtoolize --automake \
|
||||||
|
&& echo "Running automake..."; automake --add-missing --copy --gnu
|
||||||
|
|
||||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
### If you want this, uncomment it.
|
||||||
echo
|
./configure "$@"
|
||||||
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) && {
|
|
||||||
(libtoolize --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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
grep "^AM_GNOME_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 "$@"
|
|
||||||
else
|
|
||||||
echo Skipping configure process.
|
|
||||||
fi
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
dnl AC_EXPAND_DIR(VARNAME, DIR)
|
||||||
|
dnl expands occurrences of ${prefix} and ${exec_prefix} in the given DIR,
|
||||||
|
dnl and assigns the resulting string to VARNAME
|
||||||
|
dnl example: AC_DEFINE_DIR(DATADIR, "$datadir")
|
||||||
|
dnl by Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||||
|
AC_DEFUN([AC_EXPAND_DIR], [
|
||||||
|
$1=$2
|
||||||
|
$1=`(
|
||||||
|
test "x$prefix" = xNONE && prefix="$ac_default_prefix"
|
||||||
|
test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
|
||||||
|
eval echo \""[$]$1"\"
|
||||||
|
)`
|
||||||
|
])
|
||||||
|
|
|
@ -0,0 +1,136 @@
|
||||||
|
dnl @synopsis AC_PATH_GENERIC(LIBRARY [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||||
|
dnl
|
||||||
|
dnl Runs a LIBRARY-config script and defines LIBRARY_CFLAGS and LIBRARY_LIBS
|
||||||
|
dnl
|
||||||
|
dnl The script must support `--cflags' and `--libs' args.
|
||||||
|
dnl If MINIMUM-VERSION is specified, the script must also support the
|
||||||
|
dnl `--version' arg.
|
||||||
|
dnl If the `--with-library-[exec-]prefix' arguments to ./configure are given,
|
||||||
|
dnl it must also support `--prefix' and `--exec-prefix'.
|
||||||
|
dnl (In other words, it must be like gtk-config.)
|
||||||
|
dnl
|
||||||
|
dnl For example:
|
||||||
|
dnl
|
||||||
|
dnl AC_PATH_GENERIC(Foo, 1.0.0)
|
||||||
|
dnl
|
||||||
|
dnl would run `foo-config --version' and check that it is at least 1.0.0
|
||||||
|
dnl
|
||||||
|
dnl If so, the following would then be defined:
|
||||||
|
dnl
|
||||||
|
dnl FOO_CFLAGS to `foo-config --cflags`
|
||||||
|
dnl FOO_LIBS to `foo-config --libs`
|
||||||
|
dnl
|
||||||
|
dnl At present there is no support for additional "MODULES" (see AM_PATH_GTK)
|
||||||
|
dnl (shamelessly stolen from gtk.m4 and then hacked around a fair amount)
|
||||||
|
dnl
|
||||||
|
dnl @author Angus Lees <gusl@cse.unsw.edu.au>
|
||||||
|
|
||||||
|
AC_DEFUN([AC_PATH_GENERIC],
|
||||||
|
[dnl
|
||||||
|
dnl we're going to need uppercase, lowercase and user-friendly versions of the
|
||||||
|
dnl string `LIBRARY'
|
||||||
|
pushdef([UP], translit([$1], [a-z], [A-Z]))dnl
|
||||||
|
pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Get the cflags and libraries from the LIBRARY-config script
|
||||||
|
dnl
|
||||||
|
AC_ARG_WITH(DOWN-prefix,[ --with-]DOWN[-prefix=PFX Prefix where $1 is installed (optional)],
|
||||||
|
DOWN[]_config_prefix="$withval", DOWN[]_config_prefix="")
|
||||||
|
AC_ARG_WITH(DOWN-exec-prefix,[ --with-]DOWN[-exec-prefix=PFX Exec prefix where $1 is installed (optional)],
|
||||||
|
DOWN[]_config_exec_prefix="$withval", DOWN[]_config_exec_prefix="")
|
||||||
|
|
||||||
|
if test x$DOWN[]_config_exec_prefix != x ; then
|
||||||
|
DOWN[]_config_args="$DOWN[]_config_args --exec-prefix=$DOWN[]_config_exec_prefix"
|
||||||
|
if test x${UP[]_CONFIG+set} != xset ; then
|
||||||
|
UP[]_CONFIG=$DOWN[]_config_exec_prefix/bin/DOWN-config
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test x$DOWN[]_config_prefix != x ; then
|
||||||
|
DOWN[]_config_args="$DOWN[]_config_args --prefix=$DOWN[]_config_prefix"
|
||||||
|
if test x${UP[]_CONFIG+set} != xset ; then
|
||||||
|
UP[]_CONFIG=$DOWN[]_config_prefix/bin/DOWN-config
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PATH_PROG(UP[]_CONFIG, DOWN-config, no)
|
||||||
|
ifelse([$2], ,
|
||||||
|
AC_MSG_CHECKING(for $1),
|
||||||
|
AC_MSG_CHECKING(for $1 - version >= $2)
|
||||||
|
)
|
||||||
|
no_[]DOWN=""
|
||||||
|
if test "$UP[]_CONFIG" = "no" ; then
|
||||||
|
no_[]DOWN=yes
|
||||||
|
else
|
||||||
|
UP[]_CFLAGS="`$UP[]_CONFIG $DOWN[]_config_args --cflags`"
|
||||||
|
UP[]_LIBS="`$UP[]_CONFIG $DOWN[]_config_args --libs`"
|
||||||
|
ifelse([$2], , ,[
|
||||||
|
DOWN[]_config_major_version=`$UP[]_CONFIG $DOWN[]_config_args \
|
||||||
|
--version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||||
|
DOWN[]_config_minor_version=`$UP[]_CONFIG $DOWN[]_config_args \
|
||||||
|
--version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||||
|
DOWN[]_config_micro_version=`$UP[]_CONFIG $DOWN[]_config_args \
|
||||||
|
--version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||||
|
DOWN[]_wanted_major_version="regexp($2, [\<\([0-9]*\)], [\1])"
|
||||||
|
DOWN[]_wanted_minor_version="regexp($2, [\<\([0-9]*\)\.\([0-9]*\)], [\2])"
|
||||||
|
DOWN[]_wanted_micro_version="regexp($2, [\<\([0-9]*\).\([0-9]*\).\([0-9]*\)], [\3])"
|
||||||
|
|
||||||
|
# Compare wanted version to what config script returned.
|
||||||
|
# If I knew what library was being run, i'd probably also compile
|
||||||
|
# a test program at this point (which also extracted and tested
|
||||||
|
# the version in some library-specific way)
|
||||||
|
if test "$DOWN[]_config_major_version" -lt \
|
||||||
|
"$DOWN[]_wanted_major_version" \
|
||||||
|
-o \( "$DOWN[]_config_major_version" -eq \
|
||||||
|
"$DOWN[]_wanted_major_version" \
|
||||||
|
-a "$DOWN[]_config_minor_version" -lt \
|
||||||
|
"$DOWN[]_wanted_minor_version" \) \
|
||||||
|
-o \( "$DOWN[]_config_major_version" -eq \
|
||||||
|
"$DOWN[]_wanted_major_version" \
|
||||||
|
-a "$DOWN[]_config_minor_version" -eq \
|
||||||
|
"$DOWN[]_wanted_minor_version" \
|
||||||
|
-a "$DOWN[]_config_micro_version" -lt \
|
||||||
|
"$DOWN[]_wanted_micro_version" \) ; then
|
||||||
|
# older version found
|
||||||
|
no_[]DOWN=yes
|
||||||
|
echo -n "*** An old version of $1 "
|
||||||
|
echo -n "($DOWN[]_config_major_version"
|
||||||
|
echo -n ".$DOWN[]_config_minor_version"
|
||||||
|
echo ".$DOWN[]_config_micro_version) was found."
|
||||||
|
echo -n "*** You need a version of $1 newer than "
|
||||||
|
echo -n "$DOWN[]_wanted_major_version"
|
||||||
|
echo -n ".$DOWN[]_wanted_minor_version"
|
||||||
|
echo ".$DOWN[]_wanted_micro_version."
|
||||||
|
echo "***"
|
||||||
|
echo "*** If you have already installed a sufficiently new version, this error"
|
||||||
|
echo "*** probably means that the wrong copy of the DOWN-config shell script is"
|
||||||
|
echo "*** being found. The easiest way to fix this is to remove the old version"
|
||||||
|
echo "*** of $1, but you can also set the UP[]_CONFIG environment to point to the"
|
||||||
|
echo "*** correct copy of DOWN-config. (In this case, you will have to"
|
||||||
|
echo "*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf"
|
||||||
|
echo "*** so that the correct libraries are found at run-time)"
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
if test "x$no_[]DOWN" = x ; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
if test "$UP[]_CONFIG" = "no" ; then
|
||||||
|
echo "*** The DOWN-config script installed by $1 could not be found"
|
||||||
|
echo "*** If $1 was installed in PREFIX, make sure PREFIX/bin is in"
|
||||||
|
echo "*** your path, or set the UP[]_CONFIG environment variable to the"
|
||||||
|
echo "*** full path to DOWN-config."
|
||||||
|
fi
|
||||||
|
UP[]_CFLAGS=""
|
||||||
|
UP[]_LIBS=""
|
||||||
|
ifelse([$4], , :, [$4])
|
||||||
|
fi
|
||||||
|
AC_SUBST(UP[]_CFLAGS)
|
||||||
|
AC_SUBST(UP[]_LIBS)
|
||||||
|
|
||||||
|
popdef([UP])
|
||||||
|
popdef([DOWN])
|
||||||
|
])
|
||||||
|
|
|
@ -37,6 +37,7 @@ edje_smart.c \
|
||||||
edje_text.c \
|
edje_text.c \
|
||||||
edje_util.c \
|
edje_util.c \
|
||||||
edje_var.c \
|
edje_var.c \
|
||||||
|
edje_container.c \
|
||||||
edje_private.h
|
edje_private.h
|
||||||
|
|
||||||
libedje_la_LIBADD = $(LDFLAGS) -lm @evas_libs@ @ecore_libs@ @eet_libs@ @embryo_libs@
|
libedje_la_LIBADD = $(LDFLAGS) -lm @evas_libs@ @ecore_libs@ @eet_libs@ @embryo_libs@
|
||||||
|
|
|
@ -0,0 +1,281 @@
|
||||||
|
#include "Edje.h"
|
||||||
|
#include "edje_private.h"
|
||||||
|
|
||||||
|
#define E_SMART_OBJ_GET(smart, o, type) \
|
||||||
|
{ \
|
||||||
|
char *_e_smart_str; \
|
||||||
|
\
|
||||||
|
if (!o) return; \
|
||||||
|
smart = evas_object_smart_data_get(o); \
|
||||||
|
if (!smart) return; \
|
||||||
|
_e_smart_str = (char *)evas_object_type_get(o); \
|
||||||
|
if (!_e_smart_str) return; \
|
||||||
|
if (strcmp(_e_smart_str, type)) return; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define E_SMART_OBJ_GET_RETURN(smart, o, type, ret) \
|
||||||
|
{ \
|
||||||
|
char *_e_smart_str; \
|
||||||
|
\
|
||||||
|
if (!o) return ret; \
|
||||||
|
smart = evas_object_smart_data_get(o); \
|
||||||
|
if (!smart) return ret; \
|
||||||
|
_e_smart_str = (char *)evas_object_type_get(o); \
|
||||||
|
if (!_e_smart_str) return ret; \
|
||||||
|
if (strcmp(_e_smart_str, type)) return ret; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define E_OBJ_NAME "edje_container_object"
|
||||||
|
|
||||||
|
typedef struct _Smart_Data Smart_Data;
|
||||||
|
typedef struct _Smart_Item Smart_Item;
|
||||||
|
typedef struct _Smart_Column Smart_Column;
|
||||||
|
|
||||||
|
struct _Smart_Data
|
||||||
|
{
|
||||||
|
int layout;
|
||||||
|
Evas_List *children;
|
||||||
|
struct {
|
||||||
|
int w, h;
|
||||||
|
} min, max;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Smart_Item
|
||||||
|
{
|
||||||
|
Evas_Object *container;
|
||||||
|
Evas_Object *obj;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Smart_Column
|
||||||
|
{
|
||||||
|
int min, max;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define EDJE_LAYOUT_NONE 0
|
||||||
|
|
||||||
|
/* the following are "linear" layout systems */
|
||||||
|
|
||||||
|
/* H & V LIST pack all items at their minimum size - no expanding in the lists
|
||||||
|
* direction (lets say height), BUT all items are expanded to fill the "width"
|
||||||
|
* of the list. if an item is too small to fit the width, the list object will
|
||||||
|
* call a "min_size_change" callback indicating to the parent/swallower that
|
||||||
|
* the parent should revise its use/view of this object. this is intended for
|
||||||
|
* large lists of items - like a list of files, or titles etc. this allows
|
||||||
|
* for each item to have multiple columns. each column may be any size, with
|
||||||
|
* the minimu size being the sum of all minimum column widths. as more items
|
||||||
|
* are added column widths may be adjusted and all items told of this
|
||||||
|
* adjustment
|
||||||
|
*/
|
||||||
|
#define EDJE_LAYOUT_VLIST 2
|
||||||
|
#define EDJE_LAYOUT_HLIST 1
|
||||||
|
/* H & V BOX pack items and may or may not expand an item in any direction and
|
||||||
|
* may align an item smaller than its allocated space in a certain way. they
|
||||||
|
* dont know about columns etc. like lists.
|
||||||
|
*/
|
||||||
|
#define EDJE_LAYOUT_VBOX 4
|
||||||
|
#define EDJE_LAYOUT_HBOX 3
|
||||||
|
/* H & V flow are like "file manager" views you see in explorer etc. wehere
|
||||||
|
* items "line wrap" as they go along horizontally (or vertizally) as needed
|
||||||
|
*/
|
||||||
|
#define EDJE_LAYOUT_VFLOW 6
|
||||||
|
#define EDJE_LAYOUT_HFLOW 5
|
||||||
|
|
||||||
|
/* the following are "2 dimensional" layout systems */
|
||||||
|
|
||||||
|
/* tables are full 2-dimensional layouts which dont really have append and
|
||||||
|
* prepend semantics... this will need working on later for 2d layouts
|
||||||
|
*/
|
||||||
|
#define EDJE_LAYOUT_TABLE 7
|
||||||
|
#define EDJE_LAYOUT_COUNT 8
|
||||||
|
|
||||||
|
static void _smart_init(void);
|
||||||
|
static void _smart_add(Evas_Object * obj);
|
||||||
|
static void _smart_del(Evas_Object * obj);
|
||||||
|
static void _smart_layer_set(Evas_Object * obj, int layer);
|
||||||
|
static void _smart_raise(Evas_Object * obj);
|
||||||
|
static void _smart_lower(Evas_Object * obj);
|
||||||
|
static void _smart_stack_above(Evas_Object * obj, Evas_Object * above);
|
||||||
|
static void _smart_stack_below(Evas_Object * obj, Evas_Object * below);
|
||||||
|
static void _smart_move(Evas_Object * obj, Evas_Coord x, Evas_Coord y);
|
||||||
|
static void _smart_resize(Evas_Object * obj, Evas_Coord w, Evas_Coord h);
|
||||||
|
static void _smart_show(Evas_Object * obj);
|
||||||
|
static void _smart_hide(Evas_Object * obj);
|
||||||
|
static void _smart_color_set(Evas_Object * obj, int r, int g, int b, int a);
|
||||||
|
static void _smart_clip_set(Evas_Object * obj, Evas_Object * clip);
|
||||||
|
static void _smart_clip_unset(Evas_Object * obj);
|
||||||
|
|
||||||
|
static Evas_Smart *smart = NULL;
|
||||||
|
|
||||||
|
Evas_Object *
|
||||||
|
_edje_container_object_add(Evas *evas)
|
||||||
|
{
|
||||||
|
_smart_init();
|
||||||
|
return evas_object_smart_add(evas, smart);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************/
|
||||||
|
/* Internal smart object required routines */
|
||||||
|
/*******************************************/
|
||||||
|
static void
|
||||||
|
_smart_init(void)
|
||||||
|
{
|
||||||
|
if (smart) return;
|
||||||
|
smart = evas_smart_new(E_OBJ_NAME,
|
||||||
|
_smart_add,
|
||||||
|
_smart_del,
|
||||||
|
_smart_layer_set,
|
||||||
|
_smart_raise,
|
||||||
|
_smart_lower,
|
||||||
|
_smart_stack_above,
|
||||||
|
_smart_stack_below,
|
||||||
|
_smart_move,
|
||||||
|
_smart_resize,
|
||||||
|
_smart_show,
|
||||||
|
_smart_hide,
|
||||||
|
_smart_color_set,
|
||||||
|
_smart_clip_set,
|
||||||
|
_smart_clip_unset,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_add(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = calloc(1, sizeof(Smart_Data));
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_smart_member_add(sd->obj, obj);
|
||||||
|
evas_object_smart_data_set(obj, sd);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_del(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_del(sd->obj);
|
||||||
|
free(sd);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_layer_set(Evas_Object *obj, int layer)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_layer_set(sd->obj, layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_raise(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_raise(sd->obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_lower(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_lower(sd->obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_stack_above(Evas_Object *obj, Evas_Object *above)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_stack_above(sd->obj, above);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_stack_below(Evas_Object *obj, Evas_Object *below)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_stack_below(sd->obj, below);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_move(sd->obj, x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_resize(sd->obj, w, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_show(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_show(sd->obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_hide(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_hide(sd->obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_color_set(sd->obj, r, g, b, a);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_clip_set(sd->obj, clip);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_smart_clip_unset(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
// evas_object_clip_unset(sd->obj);
|
||||||
|
}
|
|
@ -1,137 +1,13 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Run this to generate all the initial makefiles, etc.
|
|
||||||
|
|
||||||
srcdir=`dirname $0`
|
rm -rf autom4te.cache
|
||||||
PKG_NAME="the package."
|
rm -f aclocal.m4
|
||||||
|
|
||||||
DIE=0
|
echo "Running aclocal..."; aclocal $ACLOCAL_FLAGS -I m4 \
|
||||||
|
&& echo "Running autoheader..."; autoheader \
|
||||||
|
&& echo "Running autoconf..."; autoconf \
|
||||||
|
&& echo "Running libtoolize..."; libtoolize --automake \
|
||||||
|
&& echo "Running automake..."; automake --add-missing --copy --gnu
|
||||||
|
|
||||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
### If you want this, uncomment it.
|
||||||
echo
|
./configure "$@"
|
||||||
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) && {
|
|
||||||
(libtoolize --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,14 @@
|
||||||
|
dnl AC_EXPAND_DIR(VARNAME, DIR)
|
||||||
|
dnl expands occurrences of ${prefix} and ${exec_prefix} in the given DIR,
|
||||||
|
dnl and assigns the resulting string to VARNAME
|
||||||
|
dnl example: AC_DEFINE_DIR(DATADIR, "$datadir")
|
||||||
|
dnl by Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||||
|
AC_DEFUN([AC_EXPAND_DIR], [
|
||||||
|
$1=$2
|
||||||
|
$1=`(
|
||||||
|
test "x$prefix" = xNONE && prefix="$ac_default_prefix"
|
||||||
|
test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
|
||||||
|
eval echo \""[$]$1"\"
|
||||||
|
)`
|
||||||
|
])
|
||||||
|
|
|
@ -0,0 +1,136 @@
|
||||||
|
dnl @synopsis AC_PATH_GENERIC(LIBRARY [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||||
|
dnl
|
||||||
|
dnl Runs a LIBRARY-config script and defines LIBRARY_CFLAGS and LIBRARY_LIBS
|
||||||
|
dnl
|
||||||
|
dnl The script must support `--cflags' and `--libs' args.
|
||||||
|
dnl If MINIMUM-VERSION is specified, the script must also support the
|
||||||
|
dnl `--version' arg.
|
||||||
|
dnl If the `--with-library-[exec-]prefix' arguments to ./configure are given,
|
||||||
|
dnl it must also support `--prefix' and `--exec-prefix'.
|
||||||
|
dnl (In other words, it must be like gtk-config.)
|
||||||
|
dnl
|
||||||
|
dnl For example:
|
||||||
|
dnl
|
||||||
|
dnl AC_PATH_GENERIC(Foo, 1.0.0)
|
||||||
|
dnl
|
||||||
|
dnl would run `foo-config --version' and check that it is at least 1.0.0
|
||||||
|
dnl
|
||||||
|
dnl If so, the following would then be defined:
|
||||||
|
dnl
|
||||||
|
dnl FOO_CFLAGS to `foo-config --cflags`
|
||||||
|
dnl FOO_LIBS to `foo-config --libs`
|
||||||
|
dnl
|
||||||
|
dnl At present there is no support for additional "MODULES" (see AM_PATH_GTK)
|
||||||
|
dnl (shamelessly stolen from gtk.m4 and then hacked around a fair amount)
|
||||||
|
dnl
|
||||||
|
dnl @author Angus Lees <gusl@cse.unsw.edu.au>
|
||||||
|
|
||||||
|
AC_DEFUN([AC_PATH_GENERIC],
|
||||||
|
[dnl
|
||||||
|
dnl we're going to need uppercase, lowercase and user-friendly versions of the
|
||||||
|
dnl string `LIBRARY'
|
||||||
|
pushdef([UP], translit([$1], [a-z], [A-Z]))dnl
|
||||||
|
pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Get the cflags and libraries from the LIBRARY-config script
|
||||||
|
dnl
|
||||||
|
AC_ARG_WITH(DOWN-prefix,[ --with-]DOWN[-prefix=PFX Prefix where $1 is installed (optional)],
|
||||||
|
DOWN[]_config_prefix="$withval", DOWN[]_config_prefix="")
|
||||||
|
AC_ARG_WITH(DOWN-exec-prefix,[ --with-]DOWN[-exec-prefix=PFX Exec prefix where $1 is installed (optional)],
|
||||||
|
DOWN[]_config_exec_prefix="$withval", DOWN[]_config_exec_prefix="")
|
||||||
|
|
||||||
|
if test x$DOWN[]_config_exec_prefix != x ; then
|
||||||
|
DOWN[]_config_args="$DOWN[]_config_args --exec-prefix=$DOWN[]_config_exec_prefix"
|
||||||
|
if test x${UP[]_CONFIG+set} != xset ; then
|
||||||
|
UP[]_CONFIG=$DOWN[]_config_exec_prefix/bin/DOWN-config
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test x$DOWN[]_config_prefix != x ; then
|
||||||
|
DOWN[]_config_args="$DOWN[]_config_args --prefix=$DOWN[]_config_prefix"
|
||||||
|
if test x${UP[]_CONFIG+set} != xset ; then
|
||||||
|
UP[]_CONFIG=$DOWN[]_config_prefix/bin/DOWN-config
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PATH_PROG(UP[]_CONFIG, DOWN-config, no)
|
||||||
|
ifelse([$2], ,
|
||||||
|
AC_MSG_CHECKING(for $1),
|
||||||
|
AC_MSG_CHECKING(for $1 - version >= $2)
|
||||||
|
)
|
||||||
|
no_[]DOWN=""
|
||||||
|
if test "$UP[]_CONFIG" = "no" ; then
|
||||||
|
no_[]DOWN=yes
|
||||||
|
else
|
||||||
|
UP[]_CFLAGS="`$UP[]_CONFIG $DOWN[]_config_args --cflags`"
|
||||||
|
UP[]_LIBS="`$UP[]_CONFIG $DOWN[]_config_args --libs`"
|
||||||
|
ifelse([$2], , ,[
|
||||||
|
DOWN[]_config_major_version=`$UP[]_CONFIG $DOWN[]_config_args \
|
||||||
|
--version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||||
|
DOWN[]_config_minor_version=`$UP[]_CONFIG $DOWN[]_config_args \
|
||||||
|
--version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||||
|
DOWN[]_config_micro_version=`$UP[]_CONFIG $DOWN[]_config_args \
|
||||||
|
--version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||||
|
DOWN[]_wanted_major_version="regexp($2, [\<\([0-9]*\)], [\1])"
|
||||||
|
DOWN[]_wanted_minor_version="regexp($2, [\<\([0-9]*\)\.\([0-9]*\)], [\2])"
|
||||||
|
DOWN[]_wanted_micro_version="regexp($2, [\<\([0-9]*\).\([0-9]*\).\([0-9]*\)], [\3])"
|
||||||
|
|
||||||
|
# Compare wanted version to what config script returned.
|
||||||
|
# If I knew what library was being run, i'd probably also compile
|
||||||
|
# a test program at this point (which also extracted and tested
|
||||||
|
# the version in some library-specific way)
|
||||||
|
if test "$DOWN[]_config_major_version" -lt \
|
||||||
|
"$DOWN[]_wanted_major_version" \
|
||||||
|
-o \( "$DOWN[]_config_major_version" -eq \
|
||||||
|
"$DOWN[]_wanted_major_version" \
|
||||||
|
-a "$DOWN[]_config_minor_version" -lt \
|
||||||
|
"$DOWN[]_wanted_minor_version" \) \
|
||||||
|
-o \( "$DOWN[]_config_major_version" -eq \
|
||||||
|
"$DOWN[]_wanted_major_version" \
|
||||||
|
-a "$DOWN[]_config_minor_version" -eq \
|
||||||
|
"$DOWN[]_wanted_minor_version" \
|
||||||
|
-a "$DOWN[]_config_micro_version" -lt \
|
||||||
|
"$DOWN[]_wanted_micro_version" \) ; then
|
||||||
|
# older version found
|
||||||
|
no_[]DOWN=yes
|
||||||
|
echo -n "*** An old version of $1 "
|
||||||
|
echo -n "($DOWN[]_config_major_version"
|
||||||
|
echo -n ".$DOWN[]_config_minor_version"
|
||||||
|
echo ".$DOWN[]_config_micro_version) was found."
|
||||||
|
echo -n "*** You need a version of $1 newer than "
|
||||||
|
echo -n "$DOWN[]_wanted_major_version"
|
||||||
|
echo -n ".$DOWN[]_wanted_minor_version"
|
||||||
|
echo ".$DOWN[]_wanted_micro_version."
|
||||||
|
echo "***"
|
||||||
|
echo "*** If you have already installed a sufficiently new version, this error"
|
||||||
|
echo "*** probably means that the wrong copy of the DOWN-config shell script is"
|
||||||
|
echo "*** being found. The easiest way to fix this is to remove the old version"
|
||||||
|
echo "*** of $1, but you can also set the UP[]_CONFIG environment to point to the"
|
||||||
|
echo "*** correct copy of DOWN-config. (In this case, you will have to"
|
||||||
|
echo "*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf"
|
||||||
|
echo "*** so that the correct libraries are found at run-time)"
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
if test "x$no_[]DOWN" = x ; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
if test "$UP[]_CONFIG" = "no" ; then
|
||||||
|
echo "*** The DOWN-config script installed by $1 could not be found"
|
||||||
|
echo "*** If $1 was installed in PREFIX, make sure PREFIX/bin is in"
|
||||||
|
echo "*** your path, or set the UP[]_CONFIG environment variable to the"
|
||||||
|
echo "*** full path to DOWN-config."
|
||||||
|
fi
|
||||||
|
UP[]_CFLAGS=""
|
||||||
|
UP[]_LIBS=""
|
||||||
|
ifelse([$4], , :, [$4])
|
||||||
|
fi
|
||||||
|
AC_SUBST(UP[]_CFLAGS)
|
||||||
|
AC_SUBST(UP[]_LIBS)
|
||||||
|
|
||||||
|
popdef([UP])
|
||||||
|
popdef([DOWN])
|
||||||
|
])
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
|
|
||||||
enum _Emotion_Event
|
enum _Emotion_Event
|
||||||
{
|
{
|
||||||
EMOTION_EVENT_MENU1,
|
EMOTION_EVENT_MENU1, // Escape Menu
|
||||||
EMOTION_EVENT_MENU2,
|
EMOTION_EVENT_MENU2, // Title Menu
|
||||||
EMOTION_EVENT_MENU3,
|
EMOTION_EVENT_MENU3, // Root Menu
|
||||||
EMOTION_EVENT_MENU4,
|
EMOTION_EVENT_MENU4, // Subpicture Menu
|
||||||
EMOTION_EVENT_MENU5,
|
EMOTION_EVENT_MENU5, // Audio Menu
|
||||||
EMOTION_EVENT_MENU6,
|
EMOTION_EVENT_MENU6, // Angle Menu
|
||||||
EMOTION_EVENT_MENU7,
|
EMOTION_EVENT_MENU7, // Part Menu
|
||||||
EMOTION_EVENT_UP,
|
EMOTION_EVENT_UP,
|
||||||
EMOTION_EVENT_DOWN,
|
EMOTION_EVENT_DOWN,
|
||||||
EMOTION_EVENT_LEFT,
|
EMOTION_EVENT_LEFT,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
SUBDIRS = xine
|
SUBDIRS = xine
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = 1.4 foreign
|
#AUTOMAKE_OPTIONS = 1.4 foreign
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
||||||
|
@ -22,6 +22,6 @@ emotion_xine.h
|
||||||
emotion_decoder_xine_la_LIBADD = @my_libs@ @xine_libs@
|
emotion_decoder_xine_la_LIBADD = @my_libs@ @xine_libs@
|
||||||
emotion_decoder_xine_la_LDFLAGS = \
|
emotion_decoder_xine_la_LDFLAGS = \
|
||||||
$(LDFLAGS) \
|
$(LDFLAGS) \
|
||||||
-no-undefined -module -avoid-version \
|
-module -avoid-version \
|
||||||
-L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
|
-L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
|
||||||
emotion_decoder_xine_la_DEPENDENCIES = $(top_builddir)/config.h
|
emotion_decoder_xine_la_DEPENDENCIES = $(top_builddir)/config.h
|
||||||
|
|
|
@ -10,6 +10,9 @@ static int init_count = 0;
|
||||||
static int fd_read = -1;
|
static int fd_read = -1;
|
||||||
static int fd_write = -1;
|
static int fd_write = -1;
|
||||||
Ecore_Fd_Handler *fd_handler = NULL;
|
Ecore_Fd_Handler *fd_handler = NULL;
|
||||||
|
static int fd_ev_read = -1;
|
||||||
|
static int fd_ev_write = -1;
|
||||||
|
Ecore_Fd_Handler *fd_ev_handler = NULL;
|
||||||
static xine_t *decoder = NULL;
|
static xine_t *decoder = NULL;
|
||||||
|
|
||||||
static int em_init(void);
|
static int em_init(void);
|
||||||
|
@ -59,9 +62,11 @@ static void em_speed_set(void *ef, double speed);
|
||||||
static double em_speed_get(void *ef);
|
static double em_speed_get(void *ef);
|
||||||
static int em_eject(void *ef);
|
static int em_eject(void *ef);
|
||||||
|
|
||||||
static void *_em_seek (void *par);
|
static void *_em_seek (void *par);
|
||||||
static int _em_fd_active(void *data, Ecore_Fd_Handler *fdh);
|
static int _em_fd_active (void *data, Ecore_Fd_Handler *fdh);
|
||||||
static int _em_timer (void *data);
|
static void _em_event (void *data, const xine_event_t *event);
|
||||||
|
static int _em_fd_ev_active(void *data, Ecore_Fd_Handler *fdh);
|
||||||
|
static int _em_timer (void *data);
|
||||||
|
|
||||||
static int
|
static int
|
||||||
em_init(void)
|
em_init(void)
|
||||||
|
@ -100,6 +105,23 @@ em_init(void)
|
||||||
ecore_main_fd_handler_active_set(fd_handler, ECORE_FD_READ);
|
ecore_main_fd_handler_active_set(fd_handler, ECORE_FD_READ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
int fds[2];
|
||||||
|
|
||||||
|
if (pipe(fds) == 0)
|
||||||
|
{
|
||||||
|
fd_ev_read = fds[0];
|
||||||
|
fd_ev_write = fds[1];
|
||||||
|
fcntl(fd_ev_read, F_SETFL, O_NONBLOCK);
|
||||||
|
fd_ev_handler = ecore_main_fd_handler_add(fd_ev_read,
|
||||||
|
ECORE_FD_READ,
|
||||||
|
_em_fd_ev_active,
|
||||||
|
decoder,
|
||||||
|
NULL,
|
||||||
|
NULL);
|
||||||
|
ecore_main_fd_handler_active_set(fd_ev_handler, ECORE_FD_READ);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return init_count;
|
return init_count;
|
||||||
}
|
}
|
||||||
|
@ -115,11 +137,17 @@ em_shutdown(void)
|
||||||
ecore_main_fd_handler_del(fd_handler);
|
ecore_main_fd_handler_del(fd_handler);
|
||||||
close(fd_write);
|
close(fd_write);
|
||||||
close(fd_read);
|
close(fd_read);
|
||||||
|
ecore_main_fd_handler_del(fd_ev_handler);
|
||||||
|
close(fd_ev_write);
|
||||||
|
close(fd_ev_read);
|
||||||
|
|
||||||
decoder = NULL;
|
decoder = NULL;
|
||||||
fd_handler = NULL;
|
fd_handler = NULL;
|
||||||
fd_read = -1;
|
fd_read = -1;
|
||||||
fd_write = -1;
|
fd_write = -1;
|
||||||
|
fd_ev_handler = NULL;
|
||||||
|
fd_ev_read = -1;
|
||||||
|
fd_ev_write = -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -216,12 +244,31 @@ em_file_open(const char *file, Evas_Object *obj)
|
||||||
xine_config_update_entry(decoder, &cf);
|
xine_config_update_entry(decoder, &cf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (1)
|
||||||
|
{
|
||||||
|
xine_mrl_t **mrls;
|
||||||
|
int mrls_num;
|
||||||
|
|
||||||
|
mrls = xine_get_browse_mrls(decoder, "dvd", "dvd://", &mrls_num);
|
||||||
|
printf("mrls = %p\n", mrls);
|
||||||
|
if (mrls)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < mrls_num; i++)
|
||||||
|
{
|
||||||
|
printf("MRL: origin \"%s\" mrl \"%s\" link \"%s\" type %x size %i\n",
|
||||||
|
mrls[i]->origin, mrls[i]->mrl, mrls[i]->link,
|
||||||
|
(int)mrls[i]->type, (int)mrls[i]->size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (1)
|
if (1)
|
||||||
{
|
{
|
||||||
char **auto_play_mrls;
|
char **auto_play_mrls;
|
||||||
int auto_play_num;
|
int auto_play_num;
|
||||||
|
|
||||||
auto_play_mrls = xine_get_autoplay_mrls(decoder, "cdda", &auto_play_num);
|
auto_play_mrls = xine_get_autoplay_mrls(decoder, "dvd", &auto_play_num);
|
||||||
printf("auto_play_mrls = %p\n", auto_play_mrls);
|
printf("auto_play_mrls = %p\n", auto_play_mrls);
|
||||||
if (auto_play_mrls)
|
if (auto_play_mrls)
|
||||||
{
|
{
|
||||||
|
@ -232,13 +279,19 @@ em_file_open(const char *file, Evas_Object *obj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ev->video = xine_open_video_driver(decoder, "emotion", XINE_VISUAL_TYPE_NONE, ev);
|
ev->video = xine_open_video_driver(decoder, "emotion", XINE_VISUAL_TYPE_NONE, ev);
|
||||||
ev->audio = xine_open_audio_driver(decoder, "oss", ev);
|
ev->audio = xine_open_audio_driver(decoder, "oss", ev);
|
||||||
|
// ev->audio = xine_open_audio_driver(decoder, "alsa", ev);
|
||||||
|
// ev->audio = xine_open_audio_driver(decoder, "arts", ev);
|
||||||
|
// ev->audio = xine_open_audio_driver(decoder, "esd", ev);
|
||||||
ev->stream = xine_stream_new(decoder, ev->audio, ev->video);
|
ev->stream = xine_stream_new(decoder, ev->audio, ev->video);
|
||||||
|
ev->queue = xine_event_new_queue(ev->stream);
|
||||||
|
xine_event_create_listener_thread(ev->queue, _em_event, ev);
|
||||||
if (!xine_open(ev->stream, file))
|
if (!xine_open(ev->stream, file))
|
||||||
{
|
{
|
||||||
xine_dispose(ev->stream);
|
xine_dispose(ev->stream);
|
||||||
if (ev->video) xine_close_video_driver(decoder, ev->video);
|
if (ev->video) xine_close_video_driver(decoder, ev->video);
|
||||||
if (ev->audio) xine_close_audio_driver(decoder, ev->audio);
|
if (ev->audio) xine_close_audio_driver(decoder, ev->audio);
|
||||||
|
xine_event_dispose_queue(ev->queue);
|
||||||
free(ev);
|
free(ev);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -270,6 +323,7 @@ em_file_close(void *ef)
|
||||||
xine_stop(ev->stream);
|
xine_stop(ev->stream);
|
||||||
xine_close(ev->stream);
|
xine_close(ev->stream);
|
||||||
xine_dispose(ev->stream);
|
xine_dispose(ev->stream);
|
||||||
|
xine_event_dispose_queue(ev->queue);
|
||||||
if (ev->video) xine_close_video_driver(decoder, ev->video);
|
if (ev->video) xine_close_video_driver(decoder, ev->video);
|
||||||
if (ev->audio) xine_close_audio_driver(decoder, ev->audio);
|
if (ev->audio) xine_close_audio_driver(decoder, ev->audio);
|
||||||
if (ev->timer) ecore_timer_del(ev->timer);
|
if (ev->timer) ecore_timer_del(ev->timer);
|
||||||
|
@ -906,9 +960,9 @@ _em_fd_active(void *data, Ecore_Fd_Handler *fdh)
|
||||||
int length_time = 0;
|
int length_time = 0;
|
||||||
|
|
||||||
fd = ecore_main_fd_handler_fd_get(fdh);
|
fd = ecore_main_fd_handler_fd_get(fdh);
|
||||||
while ((len = read(fd, &buf, sizeof(void *))) > 0)
|
while ((len = read(fd, &buf, sizeof(buf))) > 0)
|
||||||
{
|
{
|
||||||
if (len == sizeof(void *))
|
if (len == sizeof(buf))
|
||||||
{
|
{
|
||||||
fr = buf;
|
fr = buf;
|
||||||
ev = _emotion_video_get(fr->obj);
|
ev = _emotion_video_get(fr->obj);
|
||||||
|
@ -948,6 +1002,149 @@ _em_fd_active(void *data, Ecore_Fd_Handler *fdh)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_em_event(void *data, const xine_event_t *event)
|
||||||
|
{
|
||||||
|
void *buf[2];
|
||||||
|
Emotion_Xine_Event *new_ev;
|
||||||
|
|
||||||
|
new_ev = calloc(1, sizeof(Emotion_Xine_Event));
|
||||||
|
if (!new_ev) return;
|
||||||
|
new_ev->type = event->type;
|
||||||
|
if (event->data)
|
||||||
|
{
|
||||||
|
new_ev->xine_event = malloc(event->data_length);
|
||||||
|
if (!new_ev->xine_event)
|
||||||
|
{
|
||||||
|
free(new_ev);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
memcpy(new_ev->xine_event, event->data, event->data_length);
|
||||||
|
}
|
||||||
|
buf[0] = data;
|
||||||
|
buf[1] = new_ev;
|
||||||
|
write(fd_ev_write, buf, sizeof(buf));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_em_fd_ev_active(void *data, Ecore_Fd_Handler *fdh)
|
||||||
|
{
|
||||||
|
int fd, len;
|
||||||
|
void *buf[2];
|
||||||
|
|
||||||
|
fd = ecore_main_fd_handler_fd_get(fdh);
|
||||||
|
while ((len = read(fd, buf, sizeof(buf))) > 0)
|
||||||
|
{
|
||||||
|
if (len == sizeof(buf))
|
||||||
|
{
|
||||||
|
Emotion_Xine_Video *ev;
|
||||||
|
Emotion_Xine_Event *eev;
|
||||||
|
|
||||||
|
printf("event from xine...\n");
|
||||||
|
ev = buf[0];
|
||||||
|
eev = buf[1];
|
||||||
|
switch (eev->type)
|
||||||
|
{
|
||||||
|
case XINE_EVENT_UI_PLAYBACK_FINISHED:
|
||||||
|
{
|
||||||
|
printf("EV: Playback finished\n");
|
||||||
|
/* no data in this event */
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_UI_CHANNELS_CHANGED:
|
||||||
|
{
|
||||||
|
printf("EV: Channels changed\n");
|
||||||
|
/* no data in this event */
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_UI_SET_TITLE:
|
||||||
|
{
|
||||||
|
xine_ui_data_t *ev;
|
||||||
|
|
||||||
|
ev = eev->xine_event;
|
||||||
|
printf("EV: New Title \"%s\"\n", ev->str);
|
||||||
|
// title is ev->str
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_UI_MESSAGE:
|
||||||
|
{
|
||||||
|
xine_ui_message_data_t *ev;
|
||||||
|
|
||||||
|
ev = eev->xine_event;
|
||||||
|
printf("EV: UI Message\n");
|
||||||
|
// ev->type = error type(XINE_MSG_NO_ERROR, XINE_MSG_GENERAL_WARNING, XINE_MSG_UNKNOWN_HOST etc.)
|
||||||
|
// ev->messages is a list of messages DOUBLE null terminated
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_AUDIO_LEVEL:
|
||||||
|
{
|
||||||
|
xine_audio_level_data_t *ev;
|
||||||
|
|
||||||
|
ev = eev->xine_event;
|
||||||
|
printf("EV: Audio Level\n");
|
||||||
|
// ev->left (0->100)
|
||||||
|
// ev->right
|
||||||
|
// ev->mute
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_PROGRESS:
|
||||||
|
{
|
||||||
|
xine_progress_data_t *ev;
|
||||||
|
|
||||||
|
ev = eev->xine_event;
|
||||||
|
printf("EV: Progress \"%s\" %i%%\n", ev->description, ev->percent);
|
||||||
|
// ev->description is text
|
||||||
|
// ev->percent is a percentage marker (0-100)
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_MRL_REFERENCE:
|
||||||
|
{
|
||||||
|
xine_mrl_reference_data_t *ev;
|
||||||
|
|
||||||
|
ev = eev->xine_event;
|
||||||
|
printf("EV: MRL Ref to \"%s\"\n", ev->mrl);
|
||||||
|
// ev->alternative alternative playlist no
|
||||||
|
// ev->mrl is the mrl
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_UI_NUM_BUTTONS:
|
||||||
|
{
|
||||||
|
xine_ui_data_t *ev;
|
||||||
|
|
||||||
|
ev = eev->xine_event;
|
||||||
|
printf("EV: Num buttons %i\n", ev->num_buttons);
|
||||||
|
// ev->num_buttons indicates how many buttons in the spu
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_SPU_BUTTON:
|
||||||
|
{
|
||||||
|
xine_spu_button_t *ev;
|
||||||
|
|
||||||
|
ev = eev->xine_event;
|
||||||
|
printf("EV: Button enter? [%i] %i\n", ev->direction, ev->button);
|
||||||
|
// ev->direction 1 = enter, 0 = leave
|
||||||
|
// ev->button button number entered/left
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XINE_EVENT_DROPPED_FRAMES:
|
||||||
|
{
|
||||||
|
xine_dropped_frames_t *ev;
|
||||||
|
|
||||||
|
ev = eev->xine_event;
|
||||||
|
printf("EV: Dropped Frames (skipped %i) (discarded %i)\n", ev->skipped_frames, ev->discarded_frames);
|
||||||
|
// ev->skipped_frames = % frames skipped * 10
|
||||||
|
// ev->discarded_frames = % frames skipped * 10
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (eev->xine_event) free(eev->xine_event);
|
||||||
|
free(eev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_em_timer(void *data)
|
_em_timer(void *data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,12 +5,14 @@
|
||||||
|
|
||||||
typedef struct _Emotion_Xine_Video Emotion_Xine_Video;
|
typedef struct _Emotion_Xine_Video Emotion_Xine_Video;
|
||||||
typedef struct _Emotion_Xine_Video_Frame Emotion_Xine_Video_Frame;
|
typedef struct _Emotion_Xine_Video_Frame Emotion_Xine_Video_Frame;
|
||||||
|
typedef struct _Emotion_Xine_Event Emotion_Xine_Event;
|
||||||
|
|
||||||
struct _Emotion_Xine_Video
|
struct _Emotion_Xine_Video
|
||||||
{
|
{
|
||||||
xine_video_port_t *video;
|
xine_video_port_t *video;
|
||||||
xine_audio_port_t *audio;
|
xine_audio_port_t *audio;
|
||||||
xine_stream_t *stream;
|
xine_stream_t *stream;
|
||||||
|
xine_event_queue_t *queue;
|
||||||
int fd;
|
int fd;
|
||||||
double len;
|
double len;
|
||||||
double pos;
|
double pos;
|
||||||
|
@ -42,6 +44,12 @@ struct _Emotion_Xine_Video_Frame
|
||||||
void *frame;
|
void *frame;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _Emotion_Xine_Event
|
||||||
|
{
|
||||||
|
int type;
|
||||||
|
char *xine_event;
|
||||||
|
};
|
||||||
|
|
||||||
Emotion_Video_Module *module_open (void);
|
Emotion_Video_Module *module_open (void);
|
||||||
void module_close(Emotion_Video_Module *module);
|
void module_close(Emotion_Video_Module *module);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = 1.4 foreign
|
#AUTOMAKE_OPTIONS = 1.4 foreign
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
||||||
|
@ -20,6 +20,6 @@ emotion_xine_vo_out.c
|
||||||
xineplug_vo_out_emotion_la_LIBADD = @xine_libs@
|
xineplug_vo_out_emotion_la_LIBADD = @xine_libs@
|
||||||
xineplug_vo_out_emotion_la_LDFLAGS = \
|
xineplug_vo_out_emotion_la_LDFLAGS = \
|
||||||
$(LDFLAGS) \
|
$(LDFLAGS) \
|
||||||
-no-undefined -module -avoid-version \
|
-module -avoid-version \
|
||||||
-L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
|
-L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
|
||||||
xineplug_vo_out_emotion_la_DEPENDENCIES = $(top_builddir)/config.h
|
xineplug_vo_out_emotion_la_DEPENDENCIES = $(top_builddir)/config.h
|
||||||
|
|
Loading…
Reference in New Issue