Re: [E-devel] E Korean Diner

2013-10-10 Thread The Rasterman
On Thu, 10 Oct 2013 06:53:21 +0200 Cedric BAIL cedric.b...@free.fr said:

 Hello everyone,
 
 For those of you who are in Korea, there will be a Korean E Dinner in
 Gangnam tomorrow, Friday 11, at 8pm exit 11 as always. I know it is
 last minute planning, but that's life !

yarg! almost no notice! definitely korean-style :)

-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] E Korean Diner

2013-10-10 Thread ChunEon Park
ahh.. i can't attend. sorry.
I have another meeting at that time.
Saturday/Sunday will be fine to me if it can be rearranged. :)
 

-Regards, Hermet- 

-Original Message-
From: Carsten Haitzlerras...@rasterman.com 
To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; 
Cc: E Usersenlightenment-us...@lists.sourceforge.net; Cedric 
BAILcedric.b...@free.fr; 
Sent: 2013-10-10 (목) 15:30:19
Subject: Re: [E-devel] E Korean Diner

On Thu, 10 Oct 2013 06:53:21 +0200 Cedric BAIL cedric.bail@free.fr said:

 Hello everyone,
 
 For those of you who are in Korea, there will be a Korean E Dinner in
 Gangnam tomorrow, Friday 11, at 8pm exit 11 as always. I know it is
 last minute planning, but that's life !

yarg! almost no notice! definitely korean-style :)

-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] E Korean Diner

2013-10-10 Thread daniel.za...@samsung.com
It can't be rearranged. On Saturday morning, I have a flight :-) Hehe!

On 10/10/2013 11:12 AM, ChunEon Park wrote:
 ahh.. i can't attend. sorry.
 I have another meeting at that time.
 Saturday/Sunday will be fine to me if it can be rearranged. :)
   
 
 -Regards, Hermet-

 -Original Message-
 From: Carsten Haitzlerras...@rasterman.com
 To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net;
 Cc: E Usersenlightenment-us...@lists.sourceforge.net; Cedric 
 BAILcedric.b...@free.fr;
 Sent: 2013-10-10 (목) 15:30:19
 Subject: Re: [E-devel] E Korean Diner

 On Thu, 10 Oct 2013 06:53:21 +0200 Cedric BAIL cedric.bail@free.fr said:

 Hello everyone,

 For those of you who are in Korea, there will be a Korean E Dinner in
 Gangnam tomorrow, Friday 11, at 8pm exit 11 as always. I know it is
 last minute planning, but that's life !
 yarg! almost no notice! definitely korean-style :)




--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [e-users] E Korean Diner

2013-10-10 Thread The Rasterman
On Thu, 10 Oct 2013 17:12:51 +0900 (KST) ChunEon Park her...@naver.com said:

 ahh.. i can't attend. sorry.
 I have another meeting at that time.
 Saturday/Sunday will be fine to me if it can be rearranged. :)

wat!?!?!??@#@?#?!@?!#@ we'll be hermetless? :(

 
 -Regards, Hermet- 
 
 -Original Message-
 From: Carsten Haitzlerras...@rasterman.com 
 To: Enlightenment developer
 listenlightenment-devel@lists.sourceforge.net; Cc: E
 Usersenlightenment-us...@lists.sourceforge.net; Cedric
 BAILcedric.b...@free.fr; Sent: 2013-10-10 (목) 15:30:19 Subject: Re:
 [E-devel] E Korean Diner
 
 On Thu, 10 Oct 2013 06:53:21 +0200 Cedric BAIL cedric.bail@free.fr said:
 
  Hello everyone,
  
  For those of you who are in Korea, there will be a Korean E Dinner in
  Gangnam tomorrow, Friday 11, at 8pm exit 11 as always. I know it is
  last minute planning, but that's life !
 
 yarg! almost no notice! definitely korean-style :)
 
 -- 
 - Codito, ergo sum - I code, therefore I am --
 The Rasterman (Carsten Haitzler)ras...@rasterman.com
 
 
 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 
 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
 ___
 enlightenment-users mailing list
 enlightenment-us...@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-users


-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] E Korean Diner

2013-10-10 Thread Stefan Schmidt
Hello.

On 10/10/2013 09:33 AM, daniel.za...@samsung.com wrote:
 It can't be rearranged. On Saturday morning, I have a flight :-) Hehe!

They would loose you but win Hermet. :)

regards
Stefan Schmidt


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [e-users] E Korean Diner

2013-10-10 Thread daniel.za...@samsung.com
A non hermetic E-dinner! Will be wet, boyz!!!

On 10/10/2013 11:46 AM, Carsten Haitzler (The Rasterman) wrote:
 On Thu, 10 Oct 2013 17:12:51 +0900 (KST) ChunEon Park her...@naver.com said:

 ahh.. i can't attend. sorry.
 I have another meeting at that time.
 Saturday/Sunday will be fine to me if it can be rearranged. :)
 wat!?!?!??@#@?#?!@?!#@ we'll be hermetless? :(

 
 -Regards, Hermet-

 -Original Message-
 From: Carsten Haitzlerras...@rasterman.com
 To: Enlightenment developer
 listenlightenment-devel@lists.sourceforge.net; Cc: E
 Usersenlightenment-us...@lists.sourceforge.net; Cedric
 BAILcedric.b...@free.fr; Sent: 2013-10-10 (목) 15:30:19 Subject: Re:
 [E-devel] E Korean Diner

 On Thu, 10 Oct 2013 06:53:21 +0200 Cedric BAIL cedric.bail@free.fr said:

 Hello everyone,

 For those of you who are in Korea, there will be a Korean E Dinner in
 Gangnam tomorrow, Friday 11, at 8pm exit 11 as always. I know it is
 last minute planning, but that's life !
 yarg! almost no notice! definitely korean-style :)

 -- 
 - Codito, ergo sum - I code, therefore I am --
 The Rasterman (Carsten Haitzler)ras...@rasterman.com


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
 ___
 enlightenment-users mailing list
 enlightenment-us...@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-users




--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] E Korean Diner

2013-10-10 Thread daniel.za...@samsung.com
German humor, I presume ;-)

On 10/10/2013 11:52 AM, Stefan Schmidt wrote:
 Hello.

 On 10/10/2013 09:33 AM, daniel.za...@samsung.com wrote:
 It can't be rearranged. On Saturday morning, I have a flight :-) Hehe!
 They would loose you but win Hermet. :)

 regards
 Stefan Schmidt


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/elementary] master 02/02: elm_flipselector.h: Added more description about event_info parameter for flipselector selected smart callback.

2013-10-10 Thread Daniel Juyung Seo
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=a6cbfa8b2ffe1ec7aab52f627be27f11a05e936d

commit a6cbfa8b2ffe1ec7aab52f627be27f11a05e936d
Author: Daniel Juyung Seo seojuyu...@gmail.com
Date:   Thu Oct 10 18:47:18 2013 +0900

elm_flipselector.h: Added more description about event_info parameter for 
flipselector selected smart callback.
---
 src/lib/elm_flipselector.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/elm_flipselector.h b/src/lib/elm_flipselector.h
index 1919bb9..68d120d 100644
--- a/src/lib/elm_flipselector.h
+++ b/src/lib/elm_flipselector.h
@@ -24,7 +24,8 @@
  *
  * This widget emits the following signals, besides the ones sent from
  * @ref Layout:
- * - @c selected - when the widget's selected text item is changed
+ * - @c selected - when the widget's selected text item is changed. The @c
+ *   event_info parameter is the item that was selected.
  * - @c overflowed - when the widget's current selection is changed
  *   from the first item in its list to the last
  * - @c underflowed - when the widget's current selection is changed

-- 




[EGIT] [core/elementary] master 01/02: elc_naviframe_common.h: Fixed a typo.

2013-10-10 Thread Daniel Juyung Seo
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=0691d65e2d53da62ffe37c2567583a3b8116a165

commit 0691d65e2d53da62ffe37c2567583a3b8116a165
Author: Daniel Juyung Seo seojuyu...@gmail.com
Date:   Thu Oct 10 09:00:08 2013 +0900

elc_naviframe_common.h: Fixed a typo.
---
 src/lib/elc_naviframe_common.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/elc_naviframe_common.h b/src/lib/elc_naviframe_common.h
index 9b7a6a0..2f184b9 100644
--- a/src/lib/elc_naviframe_common.h
+++ b/src/lib/elc_naviframe_common.h
@@ -107,8 +107,8 @@ EAPI Eina_Bool
elm_naviframe_item_title_visible_get(const Elm_Object_Item
  * @param func the callback function.
  *
  * @warning Don't set clicked callback to the prev button additionally if the
- * function does a exact same logic with this @c func. When hardware back key 
is
- * pressed then both callbacks will be called.
+ * function does an exact same logic with this @c func. When hardware back key
+ * is pressed then both callbacks will be called.
  *
  * @since 1.8
  * @ingroup Naviframe

-- 




[EGIT] [core/elementary] master 01/01: elementary/scroller - fix the scroller to locate the current page correctly in case that the scroller is suddenly resized and then the drag couldn't capture the

2013-10-10 Thread ChunEon Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=c8b4d4c4ee3977a56eb9c6ac3021c458776b47ba

commit c8b4d4c4ee3977a56eb9c6ac3021c458776b47ba
Author: ChunEon Park her...@hermet.pe.kr
Date:   Thu Oct 10 19:58:01 2013 +0900

elementary/scroller - fix the scroller to locate the current page correctly 
in case that the scroller is suddenly resized and then the drag couldn't 
capture the page location.
---
 ChangeLog  | 6 ++
 NEWS   | 1 +
 src/lib/elm_interface_scrollable.c | 7 +++
 3 files changed, 14 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 7891a1b..3e9e5b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1683,3 +1683,9 @@
 2013-10-08  Daesung Kim (ad960009)
 
 * ctxpopup : fix elm_object_content_unset didn't unpack content from 
box
+
+2013-10-10  ChunEon Park (Hermet)
+
+* scroller : fix the scroller to locate the current page correctly
+in case that the scroller is suddenly resized and then the drag
+couldn't capture the page location.
diff --git a/NEWS b/NEWS
index bff325a..1992150 100644
--- a/NEWS
+++ b/NEWS
@@ -297,6 +297,7 @@ Fixes:
* elm_player breaks theme due to poor namespacing
* elm_popup breaks theme due to poor namespacing
* ctxpopup: fix elm_object_content_unset didn't unpack content from box
+   * scroller : fix the scroller to locate the current page correctly in case 
that the scroller is suddenly resized and then the drag couldn't capture the 
page location.
 
 Removals:
 
diff --git a/src/lib/elm_interface_scrollable.c 
b/src/lib/elm_interface_scrollable.c
index aecb77f..981ff00 100644
--- a/src/lib/elm_interface_scrollable.c
+++ b/src/lib/elm_interface_scrollable.c
@@ -948,6 +948,13 @@ _elm_scroll_scroll_bar_read_and_update(
x = _round(vx * (double)mx + minx, 1);
y = _round(vy * (double)my + miny, 1);
eo_do(sid-pan_obj, elm_obj_pan_pos_get(px, py));
+
+   if (!sid-freeze  _paging_is_enabled(sid))
+ {
+x = _elm_scroll_page_x_get(sid, x - px, EINA_FALSE);
+y = _elm_scroll_page_y_get(sid, y - py, EINA_FALSE);
+ }
+
eo_do(sid-pan_obj, elm_obj_pan_pos_set(x, y));
if ((px != x) || (py != y))
  {

-- 




Re: [E-devel] E Korean Diner

2013-10-10 Thread ChunEon Park
Here we can meet together anytime,
but Daniel is a special guest for us.
Should meet on the Friday definitely.  :)
 

-Regards, Hermet- 

-Original Message-
From: daniel.za...@samsung.comdaniel.za...@samsung.com 
To: enlightenment-devel@lists.sourceforge.net; 
Cc: 
Sent: 2013-10-10 (목) 17:59:30
Subject: Re: [E-devel] E Korean Diner

German humor, I presume ;-)

On 10/10/2013 11:52 AM, Stefan Schmidt wrote:
 Hello.

 On 10/10/2013 09:33 AM, daniel.za...@samsung.com wrote:
 It can't be rearranged. On Saturday morning, I have a flight :-) Hehe!
 They would loose you but win Hermet. :)

 regards
 Stefan Schmidt


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/enlightenment] master 01/01: individial desk bgpreviews are now just icons that track the current bg image; handlers and edje are only applied when this is part of a full vdesk preview

