From: Enlightenment S. <no-...@en...> - 2010-04-28 20:41:07
|
Log: add completed ukit (upower/udisks aka devicekit) module fixes for hal module: more readable by using defined type insertion now utility functions always return stringshared strings. DO NOT FREE THESE. Note that until you see a followup commit from me in e17, the filemanager/battery/illume modules will all potentially break from attempting to free stringshares Author: discomfitor Date: 2010-04-28 13:40:58 -0700 (Wed, 28 Apr 2010) New Revision: 48404 Added: trunk/e_dbus/src/lib/ukit/ trunk/e_dbus/src/lib/ukit/E_Ukit.h trunk/e_dbus/src/lib/ukit/Makefile.am trunk/e_dbus/src/lib/ukit/e_udisks.c trunk/e_dbus/src/lib/ukit/e_ukit_main.c trunk/e_dbus/src/lib/ukit/e_ukit_private.h trunk/e_dbus/src/lib/ukit/e_ukit_privfunc.h trunk/e_dbus/src/lib/ukit/e_ukit_util.c trunk/e_dbus/src/lib/ukit/e_upower.c Modified: trunk/e_dbus/AUTHORS trunk/e_dbus/Makefile.am trunk/e_dbus/configure.ac trunk/e_dbus/src/bin/Makefile.am trunk/e_dbus/src/lib/Makefile.am trunk/e_dbus/src/lib/hal/E_Hal.h trunk/e_dbus/src/lib/hal/e_hal_device.c trunk/e_dbus/src/lib/hal/e_hal_manager.c trunk/e_dbus/src/lib/hal/e_hal_util.c trunk/e_dbus/src/lib/hal/e_hal_util.h Modified: trunk/e_dbus/AUTHORS =================================================================== --- trunk/e_dbus/AUTHORS 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/AUTHORS 2010-04-28 20:40:58 UTC (rev 48404) @@ -1,2 +1,3 @@ Brian Mattern <re...@re...> Mathieu Taillefumier <mat...@fr...> +Mike Blumenkrantz (zmike/discomfitor) mi...@ze... Modified: trunk/e_dbus/Makefile.am =================================================================== --- trunk/e_dbus/Makefile.am 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/Makefile.am 2010-04-28 20:40:58 UTC (rev 48404) @@ -23,6 +23,13 @@ if BUILD_EOFONO EOFONO_PC = eofono.pc endif -pkgconfig_DATA = edbus.pc $(EHAL_PC) $(ENOTIFY_PC) $(ECONNMAN_PC) $(EBLUEZ_PC) $(EOFONO_PC) +#if BUILD_EUDEV +#EUDEV_PC = eudev.pc +#endif +if BUILD_EUKIT +EUKIT_PC = eukit.pc +endif +pkgconfig_DATA = edbus.pc $(EHAL_PC) $(ENOTIFY_PC) $(ECONNMAN_PC) $(EBLUEZ_PC) $(EOFONO_PC) $(EUKIT_PC) +#pkgconfig_DATA = edbus.pc $(EHAL_PC) $(ENOTIFY_PC) $(ECONNMAN_PC) $(EBLUEZ_PC) $(EOFONO_PC) $(EUDEV_PC) $(EUKIT_PC) EXTRA_DIST = e_dbus.spec Modified: trunk/e_dbus/configure.ac =================================================================== --- trunk/e_dbus/configure.ac 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/configure.ac 2010-04-28 20:40:58 UTC (rev 48404) @@ -33,6 +33,8 @@ eofono_release_info="-release $release" edbus_release_info="-release $release" ehal_release_info="-release $release" +##eudev_release_info="-release $release" +eukit_release_info="-release $release" enotify_release_info="-release $release" AC_SUBST(version_info) AC_SUBST(econnman_release_info) @@ -40,43 +42,70 @@ AC_SUBST(eofono_release_info) AC_SUBST(edbus_release_info) AC_SUBST(ehal_release_info) +##AC_SUBST(eudev_release_info) +AC_SUBST(eukit_release_info) AC_SUBST(enotify_release_info) dnl Check enabled modules to build -AC_ARG_ENABLE([ehal], - [AC_HELP_STRING([--disable-ehal], [Disable ehal build])], - [enable_ehal=$enableval], - [enable_ehal="yes"]) +AC_ARG_ENABLE([ehal],[AC_HELP_STRING([--disable-ehal], [Disable ehal build])]) +AS_IF( + [test "x$enableval" != "xno"], + AC_CHECK_PROG([enable_ehal],lshal,yes,no) + [enable_ehal=no], +) -AC_ARG_ENABLE([econnman], - [AC_HELP_STRING([--enable-econnman], [Enable econnman build])], - [enable_econnman=$enableval], - [enable_econnman="yes"]) +#AC_ARG_ENABLE([eudev],[AC_HELP_STRING([--disable-eudev], [Disable eudev build])]) +#AS_IF( +# [test "x$enableval" != "xno"], +# [enable_eudev="yes"], +# [enable_eudev=no], +#) -AC_ARG_ENABLE([ebluez], - [AC_HELP_STRING([--enable-ebluez], [Enable ebluez build])], - [enable_ebluez=$enableval], - [enable_ebluez="yes"]) +AC_ARG_ENABLE([eukit],[AC_HELP_STRING([--disable-eukit], [Disable eukit build])]) +AS_IF( + [test "x$enableval" != "xno"], + AC_CHECK_PROG([enable_eukit],udisks,yes,no) + AC_CHECK_PROG([enable_eukit],upower,yes,no), + [enable_eukit=no], +) -AC_ARG_ENABLE([eofono], - [AC_HELP_STRING([--enable-eofono], [Enable eofono build])], - [enable_eofono=$enableval], - [enable_eofono="yes"]) +AC_ARG_ENABLE([econnman],[AC_HELP_STRING([--enable-econnman], [Enable econnman build])]) +AS_IF( + [test "x$enableval" != "xno"], + [enable_econnman="yes"], + [enable_econnman=no], +) -AC_ARG_ENABLE([enotify], - [AC_HELP_STRING([--disable-enotify], [Disable enotify build])], - [enable_enotify=$enableval], - [enable_enotify="yes"]) +AC_ARG_ENABLE([ebluez],[AC_HELP_STRING([--enable-ebluez], [Enable ebluez build])]) +AS_IF( + [test "x$enableval" != "xno"], + [enable_ebluez="yes"], + [enable_ebluez=no], +) +AC_ARG_ENABLE([eofono],[AC_HELP_STRING([--enable-eofono], [Enable eofono build])]) +AS_IF( + [test "x$enableval" != "xno"], + [enable_eofono="yes"], + [enable_eofono=no], +) + +AC_ARG_ENABLE([enotify],[AC_HELP_STRING([--disable-enotify], [Disable enotify build])]) +AS_IF( + [test "x$enableval" != "xno"], + [enable_enotify="yes"], + [enable_enotify=no], +) + # pkg-config PKG_PROG_PKG_CONFIG # Check whether pkg-config supports Requires.private -if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then - pkgconfig_requires_private="Requires.private" -else - pkgconfig_requires_private="Requires" -fi +AS_IF( + [$PKG_CONFIG --atleast-pkgconfig-version 0.22], + [pkgconfig_requires_private="Requires.private"], + [pkgconfig_requires_private="Requires"] +) AC_SUBST(pkgconfig_requires_private) PKG_CHECK_MODULES([EINA], [eina-0]) @@ -91,15 +120,18 @@ DBUS_VERSION_MAJOR=`echo $dbus_version | awk -F. '{print $1}'` DBUS_VERSION_MINOR=`echo $dbus_version | awk -F. '{print $2}'` DBUS_VERSION_MICRO=`echo $dbus_version | awk -F. '{print $3}'` -if test "z$DBUS_VERSION_MAJOR" = "z"; then - DBUS_VERSION_MAJOR="0" -fi -if test "z$DBUS_VERSION_MINOR" = "z"; then - DBUS_VERSION_MINOR="0" -fi -if test "z$DBUS_VERSION_MICRO" = "z"; then - DBUS_VERSION_MICRO="0" -fi +AS_IF( + [test "z$DBUS_VERSION_MAJOR" = "z"], + [DBUS_VERSION_MAJOR="0"] +) +AS_IF( + [test "z$DBUS_VERSION_MINOR" = "z"], + [DBUS_VERSION_MINOR="0"] +) +AS_IF( + [test "z$DBUS_VERSION_MICRO" = "z"], + [DBUS_VERSION_MICRO="0"] +) DBUS_VERSION_CFLAGS="$DBUS_VERSION_CFLAGS -DDBUS_VERSION_MAJOR=$DBUS_VERSION_MAJOR" DBUS_VERSION_CFLAGS="$DBUS_VERSION_CFLAGS -DDBUS_VERSION_MINOR=$DBUS_VERSION_MINOR" DBUS_VERSION_CFLAGS="$DBUS_VERSION_CFLAGS -DDBUS_VERSION_MICRO=$DBUS_VERSION_MICRO" @@ -108,11 +140,19 @@ AC_FUNC_ALLOCA dnl evas -if test "x${enable_enotify}" = "xyes" ; then - PKG_CHECK_MODULES(EVAS, [evas >= 0.9.9], [], [enable_enotify="no"]) -fi +AS_IF( + [test "x${enable_enotify}" = "xyes"], + [PKG_CHECK_MODULES(EVAS, [evas >= 0.9.9], [], [enable_enotify="no"])] +) +#AS_IF( +# [test "x${enable_eudev}" = "xyes"], +# [PKG_CHECK_MODULES(EUDEV, udev, [], [enable_eudev="no"])] +#) + AM_CONDITIONAL([BUILD_EHAL], [test "x${enable_ehal}" = "xyes"]) +#AM_CONDITIONAL([BUILD_EUDEV], [test "x${enable_eudev}" = "xyes"]) +AM_CONDITIONAL([BUILD_EUKIT], [test "x${enable_eukit}" = "xyes"]) AM_CONDITIONAL([BUILD_ENOTIFY], [test "x${enable_enotify}" = "xyes"]) AM_CONDITIONAL([BUILD_ECONNMAN], [test "x${enable_econnman}" = "xyes"]) AM_CONDITIONAL([BUILD_EBLUEZ], [test "x${enable_ebluez}" = "xyes"]) @@ -120,12 +160,14 @@ EFL_EDBUS_BUILD="" lt_enable_auto_import="" -case "$host_os" in - mingw* | cegcc*) - EFL_EDBUS_BUILD="-DEFL_EDBUS_BUILD" - lt_enable_auto_import="-Wl,--enable-auto-import" - ;; -esac +AS_CASE( + ["$host_os"], + [mingw* | cegcc*], + [ + EFL_EDBUS_BUILD="-DEFL_EDBUS_BUILD" + lt_enable_auto_import="-Wl,--enable-auto-import" + ] +) AC_SUBST(EFL_EDBUS_BUILD) AC_SUBST(lt_enable_auto_import) @@ -136,6 +178,7 @@ src/lib/Makefile src/lib/dbus/Makefile src/lib/hal/Makefile +src/lib/ukit/Makefile src/lib/notification/Makefile src/lib/connman/Makefile src/lib/bluez/Makefile @@ -143,6 +186,7 @@ src/bin/Makefile edbus.pc ehal.pc +eukit.pc enotify.pc econnman.pc ebluez.pc @@ -165,6 +209,8 @@ echo " Modules:" echo echo " EHal...............: $enable_ehal" +echo " EUdev..............: $enable_eudev" +echo " EUkit..............: $enable_eukit" echo " EConnman...........: $enable_econnman" echo " EBluez.............: $enable_ebluez" echo " EOfono.............: $enable_eofono" Modified: trunk/e_dbus/src/bin/Makefile.am =================================================================== --- trunk/e_dbus/src/bin/Makefile.am 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/src/bin/Makefile.am 2010-04-28 20:40:58 UTC (rev 48404) @@ -6,6 +6,7 @@ -I$(top_srcdir)/src/lib/connman \ -I$(top_srcdir)/src/lib/bluez \ -I$(top_srcdir)/src/lib/ofono \ +-I$(top_srcdir)/src/lib/ukit \ @EDBUS_CFLAGS@ \ @EINA_CFLAGS@ @@ -27,13 +28,17 @@ if BUILD_EOFONO EOFONO_PROG = e_dbus_ofono_test endif +if BUILD_EUKIT +EUKIT_PROG = e_dbus_ukit_test +endif bin_PROGRAMS = \ $(EDBUS_PROG) \ $(ENOTIFY_PROG) \ $(ECONNMAN_PROG) \ $(EBLUEZ_PROG) \ -$(EOFONO_PROG) +$(EOFONO_PROG) \ +$(EUKIT_PROG) noinst_PROGRAMS = \ $(ECONNMAN_PROG_NOINST) @@ -91,3 +96,9 @@ e_dbus_ofono_test_CPPFLAGS = $(EDBUS_CPPFLAGS) e_dbus_ofono_test_LDADD = $(top_builddir)/src/lib/ofono/libeofono.la endif + +if BUILD_EUKIT +e_dbus_ukit_test_SOURCES = e_dbus_ukit_test.c +e_dbus_ukit_test_CPPFLAGS = $(EDBUS_CPPFLAGS) +e_dbus_ukit_test_LDADD = $(top_builddir)/src/lib/ukit/libeukit.la +endif Modified: trunk/e_dbus/src/lib/Makefile.am =================================================================== --- trunk/e_dbus/src/lib/Makefile.am 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/src/lib/Makefile.am 2010-04-28 20:40:58 UTC (rev 48404) @@ -1,3 +1,3 @@ MAINTAINERCLEANFILES = Makefile.in -SUBDIRS=dbus hal notification connman bluez ofono +SUBDIRS=dbus hal notification connman bluez ofono ukit Modified: trunk/e_dbus/src/lib/hal/E_Hal.h =================================================================== --- trunk/e_dbus/src/lib/hal/E_Hal.h 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/src/lib/hal/E_Hal.h 2010-04-28 20:40:58 UTC (rev 48404) @@ -42,7 +42,7 @@ struct E_Hal_Bool_Return { - char boolean; + Eina_Bool boolean; }; struct E_Hal_UDI_Return @@ -73,9 +73,9 @@ { const char *s; int i; - dbus_bool_t b; + Eina_Bool b; double d; - dbus_uint64_t u64; + uint64_t u64; Eina_List *strlist; } val; }; @@ -118,13 +118,13 @@ EAPI DBusPendingCall *e_hal_manager_find_device_by_capability(E_DBus_Connection *conn, const char *capability, E_DBus_Callback_Func cb_func, void *data); /* utility functions */ - EAPI void e_hal_property_free(E_Hal_Property *prop); - EAPI char *e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err); - EAPI char e_hal_property_bool_get(E_Hal_Properties *properties, const char *key, int *err); - EAPI int e_hal_property_int_get(E_Hal_Properties *properties, const char *key, int *err); - EAPI dbus_uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err); - EAPI double e_hal_property_double_get(E_Hal_Properties *properties, const char *key, int *err); - EAPI Eina_List *e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err); + EAPI void e_hal_property_free(E_Hal_Property *prop); + EAPI const char *e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err); + EAPI Eina_Bool e_hal_property_bool_get(E_Hal_Properties *properties, const char *key, int *err); + EAPI int e_hal_property_int_get(E_Hal_Properties *properties, const char *key, int *err); + EAPI uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err); + EAPI double e_hal_property_double_get(E_Hal_Properties *properties, const char *key, int *err); + EAPI const Eina_List *e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err); /* (un)mount */ EAPI DBusPendingCall *e_hal_device_volume_mount(E_DBus_Connection *conn, const char *udi, const char *mount_point, const char *fstype, Eina_List *options, E_DBus_Callback_Func cb_func, void *data); Modified: trunk/e_dbus/src/lib/hal/e_hal_device.c =================================================================== --- trunk/e_dbus/src/lib/hal/e_hal_device.c 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/src/lib/hal/e_hal_device.c 2010-04-28 20:40:58 UTC (rev 48404) @@ -17,6 +17,7 @@ E_Hal_Device_Get_Property_Return *ret = NULL; DBusMessageIter iter; int type; + char *tmp; ret = calloc(1, sizeof(E_Hal_Device_Get_Property_Return)); if (!ret) @@ -29,16 +30,17 @@ type = dbus_message_iter_get_arg_type(&iter); switch(type) { - case 's': - dbus_message_iter_get_basic(&iter, &(ret->val.s)); + case DBUS_TYPE_STRING: + dbus_message_iter_get_basic(&iter, &tmp); + ret->val.s = (char*)eina_stringshare_add(tmp); break; - case 'i': + case DBUS_TYPE_INT32: dbus_message_iter_get_basic(&iter, &(ret->val.i)); break; - case 'b': + case DBUS_TYPE_BOOLEAN: dbus_message_iter_get_basic(&iter, &(ret->val.b)); break; - case 'd': + case DBUS_TYPE_DOUBLE: dbus_message_iter_get_basic(&iter, &(ret->val.d)); break; } @@ -52,6 +54,14 @@ E_Hal_Device_Get_Property_Return *ret = data; if (!ret) return; + if (ret->type == E_HAL_PROPERTY_TYPE_STRLIST) + { + const char *s; + EINA_LIST_FREE(ret->val.strlist, s) + eina_stringshare_del(s); + } + else if (ret->type == E_HAL_PROPERTY_TYPE_STRING) + eina_stringshare_del(ret->val.s); free(ret); } @@ -75,7 +85,9 @@ { E_Hal_Device_Get_All_Properties_Return *ret = NULL; DBusMessageIter iter, a_iter, s_iter, v_iter; + char *tmp; + /* a{sv} = array of string+variant */ if (!dbus_message_has_signature(msg, "a{sv}")) { dbus_set_error(err, DBUS_ERROR_INVALID_SIGNATURE, ""); @@ -104,27 +116,28 @@ switch(dbus_message_iter_get_arg_type(&v_iter)) { - case 's': + case DBUS_TYPE_STRING: prop->type = E_HAL_PROPERTY_TYPE_STRING; - dbus_message_iter_get_basic(&v_iter, &(prop->val.s)); + dbus_message_iter_get_basic(&v_iter, &tmp); + prop->val.s = (char*)eina_stringshare_add(tmp); break; - case 'i': + case DBUS_TYPE_INT32: prop->type = E_HAL_PROPERTY_TYPE_INT; dbus_message_iter_get_basic(&v_iter, &(prop->val.i)); break; - case 't': + case DBUS_TYPE_UINT64: prop->type = E_HAL_PROPERTY_TYPE_UINT64; dbus_message_iter_get_basic(&v_iter, &(prop->val.u64)); break; - case 'b': + case DBUS_TYPE_BOOLEAN: prop->type = E_HAL_PROPERTY_TYPE_BOOL; dbus_message_iter_get_basic(&v_iter, &(prop->val.b)); break; - case 'd': + case DBUS_TYPE_DOUBLE: prop->type = E_HAL_PROPERTY_TYPE_DOUBLE; dbus_message_iter_get_basic(&v_iter, &(prop->val.d)); break; - case 'a': + case DBUS_TYPE_ARRAY: prop->type = E_HAL_PROPERTY_TYPE_STRLIST; { DBusMessageIter list_iter; @@ -134,7 +147,8 @@ { char *str; dbus_message_iter_get_basic(&list_iter, &str); - prop->val.strlist = eina_list_append(prop->val.strlist, str); + tmp = (char*)eina_stringshare_add(str); + prop->val.strlist = eina_list_append(prop->val.strlist, tmp); dbus_message_iter_next(&list_iter); } } @@ -253,7 +267,7 @@ dbus_message_iter_init_append(msg, &iter); dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &mount_point); dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &fstype); - dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &subiter); + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &subiter); if (options) { @@ -293,7 +307,7 @@ msg = e_hal_device_volume_call_new(udi, "Unmount"); dbus_message_iter_init_append(msg, &iter); - dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &subiter); + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &subiter); if (options) { const char *opt; @@ -330,7 +344,7 @@ msg = e_hal_device_volume_call_new(udi, "Eject"); dbus_message_iter_init_append(msg, &iter); - dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &subiter); + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &subiter); if (options) { const char *opt; Modified: trunk/e_dbus/src/lib/hal/e_hal_manager.c =================================================================== --- trunk/e_dbus/src/lib/hal/e_hal_manager.c 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/src/lib/hal/e_hal_manager.c 2010-04-28 20:40:58 UTC (rev 48404) @@ -44,9 +44,11 @@ free_string_list(void *data) { E_Hal_String_List_Return *ret = data; + const char *x; if (!ret) return; - eina_list_free(ret->strings); + EINA_LIST_FREE(ret->strings, x) + eina_stringshare_del(x); free(ret); } Modified: trunk/e_dbus/src/lib/hal/e_hal_util.c =================================================================== --- trunk/e_dbus/src/lib/hal/e_hal_util.c 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/src/lib/hal/e_hal_util.c 2010-04-28 20:40:58 UTC (rev 48404) @@ -21,20 +21,20 @@ * @param key the key of the property to retrieve * @param err a pointer to an int, which if supplied, will be set to 0 on success and 1 on an error */ -EAPI char * +EAPI const char * e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err) { E_Hal_Property *prop; if (err) *err = 0; if (!properties->properties) return NULL; prop = eina_hash_find(properties->properties, key); - if (prop) return strdup(prop->val.s); + if (prop) return prop->val.s; if (err) *err = 1; return NULL; } -EAPI char +EAPI Eina_Bool e_hal_property_bool_get(E_Hal_Properties *properties, const char *key, int *err) { E_Hal_Property *prop; @@ -60,7 +60,7 @@ return 0; } -EAPI dbus_uint64_t +EAPI uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err) { E_Hal_Property *prop; @@ -86,7 +86,7 @@ return 0; } -EAPI Eina_List * +EAPI const Eina_List * e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err) { E_Hal_Property *prop; Modified: trunk/e_dbus/src/lib/hal/e_hal_util.h =================================================================== --- trunk/e_dbus/src/lib/hal/e_hal_util.h 2010-04-28 20:26:04 UTC (rev 48403) +++ trunk/e_dbus/src/lib/hal/e_hal_util.h 2010-04-28 20:40:58 UTC (rev 48404) @@ -4,11 +4,11 @@ #include "E_Hal.h" void e_hal_property_free(E_Hal_Property *prop); -char *e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err); +const char *e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err); char e_hal_property_bool_get(E_Hal_Properties *properties, const char *key, int *err); int e_hal_property_int_get(E_Hal_Properties *properties, const char *key, int *err); -dbus_uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err); +uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err); double e_hal_property_double_get(E_Hal_Properties *properties, const char *key, int *err); -Eina_List *e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err); +const Eina_List *e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err); #endif |