From: Gustavo S. B. <bar...@pr...> - 2009-10-01 04:33:40
|
Fwd to e-devel and e-users as some don't read e-svn but might be interested. Some people at IRC didn't know about mojito and rygel, so links: http://moblin.org/documentation/moblin-sdk/coding-tutorials/mojito-web-services-tutorial http://live.gnome.org/Rygel As I said in IRC, I still think that the best solution is to provide custom EFL, like dieb is doing with EUPnP, but until things are ready and available, we can use those glib based instead. ---------- Forwarded message ---------- From: Enlightenment SVN <no-...@en...> Date: Thu, Oct 1, 2009 at 12:56 AM Subject: E SVN: barbieri IN trunk/ecore: . src/lib/ecore To: enl...@li... Log: welcome glib main loop integration support. that's it, it's here... tested and works fine, please try with your favorite gmainloop dependent library and report problems. Suggestions: * GConf to access Gnome and its applications settings. * GtkSettings to access other properties of Gnome and its applications. * GUPnP (okay, we have EUPnP, but they have more features so far) * Rygel, based on GUPnP. * Libsoup, SOAP and HTTP access, useful for web access and required by other libraries. * Mojito, by Moblin, access to various web2.0 services like flickr, picasa, twitter... And last but not least, this enables Flash plugin on WebKit-EFL and may enable us to get Google Gadgets sooner (before someone writes a proper EFL backend). Support is auto-detected at compile time but can be disabled with --disable-glib. Runtime support is not enabled by default (so compiling with it will just link yet another library), one needs to call ecore_main_loop_glib_integrate() to do so. Thanks to INdT folks that provided the initial implementation. I rewrote it to make it correct, but the idea was good. Author: barbieri Date: 2009-09-30 20:56:38 -0700 (Wed, 30 Sep 2009) New Revision: 42825 Added: trunk/ecore/src/lib/ecore/ecore_glib.c Modified: trunk/ecore/configure.ac trunk/ecore/src/lib/ecore/Ecore.h trunk/ecore/src/lib/ecore/Makefile.am trunk/ecore/src/lib/ecore/ecore.c trunk/ecore/src/lib/ecore/ecore_private.h Modified: trunk/ecore/configure.ac =================================================================== --- trunk/ecore/configure.ac 2009-10-01 01:36:50 UTC (rev 42824) +++ trunk/ecore/configure.ac 2009-10-01 03:56:38 UTC (rev 42825) @@ -85,6 +85,7 @@ want_poll="yes" want_inotify="no" want_tslib="no" +want_glib="no" # core modules want_ecore_job="yes" @@ -134,6 +135,7 @@ ;; mingw*) want_curl="yes" + want_glib="auto" want_ecore_imf="yes" want_ecore_win32="yes" want_ecore_evas_software_gdi="yes" @@ -145,6 +147,7 @@ ;; darwin*) want_curl="yes" + want_glib="auto" want_gnutls="auto" want_openssl="auto" want_ecore_con="yes" @@ -157,6 +160,7 @@ ;; *) want_curl="yes" + want_glib="auto" want_abstract_sockets="yes" want_gnutls="auto" want_openssl="auto" @@ -347,6 +351,23 @@ requirements_ecore_wince="ecore eina-0 ${requirements_ecore_wince}" +# glib support (main loop integration) +AC_ARG_ENABLE([glib], + [AC_HELP_STRING([--disable-glib], [enable glib support. @<:@default=detect@:>@])], + [want_glib=$enableval], []) + +if test "x$want_glib" != "xno"; then + PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib="yes"], [have_glib="no"]) +else + have_glib="no" +fi +if test "x$want_glib" = "xyes" -a "x$have_glib" = "xno"; then + AC_MSG_ERROR([GLib support requested, but no GLib found by pkg-config.]) +elif test "x$have_glib" = "xyes"; then + AC_DEFINE(HAVE_GLIB, [1], [Have GLib]) +fi + + # iconv library (ecore_txt) iconv_cflags="" @@ -1120,6 +1141,7 @@ echo " Core:" echo echo " Ecore........................: always" +echo " GLib support...............: $have_glib" echo " Ecore_Job....................: $have_ecore_job" echo " Ecore_Txt....................: $have_ecore_txt" echo " Ecore_Con....................: $have_ecore_con" Modified: trunk/ecore/src/lib/ecore/Ecore.h =================================================================== --- trunk/ecore/src/lib/ecore/Ecore.h 2009-10-01 01:36:50 UTC (rev 42824) +++ trunk/ecore/src/lib/ecore/Ecore.h 2009-10-01 03:56:38 UTC (rev 42825) @@ -287,6 +287,8 @@ EAPI void ecore_main_loop_select_func_set(int (*func)(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)); EAPI void *ecore_main_loop_select_func_get(void); + EAPI Eina_Bool ecore_main_loop_glib_integrate(void); + EAPI void ecore_main_loop_begin(void); EAPI void ecore_main_loop_quit(void); EAPI Ecore_Fd_Handler *ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, int (*func) (void *data, Ecore_Fd_Handler *fd_handler), const void *data, int (*buf_func) (void *buf_data, Ecore_Fd_Handler *fd_handler), const void *buf_data); Modified: trunk/ecore/src/lib/ecore/Makefile.am =================================================================== --- trunk/ecore/src/lib/ecore/Makefile.am 2009-10-01 01:36:50 UTC (rev 42824) +++ trunk/ecore/src/lib/ecore/Makefile.am 2009-10-01 03:56:38 UTC (rev 42825) @@ -1,7 +1,7 @@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = @EVIL_CFLAGS@ @WIN32_CPPFLAGS@ @EFL_ECORE_BUILD@ -AM_CFLAGS = @WIN32_CFLAGS@ @EINA_CFLAGS@ @WIN32_CPPFLAGS@ +AM_CFLAGS = @WIN32_CFLAGS@ @EINA_CFLAGS@ @WIN32_CPPFLAGS@ @GLIB_CFLAGS@ lib_LTLIBRARIES = libecore.la include_HEADERS = \ @@ -35,9 +35,10 @@ ecore_timer.c \ ecore_tree.c \ ecore_value.c \ -ecore_thread.c +ecore_thread.c \ +ecore_glib.c -libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ -lm +libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ -lm libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_release_info@ EXTRA_DIST = ecore_private.h Modified: trunk/ecore/src/lib/ecore/ecore.c =================================================================== --- trunk/ecore/src/lib/ecore/ecore.c 2009-10-01 01:36:50 UTC (rev 42824) +++ trunk/ecore/src/lib/ecore/ecore.c 2009-10-01 03:56:38 UTC (rev 42825) @@ -90,6 +90,7 @@ _ecore_signal_init(); _ecore_exe_init(); _ecore_thread_init(); + _ecore_glib_init(); _ecore_loop_time = ecore_time_get(); } @@ -115,6 +116,7 @@ if (_ecore_fps_debug) _ecore_fps_debug_shutdown(); _ecore_poller_shutdown(); _ecore_animator_shutdown(); + _ecore_glib_shutdown(); _ecore_thread_shutdown(); _ecore_exe_shutdown(); _ecore_idle_enterer_shutdown(); Modified: trunk/ecore/src/lib/ecore/ecore_private.h =================================================================== --- trunk/ecore/src/lib/ecore/ecore_private.h 2009-10-01 01:36:50 UTC (rev 42824) +++ trunk/ecore/src/lib/ecore/ecore_private.h 2009-10-01 03:56:38 UTC (rev 42825) @@ -447,6 +447,9 @@ int _ecore_thread_init(void); int _ecore_thread_shutdown(void); +void _ecore_glib_init(void); +void _ecore_glib_shutdown(void); + extern int _ecore_fps_debug; extern double _ecore_loop_time; ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ enlightenment-svn mailing list enl...@li... https://lists.sourceforge.net/lists/listinfo/enlightenment-svn -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -------------------------------------- MSN: bar...@gm... Skype: gsbarbieri Mobile: +55 (19) 9225-2202 |