efl: merge eeze.

Changes also in this commit:
 * fix missing EAPI in symbols used by modules
 * removed old libudev and libmount support as agreed by discomfitor/zmike
 * replaced __UNUSED__ with EINA_UNUSED
 * fixed docs hierarchy



SVN revision: 82100
This commit is contained in:
Gustavo Sverzut Barbieri 2013-01-03 20:37:42 +00:00
parent f7cc32f78b
commit 68188ac0c8
45 changed files with 447 additions and 86 deletions

View File

@ -226,3 +226,12 @@ Nathan 'RbdPngn' Ingersoll
Nicholas 'Mekius' Hughart Nicholas 'Mekius' Hughart
Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com> Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com>
Mathieu Taillefumier <mathieu.taillefumier@free.fr> Mathieu Taillefumier <mathieu.taillefumier@free.fr>
Eeze
----
Mike Blumenkrantz (zmike/discomfitor) <michael.blumenkrantz@gmail.com>
Cedric Bail <cedric@efl.so>
Mikael Sans <sans.mikael@gmail.com>
Christophe Dumez <christophe.dumez@intel.com>
Stefan Schmidt <stefan@datenfreihafen.org>

View File

@ -1,6 +1,7 @@
2013-01-03 Gustavo Sverzut Barbieri (k-s) 2013-01-03 Gustavo Sverzut Barbieri (k-s)
* Add eina_alloc.h to Eina.h to define alloca() * Add eina_alloc.h to Eina.h to define alloca()
* Eeze: deprecated support for udev<148 and libmount<2.18
2013-01-03 Cedric Bail 2013-01-03 Cedric Bail

View File

@ -98,7 +98,8 @@ pc/eio.pc \
pc/edbus2.pc \ pc/edbus2.pc \
pc/efreet.pc \ pc/efreet.pc \
pc/efreet-mime.pc \ pc/efreet-mime.pc \
pc/efreet-trash.pc pc/efreet-trash.pc \
pc/eeze.pc
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = pkgconfig_DATA =
@ -208,6 +209,10 @@ if HAVE_ECORE_X
pkgconfig_DATA += pc/ecore-x.pc pkgconfig_DATA += pc/ecore-x.pc
endif endif
if HAVE_EEZE
pkgconfig_DATA += pc/eeze.pc
endif
# D-Bus services: # D-Bus services:

1
NEWS
View File

@ -58,6 +58,7 @@ Deprecations:
ecore_x_e_window_profile_list_set() ecore_x_e_window_profile_list_set()
ecore_x_e_window_profile_list_get() ecore_x_e_window_profile_list_get()
* ecore_evas: deprecate DirectFB, XRender, WinCE, X11-16 and X11-8. * ecore_evas: deprecate DirectFB, XRender, WinCE, X11-16 and X11-8.
* eeze: deprecate libudev<148 and libmount<2.18
Removed: Removed:
* directfb support: ecore_directfb and evas directfb engine. * directfb support: ecore_directfb and evas directfb engine.

View File

@ -3125,6 +3125,99 @@ EFL_INTERNAL_DEPEND_PKG([EFREET], [eina])
EFL_LIB_END([Efreet]) EFL_LIB_END([Efreet])
#### End of Efreet #### End of Efreet
#### Eeze
EFL_LIB_START_OPTIONAL([Eeze], [test "${have_linux}" = "yes"])
### Additional options to configure
AC_ARG_ENABLE([tizen],
[AC_HELP_STRING([--enable-tizen],
[enable tizen support. @<:@default=disabled@:>@])],
[
if test "x${enableval}" = "xyes" ; then
want_tizen="yes"
else
want_tizen="no"
fi
],
[want_tizen="no"])
AC_ARG_ENABLE([mount],
[AC_HELP_STRING([--disable-mount],
[disable mount support (libmount). @<:@default=enabled@:>@])],
[
if test "x${enableval}" = "xyes" ; then
want_mount="yes"
else
want_mount="no"
fi
],
[want_mount="yes"])
AC_ARG_WITH([mount],
[AS_HELP_STRING([--with-mount], [specify mount bin @<:@default=detect@:>@])],
[with_eeze_mount=$withval], [with_eeze_mount="detect"])
AC_ARG_WITH([umount],
[AS_HELP_STRING([--with-umount], [specify umount bin @<:@default=detect@:>@])],
[with_eeze_umount=$withval], [with_eeze_umount="detect"])
AC_ARG_WITH([eject],
[AS_HELP_STRING([--with-eject], [specify eject bin @<:@default=detect@:>@])],
[with_eeze_eject=$withval], [with_eeze_eject="detect"])
### Default values
### Checks for programs
### Checks for libraries
EFL_INTERNAL_DEPEND_PKG([EEZE], [eina])
EFL_INTERNAL_DEPEND_PKG([EEZE], [ecore])
EFL_OPTIONAL_INTERNAL_DEPEND_PKG([EEZE], [${want_mount}], [ecore-file])
EFL_OPTIONAL_INTERNAL_DEPEND_PKG([EEZE], [${want_mount}], [ecore-con])
EFL_OPTIONAL_INTERNAL_DEPEND_PKG([EEZE], [${wantx_mount}], [eet])
EFL_DEPEND_PKG([EEZE], [UDEV], [libudev >= 148])
EFL_OPTIONAL_DEPEND_PKG([EEZE], [${want_mount}], [EEZE_MOUNT], [mount >= 2.19.0])
## modules
if test "${want_tizen}" = "yes"; then
PKG_CHECK_MODULES([TIZEN_SENSOR], [capi-system-sensor])
fi
EFL_EVAL_PKGS([EEZE])
AM_CONDITIONAL([HAVE_EEZE_MOUNT], [test "${want_mount}" = "yes"])
AM_CONDITIONAL([HAVE_EEZE_TIZEN], [test "${want_tizen}" = "yes"])
### Checks for header files
### Checks for types
### Checks for structures
### Checks for compiler characteristics
### Checks for linker characteristics
### Checks for library functions
### Checks for binaries
if test "x$with_eeze_mount" = "xdetect"; then
AC_PATH_PROG([with_eeze_mount], [mount], [])
fi
AC_DEFINE_UNQUOTED([EEZE_MOUNT_BIN], ["$with_eeze_mount"], [mount bin to use])
if test "x$with_eeze_umount" = "xdetect";then
AC_PATH_PROG([with_eeze_umount], [umount], [])
fi
AC_DEFINE_UNQUOTED([EEZE_UNMOUNT_BIN], ["$with_eeze_umount"], [umount bin to use])
if test "x$with_eeze_eject" = "xdetect";then
AC_PATH_PROG([with_eeze_eject], [eject], [])
fi
AC_DEFINE_UNQUOTED([EEZE_EJECT_BIN], ["$with_eeze_eject"], [eject bin to use])
EFL_LIB_END_OPTIONAL([Eeze])
#### End of Eeze
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
data/Makefile data/Makefile
@ -3187,6 +3280,7 @@ pc/edbus2.pc
pc/efreet.pc pc/efreet.pc
pc/efreet-mime.pc pc/efreet-mime.pc
pc/efreet-trash.pc pc/efreet-trash.pc
pc/eeze.pc
dbus-services/org.enlightenment.Efreet.service dbus-services/org.enlightenment.Efreet.service
$po_makefile_in $po_makefile_in
]) ])
@ -3390,6 +3484,8 @@ echo " Ecore_Evas...................: $have_ecore_evas"
echo " Extn (Plug/socket Extn)....: $have_ecore_evas_extn" echo " Extn (Plug/socket Extn)....: $have_ecore_evas_extn"
#fi #fi
echo echo
echo "Eeze...................: ${efl_lib_optional_eeze} (tizen: ${want_tizen})"
echo "Tests..................: ${build_tests}" echo "Tests..................: ${build_tests}"
echo "Examples...............: make examples" echo "Examples...............: make examples"