2013-10-10 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e60f5261fe92d618efabf470e160c5845b4d177a

commit e60f5261fe92d618efabf470e160c5845b4d177a
Author: Mike Blumenkrantz m.blumenk...@samsung.com
Date:   Thu Oct 10 13:08:20 2013 +0100

individial desk bgpreviews are now just icons that track the current bg 
image; handlers and edje are only applied when this is part of a full vdesk 
preview
---
 src/bin/e_widget_bgpreview.c | 37 +
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/src/bin/e_widget_bgpreview.c b/src/bin/e_widget_bgpreview.c
index 51e6f5b..df724a4 100644
--- a/src/bin/e_widget_bgpreview.c
+++ b/src/bin/e_widget_bgpreview.c
@@ -77,27 +77,18 @@ e_widget_bgpreview_desk_add(Evas *e, E_Zone *zone, int x, 
int y)
dd-x = x;
dd-y = y;
 
-   dd-icon = edje_object_add(e);
-   e_theme_edje_object_set(dd-icon, base/theme/widgets,
-   e/widgets/deskpreview/desk);
-
dd-thumb = e_icon_add(e);
e_icon_fill_inside_set(dd-thumb, EINA_FALSE);
e_icon_file_edje_set(dd-thumb, bgfile, e/desktop/background);
eina_stringshare_del(bgfile);
-   evas_object_show(dd-thumb);
-   edje_object_part_swallow(dd-icon, e.swallow.content, dd-thumb);
-
-   evas_object_show(dd-icon);
-   evas_object_data_set(dd-icon, desk_data, dd);
-   dd-configurable = EINA_TRUE;
-   evas_object_event_callback_add(dd-icon, EVAS_CALLBACK_FREE, 
_e_wid_data_del, dd);
-   evas_object_event_callback_add(dd-icon, EVAS_CALLBACK_MOUSE_DOWN,
-  _e_wid_desk_cb_config, dd);
+
+   evas_object_data_set(dd-thumb, desk_data, dd);
+   evas_object_event_callback_add(dd-thumb, EVAS_CALLBACK_FREE, 
_e_wid_data_del, dd);
+
dd-bg_upd_hdl = ecore_event_handler_add(E_EVENT_BG_UPDATE,
 _e_wid_cb_bg_update, dd);
 
-   return dd-icon;
+   return dd-thumb;
 }
 
 EAPI void