View File

@ -807,7 +807,8 @@ eet_ _eet_ Eet_ _Eet_ EET_ _EET_ \
ecore_ _ecore_ Ecore_ _Ecore_ ECORE_ _ECORE_ \ ecore_ _ecore_ Ecore_ _Ecore_ ECORE_ _ECORE_ \
eio_ _eio_ Eio_ _Eio_ EIO_ _EIO_ \ eio_ _eio_ Eio_ _Eio_ EIO_ _EIO_ \
edbus_ _edbus_ EDBus_ _EDBus_ EDBUS_ _EDBUS_ \ edbus_ _edbus_ EDBus_ _EDBus_ EDBUS_ _EDBUS_ \
efreet_ _efreet_ Efreet_ _Efreet_ EFREET_ _EFREET_ efreet_ _efreet_ Efreet_ _Efreet_ EFREET_ _EFREET_ \
eeze_ _eeze_ Eeze_ _Eeze_ EEZE_ _EEZE_
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------

View File

@ -18,6 +18,7 @@
* @li @ref eio_main asynchronous input/output * @li @ref eio_main asynchronous input/output
* @li @ref edbus_main d-bus integration. * @li @ref edbus_main d-bus integration.
* @li @ref efreet_main freedesktop.org (xdg) menu and desktop integration. * @li @ref efreet_main freedesktop.org (xdg) menu and desktop integration.
* @li @ref eeze_main hardware device manipulation and notification.
* *
*/ */
@ -39,6 +40,7 @@
* @author Cedric Bail <cedric.bail@@free.fr> * @author Cedric Bail <cedric.bail@@free.fr>
* @author Chidambar Zinnoury <illogict@@online.fr> * @author Chidambar Zinnoury <illogict@@online.fr>
* @author Chris Ross <chris@@darkrock.co.uk> * @author Chris Ross <chris@@darkrock.co.uk>
* @author Christophe Dumez <christophe.dumez@@intel.com>
* @author Christopher 'devilhorns' Michael <cpmichael1@comcast.net> * @author Christopher 'devilhorns' Michael <cpmichael1@comcast.net>
* @author ChunEon Park <hermet@@hermet.pe.kr> * @author ChunEon Park <hermet@@hermet.pe.kr>
* @author Corey "atmos" Donohoe <atmos@@atmos.org> * @author Corey "atmos" Donohoe <atmos@@atmos.org>
@ -74,6 +76,7 @@
* @author Mathieu Taillefumier <mathieu.taillefumier@@free.fr> * @author Mathieu Taillefumier <mathieu.taillefumier@@free.fr>
* @author Matt Barclay <mbarclay@@gmail.com> * @author Matt Barclay <mbarclay@@gmail.com>
* @author Michael 'Mickey' Lauer <mickey@@tm.informatik.uni-frankfurt.de> * @author Michael 'Mickey' Lauer <mickey@@tm.informatik.uni-frankfurt.de>
* @author Mikael Sans <sans.mikael@@gmail.com>
* @author Mike Blumenkrantz <michael.blumenkrantz@@gmail.com> * @author Mike Blumenkrantz <michael.blumenkrantz@@gmail.com>
* @author Mike McCormack <mj.mccormack@@samsung.com> * @author Mike McCormack <mj.mccormack@@samsung.com>
* @author Myoungwoon Roy Kim(roy_kim) <myoungwoon.kim@@samsung.com> <myoungwoon@@gmail.com> * @author Myoungwoon Roy Kim(roy_kim) <myoungwoon.kim@@samsung.com> <myoungwoon@@gmail.com>
@ -183,3 +186,10 @@
* *
* @brief FreeDesktop.Org (XDG) menu and desktop integration. * @brief FreeDesktop.Org (XDG) menu and desktop integration.
*/ */
/**
* @defgroup Eeze
*
* @brief Hardware device manipulation and notification, wraps UDev and similar.
*/

View File

@ -105,6 +105,19 @@ m4_pushdef([DOWN], m4_translit([$3], [-A-Z], [_a-z]))dnl
m4_popdef([DOWN]) m4_popdef([DOWN])
]) ])
dnl EFL_OPTIONAL_INTERNAL_DEPEND_PKG(EFL, VARIABLE, NAME)
AC_DEFUN([EFL_OPTIONAL_INTERNAL_DEPEND_PKG],
[
m4_pushdef([DOWN], m4_translit([$3], [-A-Z], [_a-z]))dnl
have_[]m4_defn([DOWN])="no"
if test "x$2" = "xyes"; then
EFL_INTERNAL_DEPEND_PKG([$1], [$3])
fi
m4_popdef([DOWN])
])
dnl EFL_ADD_LIBS(PKG, LIBS) dnl EFL_ADD_LIBS(PKG, LIBS)
dnl Add libraries that the EFL library will depend on dnl Add libraries that the EFL library will depend on
dnl See EFL_DEPEND_PKG() for pkg-config version. dnl See EFL_DEPEND_PKG() for pkg-config version.

View File

@ -5,7 +5,8 @@ includedir=@includedir@
Name: eeze Name: eeze
Description: device convenience library for efl Description: device convenience library for efl
@pkgconfig_requires_private@: @requirement_eeze@ Requires.private: @requirements_pc_eeze@
Version: @VERSION@ Version: @VERSION@
Libs: -L${libdir} -leeze Libs: -L${libdir} -leeze
Cflags: -I${includedir}/eeze-@VMAJ@ Cflags: -I${includedir}/eeze-@VMAJ@
Libs: -L${libdir} -leet

View File