@@ -204,8 +195,22 @@ _e_wid_reconfigure(E_Widget_Data *wd)
 for (x = sx; x  wd-dx; x++)
   {
  Evas_Object *dp;
-
- dp = e_widget_bgpreview_desk_add(evas_object_evas_get(wd-obj), 
zone, x, y);
+ Evas *e;
+
+ e = evas_object_evas_get(wd-obj);
+ dp = e_widget_bgpreview_desk_add(e, zone, x, y);
+
+ dd = evas_object_data_get(dp, desk_data);
+ dp = dd-icon = edje_object_add(e);
+ e_theme_edje_object_set(dd-icon, base/theme/widgets,
+ e/widgets/deskpreview/desk);
+
+ edje_object_part_swallow(dd-icon, e.swallow.content, 
dd-thumb);
+ dd-configurable = EINA_TRUE;
+ evas_object_event_callback_add(dd-icon, EVAS_CALLBACK_MOUSE_DOWN,
+_e_wid_desk_cb_config, dd);
+ evas_object_show(dd-icon);
+ evas_object_data_set(dd-icon, desk_data, dd);
  evas_object_size_hint_min_set(dp, mw, mh);
  evas_object_size_hint_max_set(dp, mw, mh);
  evas_object_size_hint_aspect_set(dp, EVAS_ASPECT_CONTROL_BOTH, 
zone-w, zone-h);

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/01: ecore-con: make curl support entirely runtime loaded via eina_module

2013-10-10 Thread Gustavo Sverzut Barbieri
On Thu, Oct 10, 2013 at 10:34 AM, Carsten Haitzler ras...@rasterman.com wrote:
 raster pushed a commit to branch master.

 http://git.enlightenment.org/core/efl.git/commit/?id=2c1c6b9335e38c6e52b06829a95d9b58d780c99e

 commit 2c1c6b9335e38c6e52b06829a95d9b58d780c99e
 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com
 Date:   Thu Oct 10 22:31:18 2013 +0900

 ecore-con: make curl support entirely runtime loaded via eina_module

 this makes curl support a pure runtime-only thing. libcurl is loaded by
 eina_module (dlopen/dlsym) when curl is actually first needed (when a
 url connection/object is created). this means that ecore-con has no
 link or compile dependencies on curl, only runtime, AND this saves
 memory (due to curl inits using apparently a chunk of private pages).
 so this saves memory and moves the dependency to runtime (though still
 consider libcurl a dependency of efl - but like a binary executed,
 it's at runtime).

excellent, next is to implement an alternative module that provides
the same API without curl, but just ecore primitives... that shouldn't
be that difficult.

and this new lib should handle dynamic proxies correctly by means of libproxy.


-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (19) 9225-2202
Contact: http://www.gustavobarbieri.com.br/contact

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 06/06: Merge branch 'subsurfaces'

2013-10-10 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f7a43e9dbc276881f24ece012fe5c4ce4f9927db

commit f7a43e9dbc276881f24ece012fe5c4ce4f9927db
Merge: 2c1c6b9 f2d1a21
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Oct 10 15:21:06 2013 -0300

Merge branch 'subsurfaces'

 configure.ac |   1 +
 data/ecore/ecore_wayland/protocol/subsurface.xml | 244 +++
 src/Makefile_Ecore_Wayland.am|  20 ++
 src/lib/ecore_wayland/.gitignore |   2 +
 src/lib/ecore_wayland/Ecore_Wayland.h|  92 +
 src/lib/ecore_wayland/ecore_wl.c |   8 +
 src/lib/ecore_wayland/ecore_wl_private.h |   2 +
 src/lib/ecore_wayland/ecore_wl_subsurf.c | 191 ++
 src/lib/ecore_wayland/ecore_wl_window.c  |   2 +
 9 files changed, 562 insertions(+)

-- 




[EGIT] [core/efl] master 05/06: ecore/wayland: Add subsurface handling APIs.

2013-10-10 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f2d1a211472e2779969ead8d6331fd3d13230946

commit f2d1a211472e2779969ead8d6331fd3d13230946
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Sep 5 18:10:50 2013 -0300

ecore/wayland: Add subsurface handling APIs.
---
 src/Makefile_Ecore_Wayland.am|   1 +
 src/lib/ecore_wayland/Ecore_Wayland.h|  92 ++-
 src/lib/ecore_wayland/ecore_wl.c |   3 +-
 src/lib/ecore_wayland/ecore_wl_private.h |   2 +
 src/lib/ecore_wayland/ecore_wl_subsurf.c | 191 +++
 src/lib/ecore_wayland/ecore_wl_window.c  |   2 +
 6 files changed, 289 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Ecore_Wayland.am b/src/Makefile_Ecore_Wayland.am
index 607d26e..b2c66a1 100644
--- a/src/Makefile_Ecore_Wayland.am
+++ b/src/Makefile_Ecore_Wayland.am
@@ -14,6 +14,7 @@ lib/ecore_wayland/ecore_wl_dnd.c \
 lib/ecore_wayland/ecore_wl_input.c \
 lib/ecore_wayland/ecore_wl_output.c \
 lib/ecore_wayland/ecore_wl_window.c \
+lib/ecore_wayland/ecore_wl_subsurf.c \
 lib/ecore_wayland/ecore_wl_private.h
 
 lib_ecore_wayland_libecore_wayland_la_BUILT_SOURCES = \
diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index c9b3e1f..30545b7 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -12,7 +12,6 @@
 # include wayland-client.h
 # include wayland-cursor.h
 # include xkbcommon/xkbcommon.h
-# include subsurface-client-protocol.h
 
 # ifdef EAPI
 #  undef EAPI
@@ -36,6 +35,7 @@ typedef struct _Ecore_Wl_Display Ecore_Wl_Display;
 typedef struct _Ecore_Wl_Output Ecore_Wl_Output;
 typedef struct _Ecore_Wl_Input Ecore_Wl_Input;
 typedef struct _Ecore_Wl_Global Ecore_Wl_Global; /** @since 1.7.6 */
+typedef struct _Ecore_Wl_Subsurf Ecore_Wl_Subsurf; /** @since 1.8 */
 
 # ifndef _ECORE_WAYLAND_WINDOW_PREDEF
 typedef struct _Ecore_Wl_Window Ecore_Wl_Window;
@@ -253,6 +253,8 @@ struct _Ecore_Wl_Window
/* FIXME: Ideally we should record the cursor name for this window 
 * so we can compare and avoid unnecessary cursor set calls to wayland */
 
+   Ecore_Wl_Subsurf *subsurfs;
+
void *data;
 };
 
@@ -383,6 +385,7 @@ struct _Ecore_Wl_Event_Interfaces_Bound
  * @li @ref Ecore_Wl_Window_Group
  * @li @ref Ecore_Wl_Input_Group
  * @li @ref Ecore_Wl_Dnd_Group
+ * @li @ref Ecore_Wl_Subsurf
  */
 
 EAPI extern int ECORE_WL_EVENT_MOUSE_IN;
@@ -866,6 +869,93 @@ EAPI struct wl_array 
*ecore_wl_dnd_drag_types_get(Ecore_Wl_Input *input);
 
 EAPI void ecore_wl_server_mode_set(Eina_Bool on);
 
+/**
+ * @defgroup Ecore_Wl_Subsurf Functions to manipulate subsurfaces.
+ * @ingroup Ecore_Wl_Group
+ *
+ * Functions to manipulate wayland subsurfaces, using Ecore_Wl_Subsurf.
+ *
+ * This API is intended to expose Wayland subsurface functionality, although it
+ * should not be necessary for most applications to use it, as soon as we have
+ * means to make Evas automatically switch Evas images to use subsurfaces.
+ *
+ * It can/should be used, for instance, when subsurfaces are needed to be not
+ * in sync with the main window surface.
+ */
+
+/**
+ * Create and return a new subsurface.
+ *
+ * Create a new surface (and subsurface interface), with the parent surface
+ * being the one associated with the given @param win.
+ *
+ * The @param win must be visible, otherwise there will be no surface created
+ * for it yet.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI Ecore_Wl_Subsurf *ecore_wl_subsurf_create(Ecore_Wl_Window *win);
+
+/**
+ * Destroy the given subsurface, as well as the surface associated with it.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_del(Ecore_Wl_Subsurf *ess);
+
+/**
+ * Return the wl_surface associated with this subsurface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI struct wl_surface *ecore_wl_subsurf_surface_get(Ecore_Wl_Subsurf *ess);
+
+/**
+ * Set the position of this subsurface, relative to its parent surface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_position_set(Ecore_Wl_Subsurf *ess, int x, int y);
+
+/**
+ * Get the position of this subsurface, relative to its parent surface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_position_get(Ecore_Wl_Subsurf *ess, int *x, int *y);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_place_above(Ecore_Wl_Subsurf *ess, struct 
wl_surface *surface);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_place_below(Ecore_Wl_Subsurf *ess, struct 
wl_surface *surface);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_sync_set(Ecore_Wl_Subsurf *ess, Eina_Bool val);
+
+/**
+ * Set an opaque region for the given subsurface.
+ *
+ * Use a 0x0 region size to unset the opaque region.
+ *
+ * @ingroup 

[EGIT] [core/efl] master 04/06: ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.

2013-10-10 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1cef77bfd784772539a395363b3aecbd3c2655d5

commit 1cef77bfd784772539a395363b3aecbd3c2655d5
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Sat Aug 31 15:20:22 2013 -0300

ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.
---
 src/lib/ecore_wayland/Ecore_Wayland.h | 2 ++
 src/lib/ecore_wayland/ecore_wl.c  | 7 +++
 2 files changed, 9 insertions(+)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 05ceb00..c9b3e1f 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -12,6 +12,7 @@
 # include wayland-client.h
 # include wayland-cursor.h
 # include xkbcommon/xkbcommon.h
+# include subsurface-client-protocol.h
 
 # ifdef EAPI
 #  undef EAPI
@@ -101,6 +102,7 @@ struct _Ecore_Wl_Display
 struct wl_display *display;
 struct wl_registry *registry;
 struct wl_compositor *compositor;
+struct wl_subcompositor *subcompositor;
 struct wl_shell *shell;
 struct wl_shell *desktop_shell;
 struct wl_shm *shm;
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index acce728..acc5988 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -397,6 +397,8 @@ _ecore_wl_shutdown(Eina_Bool close)
   
wl_data_device_manager_destroy(_ecore_wl_disp-wl.data_device_manager);
 if (_ecore_wl_disp-wl.compositor)
   wl_compositor_destroy(_ecore_wl_disp-wl.compositor);
+if (_ecore_wl_disp-wl.subcompositor)
+  wl_compositor_destroy(_ecore_wl_disp-wl.subcompositor);
 if (_ecore_wl_disp-wl.display)
   {
  wl_registry_destroy(_ecore_wl_disp-wl.registry);
@@ -515,6 +517,11 @@ _ecore_wl_cb_handle_global(void *data, struct wl_registry 
*registry, unsigned in
 ewd-wl.compositor =
   wl_registry_bind(registry, id, wl_compositor_interface, 3);
  }
+   else if (!strcmp(interface, wl_subcompositor))
+ {
+ewd-wl.subcompositor =
+   wl_registry_bind(registry, id, wl_subcompositor_interface, 1);
+ }
else if (!strcmp(interface, wl_output))
  _ecore_wl_output_add(ewd, id);
else if (!strcmp(interface, wl_seat))

-- 




[EGIT] [core/efl] master 01/06: adding wayland subsurfaces protocol file.

2013-10-10 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f26f2da5ea55ccdb028065f1ff803cbac08c8863

commit f26f2da5ea55ccdb028065f1ff803cbac08c8863
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Wed Aug 7 18:05:55 2013 -0300

adding wayland subsurfaces protocol file.
---
 configure.ac |   1 +
 data/ecore/ecore_wayland/protocol/subsurface.xml | 244 +++
 src/Makefile_Ecore_Wayland.am|  17 ++
 src/lib/ecore_wayland/.gitignore |   2 +
 4 files changed, 264 insertions(+)

diff --git a/configure.ac b/configure.ac
index d5a359e..44b14c1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1007,6 +1007,7 @@ AC_ARG_ENABLE([wayland],
 
 if test ${want_wayland} = yes; then
EFL_PKG_CHECK_STRICT([wayland-client])
+   WAYLAND_SCANNER_RULES(['$(top_srcdir)/data/ecore/ecore_wayland/protocol'])
 fi
 
 # Fb
diff --git a/data/ecore/ecore_wayland/protocol/subsurface.xml 
b/data/ecore/ecore_wayland/protocol/subsurface.xml
new file mode 100644
index 000..9e4a658
--- /dev/null
+++ b/data/ecore/ecore_wayland/protocol/subsurface.xml
@@ -0,0 +1,244 @@
+?xml version=1.0 encoding=UTF-8?
+protocol name=subsurface
+
+  copyright
+Copyright © 2012-2013 Collabora, Ltd.
+
+Permission to use, copy, modify, distribute, and sell this
+software and its documentation for any purpose is hereby granted
+without fee, provided that the above copyright notice appear in
+all copies and that both that copyright notice and this permission
+notice appear in supporting documentation, and that the name of
+the copyright holders not be used in advertising or publicity
+pertaining to distribution of the software without specific,
+written prior permission.  The copyright holders make no
+representations about the suitability of this software for any
+purpose.  It is provided as is without express or implied
+warranty.
+
+THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+  /copyright
+
+  interface name=wl_subcompositor version=1
+description summary=sub-surface compositing
+  The global interface exposing sub-surface compositing capabilities.
+  A wl_surface, that has sub-surfaces associated, is called the
+  parent surface. Sub-surfaces can be arbitrarily nested and create
+  a tree of sub-surfaces.
+
+  The root surface in a tree of sub-surfaces is the main
+  surface. The main surface cannot be a sub-surface, because
+  sub-surfaces must always have a parent.
+
+  A main surface with its sub-surfaces forms a (compound) window.
+  For window management purposes, this set of wl_surface objects is
+  to be considered as a single window, and it should also behave as
+  such.
+
+  The aim of sub-surfaces is to offload some of the compositing work
+  within a window from clients to the compositor. A prime example is
+  a video player with decorations and video in separate wl_surface
+  objects. This should allow the compositor to pass YUV video buffer
+  processing to dedicated overlay hardware when possible.
+/description
+
+request name=destroy type=destructor
+  description summary=unbind from the subcompositor interface
+   Informs the server that the client will not be using this
+   protocol object anymore. This does not affect any other
+   objects, wl_subsurface objects included.
+  /description
+/request
+
+enum name=error
+  entry name=bad_surface value=0
+ summary=the to-be sub-surface is invalid/
+/enum
+
+request name=get_subsurface
+  description summary=give a surface the role sub-surface
+   Create a sub-surface interface for the given surface, and
+   associate it with the given parent surface. This turns a
+   plain wl_surface into a sub-surface.
+
+   The to-be sub-surface must not already have a dedicated
+   purpose, like any shell surface type, cursor image, drag icon,
+   or sub-surface. Otherwise a protocol error is raised.
+  /description
+
+  arg name=id type=new_id interface=wl_subsurface
+   summary=the new subsurface object id/
+  arg name=surface type=object interface=wl_surface
+   summary=the surface to be turned into a sub-surface/
+  arg name=parent type=object interface=wl_surface
+   summary=the parent surface/
+/request
+  /interface
+
+  interface name=wl_subsurface version=1
+

[EGIT] [core/efl] master 03/06: ecore/wayland: detect wayland-scanner

2013-10-10 Thread U . Artie Eoff
antognolli pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d201747cc8b0f74035c8069461c7df5704719bfe

commit d201747cc8b0f74035c8069461c7df5704719bfe
Author: U. Artie Eoff ullysses.a.e...@intel.com
Date:   Sat Oct 5 08:53:35 2013 -0700

ecore/wayland: detect wayland-scanner

We need the wayland-scanner program to auto-generate the
subsurface protocol source files from subsurface.xml

Signed-off-by: U. Artie Eoff ullysses.a.e...@intel.com
---
 configure.ac  | 9 +
 src/Makefile_Ecore_Wayland.am | 2 ++
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/configure.ac b/configure.ac
index d720310..e9efd1f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1007,14 +1007,7 @@ AC_ARG_ENABLE([wayland],
 
 if test ${want_wayland} = yes; then
EFL_PKG_CHECK_STRICT([wayland-client])
-dnl This is a problem. unless you somehow have this macro defined
-dnl magically... you cant do dev on efl. configure is totally broken.
-dnl you end up with something like:
-dnl
-dnl ./configure: line 25508: syntax error near unexpected token 
`'$(top_srcdir)/data/ecore/ecore_wayland/protocol''
-dnl ./configure: line 25508: 
`WAYLAND_SCANNER_RULES('$(top_srcdir)/data/ecore/ecore_wayland/protocol')'
-
-dnl   
WAYLAND_SCANNER_RULES(['$(top_srcdir)/data/ecore/ecore_wayland/protocol'])
+   AC_PATH_PROG([wayland_scanner], [wayland-scanner], 
[AC_MSG_ERROR(wayland-scanner is needed to compile ecore_wayland protocol)])
 fi
 
 # Fb
diff --git a/src/Makefile_Ecore_Wayland.am b/src/Makefile_Ecore_Wayland.am
index 0709d6b..607d26e 100644
--- a/src/Makefile_Ecore_Wayland.am
+++ b/src/Makefile_Ecore_Wayland.am
@@ -31,6 +31,8 @@ lib_ecore_wayland_libecore_wayland_la_LIBADD = 
@ECORE_WAYLAND_LIBS@
 lib_ecore_wayland_libecore_wayland_la_DEPENDENCIES = 
@ECORE_WAYLAND_INTERNAL_LIBS@
 lib_ecore_wayland_libecore_wayland_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
 
+wayland_protocoldir = $(top_srcdir)/data/ecore/ecore_wayland/protocol
+
 lib/ecore_wayland/subsurface-protocol.c: $(wayland_protocoldir)/subsurface.xml
$(AM_V_GEN)$(wayland_scanner) code  $  $@
 

-- 




[EGIT] [core/efl] master 02/06: configure - wayland macro required for any kind of autogen.sh... not good.

2013-10-10 Thread Rasterman
antognolli pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=82e1fef6ed43dd511af3a502a0ba8f0207202987

commit 82e1fef6ed43dd511af3a502a0ba8f0207202987
Author: Carsten Haitzler (Rasterman) ras...@rasterman.com
Date:   Sat Oct 5 18:30:23 2013 +0900

configure - wayland macro required for any kind of autogen.sh... not good.
---
 configure.ac | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 44b14c1..d720310 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1007,7 +1007,14 @@ AC_ARG_ENABLE([wayland],
 
 if test ${want_wayland} = yes; then
EFL_PKG_CHECK_STRICT([wayland-client])
-   WAYLAND_SCANNER_RULES(['$(top_srcdir)/data/ecore/ecore_wayland/protocol'])
+dnl This is a problem. unless you somehow have this macro defined
+dnl magically... you cant do dev on efl. configure is totally broken.
+dnl you end up with something like:
+dnl
+dnl ./configure: line 25508: syntax error near unexpected token 
`'$(top_srcdir)/data/ecore/ecore_wayland/protocol''
+dnl ./configure: line 25508: 
`WAYLAND_SCANNER_RULES('$(top_srcdir)/data/ecore/ecore_wayland/protocol')'
+
+dnl   
WAYLAND_SCANNER_RULES(['$(top_srcdir)/data/ecore/ecore_wayland/protocol'])
 fi
 
 # Fb

-- 




Re: [E-devel] [EGIT] [core/efl] master 04/06: ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.

2013-10-10 Thread Rafael Antognolli
On Thu, Oct 10, 2013 at 3:32 PM, Rafael Antognolli
rafael.antogno...@intel.com wrote:
 antognolli pushed a commit to branch master.

 http://git.enlightenment.org/core/efl.git/commit/?id=1cef77bfd784772539a395363b3aecbd3c2655d5

 commit 1cef77bfd784772539a395363b3aecbd3c2655d5
 Author: Rafael Antognolli rafael.antogno...@intel.com
 Date:   Sat Aug 31 15:20:22 2013 -0300

 ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.
 ---
  src/lib/ecore_wayland/Ecore_Wayland.h | 2 ++
  src/lib/ecore_wayland/ecore_wl.c  | 7 +++
  2 files changed, 9 insertions(+)

 diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
 b/src/lib/ecore_wayland/Ecore_Wayland.h
 index 05ceb00..c9b3e1f 100644
 --- a/src/lib/ecore_wayland/Ecore_Wayland.h
 +++ b/src/lib/ecore_wayland/Ecore_Wayland.h
 @@ -12,6 +12,7 @@
  # include wayland-client.h
  # include wayland-cursor.h
  # include xkbcommon/xkbcommon.h
 +# include subsurface-client-protocol.h

OK, just noticed that this will probably break again, since this
header is not installed. Not sure why it didn't yet, when building
Elementary.

So, Devilhorns, what about putting all these internal pointers and
structs hidden inside ecore_wl_private.h, or something like that? I
don't think they should be exposed at all...

  # ifdef EAPI
  #  undef EAPI
 @@ -101,6 +102,7 @@ struct _Ecore_Wl_Display
  struct wl_display *display;
  struct wl_registry *registry;
  struct wl_compositor *compositor;
 +struct wl_subcompositor *subcompositor;
  struct wl_shell *shell;
  struct wl_shell *desktop_shell;
  struct wl_shm *shm;
 diff --git a/src/lib/ecore_wayland/ecore_wl.c 
 b/src/lib/ecore_wayland/ecore_wl.c
 index acce728..acc5988 100644
 --- a/src/lib/ecore_wayland/ecore_wl.c
 +++ b/src/lib/ecore_wayland/ecore_wl.c
 @@ -397,6 +397,8 @@ _ecore_wl_shutdown(Eina_Bool close)

 wl_data_device_manager_destroy(_ecore_wl_disp-wl.data_device_manager);
  if (_ecore_wl_disp-wl.compositor)
wl_compositor_destroy(_ecore_wl_disp-wl.compositor);
 +if (_ecore_wl_disp-wl.subcompositor)
 +  wl_compositor_destroy(_ecore_wl_disp-wl.subcompositor);
  if (_ecore_wl_disp-wl.display)
{
   wl_registry_destroy(_ecore_wl_disp-wl.registry);
 @@ -515,6 +517,11 @@ _ecore_wl_cb_handle_global(void *data, struct 
 wl_registry *registry, unsigned in
  ewd-wl.compositor =
wl_registry_bind(registry, id, wl_compositor_interface, 3);
   }
 +   else if (!strcmp(interface, wl_subcompositor))
 + {
 +ewd-wl.subcompositor =
 +   wl_registry_bind(registry, id, wl_subcompositor_interface, 1);
 + }
 else if (!strcmp(interface, wl_output))
   _ecore_wl_output_add(ewd, id);
 else if (!strcmp(interface, wl_seat))

 --





-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: ecore-con - followup commit to curl dynamic load - support win and osx names

2013-10-10 Thread Rasterman
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8ed6324a31a3f07cee3c604ccf410d9a4d7048df

commit 8ed6324a31a3f07cee3c604ccf410d9a4d7048df
Author: Carsten Haitzler (Rasterman) ras...@rasterman.com
Date:   Fri Oct 11 08:13:35 2013 +0900

ecore-con - followup commit to curl dynamic load - support win and osx names
---
 src/lib/ecore_con/ecore_con_url.c | 21 +++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_url.c 
b/src/lib/ecore_con/ecore_con_url.c
index 959ca94..4e4c19d 100644
--- a/src/lib/ecore_con/ecore_con_url.c
+++ b/src/lib/ecore_con/ecore_con_url.c
@@ -247,9 +247,26 @@ _c_init(void)
if (_c_fail) return EINA_FALSE;
_c = calloc(1, sizeof(Ecore_Con_Curl));
if (!_c) goto error;
-   _c-mod = eina_module_new(libcurl.so.4);
+
+#define LOAD(x) \
+   if (!_c-mod) { \
+  if ((_c-mod = eina_module_new(x))) { \
+ if (!eina_module_load(_c-mod)) { \
+eina_module_free(_c-mod); \
+_c-mod = NULL; \
+ } \
+  } \
+   }
+#if defined(_WIN32) || defined(__CYGWIN__)
+   LOAD(libcurl.dll); // try 1
+   LOAD(curllib.dll); // if fail try 2
+#elif defined(__APPLE__)  defined(__MACH__)
+   LOAD(libcurl.4.dylib); // try 1
+   LOAD(libcurl.so.4); // if fail try 2
+#else   
+   LOAD(libcurl.so.4); // try only
+#endif   
if (!_c-mod) goto error;
-   if (!eina_module_load(_c-mod)) goto error;
 
 #define SYM(x) if (!(_c-x = eina_module_symbol_get(_c-mod, #x))) goto error
SYM(curl_global_init);

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/01: ecore-con: make curl support entirely runtime loaded via eina_module

2013-10-10 Thread The Rasterman
On Thu, 10 Oct 2013 13:17:50 -0300 Gustavo Sverzut Barbieri
barbi...@gmail.com said:

 On Thu, Oct 10, 2013 at 10:34 AM, Carsten Haitzler ras...@rasterman.com
 wrote:
  raster pushed a commit to branch master.
 
  http://git.enlightenment.org/core/efl.git/commit/?id=2c1c6b9335e38c6e52b06829a95d9b58d780c99e
 
  commit 2c1c6b9335e38c6e52b06829a95d9b58d780c99e
  Author: Carsten Haitzler (Rasterman) ras...@rasterman.com
  Date:   Thu Oct 10 22:31:18 2013 +0900
 
  ecore-con: make curl support entirely runtime loaded via eina_module
 
  this makes curl support a pure runtime-only thing. libcurl is loaded by
  eina_module (dlopen/dlsym) when curl is actually first needed (when a
  url connection/object is created). this means that ecore-con has no
  link or compile dependencies on curl, only runtime, AND this saves
  memory (due to curl inits using apparently a chunk of private pages).
  so this saves memory and moves the dependency to runtime (though still
  consider libcurl a dependency of efl - but like a binary executed,
  it's at runtime).
 
 excellent, next is to implement an alternative module that provides
 the same API without curl, but just ecore primitives... that shouldn't
 be that difficult.
 
 and this new lib should handle dynamic proxies correctly by means of libproxy.

actually i was a bad boy. i didnt make it work on osx and windows. fixed now.
at least in theory with some research... untested though... and yes - libproxy
might be nice :) to be honest, this is JUST a memory optimization. apparently
curl + deps generate a bunch of dirty pages private per process so spread this
over a bunch of procs using efl and it adds up to several mb for apps not using
the ecore_con_url api at all... :) this change above is based on the idea
behind a patch i was given that actually had other problems (wrong libcurl
major version, used dlopen directly thus needing dlopen link lines etc. but
were not there). the idea is the same (dynamic load curl only when needed
otherwise never even have it searched for at all or mapped), just done a bit
more aggressively (on first time you use ecore_con_url vs on ecore_con_url
init).

-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Creating enlightenment module with C++

2013-10-10 Thread Felipe Magno de Almeida
Hello,

Currently, writing modules for enlightenment using C++ is not possible
without modifying headers from enlightenment.

How is the policy for these headers w.r.t C++ compatibility?

The most common problems are:
* Lack of extern C;
* The use of C++ keywords, e.g., class (replaced for klass);
* Functions and macros defined in the header with implicit conversion
from unrelated pointer types;
* Typedefs before definition or declaration of the typedef'ed UDT.

Regards,
-- 
Felipe Magno de Almeida

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Creating enlightenment module with C++

2013-10-10 Thread Lucas De Marchi
On Thu, Oct 10, 2013 at 9:03 PM, Felipe Magno de Almeida
felipe.m.alme...@gmail.com wrote:
 Hello,

 Currently, writing modules for enlightenment using C++ is not possible
 without modifying headers from enlightenment.

 How is the policy for these headers w.r.t C++ compatibility?

 The most common problems are:
 * Lack of extern C;
 * The use of C++ keywords, e.g., class (replaced for klass);
 * Functions and macros defined in the header with implicit conversion
 from unrelated pointer types;
 * Typedefs before definition or declaration of the typedef'ed UDT.

I find intriguing why would anyone create an enlightenment module in
c++. What are the advantages?

I think that if someone steps up to maintain the C++ compatibility and
send useful modules to the project, it would be welcome. I don't think
doing only the first one makes much sense.

Anyway, not my call to decide.


Lucas De Marchi

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Creating enlightenment module with C++

2013-10-10 Thread Cedric BAIL
Hello,

On Fri, Oct 11, 2013 at 2:03 AM, Felipe Magno de Almeida
felipe.m.alme...@gmail.com wrote:
 Currently, writing modules for enlightenment using C++ is not possible
 without modifying headers from enlightenment.

 How is the policy for these headers w.r.t C++ compatibility?

 The most common problems are:
 * Lack of extern C;
 * The use of C++ keywords, e.g., class (replaced for klass);
 * Functions and macros defined in the header with implicit conversion
 from unrelated pointer types;
 * Typedefs before definition or declaration of the typedef'ed UDT.

I think there was no real review and attempt to make Enlightenment a
public stable API. I think there is already ABI/API break between E17
and E18 (and also possibly E19). So I do think that just fixing all
mistake is an acceptable policy at this stage (basically patch
welcome).

Regards,
-- 
Cedric BAIL

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: ecore_imf_example: notify the cursor information in focus-in handler

2013-10-10 Thread Jihoon Kim
jihoon pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=98fac39cb90aacd6ea97a493d51e7ccb107ca880

commit 98fac39cb90aacd6ea97a493d51e7ccb107ca880
Author: Jihoon Kim jihoon48@samsung.com
Date:   Fri Oct 11 10:23:19 2013 +0900

ecore_imf_example: notify the cursor information in focus-in handler
---
 src/examples/ecore/ecore_imf_example.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/examples/ecore/ecore_imf_example.c 
b/src/examples/ecore/ecore_imf_example.c
index 406dcc6..73bf4fd 100644
--- a/src/examples/ecore/ecore_imf_example.c
+++ b/src/examples/ecore/ecore_imf_example.c
@@ -95,6 +95,9 @@ _entry_focus_in_cb(void *data, Evas *e, Evas_Object *obj, 
void *event_info)
 
if (en-imf_context)
  ecore_imf_context_focus_in(en-imf_context);
+
+   // notify the cursor information
+   _imf_cursor_info_set(en);
 }
 
 static void

-- 




[EGIT] [core/efl] master 08/09: evas: Use Eina_Spinlock for Evas_Scalecache, Evas_Async_Events and Image_Entry.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6dcffec491f2281dd8649f1196f576fa715507f3

commit 6dcffec491f2281dd8649f1196f576fa715507f3
Author: Cedric Bail cedric.b...@samsung.com
Date:   Thu Oct 10 17:44:24 2013 +0900

evas: Use Eina_Spinlock for Evas_Scalecache, Evas_Async_Events and 
Image_Entry.
---
 ChangeLog   |  1 +
 NEWS|  1 +
 src/lib/evas/cache/evas_cache_image.c   | 64 +--
 src/lib/evas/canvas/evas_async_events.c | 26 
 src/lib/evas/common/evas_image_scalecache.c | 96 ++---
 src/lib/evas/include/evas_common_private.h  | 15 +++--
 6 files changed, 106 insertions(+), 97 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9113fc1..4109be5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
use Eina_Spinlock in Eina_Log, replace Eina_Lock by Eina_Spinlock in 
Eina_Stringshare,
Eina_Chained_Mempool.
* Eet: replace Eina_Lock by Eina_Spinlock in Eet_Dictionnary.
+   * Evas: replace Eina_Lock by Eina_Spinlock in Evas_ScaleCache, 
Evas_Async_Events and Image_Entry.
 
 2013-10-10  Carsten Haitzler (The Rasterman)
 
diff --git a/NEWS b/NEWS
index 64bb665..f8895cc 100644
--- a/NEWS
+++ b/NEWS
@@ -224,6 +224,7 @@ Improvements:
  - Add neon assembly for upscaling and map routines
  - Use mmap/munmap for image data allocation on system that have mmap.
  - Add iterator for walking child of smart objects, table and a box.
+ - Use Eina_Spinlock for Evas_ScaleCache, Evas_Async_Events and 
Image_Entry.
 * Ecore_Con:
  - Rebase dns.c against upstream
  - URL support now dynamically loads libcurl at runtime via eina_module.
diff --git a/src/lib/evas/cache/evas_cache_image.c 
b/src/lib/evas/cache/evas_cache_image.c
index d8ed655..2e2e277 100644
--- a/src/lib/evas/cache/evas_cache_image.c
+++ b/src/lib/evas/cache/evas_cache_image.c
@@ -25,7 +25,7 @@ struct _Evas_Cache_Preload
Image_Entry *ie;
 };
 
-static LK(engine_lock);
+static SLK(engine_lock);
 static LK(wakeup);
 static int _evas_cache_mutex_init = 0;
 
@@ -199,9 +199,9 @@ _evas_cache_image_entry_delete(Evas_Cache_Image *cache, 
Image_Entry *ie)
ie-cache = NULL;
cache-func.surface_delete(ie);
 
-   LKD(ie-lock);
-   LKD(ie-lock_cancel);
-   LKD(ie-lock_task);
+   SLKD(ie-lock);
+   SLKD(ie-lock_cancel);
+   SLKD(ie-lock_task);
cache-func.dealloc(ie);
 }
 
@@ -271,9 +271,9 @@ _evas_cache_image_entry_new(Evas_Cache_Image *cache,
if (tstamp) ie-tstamp = *tstamp;
else memset(ie-tstamp, 0, sizeof(Image_Timestamp));
 
-   LKI(ie-lock);
-   LKI(ie-lock_cancel);
-   LKI(ie-lock_task);
+   SLKI(ie-lock);
+   SLKI(ie-lock_cancel);
+   SLKI(ie-lock_task);
 
if (lo) ie-load_opts = *lo;
if (ie-file || ie-f)
@@ -315,9 +315,9 @@ _evas_cache_image_entry_surface_alloc(Evas_Cache_Image 
*cache,
 {
int wmin = w  0 ? w : 1;
int hmin = h  0 ? h : 1;
-   LKL(engine_lock);
+   SLKL(engine_lock);
_evas_cache_image_entry_surface_alloc__locked(cache, ie, wmin, hmin);
-   LKU(engine_lock);
+   SLKU(engine_lock);
 }
 
 static void
@@ -331,7 +331,7 @@ _evas_cache_image_async_heavy(void *data)
 
current = data;
 
-   LKL(current-lock);
+   SLKL(current-lock);
pchannel = current-channel;
current-channel++;
cache = current-cache;
@@ -352,7 +352,7 @@ _evas_cache_image_async_heavy(void *data)
   {
  current-flags.loaded = 1;
 
- LKL(current-lock_task);
+ SLKL(current-lock_task);
  EINA_LIST_FREE(current-tasks, task)
{
   if (task != dummy_task)
@@ -361,12 +361,12 @@ _evas_cache_image_async_heavy(void *data)
free(task);
 }
}
- LKU(current-lock_task);
+ SLKU(current-lock_task);
   }
  }
current-channel = pchannel;
// check the unload cancel flag
-   LKL(current-lock_cancel);
+   SLKL(current-lock_cancel);
if (current-flags.unload_cancel)
  {
 current-flags.unload_cancel = EINA_FALSE;
@@ -374,8 +374,8 @@ _evas_cache_image_async_heavy(void *data)
 current-flags.loaded = 0;
 current-flags.preload_done = 0;
  }
-   LKU(current-lock_cancel);
-   LKU(current-lock);
+   SLKU(current-lock_cancel);
+   SLKU(current-lock);
 }
 
 static void
@@ -460,9 +460,9 @@ _evas_cache_image_entry_preload_add(Image_Entry *ie, const 
Eo *target,
 
ie-targets = (Evas_Cache_Target *)
   eina_inlist_append(EINA_INLIST_GET(ie-targets), EINA_INLIST_GET(tg));
-   LKL(ie-lock_task);
+   SLKL(ie-lock_task);
ie-tasks = eina_list_append(ie-tasks, task);
-   LKU(ie-lock_task);
+   SLKU(ie-lock_task);
 
if (!ie-preload)
  {
@@ -485,7 +485,7 @@ _evas_cache_image_entry_preload_remove(Image_Entry *ie, 
const Eo *target)
 
if (target)
  {
-LKL(ie-lock_task);
+

[EGIT] [core/efl] master 05/09: eo: use Eina_Spinlock instead of Eina_Lock.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=435caae51a3ee01c8b55a4c1b944b5537bf20aef

commit 435caae51a3ee01c8b55a4c1b944b5537bf20aef
Author: Cedric Bail cedric.b...@samsung.com
Date:   Thu Oct 10 17:26:02 2013 +0900

eo: use Eina_Spinlock instead of Eina_Lock.

This is an ABI/API break for Eo, you will need to rebuild everything that 
use Eo.
---
 src/lib/eo/Eo.h| 24 
 src/lib/eo/eo.c| 22 +++---
 src/lib/eo/eo_base_class.c |  8 
 src/lib/eo/eo_private.h| 12 ++--
 4 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index 0e45fd0..fb7ccc2 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -70,7 +70,7 @@ typedef short Eo_Callback_Priority;
  * Don't touch it if you don't know what you are doing.
  * @internal
  */
-EAPI extern Eina_Lock _eo_class_creation_lock;
+EAPI extern Eina_Spinlock _eo_class_creation_lock;
 
 /**
  * @internal
@@ -334,31 +334,31 @@ class_get_func_name(void) \
 { \
const Eo_Class *_tmp_parent_class; \
static volatile char lk_init = 0; \
-   static Eina_Lock _my_lock; \
+   static Eina_Spinlock _my_lock; \
static const Eo_Class * volatile _my_class = NULL; \
if (EINA_LIKELY(!!_my_class)) return _my_class; \
\
-   eina_lock_take(_eo_class_creation_lock); \
+   eina_spinlock_take(_eo_class_creation_lock); \
if (!lk_init) \
-  eina_lock_new(_my_lock); \
-   if (lk_init  2) eina_lock_take(_my_lock); \
+  eina_spinlock_new(_my_lock); \
+   if (lk_init  2) eina_spinlock_take(_my_lock); \
if (!lk_init) \
   lk_init = 1; \
else \
  { \
-if (lk_init  2) eina_lock_release(_my_lock); \
-eina_lock_release(_eo_class_creation_lock); \
+if (lk_init  2) eina_spinlock_release(_my_lock); \
+eina_spinlock_release(_eo_class_creation_lock); \
 return _my_class; \
  } \
-   eina_lock_release(_eo_class_creation_lock); \
+   eina_spinlock_release(_eo_class_creation_lock); \
_tmp_parent_class = parent_class; \
_my_class = eo_class_new(class_desc, _tmp_parent_class, __VA_ARGS__); \
-   eina_lock_release(_my_lock); \
+   eina_spinlock_release(_my_lock); \
\
-   eina_lock_take(_eo_class_creation_lock); \
-   eina_lock_free(_my_lock); \
+   eina_spinlock_take(_eo_class_creation_lock); \
+   eina_spinlock_free(_my_lock); \
lk_init = 2; \
-   eina_lock_release(_eo_class_creation_lock); \
+   eina_spinlock_release(_eo_class_creation_lock); \
return _my_class; \
 }
 
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index b15bd84..3e1d3c1 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -13,7 +13,7 @@
 #define EO_OP_IDS_FIRST 1
 
 /* Used inside the class_get functions of classes, see #EO_DEFINE_CLASS */
-EAPI Eina_Lock _eo_class_creation_lock;
+EAPI Eina_Spinlock _eo_class_creation_lock;
 int _eo_log_dom = -1;
 
 static _Eo_Class **_eo_classes;
@@ -691,8 +691,8 @@ eo_class_free(_Eo_Class *klass)
EINA_TRASH_CLEAN(klass-iterators.trash, data)
   free(data);
 
-   eina_lock_free(klass-objects.trash_lock);
-   eina_lock_free(klass-iterators.trash_lock);
+   eina_spinlock_free(klass-objects.trash_lock);
+   eina_spinlock_free(klass-iterators.trash_lock);
 
free(klass);
 }