@ -61,6 +61,9 @@ include Makefile_Embryo.am
include Makefile_Eio.am include Makefile_Eio.am
include Makefile_EDBus.am include Makefile_EDBus.am
include Makefile_Efreet.am include Makefile_Efreet.am
if HAVE_EEZE
include Makefile_Eeze.am
endif
.PHONY: benchmark examples .PHONY: benchmark examples
@ -78,6 +81,7 @@ install-examples:
clean-local: clean-local:
rm -rf bin/eet/*.gcno rm -rf bin/eet/*.gcno
rm -rf bin/efreet/*.gcno rm -rf bin/efreet/*.gcno
rm -rf bin/eeze/*.gcno
rm -rf lib/evil/*.gcno rm -rf lib/evil/*.gcno
rm -rf lib/eina/*.gcno rm -rf lib/eina/*.gcno
rm -rf lib/eo/*.gcno rm -rf lib/eo/*.gcno
@ -94,6 +98,7 @@ clean-local:
rm -rf lib/embryo/*.gcno rm -rf lib/embryo/*.gcno
rm -rf lib/edbus/*.gcno rm -rf lib/edbus/*.gcno
rm -rf lib/efreet/*.gcno rm -rf lib/efreet/*.gcno
rm -rf lib/eeze/*.gcno
rm -rf modules/eina/mp/pass_through/*.gcno rm -rf modules/eina/mp/pass_through/*.gcno
rm -rf modules/eina/mp/one_big/*.gcno rm -rf modules/eina/mp/one_big/*.gcno
rm -rf modules/eina/mp/chained_pool/*.gcno rm -rf modules/eina/mp/chained_pool/*.gcno

166
src/Makefile_Eeze.am Normal file
View File

@ -0,0 +1,166 @@
### Library
lib_LTLIBRARIES += \
lib/eeze/libeeze.la
EEZE_COMMON_CPPFLAGS = \
-I$(top_srcdir)/src/lib/eina \
-I$(top_builddir)/src/lib/eina \
-I$(top_srcdir)/src/lib/eco \
-I$(top_builddir)/src/lib/eo \
-I$(top_srcdir)/src/lib/ecore \
-I$(top_builddir)/src/lib/ecore \
-I$(top_srcdir)/src/lib/ecore_file \
-I$(top_builddir)/src/lib/ecore_file \
-I$(top_srcdir)/src/lib/ecore_con \
-I$(top_builddir)/src/lib/ecore_con \
-I$(top_srcdir)/src/lib/eet \
-I$(top_builddir)/src/lib/eet \
-I$(top_srcdir)/src/lib/eeze \
-I$(top_builddir)/src/lib/eeze \
@EFL_COV_CFLAGS@ \
@EEZE_CFLAGS@
EEZE_COMMON_LDADD = \
lib/eina/libeina.la \
lib/eo/libeo.la \
lib/ecore/libecore.la \
@EFL_COV_LIBS@
installed_eezemainheadersdir = $(includedir)/eeze-@VMAJ@
dist_installed_eezemainheaders_DATA = \
lib/eeze/Eeze.h \
lib/eeze/Eeze_Net.h \
lib/eeze/Eeze_Sensor.h
# libeeze.la
lib_eeze_libeeze_la_SOURCES = \
lib/eeze/eeze_main.c \
lib/eeze/eeze_net.c \
lib/eeze/eeze_net_private.h \
lib/eeze/eeze_udev_find.c \
lib/eeze/eeze_udev_private.h \
lib/eeze/eeze_udev_private.c \
lib/eeze/eeze_udev_syspath.c \
lib/eeze/eeze_udev_walk.c \
lib/eeze/eeze_udev_watch.c \
lib/eeze/eeze_sensor_private.h \
lib/eeze/eeze_sensor.c
if HAVE_EEZE_MOUNT
dist_installed_eezemainheaders_DATA += lib/eeze/Eeze_Disk.h
lib_eeze_libeeze_la_SOURCES += \
lib/eeze/eeze_disk.c \
lib/eeze/eeze_disk_udev.c \
lib/eeze/eeze_disk_mount.c \
lib/eeze/eeze_disk_private.h \
lib/eeze/eeze_disk_libmount_new.c
EEZE_COMMON_LDADD += \
lib/ecore_file/libecore_file.la \
lib/ecore_con/libecore_con.la \
lib/eet/libeet.la
endif
EEZE_COMMON_LIBADD = $(EEZE_COMMON_LDADD) @EEZE_LIBS@
EEZE_COMMON_LDADD += @EEZE_LDFLAGS@
EEZE_COMMON_USER_LIBADD = $(EEZE_COMMON_LIBADD) lib/eeze/libeeze.la
EEZE_COMMON_USER_LDADD = $(EEZE_COMMON_LDADD) lib/eeze/libeeze.la
lib_eeze_libeeze_la_CPPFLAGS = \
$(EEZE_COMMON_CPPFLAGS) \
-DPACKAGE_BUILD_DIR=\"`pwd`/$(top_builddir)\" \
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
-DEFL_EEZE_BUILD
lib_eeze_libeeze_la_LIBADD = $(EEZE_COMMON_LIBADD)
lib_eeze_libeeze_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
eezemodulesensordir = $(libdir)/eeze/sensor
eezemodulesensor_LTLIBRARIES =
if HAVE_EEZE_TIZEN
eezemodulesensor_LTLIBRARIES += \
modules/eeze/eeze-sensor-tizen.la
modules_eeze_eeze_sensor_tizen_la_SOURCES = \
modules/eeze/eeze_sensor_tizen.c
modules_eeze_eeze_sensor_tizen_la_CPPFLAGS = \
$(EEZE_COMMON_CPPFLAGS) \
@TIZEN_SENSOR_CFLAGS@
modules_eeze_eeze_sensor_tizen_la_LIBADD = \
$(EEZE_COMMON_USER_LIBADD) \
@TIZEN_SENSOR_LIBS@
modules_eeze_eeze_sensor_tizen_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@
modules_eeze_eeze_sensor_tizen_la_LIBTOOLFLAGS = --tag=disable-static
else
eezemodulesensor_LTLIBRARIES += \
modules/eeze/eeze-sensor-fake.la
modules_eeze_eeze_sensor_fake_la_SOURCES = \
modules/eeze/eeze_sensor_fake.c
modules_eeze_eeze_sensor_fake_la_CPPFLAGS = $(EEZE_COMMON_CPPFLAGS)
modules_eeze_eeze_sensor_fake_la_LIBADD = $(EEZE_COMMON_USER_LIBADD)
modules_eeze_eeze_sensor_fake_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@
modules_eeze_eeze_sensor_fake_la_LIBTOOLFLAGS = --tag=disable-static
endif
### Binary
noinst_PROGRAMS += \
bin/eeze/eeze_udev_test \
bin/eeze/eeze_sensor_test
bin_eeze_eeze_udev_test_SOURCES = bin/eeze/eeze_udev_test.c
bin_eeze_eeze_udev_test_CPPFLAGS = $(EEZE_COMMON_CPPFLAGS)
bin_eeze_eeze_udev_test_LDADD = $(EEZE_COMMON_USER_LDADD)
bin_eeze_eeze_sensor_test_SOURCES = bin/eeze/eeze_sensor_test.c
bin_eeze_eeze_sensor_test_CPPFLAGS = $(EEZE_COMMON_CPPFLAGS)
bin_eeze_eeze_sensor_test_LDADD = $(EEZE_COMMON_USER_LDADD)
if HAVE_EEZE_MOUNT
bin_PROGRAMS += \
bin/eeze/eeze_mount \
bin/eeze/eeze_umount \
bin/eeze/eeze_disk_ls \
bin/eeze/eeze_scanner
bin_eeze_eeze_mount_SOURCES = bin/eeze/eeze_mount.c
bin_eeze_eeze_mount_CPPFLAGS = $(EEZE_COMMON_CPPFLAGS)
bin_eeze_eeze_mount_LDADD = $(EEZE_COMMON_USER_LDADD)
bin_eeze_eeze_umount_SOURCES = bin/eeze/eeze_umount.c
bin_eeze_eeze_umount_CPPFLAGS = $(EEZE_COMMON_CPPFLAGS)
bin_eeze_eeze_umount_LDADD = $(EEZE_COMMON_USER_LDADD)
bin_eeze_eeze_disk_ls_SOURCES = bin/eeze/eeze_disk_ls.c
bin_eeze_eeze_disk_ls_CPPFLAGS = $(EEZE_COMMON_CPPFLAGS)
bin_eeze_eeze_disk_ls_LDADD = $(EEZE_COMMON_USER_LDADD)
bin_eeze_eeze_scanner_SOURCES = \
bin/eeze/eeze_scanner.c \
bin/eeze/eeze_scanner.h
bin_eeze_eeze_scanner_CPPFLAGS = $(EEZE_COMMON_CPPFLAGS)
bin_eeze_eeze_scanner_LDADD = $(EEZE_COMMON_USER_LDADD)
endif
setuid_root_mode = a=rx,u+xs
install-data-hook::
@chmod $(setuid_root_mode) $(DESTDIR)$(bindir)/eeze_scanner$(EXEEXT) || true
### Unit tests
if EFL_ENABLE_TESTS
check_PROGRAMS += tests/eeze/eeze_suite
tests_eeze_eeze_suite_SOURCES = tests/eeze/eeze_suite.c
tests_eeze_eeze_suite_CPPFLAGS = \
-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/eeze\" \
$(EEZE_COMMON_CPPFLAGS) \
@CHECK_CFLAGS@
tests_eeze_eeze_suite_LDADD = $(EEZE_COMMON_USER_LDADD) @CHECK_LIBS@
endif

View File

@ -61,7 +61,7 @@ event_write(const void *data, size_t size, Ecore_Con_Client *cl)
} }
static Eina_Bool static Eina_Bool
disk_mount(void *data __UNUSED__, int type __UNUSED__, Eeze_Disk *disk) disk_mount(void *data EINA_UNUSED, int type EINA_UNUSED, Eeze_Disk *disk)
{ {
Eina_List *l; Eina_List *l;
Eeze_Scanner_Device *d; Eeze_Scanner_Device *d;
@ -79,7 +79,7 @@ disk_mount(void *data __UNUSED__, int type __UNUSED__, Eeze_Disk *disk)
} }
static void static void
cl_setup(Ecore_Con_Client *cl __UNUSED__, Eet_Connection *ec) cl_setup(Ecore_Con_Client *cl EINA_UNUSED, Eet_Connection *ec)
{ {
Eina_List *l; Eina_List *l;
Eeze_Scanner_Device *dev; Eeze_Scanner_Device *dev;
@ -118,13 +118,13 @@ cl_setup(Ecore_Con_Client *cl __UNUSED__, Eet_Connection *ec)
} }
static Eina_Bool static Eina_Bool
es_read(const void *eet_data __UNUSED__, size_t size __UNUSED__, void *user_data __UNUSED__) es_read(const void *eet_data EINA_UNUSED, size_t size EINA_UNUSED, void *user_data EINA_UNUSED)
{ {
return EINA_TRUE; return EINA_TRUE;
} }
static Eina_Bool static Eina_Bool
cl_add(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Client_Add *ev) cl_add(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Con_Event_Client_Add *ev)
{ {
Eet_Connection *ec; Eet_Connection *ec;
INF("Added client"); INF("Added client");
@ -143,7 +143,7 @@ cl_add(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Client_Add *e
} }
static Eina_Bool static Eina_Bool
cl_del(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Client_Del *ev) cl_del(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Con_Event_Client_Del *ev)
{ {
Eet_Connection *ec; Eet_Connection *ec;
Eina_Bool d; Eina_Bool d;
@ -288,7 +288,7 @@ storage_setup(void)
} }
static void static void
cb_vol_chg(const char *device, Eeze_Udev_Event ev, void *data __UNUSED__, Eeze_Udev_Watch *watch __UNUSED__) cb_vol_chg(const char *device, Eeze_Udev_Event ev, void *data EINA_UNUSED, Eeze_Udev_Watch *watch EINA_UNUSED)
{ {
Eina_List *l; Eina_List *l;
Eeze_Scanner_Device *dev; Eeze_Scanner_Device *dev;
@ -331,7 +331,7 @@ cb_vol_chg(const char *device, Eeze_Udev_Event ev, void *data __UNUSED__, Eeze_U
} }
static void static void
cb_stor_chg(const char *device, Eeze_Udev_Event ev, void *data __UNUSED__, Eeze_Udev_Watch *watch __UNUSED__) cb_stor_chg(const char *device, Eeze_Udev_Event ev, void *data EINA_UNUSED, Eeze_Udev_Watch *watch EINA_UNUSED)
{ {
Eina_List *l; Eina_List *l;
Eeze_Scanner_Device *dev = NULL; Eeze_Scanner_Device *dev = NULL;

View File

@ -1,18 +1,25 @@
/** /**
@brief Eeze Device Library @brief Eeze Device Library
*
@mainpage Eeze
@image html eeze.png
@version 1.7.0
@author Mike Blumenkrantz (zmike/discomfitor) <michael.blumenkrantz@@gmail.com>
@date 2010-2012
@section intro What is Eeze? @page eeze_main Eeze
@date 2010 (created)
@section toc Table of Contents
@li @ref eeze_main_intro
@li @ref eeze_main_compiling
@li @ref eeze_main_next_steps
@section eeze_main_intro Introduction
Eeze is a library for manipulating devices through udev with a
simple and fast api. It interfaces directly with libudev, avoiding
such middleman daemons as udisks/upower or hal, to immediately
gather device information the instant it becomes known to the
system. This can be used to determine such things as:
Eeze is a library for manipulating devices through udev with a simple and fast
api. It interfaces directly with libudev, avoiding such middleman daemons as
udisks/upower or hal, to immediately gather device information the instant it
becomes known to the system. This can be used to determine such things as:
@li If a cdrom has a disk inserted @li If a cdrom has a disk inserted
@li The temperature of a cpu core @li The temperature of a cpu core
@li The remaining power left in a battery @li The remaining power left in a battery
@ -23,17 +30,44 @@
function, as one of the primary focuses of the library is to reduce the function, as one of the primary focuses of the library is to reduce the
complexity of managing devices. complexity of managing devices.
@li @link Eeze.h Eeze functions @endlink @section eeze_main_compiling How to compile
@li @ref udev UDEV functions
@li @ref watch Functions that watch for events Eeze is a library your application links to. The procedure for this is very
@li @ref syspath Functions that accept a device /sys/ path simple. You simply have to compile your application with the appropriate
@li @ref find Functions which find types of devices compiler flags that the @p pkg-config script outputs. For example:
@li @ref disk Disk functions
@li @ref net Net functions Compiling C or C++ files into object files:
@li @ref sensor Sensor functions
@verbatim @verbatim
Pants gcc -c -o main.o main.c `pkg-config --cflags eeze`
@endverbatim @endverbatim
Linking object files into a binary executable:
@verbatim
gcc -o my_application main.o `pkg-config --libs eeze`
@endverbatim
See @ref pkgconfig
@section eeze_main_next_steps Next Steps
After you understood what Eeze is and installed it in your system
you should proceed understanding the programming interface. We'd
recommend you to take a while to learn @ref Eina and @ref Ecore as
they convenient and Eeze provides integration with it.
Recommended reading:
@li @link Eeze.h Eeze functions @endlink
@li @ref Eeze_Udev UDEV functions
@li @ref Eeze_Watch Functions that watch for events
@li @ref Eeze_Syspath Functions that accept a device /sys/ path
@li @ref Eeze_Find Functions which find types of devices
@li @ref Eeze_Disk Disk functions
@li @ref Eeze_Net Net functions
@li @ref Eeze_Sensor Sensor functions
*/ */
#ifndef EEZE_UDEV_H #ifndef EEZE_UDEV_H
#define EEZE_UDEV_H #define EEZE_UDEV_H
@ -76,19 +110,21 @@
*/ */
/** /**
* @defgroup main main * @defgroup Eeze_Main main
* @ingroup Eeze
* *
* These are general eeze functions which include init and shutdown. * These are general eeze functions which include init and shutdown.
*/ */
/** /**
* @defgroup udev udev * @defgroup Eeze_Udev udev
* @ingroup Eeze_Main
* *
* These are functions which interact directly with udev. * These are functions which interact directly with udev.
*/ */
/** /**
* @addtogroup udev * @addtogroup Eeze_Udev
* *
* These are the device subsystems of udev: * These are the device subsystems of udev:
* @li ac97 * @li ac97
@ -150,7 +186,7 @@ extern "C" {
#endif #endif
/** /**
* @addtogroup udev * @addtogroup Eeze_Udev
* @typedef Eeze_Udev_Event * @typedef Eeze_Udev_Event
* @enum Eeze_Udev_Event * @enum Eeze_Udev_Event
* @brief Flags for watch events * @brief Flags for watch events
@ -177,7 +213,7 @@ typedef enum
/** @} */ /** @} */
/** /**
* @addtogroup udev udev * @addtogroup Eeze_Udev udev
* @typedef Eeze_Udev_Type Eeze_Udev_Type * @typedef Eeze_Udev_Type Eeze_Udev_Type
* @enum Eeze_Udev_Type * @enum Eeze_Udev_Type
* @brief Convenience types to simplify udev access. * @brief Convenience types to simplify udev access.
@ -228,7 +264,7 @@ typedef enum
struct Eeze_Udev_Watch; struct Eeze_Udev_Watch;
/** /**
* @addtogroup watch * @addtogroup Eeze_Watch
* @typedef Eeze_Udev_Watch Eeze_Udev_Watch * @typedef Eeze_Udev_Watch Eeze_Udev_Watch
* @brief Opaque structure to hold data for a udev watch * @brief Opaque structure to hold data for a udev watch
*/ */
@ -248,7 +284,7 @@ typedef struct Eeze_Udev_Watch Eeze_Udev_Watch;
EAPI extern Eeze_Version *eeze_version; EAPI extern Eeze_Version *eeze_version;
/** /**
* @addtogroup watch * @addtogroup Eeze_Watch
* @typedef Eeze_Udev_Watch_Cb Eeze_Udev_Watch_Cb * @typedef Eeze_Udev_Watch_Cb Eeze_Udev_Watch_Cb
* @brief Callback type for use with #Eeze_Udev_Watch * @brief Callback type for use with #Eeze_Udev_Watch
*/ */
@ -262,7 +298,7 @@ typedef void(*Eeze_Udev_Watch_Cb)(const char *, Eeze_Udev_Event, void *, Eeze_Ud
* This function should be called prior to using any eeze functions, and MUST * This function should be called prior to using any eeze functions, and MUST
* be called prior to using any udev functions to avoid a segv. * be called prior to using any udev functions to avoid a segv.
* *
* @ingroup main * @ingroup Eeze_Main
*/ */
EAPI int eeze_init(void); EAPI int eeze_init(void);
@ -273,16 +309,16 @@ EAPI int eeze_init(void);
* *
* This function should be called when no further eeze functions will be called. * This function should be called when no further eeze functions will be called.
* *
* @ingroup main * @ingroup Eeze_Main
*/ */
EAPI int eeze_shutdown(void); EAPI int eeze_shutdown(void);
/** /**
* @addtogroup find Find * @addtogroup Eeze_Find Find
* *
* These are functions which find/supplement lists of devices. * These are functions which find/supplement lists of devices.
* *
* @ingroup udev * @ingroup Eeze_Udev
* *
* @{ * @{
*/ */
@ -319,7 +355,7 @@ EAPI Eina_List *eeze_udev_find_unlisted_similar(Eina_List *list);
* *
* @return A stringshared list of the devices found with the attribute * @return A stringshared list of the devices found with the attribute
* *
* @ingroup find * @ingroup Eeze_Find
*/ */
EAPI Eina_List *eeze_udev_find_by_sysattr(const char *sysattr, const char *value); EAPI Eina_List *eeze_udev_find_by_sysattr(const char *sysattr, const char *value);
@ -351,12 +387,12 @@ EAPI Eina_List *eeze_udev_find_by_filter(const char *subsystem, const char
*/ */
/** /**
* @addtogroup syspath Syspath * @addtogroup Eeze_Syspath Syspath
* *
* These are functions which interact with the syspath (/sys/$PATH) of * These are functions which interact with the syspath (/sys/$PATH) of
* a device. * a device.
* *
* @ingroup udev * @ingroup Eeze_Udev
* *
* @{ * @{
*/ */
@ -475,11 +511,11 @@ EAPI Eina_Bool eeze_udev_syspath_is_joystick(const char *syspath);
*/ */
/** /**
* @addtogroup walks Walks * @addtogroup Eeze_Walks Walks
* *
* These are functions which walk up the device chain. * These are functions which walk up the device chain.
* *
* @ingroup udev * @ingroup Eeze_Udev
* *
* @{ * @{
*/ */
@ -511,7 +547,7 @@ EAPI const char *eeze_udev_walk_get_sysattr(const char *syspath, const char
*/ */
/** /**
* @addtogroup watch Watch * @addtogroup Eeze_Watch Watch
* *
* @brief These are functions which monitor udev for events. * @brief These are functions which monitor udev for events.
* *
@ -520,7 +556,7 @@ EAPI const char *eeze_udev_walk_get_sysattr(const char *syspath, const char
* syspath of the triggering device and the event that happened to the device, along with the data you associated with the watch and * syspath of the triggering device and the event that happened to the device, along with the data you associated with the watch and
* the watch object itself in case you want to stop the watch easily in a callback. * the watch object itself in case you want to stop the watch easily in a callback.
* *
* @ingroup udev * @ingroup Eeze_Udev
* *
* @{ * @{
*/ */

View File

@ -26,7 +26,11 @@
* Eeze disk functions allow you to quickly and efficiently manipulate disks * Eeze disk functions allow you to quickly and efficiently manipulate disks
* through simple function calls. * through simple function calls.
* *
* @addtogroup disk Disk * @defgroup Eeze_Disk Disk
* Scan and query information about disks. Manipulate them with moun,
* unmount and eject.
*
* @ingroup Eeze
* @{ * @{
*/ */

View File

@ -24,7 +24,10 @@
* *
* Eeze net functions allow you to gather information about network objects * Eeze net functions allow you to gather information about network objects
* *
* @addtogroup net Net * @defgroup Eeze_Net Net
* Gather information about network devices.
*
* @ingroup Eeze
* @{ * @{
*/ */

View File

@ -43,7 +43,11 @@
* *
* @since 1.8 * @since 1.8
* *
* @addtogroup sensor Sensor * @addtogroup Eeze_Sensor Sensor
* Gather sensor information from different sources. Works based on plugins,
* with a Tizen plugin being available.
*
* @ingroup Eeze
* @{ * @{
*/ */
@ -78,8 +82,9 @@ typedef enum
} Eeze_Sensor_Type; } Eeze_Sensor_Type;
/** /**
* @defgroup Sensor_Events Available eeze sensor events * @defgroup Eeze_Sensor_Events Available eeze sensor events
* @brief Sensor events that are emitted from the library as ecore events * @brief Sensor events that are emitted from the library as ecore events
* @ingroup Eeze
* *
* Event types used to register ecore_event_handler on. These events are used * Event types used to register ecore_event_handler on. These events are used
* for #eeze_sensor_async_read to deliver read out data. It is also used for * for #eeze_sensor_async_read to deliver read out data. It is also used for

View File

@ -5,6 +5,7 @@
#include <Ecore.h> #include <Ecore.h>
#include <Eeze.h> #include <Eeze.h>
#include <Eeze_Disk.h> #include <Eeze_Disk.h>
#include <unistd.h>
#include "eeze_udev_private.h" #include "eeze_udev_private.h"
#include "eeze_disk_private.h" #include "eeze_disk_private.h"
@ -460,17 +461,23 @@ eeze_disk_removable_get(Eeze_Disk *disk)
EAPI Eina_Bool EAPI Eina_Bool
eeze_disk_can_mount(void) eeze_disk_can_mount(void)
{ {
return MOUNTABLE; if (sizeof(EEZE_MOUNT_BIN) == sizeof(""))
return EINA_FALSE;
return access(EEZE_MOUNT_BIN, X_OK | R_OK) == 0;
} }
EAPI Eina_Bool EAPI Eina_Bool
eeze_disk_can_unmount(void) eeze_disk_can_unmount(void)
{ {
return UNMOUNTABLE; if (sizeof(EEZE_UNMOUNT_BIN) == sizeof(""))
return EINA_FALSE;
return access(EEZE_UNMOUNT_BIN, X_OK | R_OK) == 0;
} }
EAPI Eina_Bool EAPI Eina_Bool
eeze_disk_can_eject(void) eeze_disk_can_eject(void)
{ {
return EJECTABLE; if (sizeof(EEZE_EJECT_BIN) == sizeof(""))
return EINA_FALSE;
return access(EEZE_EJECT_BIN, X_OK | R_OK) == 0;
} }

View File

@ -50,7 +50,7 @@ static libmnt_lock *_eeze_mtab_lock = NULL;
extern Eina_List *_eeze_disks; extern Eina_List *_eeze_disks;
static libmnt_table *_eeze_mount_tab_parse(const char *filename); static libmnt_table *_eeze_mount_tab_parse(const char *filename);
static void _eeze_mount_tab_watcher(void *data, Ecore_File_Monitor *mon __UNUSED__, Ecore_File_Event event __UNUSED__, const char *path); static void _eeze_mount_tab_watcher(void *data, Ecore_File_Monitor *mon EINA_UNUSED, Ecore_File_Event event EINA_UNUSED, const char *path);
static Eina_Bool static Eina_Bool
_eeze_mount_lock_mtab(void) _eeze_mount_lock_mtab(void)
@ -80,7 +80,7 @@ _eeze_mount_unlock_mtab(void)
static int static int
_eeze_mount_tab_parse_errcb(libmnt_table *tab __UNUSED__, const char *filename, int line) _eeze_mount_tab_parse_errcb(libmnt_table *tab EINA_UNUSED, const char *filename, int line)
{ {
ERR("%s:%d: could not parse line!", filename, line); /* most worthless error reporting ever. */ ERR("%s:%d: could not parse line!", filename, line); /* most worthless error reporting ever. */
return -1; return -1;
@ -111,7 +111,7 @@ _eeze_mount_tab_parse(const char *filename)
} }
static void static void
_eeze_mount_tab_watcher(void *data, Ecore_File_Monitor *mon __UNUSED__, Ecore_File_Event event __UNUSED__, const char *path) _eeze_mount_tab_watcher(void *data, Ecore_File_Monitor *mon EINA_UNUSED, Ecore_File_Event event EINA_UNUSED, const char *path)
{ {
libmnt_table *bak; libmnt_table *bak;

View File

@ -51,10 +51,10 @@ static Ecore_Fd_Handler *_mountinfo_fdh = NULL;
static int _mountinfo = -1; static int _mountinfo = -1;
static libmnt_table *_eeze_mount_tab_parse(const char *filename); static libmnt_table *_eeze_mount_tab_parse(const char *filename);
static void _eeze_mount_tab_watcher(void *data, Ecore_File_Monitor *mon __UNUSED__, Ecore_File_Event event __UNUSED__, const char *path); static void _eeze_mount_tab_watcher(void *data, Ecore_File_Monitor *mon EINA_UNUSED, Ecore_File_Event event EINA_UNUSED, const char *path);
static int static int
_eeze_mount_tab_parse_errcb(libmnt_table *tab __UNUSED__, const char *filename, int line) _eeze_mount_tab_parse_errcb(libmnt_table *tab EINA_UNUSED, const char *filename, int line)
{ {
ERR("%s:%d: could not parse line!", filename, line); /* most worthless error reporting ever. */ ERR("%s:%d: could not parse line!", filename, line); /* most worthless error reporting ever. */
return -1; return -1;
@ -85,7 +85,7 @@ _eeze_mount_tab_parse(const char *filename)
} }
static void static void
_eeze_mount_tab_watcher(void *data, Ecore_File_Monitor *mon __UNUSED__, Ecore_File_Event event __UNUSED__, const char *path) _eeze_mount_tab_watcher(void *data, Ecore_File_Monitor *mon EINA_UNUSED, Ecore_File_Event event EINA_UNUSED, const char *path)
{ {
libmnt_table *bak; libmnt_table *bak;
@ -125,7 +125,7 @@ error:
* based on code from findmnt * based on code from findmnt
*/ */
static Eina_Bool static Eina_Bool
_eeze_mount_fdh(void *d __UNUSED__, Ecore_Fd_Handler *fdh __UNUSED__) _eeze_mount_fdh(void *d EINA_UNUSED, Ecore_Fd_Handler *fdh EINA_UNUSED)
{ {
libmnt_table *tb_new; libmnt_table *tb_new;
libmnt_fs *old, *new; libmnt_fs *old, *new;

View File

@ -30,7 +30,7 @@ Eina_List *eeze_events = NULL;
*/ */
static void static void
_eeze_disk_mount_error_free(void *data __UNUSED__, Eeze_Event_Disk_Error *de) _eeze_disk_mount_error_free(void *data EINA_UNUSED, Eeze_Event_Disk_Error *de)
{ {
if (!de) if (!de)
return; return;
@ -55,7 +55,7 @@ _eeze_disk_mount_error_handler(Eeze_Disk *disk, const char *error)
} }
static Eina_Bool static Eina_Bool
_eeze_disk_mount_result_handler(void *data __UNUSED__, int type __UNUSED__, Ecore_Exe_Event_Del *ev) _eeze_disk_mount_result_handler(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Exe_Event_Del *ev)
{ {
Eeze_Disk *disk; Eeze_Disk *disk;
Eina_List *l; Eina_List *l;
@ -221,10 +221,6 @@ EAPI unsigned long
eeze_disk_mountopts_get(Eeze_Disk *disk) eeze_disk_mountopts_get(Eeze_Disk *disk)
{ {
EINA_SAFETY_ON_NULL_RETURN_VAL(disk, 0); EINA_SAFETY_ON_NULL_RETURN_VAL(disk, 0);
#ifndef OLD_LIBMOUNT
if (!disk->mount_opts)
disk->mount_opts = eeze_disk_libmount_opts_get(disk);
#endif
return disk->mount_opts; return disk->mount_opts;
} }

View File

@ -14,7 +14,7 @@ _udev *udev;
int _eeze_udev_log_dom = -1; int _eeze_udev_log_dom = -1;
int _eeze_net_log_dom = -1; int _eeze_net_log_dom = -1;
int _eeze_sensor_log_dom = -1; EAPI int _eeze_sensor_log_dom = -1;
int _eeze_init_count = 0; int _eeze_init_count = 0;
static Eeze_Version _version = { VMAJ, VMIN, VMIC, VREV }; static Eeze_Version _version = { VMAJ, VMIN, VMIC, VREV };

View File

@ -27,7 +27,9 @@ eeze_net_shutdown(void)
eeze_nets = NULL; eeze_nets = NULL;
} }
/** @addtogroup net Net /**
* @addtogroup Eeze_Net Net
* @ingroup Eeze
* @{ * @{
*/ */

View File

@ -80,7 +80,7 @@ eeze_sensor_modules_load(void)
if (getenv("EEZE_USE_IN_TREE_MODULES")) if (getenv("EEZE_USE_IN_TREE_MODULES"))
g_handle->modules_array = eina_module_list_get(NULL, PACKAGE_BUILD_DIR "/src/modules/.libs/", 0, NULL, NULL); g_handle->modules_array = eina_module_list_get(NULL, PACKAGE_BUILD_DIR "/src/modules/.libs/", 0, NULL, NULL);
else else
g_handle->modules_array = eina_module_list_get(NULL, PACKAGE_LIB_DIR "/eeze-sensor/", 0, NULL, NULL); g_handle->modules_array = eina_module_list_get(NULL, PACKAGE_LIB_DIR "/eeze/sensor/", 0, NULL, NULL);
if (!g_handle->modules_array) if (!g_handle->modules_array)
{ {

View File

@ -74,7 +74,7 @@ typedef struct _Eeze_Sensor_Module
* *
* @since 1.8 * @since 1.8
*/ */
Eina_Bool eeze_sensor_module_register(const char *name, Eeze_Sensor_Module *mod); EAPI Eina_Bool eeze_sensor_module_register(const char *name, Eeze_Sensor_Module *mod);
/** /**
* @brief Unregister a module from eeze_sensor core. * @brief Unregister a module from eeze_sensor core.
@ -85,5 +85,5 @@ Eina_Bool eeze_sensor_module_register(const char *name, Eeze_Sensor_Module *mod)
* *
* @since 1.8 * @since 1.8
*/ */
Eina_Bool eeze_sensor_module_unregister(const char *name); EAPI Eina_Bool eeze_sensor_module_unregister(const char *name);
#endif // EEZE_SENSOR_PRIVATE_H #endif // EEZE_SENSOR_PRIVATE_H

View File

@ -628,7 +628,7 @@ eeze_suite(void)
TCase *tc; TCase *tc;
s = suite_create("Eeze"); s = suite_create("Eeze");
#if 0
tc = tcase_create("Eeze_Init"); tc = tcase_create("Eeze_Init");
tcase_add_test(tc, eeze_test_init); tcase_add_test(tc, eeze_test_init);
suite_add_tcase(s, tc); suite_add_tcase(s, tc);
@ -651,7 +651,7 @@ eeze_suite(void)
//tcase_add_test(tc, eeze_test_net_attr_ipv6); //tcase_add_test(tc, eeze_test_net_attr_ipv6);
#endif #endif
suite_add_tcase(s, tc); suite_add_tcase(s, tc);
#endif
tc = tcase_create("Eeze Sensor"); tc = tcase_create("Eeze Sensor");
tcase_add_test(tc, eeze_test_sensor_read); tcase_add_test(tc, eeze_test_sensor_read);
tcase_add_test(tc, eeze_test_sensor_async_read); tcase_add_test(tc, eeze_test_sensor_async_read);