@@ -889,8 +889,8 @@ eo_class_new(const Eo_Class_Description *desc, const 
Eo_Class *parent_id, ...)
 #ifndef HAVE_EO_ID
EINA_MAGIC_SET((Eo_Base *) klass, EO_CLASS_EINA_MAGIC);
 #endif
-   eina_lock_new(klass-objects.trash_lock);
-   eina_lock_new(klass-iterators.trash_lock);
+   eina_spinlock_new(klass-objects.trash_lock);
+   eina_spinlock_new(klass-iterators.trash_lock);
klass-parent = parent;
klass-desc = desc;
klass-extensions = (const _Eo_Class **) ((char *) klass + _eo_class_sz);
@@ -999,7 +999,7 @@ eo_class_new(const Eo_Class_Description *desc, const 
Eo_Class *parent_id, ...)
   }
  }
 
-   eina_lock_take(_eo_class_creation_lock);
+   eina_spinlock_take(_eo_class_creation_lock);
klass-header.id = ++_eo_classes_last_id;
  {
 /* FIXME: Handle errors. */
@@ -1014,7 +1014,7 @@ eo_class_new(const Eo_Class_Description *desc, const 
Eo_Class *parent_id, ...)
 _eo_classes = tmp;
 _eo_classes[klass-header.id - 1] = klass;
  }
-   eina_lock_release(_eo_class_creation_lock);
+   eina_spinlock_release(_eo_class_creation_lock);
 
_eo_class_constructor(klass);
 
@@ -1065,7 +1065,7 @@ eo_add_internal(const char *file, int line, const 
Eo_Class *klass_id, Eo *parent
 return NULL;
  }
 
-   eina_lock_take(klass-objects.trash_lock);
+   eina_spinlock_take(klass-objects.trash_lock);
obj = eina_trash_pop(klass-objects.trash);
if (obj)
  {
@@ -1076,7 +1076,7 @@ eo_add_internal(const char *file, int line, const 
Eo_Class *klass_id, Eo *parent
  {
 obj = calloc(1, klass-obj_size);
  }
-   eina_lock_release(klass-objects.trash_lock);
+   

[EGIT] [core/efl] master 03/09: eina: use Eina_Spinlock for Eina_Log.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=82d86ea42d0a17fb079c443528f6212bbb786dbb

commit 82d86ea42d0a17fb079c443528f6212bbb786dbb
Author: Cedric Bail cedric.b...@samsung.com
Date:   Thu Oct 10 17:24:34 2013 +0900

eina: use Eina_Spinlock for Eina_Log.
---
 ChangeLog   |  3 ++-
 NEWS|  1 +
 src/lib/eina/eina_log.c | 52 +
 3 files changed, 8 insertions(+), 48 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 808f62d..f700f93 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2013-10-11  Cedric Bail
 
-   * Eina: add Eina_Spinlock API.
+   * Eina: add Eina_Spinlock API,
+   use Eina_Spinlock in Eina_Log.
 
 2013-10-10  Carsten Haitzler (The Rasterman)
 
diff --git a/NEWS b/NEWS
index 91d5bd1..e49464b 100644
--- a/NEWS
+++ b/NEWS
@@ -198,6 +198,7 @@ Improvements:
  - Eina_Tiler now take tile size into account.
  - Improve support for 64bits system.
  - eina_strlcat now work with a NULL source.
+ - Use Eina_Spinlock for eina_log.
 * Eet:
  - Display more information with eet -l -v.
  - Force thread to always run during eet_cache_concurrency test.
diff --git a/src/lib/eina/eina_log.c b/src/lib/eina/eina_log.c
index 4829aad..7459d92 100644
--- a/src/lib/eina/eina_log.c
+++ b/src/lib/eina/eina_log.c
@@ -143,53 +143,11 @@ static Eina_Thread _main_thread;
   }   \
} while (0)
 
-#ifdef EFL_HAVE_POSIX_THREADS_SPINLOCK
-
-static pthread_spinlock_t _log_lock;
-
-static Eina_Bool _eina_log_spinlock_init(void)
-{
-   if (pthread_spin_init(_log_lock, PTHREAD_PROCESS_PRIVATE) == 0)
- return EINA_TRUE;
-
-   fprintf(stderr,
-   ERROR: pthread_spin_init(%p, PTHREAD_PROCESS_PRIVATE): %s\n,
-   _log_lock, strerror(errno));
-   return EINA_FALSE;
-}
-
-#   define LOG_LOCK()  \
-   if (_threads_enabled)   \
- do {  \
-if (0) {   \
-   fprintf(stderr, +++LOG LOG_LOCKED!   [%s, %lu]\n, \
-   __FUNCTION__, (unsigned long)eina_thread_self()); } \
-if (EINA_UNLIKELY(_threads_enabled)) { \
-   pthread_spin_lock(_log_lock); }\
- } while (0)
-#   define LOG_UNLOCK()\
-   if (_threads_enabled)   \
- do {  \
-if (EINA_UNLIKELY(_threads_enabled)) { \
-   pthread_spin_unlock(_log_lock); }  \
-if (0) {   \
-   fprintf(stderr, \
-   ---LOG LOG_UNLOCKED! [%s, %lu]\n, \
-   __FUNCTION__, (unsigned long)eina_thread_self()); } \
- } while (0)
-#   define INIT() _eina_log_spinlock_init()
-#   define SHUTDOWN() pthread_spin_destroy(_log_lock)
-
-#else /* ! EFL_HAVE_POSIX_THREADS_SPINLOCK */
-
-static Eina_Lock _log_mutex;
-#   define LOG_LOCK() if(_threads_enabled) {eina_lock_take(_log_mutex); }
-#   define LOG_UNLOCK() if(_threads_enabled) {eina_lock_release(_log_mutex); }
-#   define INIT() eina_lock_new(_log_mutex)
-#   define SHUTDOWN() eina_lock_free(_log_mutex)
-
-#endif /* ! EFL_HAVE_POSIX_THREADS_SPINLOCK */
-
+static Eina_Spinlock _log_mutex;
+#   define LOG_LOCK() if(_threads_enabled) {eina_spinlock_take(_log_mutex); }
+#   define LOG_UNLOCK() if(_threads_enabled) 
{eina_spinlock_release(_log_mutex); }
+#   define INIT() eina_spinlock_new(_log_mutex)
+#   define SHUTDOWN() eina_spinlock_free(_log_mutex)
 
 // List of domains registered
 static Eina_Log_Domain *_log_domains = NULL;

-- 




[EGIT] [core/efl] master 06/09: eet: use Eina_Spinlock instead of Eina_Lock for Eet_Dictionary.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b9d8a7af3ac164f47f62329c278d1cf09d9b1346

commit b9d8a7af3ac164f47f62329c278d1cf09d9b1346
Author: Cedric Bail cedric.b...@samsung.com
Date:   Thu Oct 10 17:27:41 2013 +0900

eet: use Eina_Spinlock instead of Eina_Lock for Eet_Dictionary.
---
 ChangeLog|  4 ++--
 NEWS |  1 +
 src/lib/eet/Eet_private.h|  2 +-
 src/lib/eet/eet_dictionary.c | 54 ++--
 4 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index fcedcf4..892a7a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,8 @@
 2013-10-11  Cedric Bail
 
* Eina: add Eina_Spinlock API,
-   use Eina_Spinlock in Eina_Log,
-   replace Eina_Lock by Eina_Spinlock in Eina_Stringshare.
+   use Eina_Spinlock in Eina_Log, replace Eina_Lock by Eina_Spinlock in 
Eina_Stringshare.
+   * Eet: replace Eina_Lock by Eina_Spinlock in Eet_Dictionnary.
 
 2013-10-10  Carsten Haitzler (The Rasterman)
 
diff --git a/NEWS b/NEWS
index 509d17c..00c4dbd 100644
--- a/NEWS
+++ b/NEWS
@@ -202,6 +202,7 @@ Improvements:
 * Eet:
  - Display more information with eet -l -v.
  - Force thread to always run during eet_cache_concurrency test.
+ - Use Eina_Spinlock for locking dictionnary instead of Eina_Lock.
 * Evas:
  - Reduced number of enqueued font commands when rendering textgrid objects
  - Use Eina_File in webp, gif, tiff, png and eet loader
diff --git a/src/lib/eet/Eet_private.h b/src/lib/eet/Eet_private.h
index af4f75e..5d57c01 100644
--- a/src/lib/eet/Eet_private.h
+++ b/src/lib/eet/Eet_private.h
@@ -40,7 +40,7 @@ struct _Eet_Dictionary
unsigned char *all_allocated;
 
Eina_Hash  *converts;
-   Eina_Lock   mutex;
+   Eina_Spinlock   mutex;
 
int size;
int offset;
diff --git a/src/lib/eet/eet_dictionary.c b/src/lib/eet/eet_dictionary.c
index b003616..d346650 100644
--- a/src/lib/eet/eet_dictionary.c
+++ b/src/lib/eet/eet_dictionary.c
@@ -21,7 +21,7 @@ eet_dictionary_add(void)
  return NULL;
 
memset(new-hash, -1, sizeof (int) * 256);
-   eina_lock_new(new-mutex);
+   eina_spinlock_new(new-mutex);
 
return new;
 }
@@ -33,7 +33,7 @@ eet_dictionary_free(Eet_Dictionary *ed)
 
if (!ed) return;
 
-   eina_lock_free(ed-mutex);
+   eina_spinlock_free(ed-mutex);
 
for (i = 0; i  ed-count; ++i)
  if (ed-all_allocated[i  8]  (1  (i  0x7)))
@@ -108,7 +108,7 @@ eet_dictionary_string_add(Eet_Dictionary *ed,
hash = _eet_hash_gen(string, 8);
len = strlen(string) + 1;
 
-   eina_lock_take(ed-mutex);
+   eina_spinlock_take(ed-mutex);
 
idx = _eet_dictionary_lookup(ed, string, len, hash, pidx);
 
@@ -118,7 +118,7 @@ eet_dictionary_string_add(Eet_Dictionary *ed,
 ((ed-all[idx].str == string) ||
 (!strcmp(ed-all[idx].str, string
  {
-   eina_lock_release(ed-mutex);
+   eina_spinlock_release(ed-mutex);
return idx;
  }
  }
@@ -174,11 +174,11 @@ eet_dictionary_string_add(Eet_Dictionary *ed,
  }
 
cnt = ed-count++;
-   eina_lock_release(ed-mutex);
+   eina_spinlock_release(ed-mutex);
return cnt;
 
  on_error:
-   eina_lock_release(ed-mutex);
+   eina_spinlock_release(ed-mutex);
return -1;
 }
 
@@ -192,12 +192,12 @@ eet_dictionary_string_get_size(const Eet_Dictionary *ed,
 
if (idx  0) goto done;
 
-   eina_lock_take((Eina_Lock*) ed-mutex);
+   eina_spinlock_take((Eina_Spinlock*) ed-mutex);
 
if (idx  ed-count)
  length = ed-all[idx].len;
 
-   eina_lock_release((Eina_Lock*) ed-mutex);
+   eina_spinlock_release((Eina_Spinlock*) ed-mutex);
 
  done:
return length;
@@ -219,12 +219,12 @@ eet_dictionary_string_get_hash(const Eet_Dictionary *ed,
 
if (idx  0) goto done;
 
-   eina_lock_take((Eina_Lock*) ed-mutex);
+   eina_spinlock_take((Eina_Spinlock*) ed-mutex);
 
if (idx  ed-count)
  hash = ed-all_hash[idx];
 
-   eina_lock_release((Eina_Lock*) ed-mutex);
+   eina_spinlock_release((Eina_Spinlock*) ed-mutex);
 
  done:
return hash;
@@ -240,7 +240,7 @@ eet_dictionary_string_get_char(const Eet_Dictionary *ed,
 
if (idx  0) goto done;
 
-   eina_lock_take((Eina_Lock*) ed-mutex);
+   eina_spinlock_take((Eina_Spinlock*) ed-mutex);
 
if (idx  ed-count)
  {
@@ -255,7 +255,7 @@ eet_dictionary_string_get_char(const Eet_Dictionary *ed,
 s = ed-all[idx].str;
  }
 
-   eina_lock_release((Eina_Lock*) ed-mutex);
+   eina_spinlock_release((Eina_Spinlock*) ed-mutex);
 
  done:
return s;
@@ -333,14 +333,14 @@ _eet_dictionary_test(const Eet_Dictionary *ed,
 
if (idx  0) goto done;
 
-   eina_lock_take((Eina_Lock*) ed-mutex);
+   eina_spinlock_take((Eina_Spinlock*) ed-mutex);
 
if (!(idx  ed-count)) goto unlock_done;
 
limit = EINA_TRUE;
 
  unlock_done:
-   eina_lock_release((Eina_Lock*) ed-mutex);
+   

[EGIT] [core/efl] master 04/09: eina: use Eina_Spinlock in Eina_Stringshare instead of Eina_Lock.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0aa77d7ddebf2980c11c1e1f4a6f116ab5f2ef9e

commit 0aa77d7ddebf2980c11c1e1f4a6f116ab5f2ef9e
Author: Cedric Bail cedric.b...@samsung.com
Date:   Thu Oct 10 17:25:39 2013 +0900

eina: use Eina_Spinlock in Eina_Stringshare instead of Eina_Lock.
---
 ChangeLog|  3 ++-
 NEWS |  2 +-
 src/lib/eina/eina_share_common.c | 52 
 src/lib/eina/eina_stringshare.c  | 18 +++---
 4 files changed, 38 insertions(+), 37 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f700f93..fcedcf4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,8 @@
 2013-10-11  Cedric Bail
 
* Eina: add Eina_Spinlock API,
-   use Eina_Spinlock in Eina_Log.
+   use Eina_Spinlock in Eina_Log,
+   replace Eina_Lock by Eina_Spinlock in Eina_Stringshare.
 
 2013-10-10  Carsten Haitzler (The Rasterman)
 
diff --git a/NEWS b/NEWS
index e49464b..509d17c 100644
--- a/NEWS
+++ b/NEWS
@@ -198,7 +198,7 @@ Improvements:
  - Eina_Tiler now take tile size into account.
  - Improve support for 64bits system.
  - eina_strlcat now work with a NULL source.
- - Use Eina_Spinlock for eina_log.
+ - Use Eina_Spinlock for eina_log, eina_stringshare.
 * Eet:
  - Display more information with eet -l -v.
  - Force thread to always run during eet_cache_concurrency test.
diff --git a/src/lib/eina/eina_share_common.c b/src/lib/eina/eina_share_common.c
index c2b64ac..0682b6e 100644
--- a/src/lib/eina/eina_share_common.c
+++ b/src/lib/eina/eina_share_common.c
@@ -174,7 +174,7 @@ struct _Eina_Share_Common_Head
 
 Eina_Bool _share_common_threads_activated = EINA_FALSE;
 
-static Eina_Lock _mutex_big;
+static Eina_Spinlock _mutex_big;
 
 #ifdef EINA_STRINGSHARE_USAGE
 
@@ -256,9 +256,9 @@ eina_share_common_population_nolock_add(Eina_Share *share, 
int slen)
 void
 eina_share_common_population_add(Eina_Share *share, int slen)
 {
-   eina_lock_take(_mutex_big);
+   eina_spinlock_take(_mutex_big);
eina_share_common_population_nolock_add(share, slen);
-   eina_lock_release(_mutex_big);
+   eina_spinlock_release(_mutex_big);
 }
 
 static void
@@ -272,9 +272,9 @@ eina_share_common_population_nolock_del(Eina_Share *share, 
int slen)
 void
 eina_share_common_population_del(Eina_Share *share, int slen)
 {
-   eina_lock_take(_mutex_big);
+   eina_spinlock_take(_mutex_big);
eina_share_common_population_nolock_del(chare, slen);
-   eina_lock_release(_mutex_big);
+   eina_spinlock_release(_mutex_big);
 }
 
 static void
@@ -634,7 +634,7 @@ eina_share_common_init(Eina_Share **_share,
if (_eina_share_common_count++ != 0)
  return EINA_TRUE;
 
-   eina_lock_new(_mutex_big);
+   eina_spinlock_new(_mutex_big);
return EINA_TRUE;
 
  on_error:
@@ -659,7 +659,7 @@ eina_share_common_shutdown(Eina_Share **_share)
unsigned int i;
Eina_Share *share = *_share;
 
-   eina_lock_take(_mutex_big);
+   eina_spinlock_take(_mutex_big);
 
_eina_share_common_population_stats(share);
 
@@ -676,7 +676,7 @@ eina_share_common_shutdown(Eina_Share **_share)
 
_eina_share_common_population_shutdown(share);
 
-   eina_lock_release(_mutex_big);
+   eina_spinlock_release(_mutex_big);
 
free(*_share);
*_share = NULL;
@@ -685,7 +685,7 @@ eina_share_common_shutdown(Eina_Share **_share)
if (--_eina_share_common_count != 0)
  return EINA_TRUE;
 
-   eina_lock_free(_mutex_big);
+   eina_spinlock_free(_mutex_big);
 
return EINA_TRUE;
 }
@@ -752,7 +752,7 @@ eina_share_common_add_length(Eina_Share *share,
 
hash = eina_hash_superfast(str, slen);
 
-   eina_lock_take(_mutex_big);
+   eina_spinlock_take(_mutex_big);
p_bucket = share-share-buckets + EINA_SHARE_COMMON_BUCKET_IDX(hash);
 
ed = _eina_share_common_find_hash(*p_bucket, 
EINA_SHARE_COMMON_NODE_HASH(hash));
@@ -764,27 +764,27 @@ eina_share_common_add_length(Eina_Share *share,
 str,
 slen,
 null_size);
-eina_lock_release(_mutex_big);
+eina_spinlock_release(_mutex_big);
 return s;
  }
 
-   EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(ed, eina_lock_release(_mutex_big), 
NULL);
+   EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(ed, eina_spinlock_release(_mutex_big), 
NULL);
 
el = _eina_share_common_head_find(ed, str, slen);
if (el)
  {
 EINA_MAGIC_CHECK_SHARE_COMMON_NODE(el,
share-node_magic,
-   eina_lock_release(_mutex_big));
+   eina_spinlock_release(_mutex_big));
 el-references++;
-   eina_lock_release(_mutex_big);
+   eina_spinlock_release(_mutex_big);
 return el-str;
 

[EGIT] [core/efl] master 07/09: eina: use Eina_Spinlock for Eina_Chained_Mempool.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=12d34309c7c6e3f3041ee576afe93f9ca335059e

commit 12d34309c7c6e3f3041ee576afe93f9ca335059e
Author: Cedric Bail cedric.b...@samsung.com
Date:   Thu Oct 10 17:31:54 2013 +0900

eina: use Eina_Spinlock for Eina_Chained_Mempool.
---
 ChangeLog|  3 ++-
 NEWS |  2 +-
 .../eina/mp/chained_pool/eina_chained_mempool.c  | 20 ++--
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 892a7a8..9113fc1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,8 @@
 2013-10-11  Cedric Bail
 
* Eina: add Eina_Spinlock API,
-   use Eina_Spinlock in Eina_Log, replace Eina_Lock by Eina_Spinlock in 
Eina_Stringshare.
+   use Eina_Spinlock in Eina_Log, replace Eina_Lock by Eina_Spinlock in 
Eina_Stringshare,
+   Eina_Chained_Mempool.
* Eet: replace Eina_Lock by Eina_Spinlock in Eet_Dictionnary.
 
 2013-10-10  Carsten Haitzler (The Rasterman)
diff --git a/NEWS b/NEWS
index 00c4dbd..64bb665 100644
--- a/NEWS
+++ b/NEWS
@@ -198,7 +198,7 @@ Improvements:
  - Eina_Tiler now take tile size into account.
  - Improve support for 64bits system.
  - eina_strlcat now work with a NULL source.
- - Use Eina_Spinlock for eina_log, eina_stringshare.
+ - Use Eina_Spinlock for eina_log, eina_stringshare and chained_mempool.
 * Eet:
  - Display more information with eet -l -v.
  - Force thread to always run during eet_cache_concurrency test.
diff --git a/src/modules/eina/mp/chained_pool/eina_chained_mempool.c 
b/src/modules/eina/mp/chained_pool/eina_chained_mempool.c
index 830ad67..e3fcb59 100644
--- a/src/modules/eina/mp/chained_pool/eina_chained_mempool.c
+++ b/src/modules/eina/mp/chained_pool/eina_chained_mempool.c
@@ -84,7 +84,7 @@ struct _Chained_Mempool
 #ifdef EINA_HAVE_DEBUG_THREADS
Eina_Thread self;
 #endif
-   Eina_Lock mutex;
+   Eina_Spinlock mutex;
 };
 
 typedef struct _Chained_Pool Chained_Pool;
@@ -268,7 +268,7 @@ eina_chained_mempool_malloc(void *data, EINA_UNUSED 
unsigned int size)
Chained_Pool *p = NULL;
void *mem;
 
-   if (!eina_lock_take(pool-mutex))
+   if (!eina_spinlock_take(pool-mutex))
  {
 #ifdef EINA_HAVE_DEBUG_THREADS
 assert(eina_thread_equal(pool-self, eina_thread_self()));
@@ -294,7 +294,7 @@ eina_chained_mempool_malloc(void *data, EINA_UNUSED 
unsigned int size)
 p = _eina_chained_mp_pool_new(pool);
 if (!p)
   {
- eina_lock_release(pool-mutex);
+ eina_spinlock_release(pool-mutex);
  return NULL;
   }
 
@@ -305,7 +305,7 @@ eina_chained_mempool_malloc(void *data, EINA_UNUSED 
unsigned int size)
 
mem = _eina_chained_mempool_alloc_in(pool, p);
 
-   eina_lock_release(pool-mutex);
+   eina_spinlock_release(pool-mutex);
 
return mem;
 }
@@ -318,7 +318,7 @@ eina_chained_mempool_free(void *data, void *ptr)
Chained_Pool *p;
 
// look 4 pool
-   if (!eina_lock_take(pool-mutex))
+   if (!eina_spinlock_take(pool-mutex))
  {
 #ifdef EINA_HAVE_DEBUG_THREADS
 assert(eina_thread_equal(pool-self, eina_thread_self()));
@@ -349,7 +349,7 @@ eina_chained_mempool_free(void *data, void *ptr)
  }
 #endif
 
-   eina_lock_release(pool-mutex);
+   eina_spinlock_release(pool-mutex);
return;
 }
 
@@ -363,7 +363,7 @@ eina_chained_mempool_repack(void *data,
   Chained_Pool *tail;
 
   /* FIXME: Improvement - per Chained_Pool lock */
-   if (!eina_lock_take(pool-mutex))
+   if (!eina_spinlock_take(pool-mutex))
  {
 #ifdef EINA_HAVE_DEBUG_THREADS
 assert(eina_thread_equal(pool-self, eina_thread_self()));
@@ -436,7 +436,7 @@ eina_chained_mempool_repack(void *data,
  }
 
/* FIXME: improvement - reorder pool so that the most used one get in front 
*/
-   eina_lock_release(pool-mutex);
+   eina_spinlock_release(pool-mutex);
 }
 
 static void *
@@ -492,7 +492,7 @@ eina_chained_mempool_init(const char *context,
mp-self = eina_thread_self();
 #endif
 
-   eina_lock_new(mp-mutex);
+   eina_spinlock_new(mp-mutex);
 
return mp;
 }
@@ -530,7 +530,7 @@ eina_chained_mempool_shutdown(void *data)
VALGRIND_DESTROY_MEMPOOL(mp);
 #endif
 
-   eina_lock_free(mp-mutex);
+   eina_spinlock_free(mp-mutex);
 
 #ifdef EINA_HAVE_DEBUG_THREADS
assert(eina_thread_equal(mp-self, eina_thread_self()));

-- 




[EGIT] [core/efl] master 02/09: eina: add Eina_Spinlock API.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1b07350a460fd7177d894116f422577325842225

commit 1b07350a460fd7177d894116f422577325842225
Author: Cedric Bail cedric.b...@samsung.com
Date:   Thu Oct 10 17:22:28 2013 +0900

eina: add Eina_Spinlock API.
---
 ChangeLog |  4 ++
 NEWS  |  1 +
 configure.ac  |  3 +-
 m4/efl_threads.m4 |  2 +
 src/lib/eina/eina_config.h.in |  5 +++
 src/lib/eina/eina_inline_lock_posix.x | 83 +++
 src/lib/eina/eina_inline_lock_win32.x | 32 ++
 src/lib/eina/eina_inline_lock_wince.x | 31 +
 src/lib/eina/eina_lock.h  | 10 +
 9 files changed, 170 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index f81b139..808f62d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-10-11  Cedric Bail
+
+   * Eina: add Eina_Spinlock API.
+
 2013-10-10  Carsten Haitzler (The Rasterman)
 
 * Ecore-con: use dlopen/dlsym (eina_module) to load libcurl to
diff --git a/NEWS b/NEWS
index fa99192..91d5bd1 100644
--- a/NEWS
+++ b/NEWS
@@ -41,6 +41,7 @@ Additions:
  EINA_RECTANGLE_INIT, EINA_RECTANGLE_FORMAT, EINA_RECTANGLE_ARGS.
  - Add eina_f16p16_double_from(), eina_f16p16_double_to().
  - Add eina_swap16(), eina_swap32(), eina_swap64().
+ - Add Eina_Spinlock API.
 * Eet:
  - Add eet_mmap()
  - Add eet_data_descriptor_name_get()
diff --git a/configure.ac b/configure.ac
index f9e61b3..8938381 100644
--- a/configure.ac
+++ b/configure.ac
@@ -825,7 +825,8 @@ EFL_ADD_CFLAGS([EINA], [${EFL_PTHREAD_CFLAGS}])
 
 EINA_CONFIG([HAVE_PTHREAD_BARRIER], [test x${efl_have_pthread_barrier} = 
xyes])
 EINA_CONFIG([HAVE_PTHREAD_AFFINITY], [test x${efl_have_setaffinity} = 
xyes])
-EINA_CONFIG([HAVE_DEBUG_THREADS], [test $want_debug_threads = yes])
+EINA_CONFIG([HAVE_DEBUG_THREADS], [test x${want_debug_threads} = xyes])
+EINA_CONFIG([HAVE_POSIX_SPINLOCK], [test x${efl_have_posix_threads_spinlock} 
= xyes])
 
 ### Modules
 
diff --git a/m4/efl_threads.m4 b/m4/efl_threads.m4
index a657500..e7a84b3 100644
--- a/m4/efl_threads.m4
+++ b/m4/efl_threads.m4
@@ -116,11 +116,13 @@ if test x${_efl_have_posix_threads} = xyes ; then
AC_LINK_IFELSE(
   [AC_LANG_PROGRAM([[
 #include pthread.h
+#include sched.h
]],
[[
 pthread_spinlock_t lock;
 int res;
 res = pthread_spin_init(lock, PTHREAD_PROCESS_PRIVATE);
+sched_yield();
]])],
   [efl_have_posix_threads_spinlock=yes],
   [efl_have_posix_threads_spinlock=no])
diff --git a/src/lib/eina/eina_config.h.in b/src/lib/eina/eina_config.h.in
index 27acdf7..72e3ed3 100644
--- a/src/lib/eina/eina_config.h.in
+++ b/src/lib/eina/eina_config.h.in
@@ -92,4 +92,9 @@
 #endif
 @EINA_CONFIGURE_HAVE_BYTESWAP_H@
 
+#ifdef EINA_HAVE_POSIX_SPINLOCK
+# undef EINA_HAVE_POSIX_SPINLOCK
+#endif
+@EINA_CONFIGURE_HAVE_POSIX_SPINLOCK@
+
 #endif /* EINA_CONFIG_H_ */
diff --git a/src/lib/eina/eina_inline_lock_posix.x 
b/src/lib/eina/eina_inline_lock_posix.x
index 88c4b61..4727177 100644
--- a/src/lib/eina/eina_inline_lock_posix.x
+++ b/src/lib/eina/eina_inline_lock_posix.x
@@ -19,6 +19,10 @@
 #ifndef EINA_INLINE_LOCK_POSIX_X_
 #define EINA_INLINE_LOCK_POSIX_X_
 
+#ifdef EINA_HAVE_POSIX_SPINLOCK
+# include sched.h
+#endif
+
 #include errno.h
 #ifndef __USE_UNIX98
 # define __USE_UNIX98
@@ -49,6 +53,11 @@ typedef struct _Eina_RWLock Eina_RWLock;
 typedef struct _Eina_Condition Eina_Condition;
 typedef pthread_key_t Eina_TLS;
 typedef sem_t Eina_Semaphore;
+#ifdef EINA_HAVE_POSIX_SPINLOCK
+typedef pthread_spinlock_t Eina_Spinlock;
+#else
+typedef Eina_Lock Eina_Spinlock;
+#endif
 
 struct _Eina_Lock
 {
@@ -577,5 +586,79 @@ eina_barrier_wait(Eina_Barrier *barrier)
 #include eina_inline_lock_barrier.x
 #endif
 
+static inline Eina_Bool
+eina_spinlock_new(Eina_Spinlock *spinlock)
+{
+#ifdef EINA_HAVE_POSIX_SPINLOCK
+   return pthread_spin_init(spinlock, PTHREAD_PROCESS_PRIVATE) == 0 ? 
EINA_TRUE : EINA_FALSE;
+#else
+   return eina_lock_new(spinlock);
+#endif
+}
+
+static inline Eina_Lock_Result
+eina_spinlock_take(Eina_Spinlock *spinlock)
+{
+#ifdef EINA_HAVE_POSIX_SPINLOCK
+   Eina_Bool yield;
+   int t;
+
+   do {
+  yield = EINA_FALSE;
+
+  t = pthread_spin_trylock(spinlock);
+  if (t != 0)
+{
+   if (errno == EBUSY)
+ {
+sched_yield();
+yield = EINA_TRUE;
+ }
+   else if (errno == EDEADLK)
+ {
+return EINA_LOCK_DEADLOCK;
+ }
+}
+
+   } while (t != 0  yield);
+
+   return t ? EINA_LOCK_FAIL : EINA_LOCK_SUCCEED;
+#else
+   return eina_lock_take(spinlock);
+#endif
+}
+
+static inline Eina_Lock_Result
+eina_spinlock_take_try(Eina_Spinlock *spinlock)
+{
+#ifdef EINA_HAVE_POSIX_SPINLOCK
+   int t;
+
+   t = 

[EGIT] [core/efl] master 01/09: eina: move header detection to the appropriate section.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a230728162efd743cec18f8e2a000aac8dab0580

commit a230728162efd743cec18f8e2a000aac8dab0580
Author: Cedric Bail cedric.b...@samsung.com
Date:   Fri Oct 4 15:35:30 2013 +0900

eina: move header detection to the appropriate section.
---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index e9efd1f..f9e61b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -783,6 +783,8 @@ CFLAGS=${CFLAGS} ${EINA_CFLAGS}
 AC_CHECK_HEADERS([sys/mman.h])
 CFLAGS=${CFLAGS_save}
 
+AC_CHECK_HEADER([byteswap.h], [have_byteswap=yes], [have_byteswap=no])
+
 ### Checks for types
 
 EINA_CONFIG([HAVE_DIRENT_H], [test x${have_dirent} = xyes])
@@ -792,8 +794,6 @@ AC_DEFINE_IF([HAVE_DIRENT_H], [test x${have_dirent} = 
xyes],
 ### Checks for structures
 
 ### Checks for compiler characteristics
-AC_CHECK_HEADER([byteswap.h], [have_byteswap=yes], [have_byteswap=no])
-
 EINA_CONFIG([HAVE_BYTESWAP_H], [test x${have_byteswap} = xyes])
 
 EFL_CHECK_GCC_BUILTIN([bswap16], [HAVE_BSWAP16])

-- 




[EGIT] [core/efl] master 09/09: ecore: Use Eina_Spinlock for Ecore_Thread.

2013-10-10 Thread Cedric Bail
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7caef271dc7d52b119d3ca607ec8721fc2660b5e

commit 7caef271dc7d52b119d3ca607ec8721fc2660b5e
Author: Cedric Bail cedric.b...@samsung.com
Date:   Thu Oct 10 18:02:00 2013 +0900

ecore: Use Eina_Spinlock for Ecore_Thread.
---
 ChangeLog|   1 +
 NEWS |   2 +
 src/lib/ecore/ecore_thread.c | 156 ++-
 3 files changed, 84 insertions(+), 75 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4109be5..58d181b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
Eina_Chained_Mempool.
* Eet: replace Eina_Lock by Eina_Spinlock in Eet_Dictionnary.
* Evas: replace Eina_Lock by Eina_Spinlock in Evas_ScaleCache, 
Evas_Async_Events and Image_Entry.
+   * Ecore: use Eina_Spinlock for Ecore_Thread.
 
 2013-10-10  Carsten Haitzler (The Rasterman)
 
diff --git a/NEWS b/NEWS
index f8895cc..19c4350 100644
--- a/NEWS
+++ b/NEWS
@@ -225,6 +225,8 @@ Improvements:
  - Use mmap/munmap for image data allocation on system that have mmap.
  - Add iterator for walking child of smart objects, table and a box.
  - Use Eina_Spinlock for Evas_ScaleCache, Evas_Async_Events and 
Image_Entry.
+* Ecore:
+ - Use Eina_Spinlock for Ecore_Thread.
 * Ecore_Con:
  - Rebase dns.c against upstream
  - URL support now dynamically loads libcurl at runtime via eina_module.
diff --git a/src/lib/ecore/ecore_thread.c b/src/lib/ecore/ecore_thread.c
index ee13c45..fed5b33 100644
--- a/src/lib/ecore/ecore_thread.c
+++ b/src/lib/ecore/ecore_thread.c
@@ -21,6 +21,12 @@
 # define LKL(x) eina_lock_take((x))
 # define LKU(x) eina_lock_release((x))
 
+# define SLK(x) Eina_Spinlock x
+# define SLKI(x) eina_spinlock_new((x))
+# define SLKD(x) eina_spinlock_free((x))
+# define SLKL(x) eina_spinlock_take((x))
+# define SLKU(x) eina_spinlock_release((x))
+
 # define CD(x) Eina_Condition x
 # define CDI(x, m) eina_condition_new((x), (m))
 # define CDD(x) eina_condition_free((x))
@@ -92,7 +98,7 @@ struct _Ecore_Pthread_Worker
 
int cancel;
 
-   LK(cancel_mutex);
+   SLK(cancel_mutex);
 
Eina_Bool message_run : 1;
Eina_Bool feedback_run : 1;
@@ -135,8 +141,8 @@ static int _ecore_thread_count = 0;
 static Eina_List *_ecore_running_job = NULL;
 static Eina_List *_ecore_pending_job_threads = NULL;
 static Eina_List *_ecore_pending_job_threads_feedback = NULL;
-static LK(_ecore_pending_job_threads_mutex);
-static LK(_ecore_running_job_mutex);
+static SLK(_ecore_pending_job_threads_mutex);
+static SLK(_ecore_running_job_mutex);
 
 static Eina_Hash *_ecore_thread_global_hash = NULL;
 static LRWK(_ecore_thread_global_hash_lock);
@@ -170,7 +176,7 @@ static PH(get_main_loop_thread) (void)
 static void
 _ecore_thread_worker_free(Ecore_Pthread_Worker *worker)
 {
-   LKD(worker-cancel_mutex);
+   SLKD(worker-cancel_mutex);
CDD(worker-cond);
LKD(worker-mutex);
 
@@ -319,41 +325,41 @@ _ecore_short_job(PH(thread))
Ecore_Pthread_Worker *work;
int cancel;
 
-   LKL(_ecore_pending_job_threads_mutex);
+   SLKL(_ecore_pending_job_threads_mutex);

if (!_ecore_pending_job_threads)
  {
-LKU(_ecore_pending_job_threads_mutex);
+SLKU(_ecore_pending_job_threads_mutex);
 return;
  }

work = eina_list_data_get(_ecore_pending_job_threads);
_ecore_pending_job_threads = 
eina_list_remove_list(_ecore_pending_job_threads,
   
_ecore_pending_job_threads);
-   LKU(_ecore_pending_job_threads_mutex);
+   SLKU(_ecore_pending_job_threads_mutex);
 
-   LKL(_ecore_running_job_mutex);
+   SLKL(_ecore_running_job_mutex);
_ecore_running_job = eina_list_append(_ecore_running_job, work);
-   LKU(_ecore_running_job_mutex);
+   SLKU(_ecore_running_job_mutex);

-   LKL(work-cancel_mutex);
+   SLKL(work-cancel_mutex);
cancel = work-cancel;
-   LKU(work-cancel_mutex);
+   SLKU(work-cancel_mutex);
work-self = thread;
if (!cancel)
  work-u.short_run.func_blocking((void *) work-data, (Ecore_Thread*) 
work);
 
-   LKL(_ecore_running_job_mutex);
+   SLKL(_ecore_running_job_mutex);
_ecore_running_job = eina_list_remove(_ecore_running_job, work);
-   LKU(_ecore_running_job_mutex);
+   SLKU(_ecore_running_job_mutex);

if (work-reschedule)
  {
 work-reschedule = EINA_FALSE;
 
-LKL(_ecore_pending_job_threads_mutex);
+SLKL(_ecore_pending_job_threads_mutex);
 _ecore_pending_job_threads = 
eina_list_append(_ecore_pending_job_threads, work);
-LKU(_ecore_pending_job_threads_mutex);
+SLKU(_ecore_pending_job_threads_mutex);
  }
else
  {
@@ -367,40 +373,40 @@ _ecore_feedback_job(PH(thread))
Ecore_Pthread_Worker *work;
int cancel;

-   LKL(_ecore_pending_job_threads_mutex);
+   SLKL(_ecore_pending_job_threads_mutex);

if 

Re: [E-devel] Creating enlightenment module with C++

2013-10-10 Thread The Rasterman
On Fri, 11 Oct 2013 00:03:00 + Felipe Magno de Almeida
felipe.m.alme...@gmail.com said:

 Hello,
 
 Currently, writing modules for enlightenment using C++ is not possible
 without modifying headers from enlightenment.
 
 How is the policy for these headers w.r.t C++ compatibility?
 
 The most common problems are:
 * Lack of extern C;

you can always:

extern C {
#include e.h
}
in your c++ module.

beware. you MUST also ensure your module symbols for init/shutdown etc. are not
mangled.

 * The use of C++ keywords, e.g., class (replaced for klass);

like above. you can split your module into the c++ and c sections, having the c
sections wrap/access e and expose to the c++ section. :) the c++ section never
sees e includes. :)

 * Functions and macros defined in the header with implicit conversion
 from unrelated pointer types;
 * Typedefs before definition or declaration of the typedef'ed UDT.

as above. you can split. create a c interface shim to e that doesnt expose
these things and exposes a c++ friendly interface... and you need to do this
split anyway to ensure the module init/shutdown etc. apis are not mangled...

so... why would you want a c++ module? (like ALL of it entirely in c++?)

 Regards,
 -- 
 Felipe Magno de Almeida
 
 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 


-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel