Re: [E-devel] promises...
On Wed, 8 Jun 2016 10:07:33 -0700 Cedric BAILsaid: > On Wed, Jun 8, 2016 at 8:10 AM, wrote: > > On Wed, Jun 08, 2016 at 08:16:20PM +0900, Carsten Haitzler wrote: > >> > > [...] > >> they should be eo objects. > > > > I wondered in the beginning why promises are not a eo object, comparing the > > two models shows that it can be dangerous moving promises to a Eo.Base > > class. > > > > Take a look at the events, when in a promise the then callback is > > called the callback is unsubscribed, and never called again. When a then > > callback is attached after the value is set the then callback is called > > while beeing added. So this is a completly different sematic compared to > > Eo.Base. Of course a implementation can be treated to do smth. like > > that, but i think its confusing to users of a api, if objects behave > > differently under the same base api. > > > > Also when attaching a then_cb you will get a ref of the promise, so as > > long as your then_cb is not called the promise will not be freed. This > > is also something which does not play with the ref/unref system of > > Eo.Base. > > > > Basically you can say, after the then_cb you just have to nuke your > > reference to your promise, at the best dont keep a reference to it. > > > > So all in all the concept of A Promise inheriting from Eo.Base doesnt > > sound sane to me, and looks like a huge confusion you can get in. So I > > would prefer to keep the promises as they are, exept the idea of using > > Eo_Id to make the pointer more secure. > > Good point. It should have been a generic infrastructure anyway. Will > work on that. Don't do this.. because it shouldn't! promises should be eo objects! don't go duplicating this in eina just because you can't see that eina promises are objects. -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] promises...
On Wed, 8 Jun 2016 22:37:55 +1000 David Seikelsaid: > I'm just gonna pipe in here a little bit. > > On Wed, 8 Jun 2016 20:16:20 +0900 Carsten Haitzler (The Rasterman) > wrote: > > > > If history tell us, our existing solution is not usable, but prove > > > me wrong and show me how amazing our current limited set of > > > asynchronous API is used by so many people. Now just think that we > > > are expanding > > > > as above. ecore_con. ecore_con_url, preload, timer, job, > > animator, all used. > > I use ecore_con, timer, job, and animator in a couple of my projects. > The first two I use a lot in my huge project. ecore_con_url and > preload I just haven't bothered to try out yet. I also use EFL > threads and ecore fd handler for some async stuff. > > There was one thing I was thinking that I might try promises on, once > the API and arguments are settled, replacing timer and job for > sequencing some async startup stuff. That would still leave ecore_con, > timer, and threads heavily used in that project, but I think that's the > only place I use job. Promises as initially described to me seems like > a slightly better fit than timers and jobs for this startup stuff. > > I've not actually looked at promises yet though, but I agree in > principle with Raster when he says that things should be consistent and > use the same infrastructure. Having said that, now I'm wondering why we > can't just extend jobs? actually jobs in current efl are promises, so it's kind of inverted. but promises are objects. a job is now a promise. you want to track it and cancel/unref/whatever it hwne you no longer need it. this is why i keep saying they are objects thus should be eo. -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] promises...
On Wed, 8 Jun 2016 17:10:07 +0200 marcel-hollerb...@t-online.de said: > Hello, > > On Wed, Jun 08, 2016 at 08:16:20PM +0900, Carsten Haitzler wrote: > > > [...] > > they should be eo objects. > > I wondered in the beginning why promises are not a eo object, comparing the > two models shows that it can be dangerous moving promises to a Eo.Base class. how so? > Take a look at the events, when in a promise the then callback is > called the callback is unsubscribed, and never called again. When a then > callback is attached after the value is set the then callback is called > while beeing added. So this is a completly different sematic compared to > Eo.Base. Of course a implementation can be treated to do smth. like > that, but i think its confusing to users of a api, if objects behave > differently under the same base api. i disagree. having eina_promise_ref in addition to eo_ref, having yet another copy of the oi id indirection to make promise i'ds safe etc. is worse than making a promise live within eo api. as i keep saying - the solution is worse than the disease. we dont HAVE to use eo event callbacks though. we could special case then/else in eo promises and of course require those to be hand bound specifically. eo objects that delete after their task is done can be tagged in eo as such specific objects, just like proxy objects delete themselves after use. it isnt confusing when its tagged. it's just a PAIN to have eina_promise vs eo_* in c. in c++, js, lua promises are normal objects with all normal object operations of referencing, gc'ing, deletion etc. just like eo is for c. in other langs they use the SAME object api as all other objects, why are they so special in c where they should not? all they do is cause pain in c. in other langs they are full blown normal objects as i am saying they should be in c. we can do: eo_promise_then(promise, done_cb, err_cb, data); it's a special manually bound method that has the 2 cb's. all the eina_promise progress stuff can be dropped and done as eo event extensions. any events until the done/err can be extended as much as desired via eo callbaks. it nukes a huge amount of the eina promise api. no need for the progress_cb stuff and only extend where needed and use normal inheritance/classes for this. have a promise progress class for anything needing to extend promises to do progress that inherits from the promise class. and so on... > Also when attaching a then_cb you will get a ref of the promise, so as > long as your then_cb is not called the promise will not be freed. This > is also something which does not play with the ref/unref system of > Eo.Base. see above. and we already define proxy objects to specially delete themselves after their furst use. is this no different to the promise deleting itself after the then/error cb? it's aproprty of the object. it's specific to promises. you have to learn this behaviour with eina_promise objects anyway and in c++, js and lua you have normal "regular objects" that are hiding the eina_promises that behave exactly this way... so the argument that promises are somehow special and cant be eo objects falls apart the moment you are in c++, js or lua where they ARE such objects. so i call the argument "bogus" on the best of days. > Basically you can say, after the then_cb you just have to nuke your > reference to your promise, at the best dont keep a reference to it. we don't need to tell people to nuke their reference. the obj class just does an eo_del on itself after calling the then/error cb. you don't need to. if someone as an extra eo_ref on the obj then it stays alive until that ref is released - this is exactly how eina promises work now. there is nothing weird or wrong with eo objects working this way too. they already do - proxy objects for parts. > So all in all the concept of A Promise inheriting from Eo.Base doesnt > sound sane to me, and looks like a huge confusion you can get in. So I > would prefer to keep the promises as they are, exept the idea of using > Eo_Id to make the pointer more secure. i disagree. think of operator overloading in c++. a + may not mean a mathematical +. i can ave a string lass that makes + append the strings. this is common. it makes a common tool work appropriately for the task. people seem to be able to deal with this. same with eo promise objects. they are objects with a specific behaviour. they delete after their then/error cb is called. they only allow a single then/error cb. you CAN add event cb's to listen for their deletion with del events, or you can extend them with progress cb's etc. there is no reason the then/else cb's have to be a different cb prototype to eo event callbacks. the return value can go unused as there are no more cb's to skip after this so its just a dummy return value. it saves a lot of mental effort to remember the different callback types. the return doesn't hurt as it has no effect. the value stuff can be passed in the event info
Re: [E-devel] promises...
On Sun, 12 Jun 2016 11:02:37 -0700 Cedric BAILsaid: > On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler wrote: > > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL said: > > > > >> >> You just can't do with eo event what promise do. Eo event are a > >> > > >> > it's not NECESSARY to do anything new. timeout can be an eo obj that > >> > deletes itself after the one-shot callback. it doesn't need a promise. > >> > same as job. i can't add promises as children to an obj and make sure > >> > they get autodeleted when parent is. i have to do this all by hand now. > >> > >> It is a terrible mistake to override eo object lifecycle. This is an > >> absolute no go as a solution. Anything that bypass the refcounting and > >> ownership of an eo object lead to massive issue and trouble. We can > >> not implement auto deletion of eo object outside of the reference > >> count system. > > > > this doesn't bypass it. it USES it. the object unrefs/del's itself. when > > done. when an evas canvas is deleted it deletes all child objects. no code > > is explicitly in the app deleting the objects. it's done internally. > > That's exactly what I mean by bypass. Evas canvas delete object > because the parent die. Now, in the case of a promise eo object, there > is no parent that will disapear to do the unref/del, it is when all > the listener have received the value, that the promise disapear. If > you want to use normal eo lifecycle for that, it means that the object > has to delete itself. And this is bad. This is exactly what > ecore_timer where historically doing. They were not linked to any > parent and would just vanish under your feet. This is what tricked you > into thinking the bug was in the timeout promise while it was in the > handling of the lifecycle of the timer itself. and for promises its the "parent action" the download, the async property fetch, the file load etc. that is the parent conceptually and it deletes the promise representing it in the wild. > Reading what you say, you are advocating for using the normal eo > lifecycle and not letting itself commit succide, which is the proper > way to handle eo object. Now how can that work with promise ? No idea. YES I AM. as jp already said. we have proxy objects that self-delete on first use in another function. promises self-delete when the action is done - same idea. of course it can work. it works just fine. we do it already. there is no "proper way" to handle eo deletion other than objects ARE deleted. the convention is parents del children. del otherwise can happen anywhere by anything. there is no magical rule otherwise. > Promise are a promise to deliver something in the future. In themself > they have no propery and no function. They aren't object, they are of course they are an object. they old a success/error callback. they HOLD the value content until suhc a cb can be set to get the value. they can be ref'd and unref'd and kept around for along as desired. in js, c++ and lua they are actual objects because these languages ONLY have an object, or a basic variable. so they are objects there. you keep the object around so you can cancel it. they are objects. they are as much objects as eo objects are. > delivering object. Their lifecycle is that they either deliver or > fail, they never "die" before that. It is a guaranty that they deliver > a callback whatever happen to everyone that registered to listen them. > This doesn't match at all eo object lifecycle. proxy objects. need i say more. they die after first use in another func. and either way this is a lifecycle SPECIFIED by the promise object. it is HOW they are meant to work. they are MEANT to delete themselves when done (after calling success/err callbacks). self deletion isn't something eo forbids at all. > > you are totally inconsistent thinking promises are some kind of magically > > special thing that is not an object... yet in all ways it works *IS* an > > object. > > If you stretch the definition of an object outside of what Eo is, yes, > but by that standard everything could be an object. If you limit your > definition to what Eo is and I mean by that Eo lifecycle and events, > it doesn't. Oh, and there is plenty of stuff in an Eo object that are > useless for promise. eo doesn't define an object cannot self delete. so it matches. eo events are not useless for callbacks - its how you can extend progress etc. it makes far more sense than what eina_promise has now. it allows inheritance and extension. eina_promise is totally fixed in stone. and so what if key/value data is not useful. it doesnt cost anything except a ptr to have as a feature and all eo objects have it and its not useful on every single object BUT... it's useful ENOUGH to be in the base class. so what then? a promise uses a bit more ram. this isnt about ram or efficiency but of usability and eina _promises are FAr LESS USABLE than if they were eo
Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
Hi, On 14 June 2016 at 03:48, Cedric BAILwrote: > Hello, > > On Mon, Jun 13, 2016 at 7:01 AM, Stefan Schmidt > wrote: > > On 13/06/16 14:18, Stefan Schmidt wrote: > >> On 13/06/16 13:16, Tom Hacohen wrote: > >>> As part of the development process of the new Eo API we marked all of > >>> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I > >>> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that. > >>> > >>> Anyhow, now is time to remove these tags (where appropriate), so these > >>> APIs are released. > >>> > >>> I guess we can just remove all of the occurrences of the EO one, but we > >>> need to be more careful with the other one. > >>> > >>> Is there anyone who has time to take care of this? Stefan? Or should I > >>> try to tackle it on Thursday when I'm done with travel and other stuff > I > >>> need to deal with? > >>> > >> I will have a look at it. > >> > >> Are we really sure that all APIs behind the EFL_EO_API_SUPPORT are > >> really finsalised? > >> > >> We might need to come up with a list of them and brign them up here for > >> the audience. > >> > > > > After removal of the EFL_EO_API_SUPPORT ifdef we have the following new > > APIs that we need to support. (git grep "ifdef EFL_EO_API_SUPPORT") > > I did only list areas here as listing every single new function, struct, > > event, etc would just be to big. > > > > Ecore: > > o ecore_poller > > o ecore_loop_timer > > I can't find that one. Do you have a pointer ? > > > o ecore_exe > > All the ecore one should stay under BETA for now. > > > o efl_loop > > o efl_loop_args > > o efl_loop_user > > o efl_loop_fd > > > > Ecore_Con: > > o efl_network > > o efl_network_server > > o efl_network_connector > > o efl_network_client > > o efl_network_url > > All Ecore_Con/Efl_Network need to stay under BETA we haven't had the > time to take care of them. > > > Edje: > > o edje_object > > Will need to be renamed and cleaned as Efl.Canvas.Layout. > > > o edje_edit > > Shouldn't be an Eo object. > > > Eio: > > o eio_job > > o eio_sentry > > o eio_model > > Some rename are still going to happen with those, but otherwise that > is fine for now. > > > Emotion: > > o emotion_object > > This should have been renamed with Efl.Canvas.Video. I did think the > patch did land for that, will have to look at it. > > > Evas: > > o canvas/efl_ui_draggable > > o canvas/efl_ui_clickable > > o canvas/efl_ui_scrollable > > o canvas/efl_ui_selectable > > o canvas/efl_ui_zoomable > > o canvas/evas_canvas > Evas.Canvas will not be installed. The only canvas API (evas, ecore_evas, elm_win) should be Efl.Ui.Window. > > o canvas/efl_canvas_rectangle > > o canvas/evas_textblock > Efl.Canvas.Text? tasn and herdsman are on it. > > o canvas/efl_canvas_polygon > > o canvas/evas_object_smart > > o canvas/evas_smart_clipped > These two (esp. smart object) are a problem. Hard to get rid of (we need the inheritance), I would go for this solution: 1. rename to Efl.Canvas.Group.Internal (or smart, or whatever) 2. rename all functions to group_ something, or smart_ something to avoid method clashes 3. mark all functions @protected Most functions are actually clashing with basic evas object functions (clip, hide, no_render, ...). Not sure if we can simply just make evas object smart implement the basic methods. We should also probably mark everything as @beta (meaning unstable, do not use). > > o canvas/evas_common_interface > This is a bit a of a problem. It returns the Evas which we don't really want to expose. But use it extensively inside EFL, and it's hard to implement as legacy-only. Make its single property just @protected and @beta? > > o canvas/evas_object > Rename to Efl.Canvas.Object - not a big deal But many methods might need some cleanup. > > o canvas/evas_canvas3d_object > > o canvas/evas_canvas3d_texture > > o canvas/evas_canvas3d_material > > o canvas/evas_canvas3d_light > > o canvas/evas_canvas3d_primitive > > o canvas/evas_canvas3d_mesh > > o canvas/evas_canvas3d_node > > o canvas/evas_canvas3d_camera > > o canvas/evas_canvas3d_scene > > All the canvas 3d stay a BETA API. > > > o canvas/efl_canvas_image_internal > > o canvas/efl_canvas_image > > o canvas/efl_canvas_snapshot > > o canvas/efl_canvas_proxy > > o canvas/efl_canvas_scene3d > > o canvas/evas_vg > > o canvas/efl_vg > > o canvas/efl_vg_container > > o canvas/efl_vg_shape > > o canvas/efl_vg_gradient > > o canvas/efl_vg_gradient_linear > > o canvas/efl_vg_gradient_radial > > All the VG API should also stay as a BETA API for now. > > > o canvas/efl_event_input > > o canvas/efl_event_pointer > > o canvas/efl_event_key > > > > Elementary: > > o efl_ui_box > > o efl_ui_box_flow > > o efl_ui_grid > > o efl_ui_grid static > > o efl_ui_image > > o efl_ui_win > > o efl_ui_win_standard > > o efl_ui_nstate > > o elc_combobox > > o elc_ctxpopup > > o elc_fileselector > > o elc_fileselector_button > > o elc_fileselector_entry > > o
Re: [E-devel] promises...
Hi Felipe & Cedric, Thanks for explaining the lifecycle in detail, ... but I'm still not convinced :) On 14 June 2016 at 02:28, Felipe Magno de Almeida < felipe.m.alme...@gmail.com> wrote: > Sorry for top-posting. But let me summarize the Promise lifetime: > > A Promise when created starts with a ref-count of 1. > If the promise is not needed anymore, it should be > unref'ed (if no eina_promise_then is made, either > directly or by eina_promise_all/eina_promise_race). > > The first eina_promise_then _steals_ the first > reference, the others eina_promise_then > increments the reference count. > > When the promise is fulfilled (by value_set or error_set), > then each call to a eina_promise_then decrements > the reference count by 1. > > When the reference count reaches 0 _and_ the > promise is fulfilled the promise is deleted (both > conditions must be true, if just one is true it > continues to exist). > > So, valid cases: > > Eina_Promise* p = ..; > eina_promise_then(p, ...); > // promise will be deleted > // when callback for the then is called > > Eina_Promise* p = ...; > eina_promise_unref(p); > // Promise will be freed when promise is fulfilled > // by error_set or value_set > > Eina_Promise* p = ...; > eina_promise_then(p, ...); > eina_promise_then(p, ...); > // promise will be deleted > // when callback for the then is called > > Eina_Promise* p = ...; > eina_promise_all(p, ...); > eina_promise_then(p, ...); > // promise will be deleted > // when callback for the then is called > > Eina_Promise* p = ...; > eina_promise_all(p, ...); > // promise will be deleted > // when callback for the then is called > > So my understanding here is that this can work because a promise can not ever be synchronous. In other words, eina_promise_then can never trigger the success/error callback to be called synchronously, otherwise the above reference count system falls apart. While this approach is convenient, it means that we can use an object (promise) we don't hold any reference on (after first _then). This is weird :) > Etc.. > > Regards, > -- > Felipe Magno de Almeida > > > On Mon, Jun 13, 2016 at 2:17 PM, Cedric BAILwrote: > > Hello, > > > > On Sun, Jun 12, 2016 at 10:13 PM, Jean-Philippe André > wrote: > >> On 13 June 2016 at 03:02, Cedric BAIL wrote: > >>> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler > > >>> wrote: > >>> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL > >>> said: > >>> > and you can do the same with eo - you can store the result until cb's > >>> added or > >>> > until a go/done/whatever api is called. but that on;y matters if you > >>> want a > >>> > specific cb for that specific action. in general if you want that hen > >>> you want > >>> > a real object to be returned so you can manage it like other objects. > >>> > >>> As said before, basically what you want is an Eo object which doesn't > >>> behave like a normal eo object. Having its own meaning for ref/unref, > >>> for events and life cycle. At this point, I don't see how it will be > >>> easier for people and not more confusing ? > >> > >> Efl.Part are EO objects that die after a single function call. > >> So, we already have objects with a different lifecycle. > > > > Yes, but you are not supposed to interact with that said object more > > than with just one function. What happen if someone do an > > eo_ref/eo_unref on it ? > You can eo_ref() before calling a function, this gives you a "strong" ref that you then need to eo_unref() manually as well. This means you can do: func(efl_part(obj, "a")) and: part = eo_ref(efl_part(obj, "a")) func1(part) func2(part) func3(part) eo_unref(part) Only func1() will unref the part object implicitely. An internal flag insures that func2 and func3 don't also trigger an unref. The same model could be used for promises that we want to stuff into more than one _then, _race or _all. >> Events are the same: they call a callback function with a user data and > an > >> event info (promise value). > > > > No. Event in promise will keep their value until all the reference to > > the promise exist and each time that a callback is triggered that > > reference count goes down by one. There is also an absolute guaranty > > that you can not destroy a promise without having all the reference > > receiving either a succeed or a fail. Also the returned value of an > > event handler for then or cancel should be ignored as you can not stop > > notifying anyone in the chain and the state should stay either success > > or failure once it has been decided. > It is actually a good question whether the return bool is a good idea or not. If you return false in evas callbacks, you're gonna be in trouble. The ON_HOLD flag, now called efl_event_processed_get/set() is a better approach to stop processing events. > >> For how long is a promise handle valid? > >> Is it valid up until
[EGIT] [apps/ephoto] master 01/01: Ephoto: Add Sobel Edge Detection Filter.
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=6ce5ec32778ac06c33f3d946ee5dd7a912a11a1a commit 6ce5ec32778ac06c33f3d946ee5dd7a912a11a1a Author: Stephen HoustonDate: Mon Jun 13 21:20:14 2016 -0500 Ephoto: Add Sobel Edge Detection Filter. --- src/bin/ephoto.h| 1 + src/bin/ephoto_filters.c| 84 +++-- src/bin/ephoto_single_browser.c | 17 + 3 files changed, 99 insertions(+), 3 deletions(-) diff --git a/src/bin/ephoto.h b/src/bin/ephoto.h index c5a7dc8..0ef3efe 100644 --- a/src/bin/ephoto.h +++ b/src/bin/ephoto.h @@ -149,6 +149,7 @@ void ephoto_filter_cartoon(Evas_Object *main, Evas_Object *image); void ephoto_filter_posterize(Evas_Object *main, Evas_Object *image); void ephoto_filter_sketch(Evas_Object *main, Evas_Object *image); void ephoto_filter_invert(Evas_Object *main, Evas_Object *image); +void ephoto_filter_edge(Evas_Object *main, Evas_Object *image); void ephoto_filter_histogram_eq(Evas_Object *main, Evas_Object *image); /*file functions*/ diff --git a/src/bin/ephoto_filters.c b/src/bin/ephoto_filters.c index 4758a59..3f73c1d 100644 --- a/src/bin/ephoto_filters.c +++ b/src/bin/ephoto_filters.c @@ -13,7 +13,8 @@ enum _Ephoto_Image_Filter EPHOTO_IMAGE_FILTER_POSTERIZE, EPHOTO_IMAGE_FILTER_SEPIA, EPHOTO_IMAGE_FILTER_SHARPEN, - EPHOTO_IMAGE_FILTER_SKETCH + EPHOTO_IMAGE_FILTER_SKETCH, + EPHOTO_IMAGE_FILTER_SOBEL }; struct _Ephoto_Filter @@ -45,6 +46,7 @@ static Eina_Bool _sepia(void *data); static Eina_Bool _negative(void *data); static Eina_Bool _posterize(void *data); static Eina_Bool _dodge(void *data); +static Eina_Bool _sobel(void *data); static Eina_Bool _histogram_eq(void *data); static Ephoto_Filter * @@ -511,7 +513,6 @@ _posterize(void *data) return EINA_TRUE; } } - _idler_finishing_cb(ef, EINA_FALSE); return EINA_FALSE; @@ -610,6 +611,69 @@ _dodge(void *data) } static Eina_Bool +_sobel(void *data) +{ + Ephoto_Filter *ef = data; + Evas_Coord x, y, w, h; + int i, j, passes = 0; + unsigned int *p; + float sobx[3][3] = {{-1, 0, 1}, + {-2, 0, 2}, + {-1, 0, 1}}; + float soby[3][3] = {{-1, -2, -1}, + {0, 0, 0}, + {1, 2, 1}}; + + w = ef->w; + h = ef->h; + for (y = ef->pos; y < h; y++) + { +p = ef->im_data_new + (y * w); +for (x = 0; x < w; x++) + { + int pval = 0, a, r, g, b; + double hpval = 0.0, vpval = 0.0; + if (y > 0 && x > 0 && y < (h - 2) && x < (w - 2)) + { + for (i = -1; i <= 1; i++) +{ + for (j = -1; j <= 1; j++) + { +int index, pix; + +index = (y + i) * w + x + j; +pix = ef->im_data[index]; +hpval += pix * sobx[i+1][j+1]; +vpval += pix * soby[i+1][j+1]; + } +} + } + pval = abs(hpval) + abs(vpval); + *p = pval; + b = (int) ((*p) & 0xff); + g = (int) ((*p >> 8) & 0xff); + r = (int) ((*p >> 16) & 0xff); + a = (int) ((*p >> 24) & 0xff); + b = _normalize_color(b); + g = _normalize_color(g); + r = _normalize_color(r); + a = _normalize_color(a); + *p = (a << 24) | (r << 16) | (g << 8) | b; + p++; + } +passes++; +if (passes == 500) + { + ef->pos = y++; + return EINA_TRUE; + } + } + _idler_finishing_cb(ef, EINA_FALSE); + + return EINA_FALSE; +} + +static Eina_Bool _histogram_eq(void *data) { Ephoto_Filter *ef = data; @@ -760,7 +824,7 @@ ephoto_filter_cartoon(Evas_Object *main, Evas_Object *image) Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_CARTOON, main, image); - ef->rad = 5; + ef->rad = 9; ef->drad = 5.0; ef->qpos = 0; ef->qcount = 1; @@ -793,6 +857,20 @@ void ephoto_filter_sketch(Evas_Object *main, Evas_Object *image) ef->idler = ecore_idler_add(_grayscale, ef); } +void ephoto_filter_edge(Evas_Object *main, Evas_Object *image) +{ + Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_SOBEL, + main, image); + + ef->rad = 3; + ef->qpos = 0; + ef->qcount = 2; + ef->queue = eina_list_append(ef->queue, _grayscale); + ef->queue = eina_list_append(ef->queue, _sobel); + ef->popup = _processing(main); + ef->idler = ecore_idler_add(_blur, ef); +} + void ephoto_filter_histogram_eq(Evas_Object *main, Evas_Object *image) { diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c index
[EGIT] [core/efl] master 01/01: efl readme - add platfomr support info there and openbsd not supported
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d8eae1a1aac6fd29c5c6fda029f9383dbff6f2f8 commit d8eae1a1aac6fd29c5c6fda029f9383dbff6f2f8 Author: Carsten Haitzler (Rasterman)Date: Tue Jun 14 10:46:44 2016 +0900 efl readme - add platfomr support info there and openbsd not supported add some info on platform support in readme and note than openbsd is not supported. --- README | 11 +++ 1 file changed, 11 insertions(+) diff --git a/README b/README index 52c8426..fc874b3 100644 --- a/README +++ b/README @@ -26,6 +26,17 @@ For more documentation please see: http://www.enlightenment.org/p.php?p=docs +PLATFORMS +- + +EFL is primarily developerd on Linux (GNU/Linux) and should work on +most distributions as long as dependencies are provided. It has been +compiled and run also on Windows (using MINGW32 - please see +http://www.winbuilds.org ), Mac OS X, FreeBSD and NetBSD. Due to +serious bugs in OpenBSD, EFL cannot be compiled ro used there. Please +see: + +https://www.mail-archive.com/search?l=m...@openbsd.org=subject:%22SIGCHLD+and+libpthread.so%22=newest=1 COMPONENTS --
[E-devel] efl + openbsd == not supported
so after some debugging with al poole regarding openbsd it has come to my attention (thanks al!) that: https://www.mail-archive.com/search?l=m...@openbsd.org=subject:%22SIGCHLD+and+libpthread.so%22=newest=1 basiclly put we can't use sigchld AND threads on openbsd in the same process... which basically rules out EFL. it seems openbsd is just broken using SIGCHLD at least as a real posix + pthread implementation of unix: https://www.openbsd.org/papers/eurobsd2012/guenther-rthreads/slide002.html so ... in general it seems openbsd still suffers from this (al poole has found that we just are missing sigchlds in both edje_cc from the embryo_cc processes as well as in enlightenment e.g. with tempget and other slave processes) so i'm going to take the step of declaring openbsd "not supported" until such a time as it no longer exhibits such bugs. feel free to point out that this feedback is incorrect and the bug has been fixed. i can only find traces of the bug being reported and no information on it being fixed. -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] promises...
On Mon, Jun 13, 2016 at 10:17 AM, Cedric BAILwrote: > On Sun, Jun 12, 2016 at 10:13 PM, Jean-Philippe André > wrote: >> On 13 June 2016 at 03:02, Cedric BAIL wrote: >>> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler >>> wrote: >>> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL >>> said: >>> > and you can do the same with eo - you can store the result until cb's >>> added or >>> > until a go/done/whatever api is called. but that on;y matters if you >>> want a >>> > specific cb for that specific action. in general if you want that hen >>> you want >>> > a real object to be returned so you can manage it like other objects. >>> >>> As said before, basically what you want is an Eo object which doesn't >>> behave like a normal eo object. Having its own meaning for ref/unref, >>> for events and life cycle. At this point, I don't see how it will be >>> easier for people and not more confusing ? >> >> Efl.Part are EO objects that die after a single function call. >> So, we already have objects with a different lifecycle. > > Yes, but you are not supposed to interact with that said object more > than with just one function. What happen if someone do an > eo_ref/eo_unref on it ? > >> Events are the same: they call a callback function with a user data and an >> event info (promise value). > > No. Event in promise will keep their value until all the reference to > the promise exist and each time that a callback is triggered that > reference count goes down by one. There is also an absolute guaranty > that you can not destroy a promise without having all the reference > receiving either a succeed or a fail. Also the returned value of an > event handler for then or cancel should be ignored as you can not stop > notifying anyone in the chain and the state should stay either success > or failure once it has been decided. > >> For how long is a promise handle valid? >> Is it valid up until eina_promise_then? What if you just stuff the promise >> in a _race or _all? > > A promise is expecting one couple of cancel/then to be registered. > Once it is, that promise can still be cancelled by the user if it has > not triggered any of the callback it registered for, any other use > will be illegal. If it give it to a _race or _all, he obviously loose > his chance to register callbacks, so if he want to register them, he > need to increase the ref count. > >> Can you ignore a promise handle altogether? (I guess it would leak) > > Will leak inded and make no sense as it is delivering something at the > end of the pipe. If you do not want it, well, why did you ask for it ? > :-) > >> Anyway it seems the only difference here is that a promise starts the >> action as soon as possible, while an eo object would have to explicitely be >> marked as ready (which is very similar to starting the action during >> eina_promise_then). > > No, the main difference is that the life cycle is linked to the > callbacks and that their should not be any way to bypass it. eo_del > should also be forbidden for example on a promise as only a cancel > make sense. Of course we could alias it, and make sure that cancel > don't destroy the parent. We can also override all eo event API and > make sure they do what we want, but we can't at the moment override > eo_ref and eo_unref. The alternative would be to create an Eo_Promise > which doesn't inherit from Eo_Base (Or make an Eo_Light that both > would inherit from) and would kind of make clear that it is not an Eo > object, but a promise object (Given that eo_ref and eo_unref become > virtual function). After talking with Felipe, we do not need to override ref/unref. It will just be slightly more verbose to use than current implementation. Still below question apply. > Also at which point do you think user are going to be confused by an > Eo object where every single function call on it has its own > documentation and doesn't behave like a normal eo object ? -- Cedric BAIL -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [apps/terminology] master 01/01: options_keys: use an edje layout
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=37e92063307effe8682998a62ad4e8a69b74bb10 commit 37e92063307effe8682998a62ad4e8a69b74bb10 Author: Boris FaureDate: Fri Jun 10 03:31:10 2016 +0200 options_keys: use an edje layout --- data/themes/default.edc | 31 - src/bin/options_keys.c | 71 + 2 files changed, 66 insertions(+), 36 deletions(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index 7b5cc26..5bc66e4 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -7,6 +7,36 @@ color_classes { collections { + group { name: "terminology/keybinding"; + parts { + part { name: "shadow"; type: RECT; +description { state: "default" 0.0; + color: 0 0 0 196; +} + } + part { name: "label"; type: TEXT; +mouse_events: 0; +effect: SOFT_SHADOW BOTTOM; +scale: 1; +description { state: "default" 0.0; + fixed: 1 1; + rel1.to: "shadow"; + rel2.to: "shadow"; + rel1.relative: 0.5 0.5; + rel1.offset: 0 0; + rel2.relative: 0.5 0.5; + rel2.offset: 0 0; + color: 255 255 255 255; + color3: 0 0 0 18; + align: 0.5 0.5; + text { font: "Sans"; size: 12; + min: 1 1; + ellipsis: 0; + } +} + } + }; + }; group { name: "terminology/miniview"; images { image: "icon_close.png" COMP; @@ -1110,7 +1140,6 @@ collections { part { name: "tabtitle"; type: TEXT; mouse_events: 0; scale: 1; effect: SOFT_SHADOW BOTTOM; -mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; color3: 0 0 0 18; diff --git a/src/bin/options_keys.c b/src/bin/options_keys.c index b70035f..d74089c 100644 --- a/src/bin/options_keys.c +++ b/src/bin/options_keys.c @@ -10,7 +10,7 @@ /*XXX: can have only one widget at a time… */ static Config *_config; static Evas_Object *_fr; -static Evas_Object *_rect, *_bg, *_lbl; +static Evas_Object *_layout; static void _hover_del(Evas_Object *o); @@ -154,22 +154,10 @@ _hover_sizing_eval(void) Evas_Coord x = 0, y = 0, w = 0, h = 0, min_w, min_h, new_x, new_y; evas_object_geometry_get(_fr, , , , ); #if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8) - evas_object_geometry_set(_rect, x, y, w, h); + evas_object_geometry_set(_layout, x, y, w, h); #else - evas_object_move(_rect, x, y); - evas_object_resize(_rect, w, h); -#endif - evas_object_size_hint_min_get(_lbl, _w, _h); - new_x = x + w/2 - min_w/2; - new_y = y + h/2 - min_h/2; -#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8) - evas_object_geometry_set(_lbl, new_x, new_y, min_w, min_h); - evas_object_geometry_set(_bg, new_x - 1, new_y - 1, min_w + 2, min_h + 2); -#else - evas_object_move(_lbl, new_x, new_y); - evas_object_resize(_lbl, min_w, min_h); - evas_object_move(_bg, new_x - 1, new_y - 1); - evas_object_resize(_bg, min_w + 2, min_h + 2); + evas_object_move(_layout, x, y); + evas_object_resize(_layout, w, h); #endif } @@ -210,7 +198,6 @@ _parent_del_cb(void *data, static void _hover_del(Evas_Object *o) { - elm_object_focus_set(o, EINA_FALSE); evas_object_event_callback_del(o, EVAS_CALLBACK_KEY_UP, _cb_key_up); evas_object_event_callback_del(o, EVAS_CALLBACK_MOUSE_DOWN, @@ -223,35 +210,49 @@ _hover_del(Evas_Object *o) _parent_hide_cb); evas_object_event_callback_del(_fr, EVAS_CALLBACK_DEL, _parent_del_cb); - evas_object_del(_bg); - _bg = NULL; - evas_object_del(_lbl); - _lbl = NULL; evas_object_del(o); - _rect = NULL; + _layout = NULL; +} + +static void +_cb_focused(void *data EINA_UNUSED, +Evas_Object *obj EINA_UNUSED, +void *event EINA_UNUSED) +{ +DBG("focused"); +} +static void +_cb_unfocused(void *data EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event EINA_UNUSED) +{ +DBG("unfocused"); +if (_layout) +elm_object_focus_set(_layout, EINA_TRUE); } static void on_shortcut_add(void *data, -Evas_Object *obj, +Evas_Object *bt, void *event_info EINA_UNUSED) { - Evas_Object *o, *bx; - - bx = data; + Evas_Object *o, *oe; + Evas_Object *bx = data; - _rect = o = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_repeat_events_set(o, EINA_TRUE); - evas_object_color_set(o, 0, 0, 0, 127); - elm_object_focus_set(o, EINA_TRUE); + _layout = o = elm_layout_add(bt); + oe =
[EGIT] [core/efl] master 01/03: ecore-evas-drm: Re-enable direct input callback
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fb569d7eb0bcc6e4fd9541a3587e5287f9910492 commit fb569d7eb0bcc6e4fd9541a3587e5287f9910492 Author: Chris MichaelDate: Mon Jun 13 12:49:40 2016 -0400 ecore-evas-drm: Re-enable direct input callback As it seems the jpeg breakage is over wrt direct input callbacks, we can re-enable these for the drm engines @fix Signed-off-by: Chris Michael --- src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c index e396423..0ba8968 100644 --- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c +++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c @@ -764,13 +764,12 @@ ecore_evas_drm_new_internal(const char *device, unsigned int parent EINA_UNUSED, ecore_evas_data_set(ee, "device", edata->dev); _ecore_evas_register(ee); - ecore_evas_input_event_register(ee); ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process, (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process, (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process); - /* _ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb); */ + _ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb); ecore_drm2_output_crtc_size_get(edata->output, , ); @@ -900,13 +899,12 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS ecore_evas_data_set(ee, "device", edata->dev); _ecore_evas_register(ee); - ecore_evas_input_event_register(ee); ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process, (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process, (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process); - /* _ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb); */ + _ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb); ecore_drm2_output_crtc_size_get(edata->output, , ); --
[EGIT] [core/efl] master 02/03: ecore-evas-wayland: Minor formatting fixes
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c163e51dd31c5d242b1833d542e1eebdf51d930e commit c163e51dd31c5d242b1833d542e1eebdf51d930e Author: Chris MichaelDate: Mon Jun 13 13:00:13 2016 -0400 ecore-evas-wayland: Minor formatting fixes NB: no functional changes Signed-off-by: Chris Michael --- src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 7 +-- src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c | 7 +-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index dc036f3..bb50fd8 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -449,9 +449,12 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process, (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process); - _ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb); + _ecore_event_window_direct_cb_set(ee->prop.window, + _ecore_evas_input_direct_cb); + + wdata->sync_handler = + ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _ee_cb_sync_done, ee); - wdata->sync_handler = ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _ee_cb_sync_done, ee); ee_list = eina_list_append(ee_list, ee); return ee; diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c index 8086663..e18c06c 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c @@ -358,9 +358,12 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process, (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process); - _ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb); + _ecore_event_window_direct_cb_set(ee->prop.window, + _ecore_evas_input_direct_cb); + + wdata->sync_handler = + ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _ee_cb_sync_done, ee); - wdata->sync_handler = ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _ee_cb_sync_done, ee); ee_list = eina_list_append(ee_list, ee); return ee; --
[EGIT] [core/efl] master 03/03: elput: Fix issue of VT-Switching not working
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=28f79d458596213ea33dc68755c87f46a140591b commit 28f79d458596213ea33dc68755c87f46a140591b Author: Chris MichaelDate: Mon Jun 13 16:18:13 2016 -0400 elput: Fix issue of VT-Switching not working This patch fixes an issue where you could not VT-switch away from a running Enlightenment session by simplifying the vt switch code and passing the proper arguments to the dbus message. @fix Signed-off-by: Chris Michael --- src/lib/elput/elput_logind.c | 46 1 file changed, 8 insertions(+), 38 deletions(-) diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c index 22cb1b0..fedb2b0 100644 --- a/src/lib/elput/elput_logind.c +++ b/src/lib/elput/elput_logind.c @@ -568,50 +568,20 @@ _logind_close(Elput_Manager *em, int fd) static Eina_Bool _logind_vt_set(Elput_Manager *em, int vt) { - Eldbus_Object *obj; - Eldbus_Proxy *proxy; Eldbus_Message *msg; - char self[PATH_MAX]; - - snprintf(self, sizeof(self), "/org/freedesktop/login1/seat/self"); - - obj = eldbus_object_get(em->dbus.conn, "org.freedesktop.login1", self); - if (!obj) - { -ERR("Could not get dbus object"); -goto obj_err; - } - - proxy = eldbus_proxy_get(obj, "org.freedesktop.login1.Seat"); - if (!proxy) - { -ERR("Could not get dbus proxy"); -goto proxy_err; - } - msg = eldbus_proxy_method_call_new(proxy, "SwitchTo"); - if (!msg) - { -ERR("Could not create method call for proxy"); -goto msg_err; - } + msg = + eldbus_message_method_call_new("org.freedesktop.login1", +"/org/freedesktop/login1/seat/self", +"org.freedesktop.login1.Seat", "SwitchTo"); + if (!msg) return EINA_FALSE; - eldbus_message_arguments_append(msg, "u", ); + if (!eldbus_message_arguments_append(msg, "u", vt)) + return EINA_FALSE; - eldbus_proxy_send(proxy, msg, NULL, NULL, -1); - - eldbus_message_unref(msg); - eldbus_proxy_unref(proxy); - eldbus_object_unref(obj); + eldbus_connection_send(em->dbus.conn, msg, NULL, NULL, -1); return EINA_TRUE; - -msg_err: - eldbus_proxy_unref(proxy); -proxy_err: - eldbus_object_unref(obj); -obj_err: - return EINA_FALSE; } Elput_Interface _logind_interface = --
Re: [E-devel] Problem with elemines
On Thu, Jun 9, 2016 at 7:28 PM, Jérôme Pinotwrote: > Le jeudi 09 juin 2016 à 16:53 -0700, Tim Bird a écrit : > > Hi EFL devs... > > > > I am a newbie to EFL development. I'm trying to write a little test > > program for EFL, and wanted to test out elemines as an example of > > some of > > the techniques. > > However, I ran into some problems. > > > > I am running EFL 17 on Ubuntu 14.04. I cloned elemines from > > https://git.enlightenment.org/games/elemines.git > > and was able to get it built. > Please use a stable release before reporting bugs. The git version is > not supposed to work at any time. The last release of elemines could be > find here: https://sourceforge.net/projects/elemines/files/0.2.3/ It's > a bit old but should run fine. > You'll need elementary and etrophy. If your distro doesn't provide it, > you will have to compile them yourself. Putting them in /usr/local/lib > is normally not an issue as this path is normally already in your > /etc/ld.so.conf. You maybe just forgot to launch ldconfig. > > I did forget indeed forget to launch ldconfig. I downloaded the stable release and it has the same (other) problems as the version I built from the git tree. But it looks like the segfault (the most serious problem) might be a bug in EFL 17.0. I plan to try EFL 17.1 and see if it's been fixed. Thanks for the quick feedback. -- Tim -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
Hello, On Mon, Jun 13, 2016 at 7:01 AM, Stefan Schmidtwrote: > On 13/06/16 14:18, Stefan Schmidt wrote: >> On 13/06/16 13:16, Tom Hacohen wrote: >>> As part of the development process of the new Eo API we marked all of >>> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I >>> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that. >>> >>> Anyhow, now is time to remove these tags (where appropriate), so these >>> APIs are released. >>> >>> I guess we can just remove all of the occurrences of the EO one, but we >>> need to be more careful with the other one. >>> >>> Is there anyone who has time to take care of this? Stefan? Or should I >>> try to tackle it on Thursday when I'm done with travel and other stuff I >>> need to deal with? >>> >> I will have a look at it. >> >> Are we really sure that all APIs behind the EFL_EO_API_SUPPORT are >> really finsalised? >> >> We might need to come up with a list of them and brign them up here for >> the audience. >> > > After removal of the EFL_EO_API_SUPPORT ifdef we have the following new > APIs that we need to support. (git grep "ifdef EFL_EO_API_SUPPORT") > I did only list areas here as listing every single new function, struct, > event, etc would just be to big. > > Ecore: > o ecore_poller > o ecore_loop_timer I can't find that one. Do you have a pointer ? > o ecore_exe All the ecore one should stay under BETA for now. > o efl_loop > o efl_loop_args > o efl_loop_user > o efl_loop_fd > > Ecore_Con: > o efl_network > o efl_network_server > o efl_network_connector > o efl_network_client > o efl_network_url All Ecore_Con/Efl_Network need to stay under BETA we haven't had the time to take care of them. > Edje: > o edje_object Will need to be renamed and cleaned as Efl.Canvas.Layout. > o edje_edit Shouldn't be an Eo object. > Eio: > o eio_job > o eio_sentry > o eio_model Some rename are still going to happen with those, but otherwise that is fine for now. > Emotion: > o emotion_object This should have been renamed with Efl.Canvas.Video. I did think the patch did land for that, will have to look at it. > Evas: > o canvas/efl_ui_draggable > o canvas/efl_ui_clickable > o canvas/efl_ui_scrollable > o canvas/efl_ui_selectable > o canvas/efl_ui_zoomable > o canvas/evas_canvas > o canvas/efl_canvas_rectangle > o canvas/evas_textblock > o canvas/efl_canvas_polygon > o canvas/evas_object_smart > o canvas/evas_smart_clipped > o canvas/evas_common_interface > o canvas/evas_object > o canvas/evas_canvas3d_object > o canvas/evas_canvas3d_texture > o canvas/evas_canvas3d_material > o canvas/evas_canvas3d_light > o canvas/evas_canvas3d_primitive > o canvas/evas_canvas3d_mesh > o canvas/evas_canvas3d_node > o canvas/evas_canvas3d_camera > o canvas/evas_canvas3d_scene All the canvas 3d stay a BETA API. > o canvas/efl_canvas_image_internal > o canvas/efl_canvas_image > o canvas/efl_canvas_snapshot > o canvas/efl_canvas_proxy > o canvas/efl_canvas_scene3d > o canvas/evas_vg > o canvas/efl_vg > o canvas/efl_vg_container > o canvas/efl_vg_shape > o canvas/efl_vg_gradient > o canvas/efl_vg_gradient_linear > o canvas/efl_vg_gradient_radial All the VG API should also stay as a BETA API for now. > o canvas/efl_event_input > o canvas/efl_event_pointer > o canvas/efl_event_key > > Elementary: > o efl_ui_box > o efl_ui_box_flow > o efl_ui_grid > o efl_ui_grid static > o efl_ui_image > o efl_ui_win > o efl_ui_win_standard > o efl_ui_nstate > o elc_combobox > o elc_ctxpopup > o elc_fileselector > o elc_fileselector_button > o elc_fileselector_entry > o elc_hoversel > o elc_multibuttonentry > o elc_naviframe > o elc_popup > o elm_actionslider > o elm_app_client > o elm_app_client_view > o elm_app_server > o elm_app_server_view > o elm_atspi_app_object > o elm_atspi_bridge > o elm_bg > o elm_bubble > o elm_button > o elm_calendar > o elm_check > o elm_clock > o elm_colorselector > o elm_conform > o elm_datetime > o elm_dayselector > o elm_diskselector > o elm_entry > o elm_flip > o elm_flipselector > o elm_frame > o elm_gengrid > o elm_genlist > o elm_gesture_layer > o elm_glview > o elm_hover > o elm_icon > o elm_image > o elm_index > o elm_interface_atspi_accessible > o elm_interface_atspi_accessible > o elm_interface_atspi_text > o elm_interface_atspi_widget_action > o elm_interface_atspi_window > o elm_interfaces > o elm_inwin > o elm_label > o elm_layout > o elm_list > o elm_map > o elm_menu > o elm_notify > o elm_panel > o elm_panes > o elm_photo > o elm_photocam > o elm_plug > o elm_prefs > o elm_progressbar > o elm_radio > o elm_route > o elm_scroller > o elm_segment_control > o elm_separator > o elm_slider > o elm_slideshow > o elm_spinner > o elm_systray > o elm_thumb > o elm_toolbar > o elm_video > o elm_view_form > o elm_view_list > o elm_web > o elm_win > o elm_win_standard A huge rename and cleanup is still to be landed on elm. Some are obvious some are less. Still the main issue is to review all object and
Re: [E-devel] Problem with elemines
On Thu, Jun 9, 2016 at 10:10 PM, Cedric BAILwrote: > Hello, > > On Thu, Jun 9, 2016 at 4:53 PM, Tim Bird wrote: > > I am a newbie to EFL development. I'm trying to write a little test > > program for EFL, and wanted to test out elemines as an example of some of > > the techniques. > > However, I ran into some problems. > > > > I am running EFL 17 on Ubuntu 14.04. I cloned elemines from > > https://git.enlightenment.org/games/elemines.git > > and was able to get it built. > > > > 1) - path to libetrophy error > > When I try to run it, I got the following error message: > > elemines: error while loading shared libraries: libetrophy.so.0: cannot > > open shared object file: No such file or directory > > > > During the build, I figured out I needed etrophy, and built and installed > > the shared > > library for that. They etrophy libraries ended up in /usr/local/lib > > > > I can work around this using 'export LD_LIBRARY_PATH=/usr/local/lib', > > before running elemines. > > Is it possible that either your /usr/local/lib is not your ld.so.conf > path ? or that you haven't run ldconfig after installing etrophy ? > That was it. Sorry for the dumb error. It's been a while since I've done C programming in user-space and I forgot about needing to re-run ldconfig after installing a new library. > > > 2) missing some elementary config > > When I run elemines (with the right library path), I get a warning from > the > > program: > > > > ERR<27210>:eio lib/eio/eio_monitor.c:339 eio_monitor_stringshared_add() > > monitored path '/home/CORPUSERS/10102229/.elementary/config/standard' not > > found. > > > > I don't have the enlightenment window manager installed (to my > knowledge). > > I'm not sure what is being looked for here, > > but the warning is a bit disconcerting. I can make the warning go away > by > > creating the directory > > ~/.elementary/config/standard, but I'm worried that something is supposed > > to be there that's not. > > Hum, that one I have no clue at the moment. Will see if I can look > into it tomorrow, but in all case Enlightenment shouldn't be needed. > > > 3) Segmentation fault > > This is the most serious problem. elemines gets a segmentation fault > when > > I do the first mouse click in the > > game grid. > > > > I debugged the program a bit and found that there's a sscanf on a string > > used to map the mouse click to > > the game grid. Here's the sscanf: > > sscanf(source, "board[%i,%i]:overlay", , ); > > > > but here's the value of the 'source' string used with it: > > board[item_0x7fff8daa2c60{7,2}]:overlay > > > > this is in the routine _click() in src/game.c > > Note that there's no error handling for the sscanf. However, the string > > clearly is not what's expected. > > Sorry that you have hit that bug. It is a regression in edje_cc > provided in efl 1.17 that do not compile correctly elemines. This is > fixed in current git. I should backport the fix and make sure it is in > the next release along with a few others. Thanks for the reminder and > sorry again about this one. > > > In another part of the program, there's this line, which seems to specify > > the string for the > > mouse click grid mapping. > > > > edje_object_signal_callback_add(edje, "mouse,clicked,*", > > "board\\[*\\]:overlay", _click, NULL); > > > > It appears that elemines expects the coordinates from the specified > string > > inside the > > brackets (I'm guessing that's what the * is for in the string. However, > I > > don't know > > where this 'item_0x7fff8daa2c60{..}' is coming from. > > Yes, exactly. edje_cc has generated automatically some names that are > being passed wrongly in the event name resulting in breaking the > signal name for elemines. This can be fixed by just changing the edj > file. I have attached a version of the .edj generated by efl git. > > > Is there something from edje that's missing, to have the mouse click > string > > come out properly? > > Me, backporting the fix I guess. Will do right away. > Thanks for the info. -- Tim -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/eflete] master 01/04: Tizen theme: update icon for a group navigator block.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=ef08266af85bea23c86ca97a4a30f28ba70fbcf7 commit ef08266af85bea23c86ca97a4a30f28ba70fbcf7 Author: Mykyta BiliavskyiDate: Mon Jun 13 15:47:59 2016 +0300 Tizen theme: update icon for a group navigator block. --- data/themes/tizen/images/view_s_group_nor.png | Bin 0 -> 1029 bytes data/themes/tizen/widgets/image.edc | 2 ++ src/bin/ui/workspace/group_navigator.c| 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/data/themes/tizen/images/view_s_group_nor.png b/data/themes/tizen/images/view_s_group_nor.png new file mode 100644 index 000..dd75bed Binary files /dev/null and b/data/themes/tizen/images/view_s_group_nor.png differ diff --git a/data/themes/tizen/widgets/image.edc b/data/themes/tizen/widgets/image.edc index a9f3c32..d37520a 100644 --- a/data/themes/tizen/widgets/image.edc +++ b/data/themes/tizen/widgets/image.edc @@ -46,6 +46,8 @@ IM("icon", "group", "icon-group.png", 16 16, 0 0 0 0, IM("icon", "group1", "icon-group1.png", 16 16, 0 0 0 0, SCALE, SOLID) IM("icon", "group2", "icon-group2.png", 16 16, 0 0 0 0, SCALE, SOLID) +IM("icon", "group_navigator","view_s_group_nor.png",16 16, 0 0 0 0, SCALE, SOLID) + IM("icon", "proxy", "icon-proxy.png", 16 16, 0 0 0 0, SCALE, SOLID) IM("icon", "proxy1", "icon-proxy1.png", 16 16, 0 0 0 0, SCALE, SOLID) IM("icon", "proxy2", "icon-proxy2.png", 16 16, 0 0 0 0, SCALE, SOLID) diff --git a/src/bin/ui/workspace/group_navigator.c b/src/bin/ui/workspace/group_navigator.c index 4c6cdcb..ce551fd 100644 --- a/src/bin/ui/workspace/group_navigator.c +++ b/src/bin/ui/workspace/group_navigator.c @@ -2226,7 +2226,7 @@ group_navigator_add(Evas_Object *parent, Group *group) #ifdef HAVE_TIZEN Evas_Object *icon; - ICON_STANDARD_ADD(pl->layout, icon, true, "file") + IMAGE_ADD_NEW(pl->layout, icon, "icon", "group_navigator"); elm_object_part_content_set(pl->layout, "elm.swallow.icon", icon); #endif --
[EGIT] [tools/eflete] master 04/04: Tizen theme: update style for color preview control.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=604c5f81d8361cc171533ba4839d1d99c7e48d61 commit 604c5f81d8361cc171533ba4839d1d99c7e48d61 Author: Mykyta BiliavskyiDate: Mon Jun 13 20:55:21 2016 +0300 Tizen theme: update style for color preview control. --- data/themes/tizen/widgets/layouts/property.edc | 76 +++--- 1 file changed, 21 insertions(+), 55 deletions(-) diff --git a/data/themes/tizen/widgets/layouts/property.edc b/data/themes/tizen/widgets/layouts/property.edc index 642e083..a8e26a9 100644 --- a/data/themes/tizen/widgets/layouts/property.edc +++ b/data/themes/tizen/widgets/layouts/property.edc @@ -1058,7 +1058,7 @@ group { name: "elm/layout/property/color"; images { image: "color-background-50x19.png" COMP; image: "color-disable-50x19.png" COMP; - image: "color-shadow.png" COMP; + image: "border_1.png" COMP; } parts { part { name: "base"; @@ -1071,90 +1071,56 @@ group { name: "elm/layout/property/color"; part { name: "bg"; type: IMAGE; description { state: "default" 0.0; -rel1 { - to: "base"; -} -rel2 { - to: "base"; -} -image { - normal: "color-background-50x19.png"; - middle: DEFAULT; -} +image.normal: "color-background-50x19.png"; +rel1.to: "base"; +rel2.to: "base"; } } part { name: "elm.swallow.content"; type: SWALLOW; description { state: "default" 0.0; -rel1 { - to: "base"; -} -rel2 { - to: "base"; -} +rel1.to: "base"; +rel2.to: "base"; } } part { name: "disabler"; type: IMAGE; description { state: "default" 0.0; visible: 0; -rel1 { - to: "bg"; -} -rel2 { - to: "bg"; -} -image { - normal: "color-disable-50x19.png"; - middle: DEFAULT; -} +image.normal: "color-disable-50x19.png"; +rel1.to: "bg"; +rel2.to: "bg"; } description { state: "disabled" 0.0; -rel1 { - to: "bg"; -} -rel2 { - to: "bg"; -} -image { - normal: "color-disable-50x19.png"; - middle: DEFAULT; -} +inherit: "default" 0.00; +visible: 1; } } - part { name: "shadow"; + part { name: "border"; type: IMAGE; - repeat_events: 1; description { state: "default" 0.0; -rel1 { - to: "base"; -} -rel2 { - to: "base"; -} +color: 142 142 142 255; image { - normal: "color-shadow.png"; - border: 7 7 6 7; - middle: DEFAULT; + normal: "border_1.png"; + border: 1 1 1 1; + middle: NONE; } +fill.smooth: 0; +rel1.to: "bg"; +rel2.to: "bg"; } } part { name: "event"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; -rel1 { - to: "base"; -} -rel2 { - to: "base"; -} +rel1.to: "base"; +rel2.to: "base"; } description { state: "disabled" 0.0; visible: 0; } } - } programs { program { name: "enabled"; --
[EGIT] [tools/eflete] master 02/04: Tizen theme: update style for "eye" check.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=8c22dc4be33da6bfeb1638cb5e28916ea5b948da commit 8c22dc4be33da6bfeb1638cb5e28916ea5b948da Author: Mykyta BiliavskyiDate: Mon Jun 13 19:58:05 2016 +0300 Tizen theme: update style for "eye" check. --- data/themes/tizen/images/group_eye_off_mv.png | Bin 0 -> 951 bytes data/themes/tizen/images/group_eye_off_nor.png | Bin 0 -> 953 bytes data/themes/tizen/images/group_eye_off_sel.png | Bin 0 -> 951 bytes data/themes/tizen/images/group_eye_on_mv.png | Bin 0 -> 1232 bytes data/themes/tizen/images/group_eye_on_nor.png | Bin 0 -> 1227 bytes data/themes/tizen/images/group_eye_on_sel.png | Bin 0 -> 1229 bytes data/themes/tizen/widgets/check.edc| 215 - src/bin/ui/workspace/group_navigator.c | 13 +- 8 files changed, 185 insertions(+), 43 deletions(-) diff --git a/data/themes/tizen/images/group_eye_off_mv.png b/data/themes/tizen/images/group_eye_off_mv.png new file mode 100644 index 000..06dfc15 Binary files /dev/null and b/data/themes/tizen/images/group_eye_off_mv.png differ diff --git a/data/themes/tizen/images/group_eye_off_nor.png b/data/themes/tizen/images/group_eye_off_nor.png new file mode 100644 index 000..d9056df Binary files /dev/null and b/data/themes/tizen/images/group_eye_off_nor.png differ diff --git a/data/themes/tizen/images/group_eye_off_sel.png b/data/themes/tizen/images/group_eye_off_sel.png new file mode 100644 index 000..8537739 Binary files /dev/null and b/data/themes/tizen/images/group_eye_off_sel.png differ diff --git a/data/themes/tizen/images/group_eye_on_mv.png b/data/themes/tizen/images/group_eye_on_mv.png new file mode 100644 index 000..d7d6161 Binary files /dev/null and b/data/themes/tizen/images/group_eye_on_mv.png differ diff --git a/data/themes/tizen/images/group_eye_on_nor.png b/data/themes/tizen/images/group_eye_on_nor.png new file mode 100644 index 000..d2658c1 Binary files /dev/null and b/data/themes/tizen/images/group_eye_on_nor.png differ diff --git a/data/themes/tizen/images/group_eye_on_sel.png b/data/themes/tizen/images/group_eye_on_sel.png new file mode 100644 index 000..9808594 Binary files /dev/null and b/data/themes/tizen/images/group_eye_on_sel.png differ diff --git a/data/themes/tizen/widgets/check.edc b/data/themes/tizen/widgets/check.edc index 41ffb28..45ff639 100644 --- a/data/themes/tizen/widgets/check.edc +++ b/data/themes/tizen/widgets/check.edc @@ -499,13 +499,40 @@ group { name: "elm/check/base/default"; } } } - group { name: "elm/check/base/eye"; images { - image: "eye_on_icon_nor.png" COMP; - image: "eye_off_icon_nor.png" COMP; + image: "group_eye_off_nor.png" COMP; + image: "group_eye_off_mv.png" COMP; + image: "group_eye_off_sel.png" COMP; + image: "group_eye_on_nor.png" COMP; + image: "group_eye_on_mv.png" COMP; + image: "group_eye_on_sel.png" COMP; } parts { + part { name: "dummy.state"; + type: RECT; + description { state: "default" 0.0; +color: 0 0 0 0; + } + description { state: "on" 0.0; +inherit: "default" 0.00; + } + description { state: "off" 0.0; +inherit: "default" 0.00; + } + } + part { name: "dummy.selected"; + type: RECT; + description { state: "default" 0.0; +color: 0 0 0 0; + } + description { state: "selected" 0.0; +inherit: "default" 0.00; + } + description { state: "unselected" 0.0; +inherit: "default" 0.00; + } + } part { name: "bg"; type: IMAGE; mouse_events: 0; @@ -515,12 +542,23 @@ group { name: "elm/check/base/eye"; min: 16 16; max: 16 16; aspect: 1.0 1.0; -image.normal: "eye_off_icon_nor.png"; +image.normal: "group_eye_off_nor.png"; } - description { state: "disabled" 0.0; + description { state: "hovered" 0.0; inherit: "default" 0.00; -color_class: "bg_scroller_disabled"; -image.border: 8 8 8 8; +image.normal: "group_eye_off_mv.png"; + } + description { state: "hidden" 0.0; +inherit: "default" 0.00; +visible: 0; +fill.smooth: 0; + } + description { state: "selected" 0.0; +inherit: "hovered" 0.00; +image { + normal: "group_eye_off_sel.png"; + border: 8 8 8 8; +} } } part { name: "check"; @@ -529,39 +567,22 @@ group { name: "elm/check/base/eye"; scale: 1; clip_to: "clipper"; description { state: "default" 0.0; -visible: 0; -image.normal: "eye_on_icon_nor.png"; -rel1 { -
[EGIT] [tools/eflete] master 03/04: Tizen theme: update colorr_class style for combobox.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=dfef770ebb12dbeeaaf5a6f7be266283f81783ff commit dfef770ebb12dbeeaaf5a6f7be266283f81783ff Author: Mykyta BiliavskyiDate: Mon Jun 13 20:42:30 2016 +0300 Tizen theme: update colorr_class style for combobox. --- data/themes/ewe_tizen/widgets/combobox.edc | 373 +++-- .../ewe_tizen/widgets/images/color_class_img.png | Bin 0 -> 127 bytes data/themes/tizen/widgets/image.edc| 13 +- 3 files changed, 140 insertions(+), 246 deletions(-) diff --git a/data/themes/ewe_tizen/widgets/combobox.edc b/data/themes/ewe_tizen/widgets/combobox.edc index 5d38d75..24d69a5 100644 --- a/data/themes/ewe_tizen/widgets/combobox.edc +++ b/data/themes/ewe_tizen/widgets/combobox.edc @@ -356,13 +356,9 @@ images { group { name: "ewe/combobox/base/color_class"; images { - image: "dropdown-bg.png" COMP; - image: "dropdown-focus-bg.png" COMP; - image: "dropdown-bg_unactive.png" COMP; - image: "icon-slidedown.png" COMP; - image: "icon-slideup.png" COMP; - image: "color-background-2.png" COMP; - image: "color-shadow-2.png" COMP; + image: "drop_arrow_nor.png" COMP; + image: "drop_arrow_sel.png" COMP; + image: "color_class_img.png" COMP; } min: 76 24; @@ -407,12 +403,12 @@ group { name: "ewe/combobox/base/color_class"; description { state: "default" 0.0; max: 9 5; image.normal: "drop_arrow_nor.png"; +fill.smooth: 0; rel1.to: "right.offset"; rel2.to: "right.offset"; } description { state: "expanded" 0.0; inherit: "default" 0.00; -max: 8 4; image.normal: "drop_arrow_sel.png"; } } @@ -424,155 +420,113 @@ group { name: "ewe/combobox/base/color_class"; color: 88 88 88 255; text { text: ""; - font: FN; + font: "PT"; size: 15; max: 1 1; } rel1.offset: 5 0; } } + part { name: "bg.color.color1"; + type: RECT; + description { state: "default" 0.0; +color: 142 142 142 255; +rel1.to: "bg.color1"; +rel2.to: "bg.color1"; + } + } + part { name: "bg.color.color2"; + type: RECT; + description { state: "default" 0.0; +color: 142 142 142 255; +rel1.to: "bg.color2"; +rel2.to: "bg.color2"; + } + } + part { name: "bg.color.color3"; + type: RECT; + description { state: "default" 0.0; +color: 142 142 142 255; +rel1.to: "bg.color3"; +rel2.to: "bg.color3"; + } + } part { name: "bg.color3"; type: IMAGE; description { state: "default" 0.0; align: 1.0 0.5; -min: 16 13; -max: 16 13; -rel1 { - to: "bg0"; -} +min: 11 11; +max: 11 11; +image.normal: "color_class_img.png"; +fill.smooth: 0; +rel1.to: "bg0"; rel2 { relative: 0.0 1.0; offset: -7 -1; to_x: "right.offset"; to_y: "bg0"; } -image { - normal: "color-background-2.png"; - middle: DEFAULT; -} } } part { name: "bg.color2"; type: IMAGE; description { state: "default" 0.0; align: 1.0 0.5; -min: 16 13; -max: 16 13; -rel1 { - to: "bg0"; -} +min: 11 11; +max: 11 11; +image.normal: "color_class_img.png"; +fill.smooth: 0; +rel1.to: "bg0"; rel2 { relative: 0.0 1.0; offset: -6 -1; to_x: "bg.color3"; to_y: "bg0"; } -image { - normal: "color-background-2.png"; - middle: DEFAULT; -} } } part { name: "bg.color1"; type: IMAGE; description { state: "default" 0.0; align: 1.0 0.5; -min: 16 13; -max: 16 13; -rel1 { - to: "bg0"; -} +min: 11 11; +max: 11 11; +image.normal: "color_class_img.png"; +fill.smooth: 0; +rel1.to: "bg0"; rel2 { relative: 0.0 1.0; offset: -6 -1; to_x: "bg.color2"; to_y: "bg0"; } -image { - normal: "color-background-2.png"; - middle: DEFAULT; -}
[EGIT] [core/efl] master 01/01: edje: make svg support a beta feature of edje_cc.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ba0aac69092cfe7ab0f1a89048e57fb621527977 commit ba0aac69092cfe7ab0f1a89048e57fb621527977 Author: Cedric BAILDate: Mon Jun 13 10:54:18 2016 -0700 edje: make svg support a beta feature of edje_cc. Should we do the same with Canvas3D part ? --- src/bin/edje/edje_cc.c | 5 + src/bin/edje/edje_cc.h | 1 + src/bin/edje/edje_cc_out.c | 7 +-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/bin/edje/edje_cc.c b/src/bin/edje/edje_cc.c index 9452fff..63a62b1 100644 --- a/src/bin/edje/edje_cc.c +++ b/src/bin/edje/edje_cc.c @@ -42,6 +42,7 @@ intthreads = 0; intannotate = 0; intno_etc1 = 0; intno_etc2 = 0; +intbeta = 0; static void _edje_cc_log_cb(const Eina_Log_Domain *d, @@ -310,6 +311,10 @@ main(int argc, char **argv) depfile = argv[i]; unlink(depfile); } +else if (!strcmp(argv[i], "-beta")) + { + beta = 1; + } else if (!file_in) file_in = argv[i]; else if (!file_out) diff --git a/src/bin/edje/edje_cc.h b/src/bin/edje/edje_cc.h index ad930c9..e73ba01 100644 --- a/src/bin/edje/edje_cc.h +++ b/src/bin/edje/edje_cc.h @@ -306,6 +306,7 @@ extern intthreads; extern intannotate; extern Eina_Bool current_group_inherit; extern Eina_List *color_tree_root; +extern intbeta; extern int had_quote; diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 8239918..eb708d9 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -1235,7 +1235,7 @@ on_error: static void data_write_vectors(Eet_File *ef, int *vector_num) { - int i; + unsigned int i; Svg_Node *root; Eet_Data_Descriptor *svg_node_eet; Eina_List *ll; @@ -1249,8 +1249,11 @@ data_write_vectors(Eet_File *ef, int *vector_num) svg_node_eet = _edje_svg_node_eet(); - for (i = 0; i < (int)edje_file->image_dir->vectors_count; i++) + for (i = 0; i < edje_file->image_dir->vectors_count; i++) { +if (!beta) + error_and_abort(ef, "Vector part are currently a beta feature, please enable them by running edje_cc with -beta."); + vector = _file->image_dir->vectors[i]; EINA_LIST_FOREACH(img_dirs, ll, s) { --
Re: [E-devel] promises...
Sorry for top-posting. But let me summarize the Promise lifetime: A Promise when created starts with a ref-count of 1. If the promise is not needed anymore, it should be unref'ed (if no eina_promise_then is made, either directly or by eina_promise_all/eina_promise_race). The first eina_promise_then _steals_ the first reference, the others eina_promise_then increments the reference count. When the promise is fulfilled (by value_set or error_set), then each call to a eina_promise_then decrements the reference count by 1. When the reference count reaches 0 _and_ the promise is fulfilled the promise is deleted (both conditions must be true, if just one is true it continues to exist). So, valid cases: Eina_Promise* p = ..; eina_promise_then(p, ...); // promise will be deleted // when callback for the then is called Eina_Promise* p = ...; eina_promise_unref(p); // Promise will be freed when promise is fulfilled // by error_set or value_set Eina_Promise* p = ...; eina_promise_then(p, ...); eina_promise_then(p, ...); // promise will be deleted // when callback for the then is called Eina_Promise* p = ...; eina_promise_all(p, ...); eina_promise_then(p, ...); // promise will be deleted // when callback for the then is called Eina_Promise* p = ...; eina_promise_all(p, ...); // promise will be deleted // when callback for the then is called Etc.. Regards, -- Felipe Magno de Almeida On Mon, Jun 13, 2016 at 2:17 PM, Cedric BAILwrote: > Hello, > > On Sun, Jun 12, 2016 at 10:13 PM, Jean-Philippe André > wrote: >> On 13 June 2016 at 03:02, Cedric BAIL wrote: >>> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler >>> wrote: >>> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL >>> said: >>> > and you can do the same with eo - you can store the result until cb's >>> added or >>> > until a go/done/whatever api is called. but that on;y matters if you >>> want a >>> > specific cb for that specific action. in general if you want that hen >>> you want >>> > a real object to be returned so you can manage it like other objects. >>> >>> As said before, basically what you want is an Eo object which doesn't >>> behave like a normal eo object. Having its own meaning for ref/unref, >>> for events and life cycle. At this point, I don't see how it will be >>> easier for people and not more confusing ? >> >> Efl.Part are EO objects that die after a single function call. >> So, we already have objects with a different lifecycle. > > Yes, but you are not supposed to interact with that said object more > than with just one function. What happen if someone do an > eo_ref/eo_unref on it ? > >> Events are the same: they call a callback function with a user data and an >> event info (promise value). > > No. Event in promise will keep their value until all the reference to > the promise exist and each time that a callback is triggered that > reference count goes down by one. There is also an absolute guaranty > that you can not destroy a promise without having all the reference > receiving either a succeed or a fail. Also the returned value of an > event handler for then or cancel should be ignored as you can not stop > notifying anyone in the chain and the state should stay either success > or failure once it has been decided. > >> For how long is a promise handle valid? >> Is it valid up until eina_promise_then? What if you just stuff the promise >> in a _race or _all? > > A promise is expecting one couple of cancel/then to be registered. > Once it is, that promise can still be cancelled by the user if it has > not triggered any of the callback it registered for, any other use > will be illegal. If it give it to a _race or _all, he obviously loose > his chance to register callbacks, so if he want to register them, he > need to increase the ref count. > >> Can you ignore a promise handle altogether? (I guess it would leak) > > Will leak inded and make no sense as it is delivering something at the > end of the pipe. If you do not want it, well, why did you ask for it ? > :-) > >> Anyway it seems the only difference here is that a promise starts the >> action as soon as possible, while an eo object would have to explicitely be >> marked as ready (which is very similar to starting the action during >> eina_promise_then). > > No, the main difference is that the life cycle is linked to the > callbacks and that their should not be any way to bypass it. eo_del > should also be forbidden for example on a promise as only a cancel > make sense. Of course we could alias it, and make sure that cancel > don't destroy the parent. We can also override all eo event API and > make sure they do what we want, but we can't at the moment override > eo_ref and eo_unref. The alternative would be to create an Eo_Promise > which doesn't inherit from Eo_Base (Or make an Eo_Light that both > would inherit from) and would kind of make clear that it is
Re: [E-devel] promises...
Hello, On Sun, Jun 12, 2016 at 10:13 PM, Jean-Philippe Andréwrote: > On 13 June 2016 at 03:02, Cedric BAIL wrote: >> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler >> wrote: >> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL >> said: >> > and you can do the same with eo - you can store the result until cb's >> added or >> > until a go/done/whatever api is called. but that on;y matters if you >> want a >> > specific cb for that specific action. in general if you want that hen >> you want >> > a real object to be returned so you can manage it like other objects. >> >> As said before, basically what you want is an Eo object which doesn't >> behave like a normal eo object. Having its own meaning for ref/unref, >> for events and life cycle. At this point, I don't see how it will be >> easier for people and not more confusing ? > > Efl.Part are EO objects that die after a single function call. > So, we already have objects with a different lifecycle. Yes, but you are not supposed to interact with that said object more than with just one function. What happen if someone do an eo_ref/eo_unref on it ? > Events are the same: they call a callback function with a user data and an > event info (promise value). No. Event in promise will keep their value until all the reference to the promise exist and each time that a callback is triggered that reference count goes down by one. There is also an absolute guaranty that you can not destroy a promise without having all the reference receiving either a succeed or a fail. Also the returned value of an event handler for then or cancel should be ignored as you can not stop notifying anyone in the chain and the state should stay either success or failure once it has been decided. > For how long is a promise handle valid? > Is it valid up until eina_promise_then? What if you just stuff the promise > in a _race or _all? A promise is expecting one couple of cancel/then to be registered. Once it is, that promise can still be cancelled by the user if it has not triggered any of the callback it registered for, any other use will be illegal. If it give it to a _race or _all, he obviously loose his chance to register callbacks, so if he want to register them, he need to increase the ref count. > Can you ignore a promise handle altogether? (I guess it would leak) Will leak inded and make no sense as it is delivering something at the end of the pipe. If you do not want it, well, why did you ask for it ? :-) > Anyway it seems the only difference here is that a promise starts the > action as soon as possible, while an eo object would have to explicitely be > marked as ready (which is very similar to starting the action during > eina_promise_then). No, the main difference is that the life cycle is linked to the callbacks and that their should not be any way to bypass it. eo_del should also be forbidden for example on a promise as only a cancel make sense. Of course we could alias it, and make sure that cancel don't destroy the parent. We can also override all eo event API and make sure they do what we want, but we can't at the moment override eo_ref and eo_unref. The alternative would be to create an Eo_Promise which doesn't inherit from Eo_Base (Or make an Eo_Light that both would inherit from) and would kind of make clear that it is not an Eo object, but a promise object (Given that eo_ref and eo_unref become virtual function). Also at which point do you think user are going to be confused by an Eo object where every single function call on it has its own documentation and doesn't behave like a normal eo object ? -- Cedric BAIL -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/eflete] master 01/02: Tizen theme: replace icon resource for a image part type.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=ebb58974abddfbaa269556de12fe951a518230d6 commit ebb58974abddfbaa269556de12fe951a518230d6 Author: Mykyta BiliavskyiDate: Mon Jun 13 15:26:56 2016 +0300 Tizen theme: replace icon resource for a image part type. --- data/themes/tizen/images/icon-image.png | Bin 1120 -> 1072 bytes data/themes/tizen/images/icon-image1.png | Bin 1105 -> 1138 bytes data/themes/tizen/images/icon-image2.png | Bin 1121 -> 1091 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/themes/tizen/images/icon-image.png b/data/themes/tizen/images/icon-image.png index b682e3c..759350e 100644 Binary files a/data/themes/tizen/images/icon-image.png and b/data/themes/tizen/images/icon-image.png differ diff --git a/data/themes/tizen/images/icon-image1.png b/data/themes/tizen/images/icon-image1.png index 14e2c64..5cc0958 100644 Binary files a/data/themes/tizen/images/icon-image1.png and b/data/themes/tizen/images/icon-image1.png differ diff --git a/data/themes/tizen/images/icon-image2.png b/data/themes/tizen/images/icon-image2.png index c5e774a..85656d6 100644 Binary files a/data/themes/tizen/images/icon-image2.png and b/data/themes/tizen/images/icon-image2.png differ --
[EGIT] [tools/eflete] master 02/02: Fix default config path for OS X
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=3dbfb3f0fdf051d1024fb93fb35aa4e0c40e4239 commit 3dbfb3f0fdf051d1024fb93fb35aa4e0c40e4239 Author: se.osadchyDate: Mon Jun 13 19:09:51 2016 +0300 Fix default config path for OS X --- src/bin/config/config.c | 21 + 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/bin/config/config.c b/src/bin/config/config.c index 0c11080..bc2c529 100644 --- a/src/bin/config/config.c +++ b/src/bin/config/config.c @@ -37,6 +37,19 @@ static Eet_Data_Descriptor *edd_profile = NULL; static Eet_Data_Descriptor *edd_keys = NULL; static Eet_Data_Descriptor *edd_color = NULL; +#ifdef __APPLE__ +Eina_Stringshare * +config_dir_get(void) +{ + const char *conf_path = NULL; + Eina_Stringshare *cfg; + + conf_path = "Library/Preferences"; + cfg = eina_stringshare_printf("%s/%s", getenv("HOME"), conf_path); + + return cfg; +} +#else Eina_Stringshare * config_dir_get(void) { @@ -53,7 +66,7 @@ config_dir_get(void) } return cfg; } - +#endif static Eina_Stringshare * _config_file_path_get(void) { @@ -505,15 +518,15 @@ config_save(void) tmp = _config_tmp_file_path_get(cfg); ef = eet_open(tmp, EET_FILE_MODE_WRITE); - if (!ef) return false; + if (!ef) return EINA_FALSE; ok = eet_data_write(ef, edd_base, CONFIG_FILE_KEY, config, 1); eet_close(ef); - if (!ok) return false; + if (!ok) return EINA_FALSE; ecore_file_mv(tmp, cfg); eina_stringshare_del(tmp); eina_stringshare_del(cfg); - return true; + return EINA_TRUE; } Config * --
[EGIT] [core/enlightenment] master 01/01: add separate mouse in/out handlers for internal wins
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=771f71e6a9db7b33d955d63e03cabbfcc5516af7 commit 771f71e6a9db7b33d955d63e03cabbfcc5516af7 Author: Mike BlumenkrantzDate: Mon Jun 13 12:00:09 2016 -0400 add separate mouse in/out handlers for internal wins internal wayland windows are windows with ssd, meaning they can only receive pointer events on the contents of the window and not the entire window including decoration regions ref T3819 --- src/bin/e_comp_object.c | 23 ++ src/bin/e_comp_wl.c | 62 ++--- 2 files changed, 71 insertions(+), 14 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 1bead67..a9432a9 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -992,6 +992,24 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj) / static void +_e_comp_object_internal_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + E_Comp_Object *cw = data; + + evas_object_smart_callback_call(cw->smart_obj, "mouse_in", event_info); +} + +static void +_e_comp_object_internal_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + E_Comp_Object *cw = data; + + evas_object_smart_callback_call(cw->smart_obj, "mouse_out", event_info); +} + +/ + +static void _e_comp_object_client_pending_resize_add(E_Client *ec, int w, int h, @@ -1715,6 +1733,11 @@ _e_comp_intercept_show(void *data, Evas_Object *obj EINA_UNUSED) evas_object_name_set(cw->obj, "cw->obj"); evas_object_image_colorspace_set(cw->obj, EVAS_COLORSPACE_ARGB); _e_comp_object_alpha_set(cw); +if (cw->ec->internal) + { + evas_object_event_callback_add(cw->obj, EVAS_CALLBACK_MOUSE_IN, _e_comp_object_internal_mouse_in, cw); + evas_object_event_callback_add(cw->obj, EVAS_CALLBACK_MOUSE_OUT, _e_comp_object_internal_mouse_out, cw); + } #ifdef BORDER_ZOOMAPS e_comp_object_zoomap_set(o, 1); #else diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 13c715d..855f549 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -134,17 +134,13 @@ _e_comp_wl_evas_cb_hide(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EIN } static void -_e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +_e_comp_wl_mouse_in(E_Client *ec, Evas_Event_Mouse_In *ev) { - E_Client *ec; - Evas_Event_Mouse_In *ev; struct wl_resource *res; struct wl_client *wc; Eina_List *l; uint32_t serial; - ev = event; - if (!(ec = data)) return; if (e_object_is_del(E_OBJECT(ec))) return; if (!ec->comp_data->surface) return; @@ -169,15 +165,25 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj } static void -_e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +_e_comp_wl_evas_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + _e_comp_wl_mouse_in(data, event_info); +} + +static void +_e_comp_wl_cb_internal_mouse_in(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + _e_comp_wl_mouse_in(data, event_info); +} + +static void +_e_comp_wl_mouse_out(E_Client *ec, Evas_Event_Mouse_Out *ev EINA_UNUSED) { - E_Client *ec; struct wl_resource *res; struct wl_client *wc; Eina_List *l; uint32_t serial; - if (!(ec = data)) return; if (ec->cur_mouse_action && e_grabinput_mouse_win_get()) return; /* FIXME? this is a hack to just reset the cursor whenever we mouse out. not sure if accurate */ { @@ -210,6 +216,18 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob } static void +_e_comp_wl_evas_cb_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + _e_comp_wl_mouse_out(data, event_info); +} + +static void +_e_comp_wl_cb_internal_mouse_out(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + _e_comp_wl_mouse_out(data, event_info); +} + +static void _e_comp_wl_send_mouse_move(E_Client *ec, int x, int y, unsigned int timestamp) { struct wl_resource *res; @@ -234,6 +252,7 @@ _e_comp_wl_evas_cb_mouse_move(void *data, Evas *evas EINA_UNUSED, Evas_Object *o Evas_Event_Mouse_Move *ev = event; if (ec->cur_mouse_action) return; + if (!ec->mouse.in) return; if (e_object_is_del(E_OBJECT(ec))) return; if (ec->ignored) return; if (!ec->comp_data->surface) return; @@ -278,6 +297,7 @@
[EGIT] [core/efl] master 01/01: eolian: fix impl func fill
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=54590d677eac410744f1c68ae073c15f6b457ff6 commit 54590d677eac410744f1c68ae073c15f6b457ff6 Author: Daniel KolesaDate: Mon Jun 13 16:24:20 2016 +0100 eolian: fix impl func fill If there is a dot in the remaining part of the implement, it means it actually implements another class - do not fail in those cases. --- src/lib/eolian/database_fill.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c index c75f517..286b471 100644 --- a/src/lib/eolian/database_fill.c +++ b/src/lib/eolian/database_fill.c @@ -30,7 +30,7 @@ _get_impl_func(Eolian_Class *cl, Eolian_Implement *impl, else return EINA_TRUE; if (strchr(imstr, '.')) - return EINA_FALSE; + return EINA_TRUE; impl->klass = cl; *foo_id = (Eolian_Function*)eolian_class_function_get_by_name(cl, imstr, ftype); --
Re: [E-devel] [EGIT] [core/efl] master 02/02: benchmark: eo: add missing phthread flag to linker
On Jun 13, 2016 3:01 AM, "Stefan Schmidt"wrote: > > stefan pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=4a59fc4eb5465d96e8b1ca7b7e1e72c23e0cd422 > > commit 4a59fc4eb5465d96e8b1ca7b7e1e72c23e0cd422 > Author: Stefan Schmidt > Date: Mon Jun 13 11:08:46 2016 +0200 > > benchmark: eo: add missing phthread flag to linker That should be part of eo ldflags provided by configure otherwise you break build without cflags. Maybe it is actually missing Eina ldflags. Sorry on the train can't look more than that at the moment. > /usr/bin/ld: class_simple.o: undefined reference to symbol 'pthread_spin_trylock@@GLIBC_2.2.5' > //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line > --- > src/benchmarks/eo/Makefile.am | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/src/benchmarks/eo/Makefile.am b/src/benchmarks/eo/Makefile.am > index 9fa4c1e..a2aac48 100644 > --- a/src/benchmarks/eo/Makefile.am > +++ b/src/benchmarks/eo/Makefile.am > @@ -25,7 +25,8 @@ eo_bench_eo_add.c > eo_bench_LDADD = \ > $(top_builddir)/src/lib/eo/libeo.la \ > $(top_builddir)/src/lib/eina/libeina.la \ > -@EO_LDFLAGS@ > +@EO_LDFLAGS@ \ > +-lpthread > > clean-local: > rm -rf *.gcno ..\#..\#src\#*.gcov *.gcda > > -- > > > -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas: loaders fix typo which blocked the installation of the LO loader script
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=17026d963dfdba1b6701edafa52e5a2fdf54b144 commit 17026d963dfdba1b6701edafa52e5a2fdf54b144 Author: Stefan SchmidtDate: Mon Jun 13 17:20:58 2016 +0200 evas: loaders fix typo which blocked the installation of the LO loader script Its SCRIPTS not SCRIPT to make automake aware of it. Fixes T3848 --- src/Makefile_Evas.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 93643d1..82ac218 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -2388,14 +2388,14 @@ evasgenericloadersdir = \ $(libdir)/evas/utils evasgenericloaders_PROGRAMS = -evasgenericloaders_SCRIPT = +evasgenericloaders_SCRIPTS = ### Libreoffice converter to pdf EXTRA_DIST2 += generic/evas/pdf/evas_generic_pdf_loader.libreoffice if HAVE_POPPLER -evasgenericloaders_SCRIPT += generic/evas/pdf/evas_generic_pdf_loader.libreoffice +evasgenericloaders_SCRIPTS += generic/evas/pdf/evas_generic_pdf_loader.libreoffice evasgenericloaders_PROGRAMS += generic/evas/pdf/evas_image_loader.pdf generic_evas_pdf_evas_image_loader_pdf_SOURCES = \ --
[EGIT] [core/efl] master 01/01: evas: loaders: fix install exec hook by adding the needed semicolon
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7d347e85fcd9be3f633b78b779187f089ac05d1e commit 7d347e85fcd9be3f633b78b779187f089ac05d1e Author: Stefan SchmidtDate: Mon Jun 13 17:07:28 2016 +0200 evas: loaders: fix install exec hook by adding the needed semicolon Thanks to Scimmia22 for pointing this out. --- src/Makefile_Evas.am | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 9ce7fad..93643d1 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -2420,7 +2420,7 @@ generic_evas_pdf_evas_image_loader_pdf_LDADD = @USE_EINA_LIBS@ @POPPLER_LIBS@ @S generic_evas_pdf_evas_image_loader_pdf_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ EFL_INSTALL_EXEC_HOOK += \ -mkdir -p $(DESTDIR)$(libdir)/evas/utils \ +mkdir -p $(DESTDIR)$(libdir)/evas/utils; \ ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ppt; \ ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.pptx; \ ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.odp; \ @@ -2482,7 +2482,7 @@ generic_evas_raw_evas_image_loader_raw_CFLAGS = \ @LIBRAW_CFLAGS@ EFL_INSTALL_EXEC_HOOK += \ -mkdir -p $(DESTDIR)$(libdir)/evas/utils \ +mkdir -p $(DESTDIR)$(libdir)/evas/utils; \ ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.arw; \ ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.cr2; \ ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.crw; \ @@ -2524,7 +2524,7 @@ generic_evas_svg_evas_image_loader_svg_LDADD = @USE_EINA_LIBS@ @RSVG_LIBS@ @SHM_ generic_evas_svg_evas_image_loader_svg_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ EFL_INSTALL_EXEC_HOOK += \ -mkdir -p $(DESTDIR)$(libdir)/evas/utils \ +mkdir -p $(DESTDIR)$(libdir)/evas/utils; \ ln -sf evas_image_loader.svg $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svgz; \ ln -sf evas_image_loader.svg $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svg.gz; @@ -2547,5 +2547,5 @@ generic_evas_xcf_evas_image_loader_xcf_CFLAGS = \ generic_evas_xcf_evas_image_loader_xcf_LDADD = @USE_EINA_LIBS@ @SHM_LIBS@ -lm -lz generic_evas_xcf_evas_image_loader_xcf_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ EFL_INSTALL_EXEC_HOOK += \ -mkdir -p $(DESTDIR)$(libdir)/evas/utils \ +mkdir -p $(DESTDIR)$(libdir)/evas/utils; \ ln -sf evas_image_loader.xcf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xcf.gz; --
Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
On Mon, Jun 13, 2016 at 11:51 AM, Tom Hacohenwrote: > On 13/06/16 15:34, Felipe Magno de Almeida wrote: >> On Mon, Jun 13, 2016 at 11:11 AM, Tom Hacohen wrote: [snip] >> What do you think? >> > > I already mentioned this issue before. It's a big issue and needs to big > fixed. The correct solution is to remove non-public from the tree. The > tag is an interesting hack that could maybe be useful if we get lazy, > but should really be avoided. I kinda hate you now for suggesting this > hack, because I'm pretty sure people will jump on it and we'll end up > doing it. :( LOL. Should have mentioned in IRC only. :D > -- > Tom. Regards, -- Felipe Magno de Almeida -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/eflete] master 02/03: tab_home_common: display an error message when trying to open not eflete .pro file
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=e7d7df4151d2e13b77f51ca858ce8e8af9e65917 commit e7d7df4151d2e13b77f51ca858ce8e8af9e65917 Author: Vitalii VorobiovDate: Mon Jun 13 17:05:20 2016 +0300 tab_home_common: display an error message when trying to open not eflete .pro file Fixes T3445 --- src/bin/ui/tab_home_common.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/bin/ui/tab_home_common.c b/src/bin/ui/tab_home_common.c index cfe776e..7cc5f5e 100644 --- a/src/bin/ui/tab_home_common.c +++ b/src/bin/ui/tab_home_common.c @@ -101,6 +101,13 @@ _tabs_progress_end(void *data, PM_Project_Result result) popup_want_action(_("File is locked"), _("File locked by another application"), NULL, NULL, BTN_OK, NULL, NULL); return; } + if (PM_PROJECT_ERROR == result) + { +progress_end(data, result); +popup_want_action(_("File opening error"), _("Unknown problem with file appeared." + "(wrong file, filesystem error, no memory, etc)"), NULL, NULL, BTN_OK, NULL, NULL); +return; + } if (PM_PROJECT_SUCCESS != result) return; ap.project = pm_project_thread_project_get(); --
[EGIT] [tools/eflete] master 01/03: spinner.edc: vertical style for upstream
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=088b54e14baf3704cd7803424816bf9f3d50f366 commit 088b54e14baf3704cd7803424816bf9f3d50f366 Author: Vitalii VorobiovDate: Mon Jun 13 16:32:27 2016 +0300 spinner.edc: vertical style for upstream --- .../images/spinner-vertical-down-clicked.png | Bin 0 -> 254 bytes .../images/spinner-vertical-down-disabled.png | Bin 0 -> 2888 bytes .../default/images/spinner-vertical-up-clicked.png | Bin 0 -> 238 bytes .../images/spinner-vertical-up-disabled.png| Bin 0 -> 2889 bytes data/themes/default/widgets/spinner.edc| 284 - 5 files changed, 280 insertions(+), 4 deletions(-) diff --git a/data/themes/default/images/spinner-vertical-down-clicked.png b/data/themes/default/images/spinner-vertical-down-clicked.png new file mode 100644 index 000..0a1b0cb Binary files /dev/null and b/data/themes/default/images/spinner-vertical-down-clicked.png differ diff --git a/data/themes/default/images/spinner-vertical-down-disabled.png b/data/themes/default/images/spinner-vertical-down-disabled.png new file mode 100644 index 000..7afaccc Binary files /dev/null and b/data/themes/default/images/spinner-vertical-down-disabled.png differ diff --git a/data/themes/default/images/spinner-vertical-up-clicked.png b/data/themes/default/images/spinner-vertical-up-clicked.png new file mode 100644 index 000..1fd36aa Binary files /dev/null and b/data/themes/default/images/spinner-vertical-up-clicked.png differ diff --git a/data/themes/default/images/spinner-vertical-up-disabled.png b/data/themes/default/images/spinner-vertical-up-disabled.png new file mode 100644 index 000..7c0a629 Binary files /dev/null and b/data/themes/default/images/spinner-vertical-up-disabled.png differ diff --git a/data/themes/default/widgets/spinner.edc b/data/themes/default/widgets/spinner.edc index 667c8d7..81e71db 100644 --- a/data/themes/default/widgets/spinner.edc +++ b/data/themes/default/widgets/spinner.edc @@ -1,9 +1,285 @@ +group { name: "elm/spinner/base/vertical"; + images { + image: "control-bg.png" COMP; + image: "control-bg-disabled.png" COMP; + image: "control-shadow.png" COMP; + image: "spinner-vertical-up.png" COMP; + image: "spinner-vertical-up-clicked.png" COMP; + image: "spinner-vertical-up-disabled.png" COMP; + image: "spinner-vertical-down.png" COMP; + image: "spinner-vertical-down-clicked.png" COMP; + image: "spinner-vertical-down-disabled.png" COMP; + } + parts { + part { name: "bg"; + type: IMAGE; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; +min: 60 19; +max: -1 19; +color_class: "bg_entry"; +image { + normal: "control-bg.png"; + border: 8 8 8 9; +} + } + description { state: "disabled" 0.0; +inherit: "default" 0.00; +image.normal: "control-bg-disabled.png"; + } + } + part { name: "area.drag"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; +rel1 { + offset: 1 0; + to: "bg"; +} +rel2 { + offset: -1 -2; + to: "bg"; +} + } + } + part { name: "elm.text"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; +fixed: 1 1; +color_class: "main_alternative"; +text { + font: "PT"; + size: 12; +} +rel1.to: "bg"; +rel2 { + relative: 0.0 1.0; + to_x: "button.up"; + to_y: "bg"; +} + } + description { state: "active" 0.0; +inherit: "default" 0.00; +visible: 0; +text.size: 10; +rel1 { + relative: 1.0 0.0; + to_x: "button.down"; +} + } + } + part { name: "shadow"; + type: IMAGE; + description { state: "default" 0.0; +image { + normal: "control-shadow.png"; + border: 8 8 8 9; +} +rel1.to: "bg"; +rel2.to: "bg"; + } + description { state: "disabled" 0.0; +inherit: "default" 0.00; +visible: 0; + } + } + part { name: "button.down"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; +align: 1.0 1.0; +max: 11 9; +image.normal: "spinner-vertical-down.png"; +rel1.to: "area.drag"; +rel2.to: "area.drag"; + } + description { state: "clicked" 0.0; +inherit: "default" 0.00; +
[EGIT] [tools/eflete] master 03/03: live_entry: show entry scroller in demo when entry-single style is opened
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=1994d07bb3994c798ea4ae50f48c1d704b18714c commit 1994d07bb3994c798ea4ae50f48c1d704b18714c Author: Vitalii VorobiovDate: Mon Jun 13 17:33:43 2016 +0300 live_entry: show entry scroller in demo when entry-single style is opened Fixes T3839 --- src/bin/ui/live_view/elementary/live_entry.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/ui/live_view/elementary/live_entry.c b/src/bin/ui/live_view/elementary/live_entry.c index 91d6f91..9a2ef16 100644 --- a/src/bin/ui/live_view/elementary/live_entry.c +++ b/src/bin/ui/live_view/elementary/live_entry.c @@ -70,6 +70,7 @@ widget_entry_create(Evas_Object *parent, const Group *group) elm_object_style_set(object, group->style); _entry_set_params(object, group->class); + elm_entry_scrollable_set(object, true); elm_object_text_set(object, "This is an entry widget in this window that " "uses markup like this for styling and " --
Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
On 13/06/16 15:34, Felipe Magno de Almeida wrote: > On Mon, Jun 13, 2016 at 11:11 AM, Tom Hacohenwrote: >> On 13/06/16 15:01, Stefan Schmidt wrote: > > [snip] > >>> If you are not the author of one of these above but still think they >>> should not be part of our API from 1.18 on please speak up now! >>> >>> I will start to gradually remove the EFL_EO_API_SUPPORT flag from our >>> code base over the next days. >> >> I guess we'll have to do it selectively then, because only the "efl*" >> APIs should be there. Any leftovers should either be internal (not >> installed) or not exist. > > I have a problem with C++ bindings that some public classes inherit > from non-public classes that should not be installed. However, for > C++ we just inherit from each other in the generated binding and > the files need to be available to compile. > > We need to either 1. remove mentioning non-public classes in > public classes, or 2. have a way to tag that a class is private > and should not appear in the generated inheritance tree. > > What do you think? > I already mentioned this issue before. It's a big issue and needs to big fixed. The correct solution is to remove non-public from the tree. The tag is an interesting hack that could maybe be useful if we get lazy, but should really be avoided. I kinda hate you now for suggesting this hack, because I'm pretty sure people will jump on it and we'll end up doing it. :( -- Tom. -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
On Mon, Jun 13, 2016 at 11:11 AM, Tom Hacohenwrote: > On 13/06/16 15:01, Stefan Schmidt wrote: [snip] >> If you are not the author of one of these above but still think they >> should not be part of our API from 1.18 on please speak up now! >> >> I will start to gradually remove the EFL_EO_API_SUPPORT flag from our >> code base over the next days. > > I guess we'll have to do it selectively then, because only the "efl*" > APIs should be there. Any leftovers should either be internal (not > installed) or not exist. I have a problem with C++ bindings that some public classes inherit from non-public classes that should not be installed. However, for C++ we just inherit from each other in the generated binding and the files need to be available to compile. We need to either 1. remove mentioning non-public classes in public classes, or 2. have a way to tag that a class is private and should not appear in the generated inheritance tree. What do you think? > -- > Tom Regards, -- Felipe Magno de Almeida -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas: loaders: make sure we create the directory first before we create symlinks
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=21315509e20c332f15e183f073adbf25ef193d86 commit 21315509e20c332f15e183f073adbf25ef193d86 Author: Stefan SchmidtDate: Mon Jun 13 16:09:53 2016 +0200 evas: loaders: make sure we create the directory first before we create symlinks We assume that the directory already exists here when creating the symlinks. Better make sure this is really the case. Thanks to Vtorri for pointing towards the fix. Fixes T3880 and T3875 --- src/Makefile_Evas.am | 4 1 file changed, 4 insertions(+) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index f7a8f30..9ce7fad 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -2420,6 +2420,7 @@ generic_evas_pdf_evas_image_loader_pdf_LDADD = @USE_EINA_LIBS@ @POPPLER_LIBS@ @S generic_evas_pdf_evas_image_loader_pdf_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ EFL_INSTALL_EXEC_HOOK += \ +mkdir -p $(DESTDIR)$(libdir)/evas/utils \ ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ppt; \ ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.pptx; \ ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.odp; \ @@ -2481,6 +2482,7 @@ generic_evas_raw_evas_image_loader_raw_CFLAGS = \ @LIBRAW_CFLAGS@ EFL_INSTALL_EXEC_HOOK += \ +mkdir -p $(DESTDIR)$(libdir)/evas/utils \ ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.arw; \ ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.cr2; \ ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.crw; \ @@ -2522,6 +2524,7 @@ generic_evas_svg_evas_image_loader_svg_LDADD = @USE_EINA_LIBS@ @RSVG_LIBS@ @SHM_ generic_evas_svg_evas_image_loader_svg_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ EFL_INSTALL_EXEC_HOOK += \ +mkdir -p $(DESTDIR)$(libdir)/evas/utils \ ln -sf evas_image_loader.svg $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svgz; \ ln -sf evas_image_loader.svg $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svg.gz; @@ -2544,4 +2547,5 @@ generic_evas_xcf_evas_image_loader_xcf_CFLAGS = \ generic_evas_xcf_evas_image_loader_xcf_LDADD = @USE_EINA_LIBS@ @SHM_LIBS@ -lm -lz generic_evas_xcf_evas_image_loader_xcf_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ EFL_INSTALL_EXEC_HOOK += \ +mkdir -p $(DESTDIR)$(libdir)/evas/utils \ ln -sf evas_image_loader.xcf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xcf.gz; --
Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
On 13/06/16 15:01, Stefan Schmidt wrote: > Hello. > > On 13/06/16 14:18, Stefan Schmidt wrote: >> Hello. >> >> On 13/06/16 13:16, Tom Hacohen wrote: >>> Hey, >>> >>> As part of the development process of the new Eo API we marked all of >>> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I >>> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that. >>> >>> Anyhow, now is time to remove these tags (where appropriate), so these >>> APIs are released. >>> >>> I guess we can just remove all of the occurrences of the EO one, but we >>> need to be more careful with the other one. >>> >>> Is there anyone who has time to take care of this? Stefan? Or should I >>> try to tackle it on Thursday when I'm done with travel and other stuff I >>> need to deal with? >>> >> I will have a look at it. >> >> Are we really sure that all APIs behind the EFL_EO_API_SUPPORT are >> really finsalised? >> >> We might need to come up with a list of them and brign them up here for >> the audience. >> > > After removal of the EFL_EO_API_SUPPORT ifdef we have the following new > APIs that we need to support. (git grep "ifdef EFL_EO_API_SUPPORT") > I did only list areas here as listing every single new function, struct, > event, etc would just be to big. > > Ecore: > o ecore_poller > o ecore_loop_timer > o ecore_exe > o efl_loop > o efl_loop_args > o efl_loop_user > o efl_loop_fd > > Ecore_Con: > o efl_network > o efl_network_server > o efl_network_connector > o efl_network_client > o efl_network_url > > Edje: > o edje_object > o edje_edit > > Eio: > o eio_job > o eio_sentry > o eio_model > > Emotion: > o emotion_object > > Evas: > o canvas/efl_ui_draggable > o canvas/efl_ui_clickable > o canvas/efl_ui_scrollable > o canvas/efl_ui_selectable > o canvas/efl_ui_zoomable > o canvas/evas_canvas > o canvas/efl_canvas_rectangle > o canvas/evas_textblock > o canvas/efl_canvas_polygon > o canvas/evas_object_smart > o canvas/evas_smart_clipped > o canvas/evas_common_interface > o canvas/evas_object > o canvas/evas_canvas3d_object > o canvas/evas_canvas3d_texture > o canvas/evas_canvas3d_material > o canvas/evas_canvas3d_light > o canvas/evas_canvas3d_primitive > o canvas/evas_canvas3d_mesh > o canvas/evas_canvas3d_node > o canvas/evas_canvas3d_camera > o canvas/evas_canvas3d_scene > o canvas/efl_canvas_image_internal > o canvas/efl_canvas_image > o canvas/efl_canvas_snapshot > o canvas/efl_canvas_proxy > o canvas/efl_canvas_scene3d > o canvas/evas_vg > o canvas/efl_vg > o canvas/efl_vg_container > o canvas/efl_vg_shape > o canvas/efl_vg_gradient > o canvas/efl_vg_gradient_linear > o canvas/efl_vg_gradient_radial > o canvas/efl_event_input > o canvas/efl_event_pointer > o canvas/efl_event_key > > Elementary: > o efl_ui_box > o efl_ui_box_flow > o efl_ui_grid > o efl_ui_grid static > o efl_ui_image > o efl_ui_win > o efl_ui_win_standard > o efl_ui_nstate > o elc_combobox > o elc_ctxpopup > o elc_fileselector > o elc_fileselector_button > o elc_fileselector_entry > o elc_hoversel > o elc_multibuttonentry > o elc_naviframe > o elc_popup > o elm_actionslider > o elm_app_client > o elm_app_client_view > o elm_app_server > o elm_app_server_view > o elm_atspi_app_object > o elm_atspi_bridge > o elm_bg > o elm_bubble > o elm_button > o elm_calendar > o elm_check > o elm_clock > o elm_colorselector > o elm_conform > o elm_datetime > o elm_dayselector > o elm_diskselector > o elm_entry > o elm_flip > o elm_flipselector > o elm_frame > o elm_gengrid > o elm_genlist > o elm_gesture_layer > o elm_glview > o elm_hover > o elm_icon > o elm_image > o elm_index > o elm_interface_atspi_accessible > o elm_interface_atspi_accessible > o elm_interface_atspi_text > o elm_interface_atspi_widget_action > o elm_interface_atspi_window > o elm_interfaces > o elm_inwin > o elm_label > o elm_layout > o elm_list > o elm_map > o elm_menu > o elm_notify > o elm_panel > o elm_panes > o elm_photo > o elm_photocam > o elm_plug > o elm_prefs > o elm_progressbar > o elm_radio > o elm_route > o elm_scroller > o elm_segment_control > o elm_separator > o elm_slider > o elm_slideshow > o elm_spinner > o elm_systray > o elm_thumb > o elm_toolbar > o elm_video > o elm_view_form > o elm_view_list > o elm_web > o elm_win > o elm_win_standard > > If you are the author of one of these and you believe that the API is > not ready yet please move it to the EFL_BETA_API_SUPPORT define. We > should also look through that one and move things out if they are now > longer deemed beta. > > If you are not the author of one of these above but still think they > should not be part of our API from 1.18 on please speak up now! > > I will start to gradually remove the EFL_EO_API_SUPPORT flag from our > code base over the next days. I guess we'll have to do it selectively then, because only the "efl*" APIs should be there. Any leftovers should either be internal (not installed) or not exist. -- Tom
Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
Hello. On 13/06/16 14:18, Stefan Schmidt wrote: > Hello. > > On 13/06/16 13:16, Tom Hacohen wrote: >> Hey, >> >> As part of the development process of the new Eo API we marked all of >> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I >> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that. >> >> Anyhow, now is time to remove these tags (where appropriate), so these >> APIs are released. >> >> I guess we can just remove all of the occurrences of the EO one, but we >> need to be more careful with the other one. >> >> Is there anyone who has time to take care of this? Stefan? Or should I >> try to tackle it on Thursday when I'm done with travel and other stuff I >> need to deal with? >> > I will have a look at it. > > Are we really sure that all APIs behind the EFL_EO_API_SUPPORT are > really finsalised? > > We might need to come up with a list of them and brign them up here for > the audience. > After removal of the EFL_EO_API_SUPPORT ifdef we have the following new APIs that we need to support. (git grep "ifdef EFL_EO_API_SUPPORT") I did only list areas here as listing every single new function, struct, event, etc would just be to big. Ecore: o ecore_poller o ecore_loop_timer o ecore_exe o efl_loop o efl_loop_args o efl_loop_user o efl_loop_fd Ecore_Con: o efl_network o efl_network_server o efl_network_connector o efl_network_client o efl_network_url Edje: o edje_object o edje_edit Eio: o eio_job o eio_sentry o eio_model Emotion: o emotion_object Evas: o canvas/efl_ui_draggable o canvas/efl_ui_clickable o canvas/efl_ui_scrollable o canvas/efl_ui_selectable o canvas/efl_ui_zoomable o canvas/evas_canvas o canvas/efl_canvas_rectangle o canvas/evas_textblock o canvas/efl_canvas_polygon o canvas/evas_object_smart o canvas/evas_smart_clipped o canvas/evas_common_interface o canvas/evas_object o canvas/evas_canvas3d_object o canvas/evas_canvas3d_texture o canvas/evas_canvas3d_material o canvas/evas_canvas3d_light o canvas/evas_canvas3d_primitive o canvas/evas_canvas3d_mesh o canvas/evas_canvas3d_node o canvas/evas_canvas3d_camera o canvas/evas_canvas3d_scene o canvas/efl_canvas_image_internal o canvas/efl_canvas_image o canvas/efl_canvas_snapshot o canvas/efl_canvas_proxy o canvas/efl_canvas_scene3d o canvas/evas_vg o canvas/efl_vg o canvas/efl_vg_container o canvas/efl_vg_shape o canvas/efl_vg_gradient o canvas/efl_vg_gradient_linear o canvas/efl_vg_gradient_radial o canvas/efl_event_input o canvas/efl_event_pointer o canvas/efl_event_key Elementary: o efl_ui_box o efl_ui_box_flow o efl_ui_grid o efl_ui_grid static o efl_ui_image o efl_ui_win o efl_ui_win_standard o efl_ui_nstate o elc_combobox o elc_ctxpopup o elc_fileselector o elc_fileselector_button o elc_fileselector_entry o elc_hoversel o elc_multibuttonentry o elc_naviframe o elc_popup o elm_actionslider o elm_app_client o elm_app_client_view o elm_app_server o elm_app_server_view o elm_atspi_app_object o elm_atspi_bridge o elm_bg o elm_bubble o elm_button o elm_calendar o elm_check o elm_clock o elm_colorselector o elm_conform o elm_datetime o elm_dayselector o elm_diskselector o elm_entry o elm_flip o elm_flipselector o elm_frame o elm_gengrid o elm_genlist o elm_gesture_layer o elm_glview o elm_hover o elm_icon o elm_image o elm_index o elm_interface_atspi_accessible o elm_interface_atspi_accessible o elm_interface_atspi_text o elm_interface_atspi_widget_action o elm_interface_atspi_window o elm_interfaces o elm_inwin o elm_label o elm_layout o elm_list o elm_map o elm_menu o elm_notify o elm_panel o elm_panes o elm_photo o elm_photocam o elm_plug o elm_prefs o elm_progressbar o elm_radio o elm_route o elm_scroller o elm_segment_control o elm_separator o elm_slider o elm_slideshow o elm_spinner o elm_systray o elm_thumb o elm_toolbar o elm_video o elm_view_form o elm_view_list o elm_web o elm_win o elm_win_standard If you are the author of one of these and you believe that the API is not ready yet please move it to the EFL_BETA_API_SUPPORT define. We should also look through that one and move things out if they are now longer deemed beta. If you are not the author of one of these above but still think they should not be part of our API from 1.18 on please speak up now! I will start to gradually remove the EFL_EO_API_SUPPORT flag from our code base over the next days. regards Stefan Schmidt -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net
[EGIT] [core/efl] master 01/01: eolian: fix error cursor positioning
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=922e4e918182c4a6d012973a237b89b9248a017c commit 922e4e918182c4a6d012973a237b89b9248a017c Author: Daniel KolesaDate: Mon Jun 13 14:53:35 2016 +0100 eolian: fix error cursor positioning Previously, multi-char tokens (such as strings, docs etc) always put the error cursor to the end of the token. That was confusing, so now the cursor always appears at the beginning of the token instead (for multiline tokens, currently only docs, the line number is also adjusted to point to the first line of the doc token). @fix --- src/lib/eolian/eo_lexer.c | 97 ++- src/lib/eolian/eo_lexer.h | 4 +- 2 files changed, 65 insertions(+), 36 deletions(-) diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 878926f..b285405 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -154,8 +154,9 @@ static void next_line(Eo_Lexer *ls) next_char(ls); ls->stream_line = ls->stream; } - if (++ls->line_number >= INT_MAX) + if (++ls->iline_number >= INT_MAX) eo_lexer_syntax_error(ls, "chunk has too many lines"); + ls->line_number = ls->iline_number; ls->icolumn = ls->column = 0; } @@ -833,10 +834,15 @@ lex(Eo_Lexer *ls, Eo_Token *tok) case '[': { int dline = ls->line_number, dcol = ls->column; + const char *sline = ls->stream_line; next_char(ls); if (ls->current != '[') return '['; next_char(ls); read_doc(ls, tok, dline, dcol); + ls->column = dcol + 1; + /* doc is the only potentially multiline token */ + ls->line_number = dline; + ls->stream_line = sline; return TOK_DOC; } case '\0': @@ -845,11 +851,13 @@ lex(Eo_Lexer *ls, Eo_Token *tok) next_char(ls); if (!ls->expr_mode || (ls->current != '=')) return '='; next_char(ls); +--ls->column; return TOK_EQ; case '!': next_char(ls); if (!ls->expr_mode || (ls->current != '=')) return '!'; next_char(ls); +--ls->column; return TOK_NQ; case '>': next_char(ls); @@ -857,11 +865,13 @@ lex(Eo_Lexer *ls, Eo_Token *tok) if (ls->current == '=') { next_char(ls); + --ls->column; return TOK_GE; } else if (ls->current == '>') { next_char(ls); + --ls->column; return TOK_RSH; } return '>'; @@ -871,11 +881,13 @@ lex(Eo_Lexer *ls, Eo_Token *tok) if (ls->current == '=') { next_char(ls); + --ls->column; return TOK_LE; } else if (ls->current == '<') { next_char(ls); + --ls->column; return TOK_LSH; } return '<'; @@ -883,47 +895,62 @@ lex(Eo_Lexer *ls, Eo_Token *tok) next_char(ls); if (!ls->expr_mode || (ls->current != '&')) return '&'; next_char(ls); +--ls->column; return TOK_AND; case '|': next_char(ls); if (!ls->expr_mode || (ls->current != '|')) return '|'; next_char(ls); +--ls->column; return TOK_OR; case '"': -if (!ls->expr_mode) - { - next_char(ls); - return '"'; - } -read_string(ls, tok); -return TOK_STRING; +{ + int dcol = ls->column; + if (!ls->expr_mode) + { +next_char(ls); +return '"'; + } + /* strings are not multiline for now at least */ + read_string(ls, tok); + ls->column = dcol + 1; + return TOK_STRING; +} case '\'': -next_char(ls); -if (!ls->expr_mode) return '\''; -if (ls->current == '\\') - { - next_char(ls); - eina_strbuf_reset(ls->buff); - read_escape(ls); - tok->value.c = (char)*eina_strbuf_string_get(ls->buff); - } -else - { - tok->value.c = ls->current; - next_char(ls); - } -if (ls->current != '\'') - eo_lexer_lex_error(ls, "unfinished character", TOK_CHAR); -next_char(ls); -return TOK_CHAR; +{ + int dcol = ls->column; + next_char(ls); + if (!ls->expr_mode) return '\''; + if (ls->current == '\\') + { +next_char(ls); +eina_strbuf_reset(ls->buff); +read_escape(ls); +tok->value.c = (char)*eina_strbuf_string_get(ls->buff); + } + else +
Re: [E-devel] Fwd: Eldbus & thread safe
Cool thank you raster! 2016. 6. 13. 오후 6:32에 "Carsten Haitzler"님이 작성: > On Fri, 10 Jun 2016 10:51:56 +0900 Kim Shinwoo > said: > > standard answer for efl: > > "efl is not threadsafe. use the few thread specific api's we have like > ecore_main_loop_begin/end , the sync/async call etc. etc.". :) > > > > Very thank you for response. > > I got crash issue from developer. > > They are using the eldbus on thread to get property changed event using > > following eldbus APIs. > > > > eldbus_connection_get, > > eldbus_object_get, > > eldbus_proxy_get, > > eldbus_proxy_properties_monitor, > > eldbus_proxy_event_callback_add > > > > That is it. > > There is nothing speciall purpose to use eldbus. > > It seems that it is common usage. > > > > We suggested to use ecore_main_loop_begin, end > > At both before, and after line using eldbua on thread. > > > > Is this proper way to solve this thread kind of issue? > > 2016. 6. 10. 오전 12:27에 "Cedric BAIL" 님이 작성: > > > > > On Jun 9, 2016 3:57 AM, "Kim Shinwoo" wrote: > > > > > > > > https://dbus.freedesktop.org/doc/api/html/group__DBusThreads.html > > > > > > > > It seems that dbus is unsafe before handling dbus with dbus thread. > > > > > > > > If we are not using this then.. clearly it is thread unsafe. > > > > > > > > Am I right? > > > > > > Yes.eldbus is not thread safe. May I ask what is your use of it that > would > > > require it ? Dbus is very asynchronous by nature and very light in > > > communication, so it is very uncommon to need a thread to handle it. > > > > > > Cedric > > > > > > > 2016. 6. 9. 오후 7:44에 "Kim Shinwoo" 님이 작성: > > > > > > > > > Sorry for short Q writting on the road using phone. :/ > > > > > If it is not thread safe, do I have to use some ways such as.. > ecore > > > > > thread? > > > > > > > > > > Anyone knows thread safety of Dbus? > > > > > -- 전달된 메일 -- > > > > > 보낸사람: "Kim Shinwoo" > > > > > 날짜: 2016. 6. 9. 오후 7:34 > > > > > 제목: Eldbus & thread safe > > > > > 받는사람: "Enlightenment developer list" < > > > > > enlightenment-devel@lists.sourceforge.net> > > > > > 참조: > > > > > > > > > > Hello all. > > > > >> > > > > >> The eldbus is thread safe? > > > > >> > > > > >> Sincerely, > > > > >> Shinwoo Kim > > > > >> > > > > > > > > > > > > > > > > -- > > > > What NetFlow Analyzer can do for you? Monitors network bandwidth and > > > traffic > > > > patterns at an interface-level. Reveals which users, apps, and > protocols > > > are > > > > consuming the most bandwidth. Provides multi-vendor support for > NetFlow, > > > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > > > planning reports. > > > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > > > ___ > > > > enlightenment-devel mailing list > > > > enlightenment-devel@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > -- > > > What NetFlow Analyzer can do for you? Monitors network bandwidth and > > > traffic > > > patterns at an interface-level. Reveals which users, apps, and > protocols > > > are > > > consuming the most bandwidth. Provides multi-vendor support for > NetFlow, > > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > > planning reports. > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > > ___ > > > enlightenment-devel mailing list > > > enlightenment-devel@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > -- > > What NetFlow Analyzer can do for you? Monitors network bandwidth and > traffic > > patterns at an interface-level. Reveals which users, apps, and protocols > are > > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > planning reports. > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > ___ > > 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 > > -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support
[EGIT] [tools/eflete] master 01/02: Tizen theme: replace zoom combobox by spinner.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=c9ab38e38959e951d0d2c3ad7112650e9ca28f3a commit c9ab38e38959e951d0d2c3ad7112650e9ca28f3a Author: Mykyta BiliavskyiDate: Mon Jun 13 12:05:07 2016 +0300 Tizen theme: replace zoom combobox by spinner. --- src/bin/ui/workspace/workspace.c | 43 +++- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index f052132..4d5c374 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -39,7 +39,9 @@ Workspace_Data *wd = evas_object_data_get(OBJ, WORKSPACE_DATA); \ assert(wd != NULL); +#if !HAVE_TIZEN static int zoom_values[] = { 20, 50, 100, 200, 500, 0 }; +#endif /* As the workspace can manage the one drag in one time, and only one workspace * viewed, we can use the static Change for all workspace */ @@ -289,13 +291,17 @@ _slider_zoom_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Eina_Stringshare *text; Workspace_Data *wd = data; wd->zoom_factor = elm_slider_value_get(wd->toolbar.zoom.slider) / 100; +#if HAVE_TIZEN + elm_spinner_value_set(wd->toolbar.zoom.cmb_zoom, (int)(wd->zoom_factor * 100)); +#else + Eina_Stringshare *text; text = eina_stringshare_printf("%d%%", (int)(wd->zoom_factor * 100)); ewe_combobox_text_set(wd->toolbar.zoom.cmb_zoom, text); eina_stringshare_del(text); +#endif _members_zoom_set(wd); } @@ -307,6 +313,21 @@ _zoom_controls_disabled_set(Workspace_Data *wd, Eina_Bool disabled) elm_object_disabled_set(wd->toolbar.zoom.slider, disabled); } +#if HAVE_TIZEN +static void +_spinner_zoom_cb(void *data, + Evas_Object *obj, + void *event_info __UNUSED__) +{ + Workspace_Data *wd = (Workspace_Data *)data; + + double val = elm_spinner_value_get(obj); + wd->zoom_factor = val / 100.0; + elm_slider_value_set(wd->toolbar.zoom.slider, (int) val); + + _members_zoom_set(wd); +} +#else static void _zoom_selected_cb(void *data, Evas_Object *obj __UNUSED__, @@ -320,14 +341,13 @@ _zoom_selected_cb(void *data, _members_zoom_set(wd); } +#endif static void _zoom_controls_add(Workspace_Data *wd) { - int i = 0; Elm_Object_Item *tb_it; Evas_Object *img; - Eina_Stringshare *text; wd->toolbar.zoom.fit = elm_button_add(wd->toolbar.obj); evas_object_smart_callback_add(wd->toolbar.zoom.fit, "clicked", _fit_cb, wd); @@ -353,23 +373,28 @@ _zoom_controls_add(Workspace_Data *wd) tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL); elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.slider); +#if HAVE_TIZEN + SPINNER_ADD(wd->toolbar.obj, wd->toolbar.zoom.cmb_zoom, 10, 1000, 10, true); + evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 76, 0); + elm_spinner_value_set(wd->toolbar.zoom.cmb_zoom, 100); + evas_object_smart_callback_add(wd->toolbar.zoom.cmb_zoom, "changed", _spinner_zoom_cb, wd); +#else + int i = 0; + Eina_Stringshare *text; EWE_COMBOBOX_ADD(wd->toolbar.obj, wd->toolbar.zoom.cmb_zoom); evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 70, 0); ewe_combobox_text_set(wd->toolbar.zoom.cmb_zoom, _("100%")); evas_object_smart_callback_add(wd->toolbar.zoom.cmb_zoom, "selected", _zoom_selected_cb, wd); - tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL); - elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.cmb_zoom); - while (zoom_values[i]) + while (zoom_values[i]) { text = eina_stringshare_printf("%d%%", zoom_values[i]); ewe_combobox_item_add(wd->toolbar.zoom.cmb_zoom, text); eina_stringshare_del(text); i++; } - - +#endif tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL); - elm_toolbar_item_separator_set(tb_it, true); + elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.cmb_zoom); } static void --
[EGIT] [tools/eflete] master 02/02: Tizen theme: update layout for zoom controls.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=80513bc5fdd69ec7e880495d937a2d50d9142b8a commit 80513bc5fdd69ec7e880495d937a2d50d9142b8a Author: Mykyta BiliavskyiDate: Mon Jun 13 14:43:54 2016 +0300 Tizen theme: update layout for zoom controls. --- data/themes/tizen/images/tool_percent_nor.png | Bin 0 -> 172 bytes data/themes/tizen/widgets/layout.edc | 1 + data/themes/tizen/widgets/layouts/zoom.edc| 67 ++ src/bin/ui/workspace/workspace.c | 19 ++-- 4 files changed, 83 insertions(+), 4 deletions(-) diff --git a/data/themes/tizen/images/tool_percent_nor.png b/data/themes/tizen/images/tool_percent_nor.png new file mode 100644 index 000..595c833 Binary files /dev/null and b/data/themes/tizen/images/tool_percent_nor.png differ diff --git a/data/themes/tizen/widgets/layout.edc b/data/themes/tizen/widgets/layout.edc index f43899f..319fbff 100644 --- a/data/themes/tizen/widgets/layout.edc +++ b/data/themes/tizen/widgets/layout.edc @@ -1957,3 +1957,4 @@ group { name: "elm/layout/popup/1swallow_subtext"; #include "layouts/tabs.edc" #include "layouts/workspace.edc" #include "layouts/container.edc" +#include "layouts/zoom.edc" diff --git a/data/themes/tizen/widgets/layouts/zoom.edc b/data/themes/tizen/widgets/layouts/zoom.edc new file mode 100644 index 000..a39f17a --- /dev/null +++ b/data/themes/tizen/widgets/layouts/zoom.edc @@ -0,0 +1,67 @@ +group { name: "elm/layout/zoom/controls"; + images { + image: "tool_percent_nor.png" COMP; + } + parts { + part { name: "swallow.slider"; + type: SWALLOW; + description { state: "default" 0.0; +align: 0.0 0.5; +min: 134 0; +max: 134 -1; + } + } + part { name: "spacer.slider"; + type: SPACER; + description { state: "default" 0.0; +align: 0.0 0.5; +min: 17 0; +max: 17 -1; +rel1 { + relative: 1.0 0.0; + to_x: "swallow.slider"; +} + } + } + part { name: "image.percents"; + type: IMAGE; + description { state: "default" 0.0; +align: 1.0 0.5; +min: 9 9; +max: 9 9; +image.normal: "tool_percent_nor.png"; +fill.smooth: 0; + } + } + part { name: "spacer.percents"; + type: SPACER; + description { state: "default" 0.0; +align: 1.0 0.5; +fixed: 1 0; +min: 5 5; +max: 5 5; +rel1.to_x: "image.percents"; +rel2 { + relative: 0.0 1.0; + to_x: "image.percents"; +} + } + } + part { name: "swallow.spinner"; + type: SWALLOW; + description { state: "default" 0.0; +align: 1.0 0.5; +min: 76 0; +max: 76 -1; +rel1.to_x: "spacer.slider"; +rel1.relative: 1.0 0; +rel2 { + relative: 0.0 1.0; + to_x: "spacer.percents"; +} + } + } + } +} + + diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index 4d5c374..83c4e8c 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -370,14 +370,25 @@ _zoom_controls_add(Workspace_Data *wd) elm_object_part_content_set(wd->toolbar.zoom.slider, "elm.swallow.icon", img); IMAGE_ADD_NEW(wd->toolbar.zoom.slider, img, "icon", "scale_larger") elm_object_part_content_set(wd->toolbar.zoom.slider, "elm.swallow.end", img); +#if HAVE_TIZEN + evas_object_size_hint_min_set(wd->toolbar.zoom.slider, 134, 0); + Evas_Object *zoom_layout = elm_layout_add(wd->toolbar.obj); + elm_layout_theme_set(zoom_layout, "layout", "zoom", "controls"); + evas_object_show(zoom_layout); + elm_object_part_content_set(zoom_layout, "swallow.slider", wd->toolbar.zoom.slider); +#else tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL); elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.slider); +#endif #if HAVE_TIZEN SPINNER_ADD(wd->toolbar.obj, wd->toolbar.zoom.cmb_zoom, 10, 1000, 10, true); evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 76, 0); elm_spinner_value_set(wd->toolbar.zoom.cmb_zoom, 100); evas_object_smart_callback_add(wd->toolbar.zoom.cmb_zoom, "changed", _spinner_zoom_cb, wd); + elm_object_part_content_set(zoom_layout, "swallow.spinner", wd->toolbar.zoom.cmb_zoom); + tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL); + elm_object_item_part_content_set(tb_it, NULL, zoom_layout); #else int i = 0; Eina_Stringshare *text; @@ -385,16 +396,16 @@ _zoom_controls_add(Workspace_Data *wd) evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 70, 0);
[EGIT] [tools/enventor] master 01/01: main: Fix help contents for workspace path option.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=0e54be9d8e0a9249d3ee2515d1defc5d30917ae9 commit 0e54be9d8e0a9249d3ee2515d1defc5d30917ae9 Author: Jaehyun ChoDate: Mon Jun 13 21:46:59 2016 +0900 main: Fix help contents for workspace path option. Synchronize help contents for workspace path option with other path options. --- src/bin/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/main.c b/src/bin/main.c index 29d0289..40e3394 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -270,7 +270,7 @@ args_dispatch(int argc, char **argv, "path", ECORE_GETOPT_TYPE_STR), ECORE_GETOPT_APPEND_METAVAR('d', "dd", "Data path", "path", ECORE_GETOPT_TYPE_STR), - ECORE_GETOPT_STORE_STR('w', "wd", "Workspace path"), + ECORE_GETOPT_STORE_METAVAR_STR('w', "wd", "Workspace path", "path"), ECORE_GETOPT_VERSION('v', "version"), ECORE_GETOPT_COPYRIGHT('c', "copyright"), ECORE_GETOPT_LICENSE('l', "license"), --
[EGIT] [core/efl] master 01/01: edje_calc: fix interpolate calculation of map colors
furrymyad pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4fd1c4f25bcb291d821ba3b02a005b721e689a21 commit 4fd1c4f25bcb291d821ba3b02a005b721e689a21 Author: Vitalii VorobiovDate: Mon Jun 13 15:31:48 2016 +0300 edje_calc: fix interpolate calculation of map colors There were a problem when while swithcing between states (because of program running in transition), there is SIGSEV appearing when first state has only one point color, and next state more than one. Basically it looks like this: part { name: "rectangle"; type: RECT; description { state: "default" 0.0; map { on: 1; color: 3 255 90 0 255; } } description { state: "moved" 0.0; map { on: 1; color: 0 0 0 255 255; color: 1 255 0 0 255; color: 2 255 90 0 255; color: 3 41 68 59 255; } } } @fix --- src/lib/edje/edje_calc.c | 87 ++-- 1 file changed, 40 insertions(+), 47 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index add1e75..6c474de 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -3572,9 +3572,11 @@ static Eina_Bool _map_colors_interp(Edje_Calc_Params *p1, Edje_Calc_Params *p2, Edje_Calc_Params_Map *pmap, FLOAT_T pos) { - Edje_Map_Color *col, *col2, *col3; - int i, j, idx = 0; - Eina_Bool matched = EINA_FALSE; + Edje_Map_Color *col = NULL, *col2 = NULL, *col3; + int i, j; + + unsigned char col1_r = 255, col1_g = 255, col1_b = 255, col1_a = 255; + unsigned char col2_r = 255, col2_g = 255, col2_b = 255, col2_a = 255; if ((p1->map->colors_count > 0) || (p2->map->colors_count > 0)) { @@ -3582,59 +3584,50 @@ _map_colors_interp(Edje_Calc_Params *p1, Edje_Calc_Params *p2, pmap->colors = (Edje_Map_Color **)malloc(sizeof(Edje_Map_Color *) * (int)pmap->colors_count); -for (i = 0; i < (int)p1->map->colors_count; i++) +/* create all Map Color structs at first + to make sure we won't get SIGSEV later on cleanup. */ +for (i = 0; i < (int)pmap->colors_count; i++) { - col = p1->map->colors[i]; col3 = malloc(sizeof(Edje_Map_Color)); - col3->idx = col->idx; - - for (j = 0; j < (int)p2->map->colors_count; j++) - { - col2 = p2->map->colors[j]; - if (col->idx != col2->idx) continue; - col3->r = INTP(col->r, col2->r, pos); - col3->g = INTP(col->g, col2->g, pos); - col3->b = INTP(col->b, col2->b, pos); - col3->a = INTP(col->a, col2->a, pos); - pmap->colors[idx] = col3; - matched = EINA_TRUE; - break; - } - if (!matched) - { - col3->r = INTP(col->r, 255, pos); - col3->g = INTP(col->g, 255, pos); - col3->b = INTP(col->b, 255, pos); - col3->a = INTP(col->a, 255, pos); - pmap->colors[idx] = col3; - } - idx++; - matched = EINA_FALSE; - } -for (i = 0; i < (int)p2->map->colors_count; i++) - { - col = p2->map->colors[i]; + col3->idx = i; /* we don't care about index position anyway */ + /* find color with idx from first */ for (j = 0; j < (int)p1->map->colors_count; j++) { - col2 = p1->map->colors[j]; - if (col->idx != col2->idx) continue; - matched = EINA_TRUE; - break; + col = p1->map->colors[j]; + if (col3->idx == col->idx) +{ + col1_r = col->r; + col1_g = col->g; + col1_b = col->b; + col1_a = col->a; + break; +} } - if (!matched) + /* find color from idx from second */ + for (j = 0; j < (int)p2->map->colors_count; j++) { - col3 = malloc(sizeof(Edje_Map_Color)); - col3->idx = col->idx; - col3->r = INTP(255, col->r, pos); - col3->g = INTP(255, col->g, pos); - col3->b = INTP(255, col->b, pos); - col3->a = INTP(255, col->a, pos); - pmap->colors[idx] = col3; + col2 = p2->map->colors[j]; + if (col3->idx == col2->idx) +{ + col2_r = col2->r; + col2_g = col2->g; +
Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
Hello. On 13/06/16 13:16, Tom Hacohen wrote: > Hey, > > As part of the development process of the new Eo API we marked all of > the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I > think we maybe also use EFL_BETA_API_SUPPORT, need to verify that. > > Anyhow, now is time to remove these tags (where appropriate), so these > APIs are released. > > I guess we can just remove all of the occurrences of the EO one, but we > need to be more careful with the other one. > > Is there anyone who has time to take care of this? Stefan? Or should I > try to tackle it on Thursday when I'm done with travel and other stuff I > need to deal with? > I will have a look at it. Are we really sure that all APIs behind the EFL_EO_API_SUPPORT are really finsalised? We might need to come up with a list of them and brign them up here for the audience. regards Stefan Schmidt -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/eflete] master 01/01: Tizen theme: update style for a fit button.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=fdc9ad848ef67c738d89ad950bc008cbbb68a277 commit fdc9ad848ef67c738d89ad950bc008cbbb68a277 Author: Mykyta BiliavskyiDate: Mon Jun 13 11:27:04 2016 +0300 Tizen theme: update style for a fit button. --- data/themes/tizen/images/tool_autofit_dim.png | Bin 1051 -> 1051 bytes data/themes/tizen/images/tool_autofit_mv.png | Bin 1052 -> 1055 bytes data/themes/tizen/images/tool_autofit_nor.png | Bin 1051 -> 1054 bytes data/themes/tizen/images/tool_autofit_sel.png | Bin 1057 -> 1059 bytes data/themes/tizen/widgets/button.edc | 8 ++-- 5 files changed, 2 insertions(+), 6 deletions(-) diff --git a/data/themes/tizen/images/tool_autofit_dim.png b/data/themes/tizen/images/tool_autofit_dim.png index e555210..4be8ef7 100644 Binary files a/data/themes/tizen/images/tool_autofit_dim.png and b/data/themes/tizen/images/tool_autofit_dim.png differ diff --git a/data/themes/tizen/images/tool_autofit_mv.png b/data/themes/tizen/images/tool_autofit_mv.png index 08ae953..50be408 100644 Binary files a/data/themes/tizen/images/tool_autofit_mv.png and b/data/themes/tizen/images/tool_autofit_mv.png differ diff --git a/data/themes/tizen/images/tool_autofit_nor.png b/data/themes/tizen/images/tool_autofit_nor.png index 477bffb..99b907b 100644 Binary files a/data/themes/tizen/images/tool_autofit_nor.png and b/data/themes/tizen/images/tool_autofit_nor.png differ diff --git a/data/themes/tizen/images/tool_autofit_sel.png b/data/themes/tizen/images/tool_autofit_sel.png index 6e17827..b8ae979 100644 Binary files a/data/themes/tizen/images/tool_autofit_sel.png and b/data/themes/tizen/images/tool_autofit_sel.png differ diff --git a/data/themes/tizen/widgets/button.edc b/data/themes/tizen/widgets/button.edc index d0dfca8..b106ea0 100644 --- a/data/themes/tizen/widgets/button.edc +++ b/data/themes/tizen/widgets/button.edc @@ -1865,12 +1865,11 @@ group { name: "elm/button/base/fit"; type: IMAGE; mouse_events: 1; description { state: "default" 0.0; -min: 28 20; -max: 28 20; +min: 20 20; +max: 20 20; color: 255 255 255 255; image { normal: "tool_autofit_nor.png"; - border: 3 3 3 3; } } description { state: "visible" 0.0; @@ -1880,21 +1879,18 @@ group { name: "elm/button/base/fit"; inherit: "default" 0.0; image { normal: "tool_autofit_sel.png"; - border: 3 3 3 3; } } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "tool_autofit_dim.png"; - border: 3 3 3 3; } } description { state: "hovered" 0.0; inherit: "default" 0.0; image { normal: "tool_autofit_mv.png"; - border: 3 3 3 3; } } } --
Re: [E-devel] Struct passed by value
On Mon, Jun 13, 2016 at 05:26:45PM +0900, Carsten Haitzler wrote: > On Fri, 10 Jun 2016 11:10:47 +0900 Jean-Philippe André> said: > > my take on it is that passing by value is: > > 1. odd (its rarely if ever seen in api's - look at libc, xlib, libjpeg, > libpng, > libgif, libgif, glib, gtk+, ...) at least in c land > 2. passing by value causes you to have to use c99 constructs and/or gnu > extensions like you show: > rect_set(obj, (Eina_Rectangle){.w = 13, .h = 37}); > vs > rect_set(obj, 13, 37); I dont know if this usecase applies, you will only set hardcoded coords if you are hardcoding a ui, which is nothing which makes sense while using elm. So a usecase like Eina_Rectangle rect; rect = rect_get(obj); rect.x += 20 rect.y += 20 rect_set(obj2, rect); Is a bit more realistic, and here a single variable rect is way easier to read. Also think of multiple geometryies you are receiving you will end up with vp_x, vp_y, vp_w, vp_h, obj_x, obj_y, obj_w, obj_h etc. etc. instead of Eina_Rectangle vp, obj_geom; which is less to write and maybe invites you to give your var a more meaningfull name. > 3. which one do you prefer to write and read? :) or to not use c99: > Eina_Rectangle rect = { 13, 37 }; > rect_set(obj, rect); > vs > rect_set(obj, 13, 37); > > > remember we only need c99 to COMPILE efl. we don't require it of the code > USING > efl. :) > 4. if passed by value it may not be able to use registers and instead may copy > to memory (stack) and use a register with a ptr. this can lead to lower > performance depending on architecture )though not really a big issue for us > considering the cost of eo api anyway). also note that chances are passing: >int x, int y, int w, int h > will likely be assigned to 4 registers with the variables nicely already in a > register (if the architecture has enough registers of course) but if passing a > struct by value... let's pretend a 64bit system with 64bit registers it may > put > x and y in 1 register and w and h in another and thus accessing these values > as they have been "memcpy'd" into a series of registers requires copying out > bitshifting and masking. it likely will cost more. in fact let's do some asm > fun: > >func1(x, y, w, h); > > vs > >func2(r); > > > where r is: > >struct rect >{ > int x, y, w, h; >}; >struct rect r; > > so func1 is: > > movl-16(%rbp), %ecx > movl-12(%rbp), %edx > movl-8(%rbp), %esi > movl-4(%rbp), %eax > movl%eax, %edi > callfunc1 > > and func2: > > movq-32(%rbp), %rdx > movq-24(%rbp), %rax > movq%rdx, %rdi > movq%rax, %rsi > callfunc2 > > yup. it's moving a whole set of 64bits at a time into 2 registers vs each > value > per register. so i'm right. yes. call by value here is shorter as it drops 2 > mov's into registers but it seems to gain and extra movq there. ok let's look > at the funcs themselves > > = > func1: > .LC0: > .string "GOT1 %i %i %i %i\n" > .text > .globl func1 > .type func1, @function > func1: > .LFB2: > .cfi_startproc > pushq %rbp > .cfi_def_cfa_offset 16 > .cfi_offset 6, -16 > movq%rsp, %rbp > .cfi_def_cfa_register 6 > subq$16, %rsp > movl%edi, -4(%rbp) > movl%esi, -8(%rbp) > movl%edx, -12(%rbp) > movl%ecx, -16(%rbp) > movl-16(%rbp), %esi > movl-12(%rbp), %ecx > movl-8(%rbp), %edx > movl-4(%rbp), %eax > movl%esi, %r8d > movl%eax, %esi > movl$.LC0, %edi > movl$0, %eax > callprintf > nop > leave > .cfi_def_cfa 7, 8 > ret > > > = > func2: > > .LC1: > .string "GOT2 %i %i %i %i\n" > .text > .globl func2 > .type func2, @function > func2: > .LFB3: > .cfi_startproc > pushq %rbp > .cfi_def_cfa_offset 16 > .cfi_offset 6, -16 > movq%rsp, %rbp > .cfi_def_cfa_register 6 > subq$16, %rsp > movq%rdi, %rax > movq%rsi, %rcx > movq%rcx, %rdx > movq%rax, -16(%rbp) > movq%rdx, -8(%rbp) > movl-4(%rbp), %esi > movl-8(%rbp), %ecx > movl-12(%rbp), %edx > movl-16(%rbp), %eax > movl%esi, %r8d > movl%eax, %esi > movl$.LC1, %edi > movl$0, %eax > callprintf > nop > leave > .cfi_def_cfa 7, 8 > ret > > > so func2 is longer by 1 instruction now. lose 1, gain 1. i am not sure how > x86-64 works vs x86-32 but i think eax, edi, esi etc. are mapped to lower > 32bits of the rax, rdi, rsi, etc. registers by reading that code, thus it
[EGIT] [core/efl] master 02/05: win: Add focus events (in, out, object in/out)
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4bb8a6bd21c094460bbf8ede6833047edd93dafa commit 4bb8a6bd21c094460bbf8ede6833047edd93dafa Author: Jean-Philippe AndreDate: Mon Jun 13 16:28:17 2016 +0900 win: Add focus events (in, out, object in/out) --- src/lib/elementary/efl_ui_win.c | 62 src/lib/elementary/efl_ui_win.eo | 4 +++ 2 files changed, 66 insertions(+) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index dacc6e9..10b87a1 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -1757,6 +1757,52 @@ _elm_win_evas_render_pre(void *data, } static void +_elm_win_evas_focus_in(void *data, + Evas *e EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Eo *win = data; + + eo_event_callback_call(win, EFL_UI_WIN_EVENT_FOCUS_IN, NULL); +} + +static void +_elm_win_evas_focus_out(void *data, +Evas *e EINA_UNUSED, +Evas_Object *obj EINA_UNUSED, +void *event_info EINA_UNUSED) +{ + Eo *win = data; + + eo_event_callback_call(win, EFL_UI_WIN_EVENT_FOCUS_OUT, NULL); +} + +static void +_elm_win_evas_object_focus_in(void *data, + Evas *e EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info) +{ + Eo *object = event_info; + Eo *win = data; + + eo_event_callback_call(win, EFL_UI_WIN_EVENT_OBJECT_FOCUS_IN, object); +} + +static void +_elm_win_evas_object_focus_out(void *data, + Evas *e EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info) +{ + Eo *object = event_info; + Eo *win = data; + + eo_event_callback_call(win, EFL_UI_WIN_EVENT_OBJECT_FOCUS_OUT, object); +} + +static void _deferred_ecore_evas_free(void *data) { ecore_evas_free(data); @@ -2109,6 +2155,14 @@ _efl_ui_win_evas_object_smart_del(Eo *obj, Efl_Ui_Win_Data *sd) _elm_win_evas_render_post, obj); evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_PRE, _elm_win_evas_render_pre, obj); + evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_FOCUS_IN, + _elm_win_evas_focus_in, obj); + evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_FOCUS_OUT, + _elm_win_evas_focus_out, obj); + evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + _elm_win_evas_object_focus_in, obj); + evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, + _elm_win_evas_object_focus_out, obj); eo_event_callback_array_del(sd->evas, _elm_win_evas_forward_callbacks(), obj); eo_event_callback_array_del(obj, _elm_win_evas_feed_fake_callbacks(), sd->evas); @@ -4175,6 +4229,14 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Elm_W _elm_win_evas_render_post, obj); evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_PRE, _elm_win_evas_render_pre, obj); + evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_FOCUS_IN, + _elm_win_evas_focus_in, obj); + evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_FOCUS_OUT, + _elm_win_evas_focus_out, obj); + evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + _elm_win_evas_object_focus_in, obj); + evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, + _elm_win_evas_object_focus_out, obj); evas_object_show(sd->edje); diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index c3a337c..715d958 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -822,6 +822,10 @@ class Efl.Ui.Win (Elm.Widget, Elm.Interface.Atspi.Window, wm,rotation,changed; theme,changed; elm,action,block_menu; + focus,in; + focus,out; + object,focus,in; + object,focus,out; render,pre; render,post: Efl.Gfx.Event.Render_Post; } --
[EGIT] [core/efl] master 03/05: win: Add event device,changed
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dd24c588fadfba97e30bd234ff1008d4ab4bac9e commit dd24c588fadfba97e30bd234ff1008d4ab4bac9e Author: Jean-Philippe AndreDate: Mon Jun 13 16:31:03 2016 +0900 win: Add event device,changed --- src/lib/elementary/efl_ui_win.c | 16 src/lib/elementary/efl_ui_win.eo | 1 + 2 files changed, 17 insertions(+) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 10b87a1..dd978f2 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -1803,6 +1803,18 @@ _elm_win_evas_object_focus_out(void *data, } static void +_elm_win_evas_device_changed(void *data, + Evas *e EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info) +{ + Eo *device = event_info; + Eo *win = data; + + eo_event_callback_call(win, EFL_UI_WIN_EVENT_DEVICE_CHANGED, device); +} + +static void _deferred_ecore_evas_free(void *data) { ecore_evas_free(data); @@ -2163,6 +2175,8 @@ _efl_ui_win_evas_object_smart_del(Eo *obj, Efl_Ui_Win_Data *sd) _elm_win_evas_object_focus_in, obj); evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, _elm_win_evas_object_focus_out, obj); + evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_DEVICE_CHANGED, + _elm_win_evas_device_changed, obj); eo_event_callback_array_del(sd->evas, _elm_win_evas_forward_callbacks(), obj); eo_event_callback_array_del(obj, _elm_win_evas_feed_fake_callbacks(), sd->evas); @@ -4237,6 +4251,8 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Elm_W _elm_win_evas_object_focus_in, obj); evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, _elm_win_evas_object_focus_out, obj); + evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_DEVICE_CHANGED, + _elm_win_evas_device_changed, obj); evas_object_show(sd->edje); diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index 715d958..96c6a9d 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -828,5 +828,6 @@ class Efl.Ui.Win (Elm.Widget, Elm.Interface.Atspi.Window, object,focus,out; render,pre; render,post: Efl.Gfx.Event.Render_Post; + device,changed; } } --
[EGIT] [core/efl] master 04/05: win: Optimize event forward using callback add/del events
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=59f3841803238a21972d17336a68616406bec8b3 commit 59f3841803238a21972d17336a68616406bec8b3 Author: Jean-Philippe AndreDate: Mon Jun 13 17:28:36 2016 +0900 win: Optimize event forward using callback add/del events This is a common pattern, listen to EO_EVENT_CALLBACK_ADD/DEL in order to treat those events only when needed. --- src/lib/elementary/efl_ui_win.c | 289 ++-- 1 file changed, 246 insertions(+), 43 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index dd978f2..6178305 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -215,6 +215,26 @@ struct _Efl_Ui_Win_Data int norender; int modal_count; int response; + + struct { + short pointer_move; + short pointer_down; + short pointer_up; + short pointer_in; + short pointer_out; + short pointer_cancel; + short pointer_wheel; + short key_down; + short key_up; + short render_pre; + short render_post; + short focus_in; + short focus_out; + short object_focus_in; + short object_focus_out; + short device_changed; + } event_forward; + Eina_Boolurgent : 1; Eina_Boolmodal : 1; Eina_Booldemand_attention : 1; @@ -1668,17 +1688,6 @@ _evas_event_pointer_cb(void *data, const Eo_Event *ev) return EO_CALLBACK_CONTINUE; } -EO_CALLBACKS_ARRAY_DEFINE(_elm_win_evas_forward_callbacks, -{ EFL_EVENT_POINTER_MOVE, _evas_event_pointer_cb }, -{ EFL_EVENT_POINTER_DOWN, _evas_event_pointer_cb }, -{ EFL_EVENT_POINTER_UP, _evas_event_pointer_cb }, -{ EFL_EVENT_POINTER_IN, _evas_event_pointer_cb }, -{ EFL_EVENT_POINTER_OUT, _evas_event_pointer_cb }, -{ EFL_EVENT_POINTER_CANCEL, _evas_event_pointer_cb }, -{ EFL_EVENT_POINTER_WHEEL, _evas_event_pointer_cb }, -{ EFL_EVENT_KEY_DOWN, _evas_event_key_cb }, -{ EFL_EVENT_KEY_UP, _evas_event_key_cb }) - /* feed events from the window to evas - for fake inputs */ static Eina_Bool _evas_event_key_feed_fake_cb(void *data, const Eo_Event *ev) @@ -1814,6 +1823,228 @@ _elm_win_evas_device_changed(void *data, eo_event_callback_call(win, EFL_UI_WIN_EVENT_DEVICE_CHANGED, device); } +static Eina_Bool +_win_event_add_cb(void *data, const Eo_Event *ev) +{ + const Eo_Callback_Array_Item *array = ev->info; + Efl_Ui_Win_Data *sd = data; + Efl_Ui_Win *win = ev->object; + int i; + + for (i = 0; array[i].desc; i++) + { +if (ev->info == EFL_EVENT_POINTER_MOVE) + { + if (!(sd->event_forward.pointer_move++)) + eo_event_callback_add(sd->evas, array[i].desc, + _evas_event_pointer_cb, win); + } +else if (ev->info == EFL_EVENT_POINTER_DOWN) + { + if (!(sd->event_forward.pointer_down++)) + eo_event_callback_add(sd->evas, array[i].desc, + _evas_event_pointer_cb, win); + } +else if (ev->info == EFL_EVENT_POINTER_UP) + { + if (!(sd->event_forward.pointer_up++)) + eo_event_callback_add(sd->evas, array[i].desc, + _evas_event_pointer_cb, win); + } +else if (ev->info == EFL_EVENT_POINTER_IN) + { + if (!(sd->event_forward.pointer_in++)) + eo_event_callback_add(sd->evas, array[i].desc, + _evas_event_pointer_cb, win); + } +else if (ev->info == EFL_EVENT_POINTER_OUT) + { + if (!(sd->event_forward.pointer_out++)) + eo_event_callback_add(sd->evas, array[i].desc, + _evas_event_pointer_cb, win); + } +else if (ev->info == EFL_EVENT_POINTER_CANCEL) + { + if (!(sd->event_forward.pointer_cancel++)) + eo_event_callback_add(sd->evas, array[i].desc, + _evas_event_pointer_cb, win); + } +else if (ev->info == EFL_EVENT_POINTER_WHEEL) + { + if (!(sd->event_forward.pointer_wheel++)) + eo_event_callback_add(sd->evas, array[i].desc, + _evas_event_pointer_cb, win); + } +else if (ev->info == EFL_EVENT_KEY_DOWN) + { + if (!(sd->event_forward.key_down++)) + eo_event_callback_add(sd->evas, array[i].desc, + _evas_event_key_cb, win); + } +else if (ev->info == EFL_EVENT_KEY_UP) + { + if (!(sd->event_forward.key_up++)) + eo_event_callback_add(sd->evas, array[i].desc, +
[EGIT] [core/efl] master 05/05: Ecore_Input: define data type for joysticks
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f70be6eb28a2ed6c6bfc23a14d6ad2cebfe1b95b commit f70be6eb28a2ed6c6bfc23a14d6ad2cebfe1b95b Author: Shinwoo KimDate: Mon Jun 13 19:41:38 2016 +0900 Ecore_Input: define data type for joysticks Summary: This adds support for joysticks for ecore_input Reviewers: cedric, devilhorns, Sergeant_Whitespace, raster, thiepha, zmike, jpeg Reviewed By: thiepha, zmike, jpeg Subscribers: thiepha, stefan_schmidt, zmike, singh.amitesh, Sergeant_Whitespace, jgerecke, cedric, seoz Tags: #efl Differential Revision: https://phab.enlightenment.org/D1538 --- configure.ac | 259 --- src/Makefile_Ecore_Input.am | 1 + src/examples/ecore/ecore_input_joystick_example.c | 61 src/lib/ecore_input/Ecore_Input.h | 81 + src/lib/ecore_input/ecore_input.c | 6 + src/lib/ecore_input/ecore_input_joystick.c| 386 ++ src/lib/ecore_input/ecore_input_private.h | 2 + 7 files changed, 668 insertions(+), 128 deletions(-) diff --git a/configure.ac b/configure.ac index 9b220f5..f1cf8df 100644 --- a/configure.ac +++ b/configure.ac @@ -3135,6 +3135,135 @@ EFL_LIB_END([Ecore_File]) End of Ecore_File + Eeze +have_libmount_new="no" +have_libmount_old="no" +have_eeze_mount="no" + +EFL_LIB_START_OPTIONAL([Eeze], [test "x${build_libeeze}" = "xyes"]) + +### Additional options to configure +AC_ARG_WITH([mount], + [AS_HELP_STRING([--with-mount], [specify mount bin @<:@default=detect@:>@])], + [with_eeze_mount=$withval], [with_eeze_mount="detect"]) +AC_ARG_WITH([umount], + [AS_HELP_STRING([--with-umount], [specify umount bin @<:@default=detect@:>@])], + [with_eeze_umount=$withval], [with_eeze_umount="detect"]) +AC_ARG_WITH([eject], + [AS_HELP_STRING([--with-eject], [specify eject bin @<:@default=detect@:>@])], + [with_eeze_eject=$withval], [with_eeze_eject="detect"]) + +### Default values + +### Checks for programs + +### Checks for libraries +EFL_INTERNAL_DEPEND_PKG([EEZE], [eina]) +EFL_INTERNAL_DEPEND_PKG([EEZE], [ecore]) +EFL_INTERNAL_DEPEND_PKG([EEZE], [eo]) +EFL_INTERNAL_DEPEND_PKG([EEZE], [efl]) +EFL_INTERNAL_DEPEND_PKG([EEZE], [ecore-file]) +EFL_INTERNAL_DEPEND_PKG([EEZE], [ecore-con]) +EFL_INTERNAL_DEPEND_PKG([EEZE], [eet]) +EFL_INTERNAL_DEPEND_PKG([EEZE], [emile]) + +EFL_DEPEND_PKG([EEZE], [UDEV], [libudev >= 148]) + +AC_ARG_ENABLE([libmount], + [AS_HELP_STRING([--disable-libmount],[disable libmount support. @<:@default=enabled@:>@])], + [ +if test "x${enableval}" = "xyes" ; then + want_libmount="yes" +else + want_libmount="no" + CFOPT_WARNING="xyes" +fi + ], + [want_libmount="yes"]) + +EFL_OPTIONAL_DEPEND_PKG([EEZE], [${want_libmount}], + [EEZE_MOUNT], [mount >= 2.18.0]) +EFL_ADD_FEATURE([EEZE], [libmount], [${have_eeze_mount}]) + +PKG_CHECK_EXISTS([libudev < 199], + [have_libudev_old="yes"], + [have_libudev_old="no"]) +AC_MSG_CHECKING([Use old libudev API (before 199)]) +AC_MSG_RESULT([${have_libudev_old}]) + +PKG_CHECK_EXISTS([mount < 2.19.0], + [have_libmount_old="yes"], + [have_libmount_old="no"]) +AC_MSG_CHECKING([Use old libmount API (before 2.19.0)]) +AC_MSG_RESULT([${have_libmount_old}]) + +PKG_CHECK_EXISTS([mount == 2.19.0], + [have_libmount_219="yes"], + [have_libmount_219="no"]) +AC_MSG_CHECKING([Use libmount 2.19.0 API]) +AC_MSG_RESULT([${have_libmount_219}]) + +PKG_CHECK_EXISTS([mount > 2.19.0], + [have_libmount_new="yes"], + [have_libmount_new="no"]) +AC_MSG_CHECKING([Use new libmount API (newer than 2.19.0)]) +AC_MSG_RESULT([${have_libmount_new}]) + +if test "x${have_libudev_old}" = "xyes"; then + AC_DEFINE_UNQUOTED([OLD_LIBUDEV], [1], [using older version of libudev]) +fi + +if test "x${have_libmount_old}" = "xyes"; then + AC_DEFINE_UNQUOTED([OLD_LIBMOUNT], [1], [using first version of libmount]) +fi + +## modules +if test "${want_tizen}" = "yes"; then + PKG_CHECK_MODULES([TIZEN_SENSOR], [capi-system-sensor >= 0.1.17]) +fi +EFL_ADD_FEATURE([EEZE], [tizen]) + +EFL_EVAL_PKGS([EEZE]) + +### Checks for header files + +### Checks for types + +### Checks for structures + +### Checks for compiler characteristics + +### Checks for linker characteristics + +### Checks for library functions + +### Checks for binaries +if test "x$with_eeze_mount" = "xdetect"; then + AC_PATH_PROG([with_eeze_mount], [mount], []) +fi +AC_DEFINE_UNQUOTED([EEZE_MOUNT_BIN], ["$with_eeze_mount"], [mount bin to use]) + +if test "x$with_eeze_umount" = "xdetect";then + AC_PATH_PROG([with_eeze_umount], [umount], []) +fi +AC_DEFINE_UNQUOTED([EEZE_UNMOUNT_BIN], ["$with_eeze_umount"], [umount bin to use]) + +if test "x$with_eeze_eject" =
[EGIT] [core/efl] master 01/05: win: Add event render,pre
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=be82f4f0fd1cccaf43c627458a275d1f47322315 commit be82f4f0fd1cccaf43c627458a275d1f47322315 Author: Jean-Philippe AndreDate: Mon Jun 13 15:48:29 2016 +0900 win: Add event render,pre --- src/lib/elementary/efl_ui_win.c | 16 src/lib/elementary/efl_ui_win.eo | 1 + 2 files changed, 17 insertions(+) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 0be431f..dacc6e9 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -1746,6 +1746,17 @@ _elm_win_evas_render_post(void *data, } static void +_elm_win_evas_render_pre(void *data, + Evas *e EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Eo *win = data; + + eo_event_callback_call(win, EFL_UI_WIN_EVENT_RENDER_PRE, NULL); +} + +static void _deferred_ecore_evas_free(void *data) { ecore_evas_free(data); @@ -2096,6 +2107,8 @@ _efl_ui_win_evas_object_smart_del(Eo *obj, Efl_Ui_Win_Data *sd) // TODO: optimize event forwarders with EO_EVENT_CALLBACK_ADD/DEL evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_POST, _elm_win_evas_render_post, obj); + evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_PRE, + _elm_win_evas_render_pre, obj); eo_event_callback_array_del(sd->evas, _elm_win_evas_forward_callbacks(), obj); eo_event_callback_array_del(obj, _elm_win_evas_feed_fake_callbacks(), sd->evas); @@ -4155,10 +4168,13 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Elm_W if (_elm_config->atspi_mode) elm_interface_atspi_window_created_signal_emit(obj); + // TODO: optimize event forwarders with EO_EVENT_CALLBACK_ADD/DEL eo_event_callback_array_add(sd->evas, _elm_win_evas_forward_callbacks(), obj); eo_event_callback_array_add(obj, _elm_win_evas_feed_fake_callbacks(), sd->evas); evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_POST, _elm_win_evas_render_post, obj); + evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_PRE, + _elm_win_evas_render_pre, obj); evas_object_show(sd->edje); diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index 565b5ce..c3a337c 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -822,6 +822,7 @@ class Efl.Ui.Win (Elm.Widget, Elm.Interface.Atspi.Window, wm,rotation,changed; theme,changed; elm,action,block_menu; + render,pre; render,post: Efl.Gfx.Event.Render_Post; } } --
[EGIT] [core/efl] master 01/01: edje_cc - new vector svg loader - fix bunch of incorrect code that segvs
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e9802506a071d37899d52248f276ff642c1ef5bd commit e9802506a071d37899d52248f276ff642c1ef5bd Author: Carsten Haitzler (Rasterman)Date: Mon Jun 13 19:48:27 2016 +0900 edje_cc - new vector svg loader - fix bunch of incorrect code that segvs passing in wrond data type as a void * (no typechecking) like node->style instead of node as the function EXPECTED node not node->style also why malloc strlen of string then strcpy when strdup will do? why? fix! still doesn't work. i can't display an svg vector at all. --- src/bin/edje/edje_svg_loader.c | 17 +++-- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/bin/edje/edje_svg_loader.c b/src/bin/edje/edje_svg_loader.c index 18ef8fe..7ee5404 100644 --- a/src/bin/edje/edje_svg_loader.c +++ b/src/bin/edje/edje_svg_loader.c @@ -60,10 +60,7 @@ _skip_space(const char *str, const char *end) static inline char * _copy_id(const char* str) { - char *id = malloc(strlen(str)); - - strcpy(id, str); - return id; + return strdup(str); } static const char * @@ -677,7 +674,7 @@ _attr_parse_g_node(void *data, const char *key, const char *value) if (!strcmp(key, "style")) { -return _attr_style_node(node->style, value); +return _attr_style_node(node, value); } else if (!strcmp(key, "transform")) { @@ -763,7 +760,7 @@ _attr_parse_path_node(void *data, const char *key, const char *value) } else if (!strcmp(key, "style")) { -_attr_style_node(node->style, value); +_attr_style_node(node, value); } else if (!strcmp(key, "id")) { @@ -821,7 +818,7 @@ _attr_parse_circle_node(void *data, const char *key, const char *value) if (!strcmp(key, "style")) { -_attr_style_node(node->style, value); +_attr_style_node(node, value); } else if (!strcmp(key, "id")) { @@ -884,7 +881,7 @@ _attr_parse_ellipse_node(void *data, const char *key, const char *value) } else if (!strcmp(key, "style")) { -_attr_style_node(node->style, value); +_attr_style_node(node, value); } else { @@ -948,7 +945,7 @@ _attr_parse_polygon_node(void *data, const char *key, const char *value) } else if (!strcmp(key, "style")) { -_attr_style_node(node->style, value); +_attr_style_node(node, value); } else if (!strcmp(key, "id")) { @@ -1013,7 +1010,7 @@ _attr_parse_rect_node(void *data, const char *key, const char *value) } else if (!strcmp(key, "style")) { -_attr_style_node(node->style, value); +_attr_style_node(node, value); } else { --
[E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc
Hey, As part of the development process of the new Eo API we marked all of the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I think we maybe also use EFL_BETA_API_SUPPORT, need to verify that. Anyhow, now is time to remove these tags (where appropriate), so these APIs are released. I guess we can just remove all of the occurrences of the EO one, but we need to be more careful with the other one. Is there anyone who has time to take care of this? Stefan? Or should I try to tackle it on Thursday when I'm done with travel and other stuff I need to deal with? Thanks, Tom. -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/eflete] master 01/01: groupview_calc: apply MAP to image
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=e5f2de71f68baab13216d1387da8023b8e3c99c8 commit e5f2de71f68baab13216d1387da8023b8e3c99c8 Author: Vitalii VorobiovDate: Fri Jun 10 15:07:04 2016 +0300 groupview_calc: apply MAP to image Fixes T3850 --- src/bin/ui/workspace/groupview_calc.c | 117 ++ 1 file changed, 117 insertions(+) diff --git a/src/bin/ui/workspace/groupview_calc.c b/src/bin/ui/workspace/groupview_calc.c index 5911240..f5b0754 100644 --- a/src/bin/ui/workspace/groupview_calc.c +++ b/src/bin/ui/workspace/groupview_calc.c @@ -818,6 +818,18 @@ _image_param_update(Groupview_Part *gp, Evas_Object *edit_obj) int id; int bl, br, bt, bb; unsigned char middle; + /* map values */ + Evas_Map *m; + Eina_Bool map_on; + const char *perpective = NULL, *light = NULL, *rot_part = NULL; + double rotX, rotY, rotZ; + int center_x, center_y, center_z; /* for rotations */ + int persp_x, persp_y; + int rx, ry, rw, rh, w, h, xe, ye; /* for perspective */ + int lx, ly, lz, lr, lg, lb, lar, lag, lab; /* colors and geom for light */ + int r, g, b, a; + int iw = 1, ih = 1; + int zplane = 0, focal = 1000; assert(gp != NULL); assert(edit_obj != NULL); @@ -855,6 +867,111 @@ _image_param_update(Groupview_Part *gp, Evas_Object *edit_obj) _image_proxy_common_param_update(gp->proxy_part, gp, edit_obj); + /* === + WORKING WITH MAP! + All that happening in here just because image part can't be proxed. + Proxy doesn't apply somehow all maps and borders etc, so we need to + calculate it with our own hands. + + This calculation was taken from edje_calc.c functions + === */ + map_on = edje_edit_state_map_on_get(edit_obj, gp->part->name, state, value); + if (map_on) + { + +rot_part = edje_edit_state_map_rotation_center_get(edit_obj, gp->part->name, state, value); +edje_object_part_geometry_get(edit_obj, rot_part, , , , ); +edje_object_part_geometry_get(edit_obj, gp->part->name, NULL, NULL, , ); +evas_object_geometry_get(edit_obj, , , NULL, NULL); + +if (rot_part) + { + center_x = xe + rx + (rw / 2); + center_y = ye + ry + (rh / 2); + } +else + { + center_x = xe + w / 2; + center_y = ye + h / 2; + } +center_z = 0; + +m = evas_map_new(4); +evas_map_smooth_set(m, edje_edit_state_map_smooth_get(edit_obj, gp->part->name, state, value)); +evas_map_alpha_set(m, edje_edit_state_map_alpha_get(edit_obj, gp->part->name, state, value)); +evas_map_util_points_populate_from_object(m, gp->proxy_part); + +evas_object_image_size_get(gp->proxy_part, , ); +evas_map_point_image_uv_set(m, 0, 0.0, 0.0); +evas_map_point_image_uv_set(m, 1, iw, 0.0); +evas_map_point_image_uv_set(m, 2, iw, ih); +evas_map_point_image_uv_set(m, 3, 0.0, ih); + +/* map color */ +edje_edit_state_map_point_color_get(edit_obj, gp->part->name, state, value, 0, , , , ); +evas_map_point_color_set(m, 0, r, g, b, a); +edje_edit_state_map_point_color_get(edit_obj, gp->part->name, state, value, 1, , , , ); +evas_map_point_color_set(m, 1, r, g, b, a); +edje_edit_state_map_point_color_get(edit_obj, gp->part->name, state, value, 2, , , , ); +evas_map_point_color_set(m, 2, r, g, b, a); +edje_edit_state_map_point_color_get(edit_obj, gp->part->name, state, value, 3, , , , ); +evas_map_point_color_set(m, 3, r, g, b, a); + +/* zoom */ +TODO("Implement edje edit API and apply it here") +evas_map_util_zoom(m, 1.0, 1.0, center_x, center_y); + +/* rotate */ +edje_edit_state_map_rotation_get(edit_obj, gp->part->name, state, value, , , ); +evas_map_util_3d_rotate(m, rotX, rotY, rotZ, center_x, center_y, center_z); + +/* calculate perspective point */ +if (edje_edit_state_map_perspective_on_get(edit_obj, gp->part->name, state, value)) + { + perpective = edje_edit_state_map_perspective_get(edit_obj, gp->part->name, state, value); + if (perpective) + { + edje_object_part_geometry_get(edit_obj, perpective, , , , ); + zplane = edje_edit_state_map_perspective_zplane_get(edit_obj, perpective, state, value); + focal = edje_edit_state_map_perspective_focal_get(edit_obj, perpective, state, value); + + persp_x = xe + rx + (rw / 2); + persp_y = ye + ry + (rh / 2); + } + else + { + persp_x = xe + (w / 2); +
[EGIT] [core/efl] master 01/01: evas_canvas: move evas_output_XXX API from eo to legach.
jypark pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a75fb5763a29b6c89173bf61c0a27ab43d780c1e commit a75fb5763a29b6c89173bf61c0a27ab43d780c1e Author: Ji-Youn ParkDate: Mon Jun 13 18:50:11 2016 +0830 evas_canvas: move evas_output_XXX API from eo to legach. evas canvas will be removed from eo. evas_output_XXX APIs are usually used by widget or e17. I decided not open these kind of APIs to eo. app can use the size of elm win instead of evas output apis. --- src/lib/evas/Evas_Legacy.h | 129 ++ src/lib/evas/canvas/evas_canvas.eo | 120 - src/lib/evas/canvas/evas_main.c | 278 ++- src/tests/emotion/emotion_test_main-eo.c | 2 +- 4 files changed, 294 insertions(+), 235 deletions(-) diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index 6d89fe5..173eaea 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -5193,4 +5193,133 @@ EAPI Evas_Out *evas_out_add(Evas *e); */ EAPI void evas_output_del(Evas_Out *evo); +/** + * @brief Sets the output framespace size of the render engine of the given + * evas. + * + * The framespace size is used in the Wayland engines to denote space in the + * viewport which is occupied by the window frame. This is mainly used in + * ecore_evas to draw borders. + * + * The units used for @c w and @c h depend on the engine used by the evas. + * + * @param[in] x The left coordinate in output units, usually pixels. + * @param[in] y The top coordinate in output units, usually pixels. + * @param[in] w The width in output units, usually pixels. + * @param[in] h The height in output units, usually pixels. + * + * @since 1.1 + * + * @ingroup Evas_Canvas + */ +EAPI void evas_output_framespace_set(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h); + +/** + * @brief Get the render engine's output framespace coordinates in canvas + * units. + * + * @param[out] x The left coordinate in output units, usually pixels. + * @param[out] y The top coordinate in output units, usually pixels. + * @param[out] w The width in output units, usually pixels. + * @param[out] h The height in output units, usually pixels. + * + * @since 1.1 + * + * @ingroup Evas_Canvas + */ +EAPI void evas_output_framespace_get(const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); + +/** + * @brief Sets the output viewport of the given evas in evas units. + * + * The output viewport is the area of the evas that will be visible to the + * viewer. The viewport will be stretched to fit the output target of the evas + * when rendering is performed. + * + * @note The coordinate values do not have to map 1-to-1 with the output + * target. However, it is generally advised that it is done for ease of use. + * + * @param[in] x The top-left corner x value of the viewport. + * @param[in] y The top-left corner y value of the viewport. + * @param[in] w The width of the viewport. Must be greater than 0. + * @param[in] h The height of the viewport. Must be greater than 0. + * + * @ingroup Evas_Canvas + */ +EAPI void evas_output_viewport_set(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h); + +/** + * @brief Get the render engine's output viewport coordinates in canvas units. + * + * Calling this function writes the current canvas output viewport size and + * location values into the variables pointed to by @c x, @c y, @c w and @c h. + * On success the variables have the output location and size values written + * to them in canvas units. Any of @c x, @c y, @c w or @c h that are @c null + * will not be written to. If @c e is invalid, the results are undefined. + * + * @param[out] x The top-left corner x value of the viewport. + * @param[out] y The top-left corner y value of the viewport. + * @param[out] w The width of the viewport. Must be greater than 0. + * @param[out] h The height of the viewport. Must be greater than 0. + * + * @ingroup Evas_Canvas + */ +EAPI void evas_output_viewport_get(const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); + +/** + * @brief Sets the output engine for the given evas. + * + * Once the output engine for an evas is set, any attempt to change it will be + * ignored. The value for @c render_method can be found using @ref + * evas_render_method_lookup. + * + * @note it is mandatory that one calls @ref evas_init before setting the + * output method. + * + * @param[in] render_method The numeric engine value to use. + * + * @ingroup Evas_Canvas + */ +EAPI void evas_output_method_set(Evas *e, int render_method); + +/** + * @brief Retrieves the number of the output engine used for the given evas. + * + * @return The numeric engine value to use. + * + * @ingroup Evas_Canvas + */ +EAPI int evas_output_method_get(const Evas *e); + +/** + * @brief Sets the output size of the render engine of the given evas. +
[EGIT] [core/efl] master 01/02: examples: elementary: ad missing math lib to linker flags
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0dabbdeabc0079d6bf6be95ba10d44c5c7f2574a commit 0dabbdeabc0079d6bf6be95ba10d44c5c7f2574a Author: Stefan SchmidtDate: Mon Jun 13 10:23:16 2016 +0200 examples: elementary: ad missing math lib to linker flags We are using cos() and sin() in the efl_thread examples here but never linked to the math lib. Ubuntu 14.04 on Travis CI errored out with this: /usr/bin/ld: efl_thread_1.o: undefined reference to symbol 'cos@@GLIBC_2.2.5' //lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line --- src/examples/elementary/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/src/examples/elementary/Makefile.am b/src/examples/elementary/Makefile.am index 5aacd7f..2cdb390 100644 --- a/src/examples/elementary/Makefile.am +++ b/src/examples/elementary/Makefile.am @@ -45,6 +45,7 @@ AM_CXXFLAGS = \ LDADD = \ @ELEMENTARY_LDFLAGS@ \ +-lm \ $(top_builddir)/src/lib/eina/libeina.la \ $(top_builddir)/src/lib/eo/libeo.la \ $(top_builddir)/src/lib/eet/libeet.la \ --
[EGIT] [core/efl] master 02/02: benchmark: eo: add missing phthread flag to linker
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4a59fc4eb5465d96e8b1ca7b7e1e72c23e0cd422 commit 4a59fc4eb5465d96e8b1ca7b7e1e72c23e0cd422 Author: Stefan SchmidtDate: Mon Jun 13 11:08:46 2016 +0200 benchmark: eo: add missing phthread flag to linker /usr/bin/ld: class_simple.o: undefined reference to symbol 'pthread_spin_trylock@@GLIBC_2.2.5' //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line --- src/benchmarks/eo/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/benchmarks/eo/Makefile.am b/src/benchmarks/eo/Makefile.am index 9fa4c1e..a2aac48 100644 --- a/src/benchmarks/eo/Makefile.am +++ b/src/benchmarks/eo/Makefile.am @@ -25,7 +25,8 @@ eo_bench_eo_add.c eo_bench_LDADD = \ $(top_builddir)/src/lib/eo/libeo.la \ $(top_builddir)/src/lib/eina/libeina.la \ -@EO_LDFLAGS@ +@EO_LDFLAGS@ \ +-lpthread clean-local: rm -rf *.gcno ..\#..\#src\#*.gcov *.gcda --
Re: [E-devel] What is still pending for 1.18 before the freeze starts
On Wed, 8 Jun 2016 21:49:59 +1000 David Seikelsaid: > On Wed, 8 Jun 2016 14:20:18 +0900 Carsten Haitzler (The Rasterman) > wrote: > > > On Fri, 27 May 2016 15:01:27 +0200 Stefan Schmidt > > said: > > > > > Hello. > > > > > > What do you have in your local queue for 1.18? > > > > > > The freeze starts in 10 days and I would like to get an overview on > > > what is still to expect. > > > > > > o The merge of evas generic loaders and emotion generic players is > > > pending build system integration and merging as far as I can see > > > o On the interface side I lost track. What is still missing here? > > > Cedric, JP, etc can you update? > > > o Any more EO changes coming or is it all done now? Tom? > > > o Are there more Wayland changes to expect before 1.18 closes? > > > Chris, Mike Derek? > > > o Anything else? > > > > promises. their current state is fart from freezable. > > Please promise you will keep your your frozen farts to yourself. B-) :-P~~~ -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] status of JavaScript binding ?
On Mon, 23 May 2016 13:56:52 + Jason Vas Diassaid: > Oh wow - I just realized efl-1.17.99 from GIT actually CONTAINS the > elementary distribution . > I was trying to build the elementary git master: > git://git.enlightenment.org/core/elementary.git > after building and installing the efl-1.17.99 git master: > git://git.enlightenment.org/core/efl.git > > There were lots of errors running eoilian_gen in this case! > > But I guess efl now contains elementary, and of course its > src/lib/elementary/*.eo > files are incompatible with the elementary/src/lib/*.eo files in the > elementary GIT. > > But how do I pass the elementary configure argument : > --with-elementary-web-backend=ewebkit2 > to EFL ? Can I just include it on the EFL configure command line ? > I'll try this now, re-enabling JavaScript . > > This is the reason I am re-building elementary, for the ewebkit2 support - > I just built ewebkit2 successfully, & want to try out Eve . umm current efl in git lost the webkit module. it hasnt been ported over yet. :) > Regards, > Jason > > On 23/05/2016, Jason Vas Dias wrote: > > Hi - please could anyone enlighten me - > > Is the JavaScript binding obtained by building EFL with the > > '--with-js=nodejs' > > configure option, and then elementary with the > > '--enable-js-bindings' > > meant to work ? > > I have tried building both from latest GIT masters with a working nodejs > > v5.0.0 > > setup - the EFL build completes OK, but the elementary build fails > > running 'eolian_gen' - there are many __undefined_type's for the callbacks > > that fail "database validation" . > > Is this feature meant to work ? Which version of node.js works with it ? > > Thanks & Regards, > > Jason > > > > -- > Mobile security can be enabling, not merely restricting. Employees who > bring their own devices (BYOD) to work are irked by the imposition of MDM > restrictions. Mobile Device Manager Plus allows you to control only the > apps on BYO-devices by containerizing them, leaving personal data untouched! > https://ad.doubleclick.net/ddm/clk/304595813;131938128;j > ___ > 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 -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] terminolo.gy
On Thu, 2 Jun 2016 14:39:02 +0200 Boris Fauresaid: > Hi! > > I'm the proud owner of the domain name "terminolo.gy". I haven't use it > for anything but redirect to the e.org website. > It expires in mid July and I wonder if I should renew it or not. > > Suggestions are welcomed :) > > -- > Boris Faure > Pointer Arithmetician that's an awesome domain. keep it! :) -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: add new svg part to edc
On Thu, 9 Jun 2016 14:57:56 +0900 Jean-Philippe Andrésaid: > On 9 June 2016 at 14:44, Simon Lees wrote: > > > > > > > On 06/09/2016 02:58 PM, Cedric BAIL wrote: > > > On Wed, Jun 8, 2016 at 9:53 PM, Hermet Park wrote: > > >> edc new syntax hasn't been reviewed among people seriously. > > > > > > Then it is time to review it seriously. This patch has been in the > > > making for month on phab available for everyone to review it. Once we > > > do 1.18, this is set in stone. There isn't a way to deprecate edc > > > syntax and edj internal file. Take some times to look at it now, if we > > > need to disable this for this release, it is now ! > > > > > > Cedric > > > > Is there some example edje files anywhere? I didn't see one in that > > commit and may have been to lazy to look further, but for those of use > > that write lots of .edc and not alot of c examples will make it much > > easier to review the syntax. > > > > Precisely, the syntax and the EDJ ABI need to be set in stone, if we want > to stabilize this. > An alternative option is to enable this on demand only (eg. with a > --enable-svg in edje_cc) or add really visible output messages. > > Only a few people can really review stuff on phab, it's much easier to see > how things actually work, rather than try and guess from the diffs. let's just disable it for now without an -enable option at runtime or an env var. i'd just use an env var as its simpler to do :) > > Cheers > > > > > > > >> -Original Message- > > >> From: "Cedric BAIL" > > >> To: "Enlightenment developer list"< > > enlightenment-devel@lists.sourceforge.net>; > > >> Cc: > > >> Sent: 2016-06-09 (목) 13:40:34 > > >> Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: add new > > svg part to edc > > >> > > >> On Thu, Jun 9, 2016 at 4:07 AM, Hermet Park > > wrote: > > >>> vector stuff is still beta feature. > > >>> > > >>> -Original Message- > > >>> From: "Jean-Philippe André" > > >>> To: "Enlightenment developer list"< > > enlightenment-devel@lists.sourceforge.net>; > > >>> Cc: > > >>> Sent: 2016-06-09 (목) 10:34:56 > > >>> Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: add new > > svg part to edc > > >>> > > >>> On 9 June 2016 at 03:35, Subhransu Mohanty > > wrote: > > >>> > > cedric pushed a commit to branch master. > > > > > > > > http://git.enlightenment.org/core/efl.git/commit/?id=62c0a4ef087ea71355961e030b0620a60b77a026 > > > > commit 62c0a4ef087ea71355961e030b0620a60b77a026 > > Author: Subhransu Mohanty > > Date: Wed Jun 8 11:26:07 2016 -0700 > > > > edje: add new svg part to edc > > > > Reviewers: Hermet, cedric > > > > Reviewed By: cedric > > > > Subscribers: jpeg, cedric, Hermet > > > > Differential Revision: https://phab.enlightenment.org/D3894 > > > > Signed-off-by: Cedric BAIL > > > > >>> > > >>> Is this to be considered stable? Or still a beta feature? > > >> > > >> The rendering is still beta in the sense that if it is not displaying > > >> a SVG file properly it is considered a bug and the code will be > > >> adjusted accordingly. Which means that the SVG support in Edje is > > >> defined and should not be considered beta in the sense that the file > > >> format and its behavior should not change. Only fixed and extended > > >> (There is no implementation of scale support at this stage which is > > >> really mandatory to be really useful to design UI element with it). > > >> -- > > >> Cedric BAIL > > >> > > >> > > -- > > >> What NetFlow Analyzer can do for you? Monitors network bandwidth and > > traffic > > >> patterns at an interface-level. Reveals which users, apps, and > > protocols are > > >> consuming the most bandwidth. Provides multi-vendor support for NetFlow, > > >> J-Flow, sFlow and other flows. Make informed decisions using capacity > > >> planning reports. > > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > >> ___ > > >> enlightenment-devel mailing list > > >> enlightenment-devel@lists.sourceforge.net > > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > >> > > -- > > >> What NetFlow Analyzer can do for you? Monitors network bandwidth and > > traffic > > >> patterns at an interface-level. Reveals which users, apps, and > > protocols are > > >> consuming the most bandwidth. Provides multi-vendor support for NetFlow, > > >> J-Flow, sFlow and other flows. Make informed decisions using capacity > > >> planning reports. > >
Re: [E-devel] Build issue following the merge of generic modules
On Thu, 9 Jun 2016 10:25:22 +0900 Jean-Philippe Andrésaid: > On 9 June 2016 at 00:26, Felipe Magno de Almeida > wrote: > > > On Wed, Jun 8, 2016 at 7:22 AM, Carsten Haitzler > > wrote: > > > On Sun, 5 Jun 2016 10:46:18 +0100 Tom Hacohen > > said: > > > > > >> Hey, > > >> > > >> I'm getting: > > >> > > >> /usr/bin/ld: cannot find -lomp > > >> clang-3.8: error: linker command failed with exit code 1 (use -v to see > > >> invocation) > > >> Makefile:25569: recipe for target > > >> 'generic/evas/raw/evas_image_loader.raw' failed > > >> > > >> I guess I didn't see it before, because before raw was disabled by > > default. > > > > > > odd. i'm on arch too - and my raw loader is built and installed and i > > have no > > > libomp on the system at all. no openomp at all. :/ ? > > > > For GCC it works for me on arch, but clang fails with -lomp linking error. > > > > > Yes, see the other thread about OpenMP. > $ pacman -S openmp hmm i wonder why it wants openmp... gcc is happy without. -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 06/06: edje: unamed part are completely legit as long as no program try to interact with them.
On Thu, 9 Jun 2016 08:29:51 -0700 Cedric BAILsaid: > On Jun 9, 2016 5:02 AM, "Viacheslav Reutskiy" > wrote: > > > > Hello, > > > > Cedric, you broke the edje_edit. Edje_edit cann't work with unnamed parts. > > Ah, dang ! Problem is that this was legit in the past and application are > using it (which is why I removed it).it also means that edje edit is not > robust on valid older input.Would it be possible to patch edje edit, so > that on open, it patches the edj and generate name as needed ? This way old > flee could be opened by edje edit property. this is probably best - just refuse to edit data without names per part. we have to keep allowing non-names on parts as it was valid before. > Cedric > > > Please revert this patch. > > > > > > On 06/09/16 01:07, Cedric BAIL wrote: > > > cedric pushed a commit to branch master. > > > > > > > http://git.enlightenment.org/core/efl.git/commit/?id=088043e77af158941d9240a14f3463387f8eabfb > > > > > > commit 088043e77af158941d9240a14f3463387f8eabfb > > > Author: Cedric BAIL > > > Date: Wed Jun 8 15:00:30 2016 -0700 > > > > > > edje: unamed part are completely legit as long as no program try > to interact with them. > > > --- > > > src/bin/edje/edje_cc_handlers.c | 3 +-- > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > > > diff --git a/src/bin/edje/edje_cc_handlers.c > b/src/bin/edje/edje_cc_handlers.c > > > index 0435713..0bbdb13 100644 > > > --- a/src/bin/edje/edje_cc_handlers.c > > > +++ b/src/bin/edje/edje_cc_handlers.c > > > @@ -15079,9 +15079,8 @@ edje_cc_handlers_hierarchy_pop(void) > > > > > > if (!current_part->name) > > > { > > > - ERR("Parse error near %s:%i. Unnamed part exists in Group > \"%s\" - Pausing for a bit so you notice and remember to fix this.", > > > + WRN("Parse error near %s:%i. Unnamed part exists in Group > \"%s\".", > > >file_in, line - 1, current_de->entry); > > > - sleep(10); > > > } > > > > > > for (i = 0; i < current_part->other.desc_count; i++) > > > > > > > -- > > Viacheslav Reutskiy (rimmed) > > > > > -- > > What NetFlow Analyzer can do for you? Monitors network bandwidth and > traffic > > patterns at an interface-level. Reveals which users, apps, and protocols > are > > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > ___ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > -- > What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic > patterns at an interface-level. Reveals which users, apps, and protocols are > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > J-Flow, sFlow and other flows. Make informed decisions using capacity > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > ___ > 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 -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Fwd: Eldbus & thread safe
On Fri, 10 Jun 2016 10:51:56 +0900 Kim Shinwoosaid: standard answer for efl: "efl is not threadsafe. use the few thread specific api's we have like ecore_main_loop_begin/end , the sync/async call etc. etc.". :) > Very thank you for response. > I got crash issue from developer. > They are using the eldbus on thread to get property changed event using > following eldbus APIs. > > eldbus_connection_get, > eldbus_object_get, > eldbus_proxy_get, > eldbus_proxy_properties_monitor, > eldbus_proxy_event_callback_add > > That is it. > There is nothing speciall purpose to use eldbus. > It seems that it is common usage. > > We suggested to use ecore_main_loop_begin, end > At both before, and after line using eldbua on thread. > > Is this proper way to solve this thread kind of issue? > 2016. 6. 10. 오전 12:27에 "Cedric BAIL" 님이 작성: > > > On Jun 9, 2016 3:57 AM, "Kim Shinwoo" wrote: > > > > > > https://dbus.freedesktop.org/doc/api/html/group__DBusThreads.html > > > > > > It seems that dbus is unsafe before handling dbus with dbus thread. > > > > > > If we are not using this then.. clearly it is thread unsafe. > > > > > > Am I right? > > > > Yes.eldbus is not thread safe. May I ask what is your use of it that would > > require it ? Dbus is very asynchronous by nature and very light in > > communication, so it is very uncommon to need a thread to handle it. > > > > Cedric > > > > > 2016. 6. 9. 오후 7:44에 "Kim Shinwoo" 님이 작성: > > > > > > > Sorry for short Q writting on the road using phone. :/ > > > > If it is not thread safe, do I have to use some ways such as.. ecore > > > > thread? > > > > > > > > Anyone knows thread safety of Dbus? > > > > -- 전달된 메일 -- > > > > 보낸사람: "Kim Shinwoo" > > > > 날짜: 2016. 6. 9. 오후 7:34 > > > > 제목: Eldbus & thread safe > > > > 받는사람: "Enlightenment developer list" < > > > > enlightenment-devel@lists.sourceforge.net> > > > > 참조: > > > > > > > > Hello all. > > > >> > > > >> The eldbus is thread safe? > > > >> > > > >> Sincerely, > > > >> Shinwoo Kim > > > >> > > > > > > > > > > > -- > > > What NetFlow Analyzer can do for you? Monitors network bandwidth and > > traffic > > > patterns at an interface-level. Reveals which users, apps, and protocols > > are > > > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > > planning reports. > > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > > ___ > > > enlightenment-devel mailing list > > > enlightenment-devel@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > -- > > What NetFlow Analyzer can do for you? Monitors network bandwidth and > > traffic > > patterns at an interface-level. Reveals which users, apps, and protocols > > are > > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > ___ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > -- > What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic > patterns at an interface-level. Reveals which users, apps, and protocols are > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > J-Flow, sFlow and other flows. Make informed decisions using capacity > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > ___ > 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 -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net
[EGIT] [core/efl] master 01/02: ecore-con - dont complain about socket setup issues when api handles it
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=865b10d739eab91ea0a87731aaf998ce788924f5 commit 865b10d739eab91ea0a87731aaf998ce788924f5 Author: Carsten Haitzler (Rasterman)Date: Mon Jun 13 17:31:51 2016 +0900 ecore-con - dont complain about socket setup issues when api handles it ecore-con api returns failure cases and ecore-con shouldt go spamming stderr with this as it's inteded to be handled at the api level, so slience! --- src/lib/ecore_con/ecore_con.c | 6 +++--- src/lib/ecore_con/ecore_con_local.c | 6 +++--- src/lib/ecore_con/ecore_con_local_win32.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 7faf36d..29fe731 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -1966,7 +1966,7 @@ svr_try_connect_plain(Ecore_Con_Server *obj) { /* we lost our server! */ ecore_con_event_server_error(obj, strerror(so_err)); -ERR("Connection lost: %s", strerror(so_err)); +DBG("Connection lost: %s", strerror(so_err)); _ecore_con_server_kill(obj); return ECORE_CON_DISCONNECTED; } @@ -2223,7 +2223,7 @@ _ecore_con_cl_handler(void *data, #endif if (ecore_con_ssl_server_init(obj)) { - ERR("ssl handshaking failed!"); + DBG("ssl handshaking failed!"); svr->handshaking = EINA_FALSE; } else if (!svr->ssl_state) @@ -2418,7 +2418,7 @@ _ecore_con_svr_cl_handler(void *data, { if (ecore_con_ssl_client_init(obj)) { - ERR("ssl handshaking failed!"); + DBG("ssl handshaking failed!"); _ecore_con_client_kill(obj); return ECORE_CALLBACK_RENEW; } diff --git a/src/lib/ecore_con/ecore_con_local.c b/src/lib/ecore_con/ecore_con_local.c index 246b133..6d3e2a5 100644 --- a/src/lib/ecore_con/ecore_con_local.c +++ b/src/lib/ecore_con/ecore_con_local.c @@ -379,18 +379,18 @@ start: if (bind(svr->fd, (struct sockaddr *)_unix, socket_unix_len) < 0) { -ERR("Local socket '%s' bind failed: %s", buf, strerror(errno)); +DBG("Local socket '%s' bind failed: %s", buf, strerror(errno)); if svr->type & ECORE_CON_TYPE) == ECORE_CON_LOCAL_USER) || ((svr->type & ECORE_CON_TYPE) == ECORE_CON_LOCAL_SYSTEM)) && (connect(svr->fd, (struct sockaddr *)_unix, socket_unix_len) < 0)) { - ERR("Local socket '%s' connect test failed: %s", buf, strerror(errno)); + DBG("Local socket '%s' connect test failed: %s", buf, strerror(errno)); if (unlink(buf) >= 0) goto start; else { - ERR("Local socket '%s' removal failed: %s", buf, strerror(errno)); + DBG("Local socket '%s' removal failed: %s", buf, strerror(errno)); goto error_fd; } } diff --git a/src/lib/ecore_con/ecore_con_local_win32.c b/src/lib/ecore_con/ecore_con_local_win32.c index 14bf8b2..1a1e145 100644 --- a/src/lib/ecore_con/ecore_con_local_win32.c +++ b/src/lib/ecore_con/ecore_con_local_win32.c @@ -432,7 +432,7 @@ ecore_con_local_listen(Ecore_Con_Server *obj) NULL); if (svr->pipe == INVALID_HANDLE_VALUE) { -ERR("Creation of the named pipe '%s' failed", svr->path); +DBG("Creation of the named pipe '%s' failed", svr->path); goto free_path; } --
Re: [E-devel] Problem with elemines
On Thu, 9 Jun 2016 16:53:03 -0700 Tim Birdsaid: > Hi EFL devs... > > I am a newbie to EFL development. I'm trying to write a little test > program for EFL, and wanted to test out elemines as an example of some of > the techniques. > However, I ran into some problems. > > I am running EFL 17 on Ubuntu 14.04. I cloned elemines from > https://git.enlightenment.org/games/elemines.git > and was able to get it built. > > 1) - path to libetrophy error > When I try to run it, I got the following error message: > elemines: error while loading shared libraries: libetrophy.so.0: cannot > open shared object file: No such file or directory > > During the build, I figured out I needed etrophy, and built and installed > the shared > library for that. They etrophy libraries ended up in /usr/local/lib > > I can work around this using 'export LD_LIBRARY_PATH=/usr/local/lib', > before running elemines. > > 2) missing some elementary config > When I run elemines (with the right library path), I get a warning from the > program: > > ERR<27210>:eio lib/eio/eio_monitor.c:339 eio_monitor_stringshared_add() > monitored path '/home/CORPUSERS/10102229/.elementary/config/standard' not > found. well home/CORPUSERS/10102229 is either your $HOME or if that isnt set/found then getpwent is finding it from the passwd database... it's looking for your elm config there... > I don't have the enlightenment window manager installed (to my knowledge). > I'm not sure what is being looked for here, has nothing to do with e the wm. it's elm's config directory in your home dir. depending on compilation options elm will either use ~/.elementary or ~/.config/elementary ... (the first is default since toolkits have used ~/.toolkitname stuff for a long long time). you have an interesting home directory i have to say... mr. corpuser # 10102229. :) so all that will not work here is that it wont pick up new config changes as you have no existing config for your user... until you do have it. elm's config loader literally mkpath'd that dir tho on startup (in _elm_config_sub_init()) so it should have been there even if empty ... have you somehow forbidden your elm apps from writing to there? making that dir path? there is just one place where we add a monitor for that dir were the dir isn't mkpath'd before .. but that should be long after the above init func so it should be created. i'll add another mkpath there... but maybe the issue is permissioning? > but the warning is a bit disconcerting. I can make the warning go away by > creating the directory > ~/.elementary/config/standard, but I'm worried that something is supposed > to be there that's not. well it's wanting to monitor that for changes in case you bring up the elementary_config tool (yes - it's rough and needs work) and change config - all apps monitor your config files for changes and re-load/update if changes happen. > 3) Segmentation fault > This is the most serious problem. elemines gets a segmentation fault when > I do the first mouse click in the > game grid. > > I debugged the program a bit and found that there's a sscanf on a string > used to map the mouse click to > the game grid. Here's the sscanf: > sscanf(source, "board[%i,%i]:overlay", , ); > > but here's the value of the 'source' string used with it: > board[item_0x7fff8daa2c60{7,2}]:overlay well that scanf wont work with that string... but how can that scanf crash. it must be somewhere else... > this is in the routine _click() in src/game.c > Note that there's no error handling for the sscanf. However, the string > clearly is not what's expected. > > In another part of the program, there's this line, which seems to specify > the string for the > mouse click grid mapping. > > edje_object_signal_callback_add(edje, "mouse,clicked,*", > "board\\[*\\]:overlay", _click, NULL); > > It appears that elemines expects the coordinates from the specified string > inside the > brackets (I'm guessing that's what the * is for in the string. However, I > don't know > where this 'item_0x7fff8daa2c60{..}' is coming from. i assume this is some issue inside elemines the app in how its handling board data - writing it or parsing it. but how does it crash? jerome is the author so he's the place to go there (i'd dig but i have enough to do atm. :)). > Is there something from edje that's missing, to have the mouse click string > come out properly? nope. -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.
[EGIT] [core/efl] master 02/02: elm - add another mkpath before monitoring a dir to enusre things work
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dffaed3486d988522076fb8faf9c47202bc124ab commit dffaed3486d988522076fb8faf9c47202bc124ab Author: Carsten Haitzler (Rasterman)Date: Mon Jun 13 18:11:38 2016 +0900 elm - add another mkpath before monitoring a dir to enusre things work --- src/lib/elementary/elm_config.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index c42177d..00a4722 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -1630,6 +1630,7 @@ _config_user_load(void) _elm_config_user_dir_snprintf(buf, sizeof(buf), "config/%s", _elm_profile); + ecore_file_mkpath(buf); if (_eio_config_monitor) eio_monitor_del(_eio_config_monitor); _eio_config_monitor = eio_monitor_add(buf); --
[E-devel] Weekly news from the automated build and QA front
Hello. Summary: o The stats coming from Jenkins are almost the same as last week as we have build issues which are blocking any updates here. o The Elementary.elm_fileselector_selected test case fails with signal 9 o The Eio.eio_test_job_xattr_set fails with signal 11 This should give everyone an overview over what has happened in the last week on the QA front. The numbers in parentheses reflect the values from last week to give you a trend. CI: o Overall build statistic: 11.54% (10.77%) failed. https://build.enlightenment.org/ Unit tests: o 830 (773) unit tests for efl Coverage: o EFL total coverage is at 27.3% (27.3%) lines, 32.7% (32.7%) functions and 21.5% (21.5%) branches https://build.enlightenment.org/view/Test%20Coverage/ Coverity: o EFL: Outstanding defects 132 (132) with a density of 0.13 (0.13) o Enlightenment: Outstanding defects 0 (0) with a density of 0 (0) o Terminology: Outstanding defects 2 (2) with a density of 0.02 (0.02) o Rage: Outstanding defects 0 (0) with a density of 0 (0) Phab: o Total bug count: 938 (912) https://phab.enlightenment.org/maniphest/report/burn/ o Pending patch reviews: 120 (126) regards Stefan Schmidt -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Struct passed by value
On Fri, 10 Jun 2016 11:10:47 +0900 Jean-Philippe Andrésaid: my take on it is that passing by value is: 1. odd (its rarely if ever seen in api's - look at libc, xlib, libjpeg, libpng, libgif, libgif, glib, gtk+, ...) at least in c land 2. passing by value causes you to have to use c99 constructs and/or gnu extensions like you show: rect_set(obj, (Eina_Rectangle){.w = 13, .h = 37}); vs rect_set(obj, 13, 37); 3. which one do you prefer to write and read? :) or to not use c99: Eina_Rectangle rect = { 13, 37 }; rect_set(obj, rect); vs rect_set(obj, 13, 37); remember we only need c99 to COMPILE efl. we don't require it of the code USING efl. :) 4. if passed by value it may not be able to use registers and instead may copy to memory (stack) and use a register with a ptr. this can lead to lower performance depending on architecture )though not really a big issue for us considering the cost of eo api anyway). also note that chances are passing: int x, int y, int w, int h will likely be assigned to 4 registers with the variables nicely already in a register (if the architecture has enough registers of course) but if passing a struct by value... let's pretend a 64bit system with 64bit registers it may put x and y in 1 register and w and h in another and thus accessing these values as they have been "memcpy'd" into a series of registers requires copying out bitshifting and masking. it likely will cost more. in fact let's do some asm fun: func1(x, y, w, h); vs func2(r); where r is: struct rect { int x, y, w, h; }; struct rect r; so func1 is: movl-16(%rbp), %ecx movl-12(%rbp), %edx movl-8(%rbp), %esi movl-4(%rbp), %eax movl%eax, %edi callfunc1 and func2: movq-32(%rbp), %rdx movq-24(%rbp), %rax movq%rdx, %rdi movq%rax, %rsi callfunc2 yup. it's moving a whole set of 64bits at a time into 2 registers vs each value per register. so i'm right. yes. call by value here is shorter as it drops 2 mov's into registers but it seems to gain and extra movq there. ok let's look at the funcs themselves = func1: .LC0: .string "GOT1 %i %i %i %i\n" .text .globl func1 .type func1, @function func1: .LFB2: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq%rsp, %rbp .cfi_def_cfa_register 6 subq$16, %rsp movl%edi, -4(%rbp) movl%esi, -8(%rbp) movl%edx, -12(%rbp) movl%ecx, -16(%rbp) movl-16(%rbp), %esi movl-12(%rbp), %ecx movl-8(%rbp), %edx movl-4(%rbp), %eax movl%esi, %r8d movl%eax, %esi movl$.LC0, %edi movl$0, %eax callprintf nop leave .cfi_def_cfa 7, 8 ret = func2: .LC1: .string "GOT2 %i %i %i %i\n" .text .globl func2 .type func2, @function func2: .LFB3: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq%rsp, %rbp .cfi_def_cfa_register 6 subq$16, %rsp movq%rdi, %rax movq%rsi, %rcx movq%rcx, %rdx movq%rax, -16(%rbp) movq%rdx, -8(%rbp) movl-4(%rbp), %esi movl-8(%rbp), %ecx movl-12(%rbp), %edx movl-16(%rbp), %eax movl%esi, %r8d movl%eax, %esi movl$.LC1, %edi movl$0, %eax callprintf nop leave .cfi_def_cfa 7, 8 ret so func2 is longer by 1 instruction now. lose 1, gain 1. i am not sure how x86-64 works vs x86-32 but i think eax, edi, esi etc. are mapped to lower 32bits of the rax, rdi, rsi, etc. registers by reading that code, thus it can access the lower 32 bits easily. anyway... point is - it doesn't save code or instructions for the cases we're talking about, but for more complex structs it may become worse i imagine as the struct is packed into 2 64bit registers entirely (memcpy'd in basically). different architectures will work differently of course. 5. it kind of gets tricky if we have * values (pointers) in the struct so we should if ever doing this stick to simple basic structs that are small and contain a simple set of ints, shorts, chars etc. (colors, rects, positions, sizes all do fall in this category though). so i think in the end it's an issue of what the code would look like in general and the writing of it. i think while this simplifies some code, it makes other code worse and just as its not a common thing to see in C ... then best not do it. just from that perspective. > Hi, > > > This is bu5hman's idea mostly, but I'd like to bring the question to the > attention of everyone, as I
Re: [E-devel] [EGIT] [core/efl] master 06/06: edje: unamed part are completely legit as long as no program try to interact with them.
On 06/13/2016 03:18 PM, Viacheslav Reutskiy wrote: > Hello, > > Sorry for delay. > > On 06/09/16 18:29, Cedric BAIL wrote: >> On Jun 9, 2016 5:02 AM, "Viacheslav Reutskiy">> wrote: >>> Hello, >>> >>> Cedric, you broke the edje_edit. Edje_edit cann't work with unnamed parts. >> Ah, dang ! Problem is that this was legit in the past and application are >> using it (which is why I removed it).it also means that edje edit is not >> robust on valid older input.Would it be possible to patch edje edit, so >> that on open, it patches the edj and generate name as needed ? This way old >> flee could be opened by edje edit property. >> >> Cedric > > I can set generated name for unnamed parts, but it's wrong. As you said me: > "It's broke ABI". > Maybe pospone this changes to EFL 2.0? For EFL 2.0 we can rework the Edje > Edit to > manage all items (parts, programs, items etc) by index for solve all issues. > Unfortunately not allowing unnamed parts is a break of theme API meaning it also can't be done till EFL 2.0. > --- > Viacheslav Reutskiy (rimmed) > >>> Please revert this patch. >>> >>> >>> On 06/09/16 01:07, Cedric BAIL wrote: cedric pushed a commit to branch master. >> http://git.enlightenment.org/core/efl.git/commit/?id=088043e77af158941d9240a14f3463387f8eabfb commit 088043e77af158941d9240a14f3463387f8eabfb Author: Cedric BAIL Date: Wed Jun 8 15:00:30 2016 -0700 edje: unamed part are completely legit as long as no program try >> to interact with them. --- src/bin/edje/edje_cc_handlers.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c >> b/src/bin/edje/edje_cc_handlers.c index 0435713..0bbdb13 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -15079,9 +15079,8 @@ edje_cc_handlers_hierarchy_pop(void) if (!current_part->name) { - ERR("Parse error near %s:%i. Unnamed part exists in Group >> \"%s\" - Pausing for a bit so you notice and remember to fix this.", + WRN("Parse error near %s:%i. Unnamed part exists in Group >> \"%s\".", file_in, line - 1, current_de->entry); - sleep(10); } for (i = 0; i < current_part->other.desc_count; i++) >>> -- >>> Viacheslav Reutskiy (rimmed) >>> >>> >> -- >>> What NetFlow Analyzer can do for you? Monitors network bandwidth and >> traffic >>> patterns at an interface-level. Reveals which users, apps, and protocols >> are >>> consuming the most bandwidth. Provides multi-vendor support for NetFlow, >>> J-Flow, sFlow and other flows. Make informed decisions using capacity >>> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e >>> ___ >>> enlightenment-devel mailing list >>> enlightenment-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >>> >> -- >> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic >> patterns at an interface-level. Reveals which users, apps, and protocols are >> consuming the most bandwidth. Provides multi-vendor support for NetFlow, >> J-Flow, sFlow and other flows. Make informed decisions using capacity >> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e >> ___ >> enlightenment-devel mailing list >> enlightenment-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Simon Lees (Simotek)http://simotek.net Emergency Update Team keybase.io/simotek SUSE LinuxAdeliade Australia, UTC+9:30 GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B signature.asc Description: OpenPGP digital signature -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] enlightenment.org is DOWN
On Fri, 10 Jun 2016 20:24:19 +0200 Jonathan Aquilinasaid: > If there is build servers used heavily for builds I am more then willing > to host the site no problem. Beber gave me a project I hope to try and > figure out with the planet this weekend other then that I cant > investigate further this issue of the server that is crashing. > > @Beber not sure if you can give me access to the server in question or > even Raster as I have a hunch that somehow either a hardware fault or > out of memory issue that the web server is running into I would need to > see the logs. i don't know if this was the issue this time but the general issue where i end up rebooting the vm host every now and again is this: systems run for some time. the GUEST vm's at some point grind to a halt. not quite a halt but it seems like any i/o causes some timeout. like "ls" on the cmdline in a guest can take between 30 to 150 seconds. it doesn't spin using cpu. it just hangs. it's like a timeout of some sore, then finally it works. the system is not overloaded. the host machine is pretty much idle. as are the vm's. you run top in one shell-in and do the ls in another - nothing is loaded either there. it's as if i/o is doing something like logging and a dns lookup or a connect is timing out. now i have tried simply shutting down the vm in question and starting it again - it stays "bad". i've shut down all vm's and started them again (it takes forever thanks to the i/.o timeout issue) and nothing is fixed. the only thing that fixes it is a reboot of the host os that brings all vm's down, reboots the host os then starts them up and all is fine again... until the next time this happens. i have rummaged around logs on the host and guests. i have looked at every dmesg and more and i couldn't find anything telling me what was going on. maybe i missed something but i only have so much time to spend on these things before the simple "reboot the sucker" option needs to be used and we have work to get on with. it's not because of a build server overload - nothing is overloaded. fyi the HOST os works just fine. no langs. i/o works perfectly. i just don't know what it is. :( > On 2016-06-10 18:45, Cedric BAIL wrote: > > > On Fri, Jun 10, 2016 at 8:26 AM, Jonathan Aquilina > > wrote: > > > >> Where is this being hosted currently? If you guys want I can host a > >> backup site on my server. Only thing I would not be able to host are the > >> large amount of download tarballs etc. > > > > I don't think it is an hosting issue at this point. We do already have > > 3 operationals servers as I know. One master in the US (the biggest > > one doing the build), two in france (One able to run test on GPU and > > the other being a dev server). The current problem is I think one that > > has been lurking around for some time. Once in a while the server goes > > overloaded and we haven't had the opportunity to investigate what is > > going on. Raster usually just reboot the server and that solve this. I > > have asked Beber to look at it so that we can fix the problem instead > > of requiring a reboot every n months. > > > > Cedric > > > > On 2016-06-10 16:00, Amitesh Singh wrote: > > > > Hello Guys, > > > > It seems like all web stuffs of e.org are down. Also git clone/pull/push is > > super slow. > > > > please check. > > > > Regards > > -- > > What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic > > patterns at an interface-level. Reveals which users, apps, and protocols are > > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > > J-Flow, sFlow and other flows. Make informed decisions using capacity > > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > > ___ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > -- > What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic > patterns at an interface-level. Reveals which users, apps, and protocols are > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > J-Flow, sFlow and other flows. Make informed decisions using capacity > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e > ___ > 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 -- What NetFlow
Re: [E-devel] RFC: New text filter API
On 09/06/16 23:06, Felipe Magno de Almeida wrote: > On Thu, Jun 9, 2016 at 12:23 PM, Cedric BAILwrote: >> On Jun 9, 2016 03:14, "Tom Hacohen" wrote: > > [snip] > >>> If rejected is set, the chunk is rejected no matter what the strbuf >>> value is. > > [snip] > >> My main concern is actually what happen if there is more than one event >> handler registered. I think it become pretty complex to chain them with all >> this parameter. What if you just pass the text embedded in the strbuf >> already and you just look at it for all behavior at the end ? > > Kolesa and I have argued that this will be prohibited and that > no aliasing will be considered. So for example, JS will copy the > boolean value and when the boolean is modified it will not > impact the original struct of the event. > > This is the only sane thing to do and to avoid random crashes > in languages that are suppose to be safe from UB. > > IMO. Just use an override function for this. That makes sense, I guess. It seems like I'll have to do something similar to what jpeg did with input events and pass an object for text filtering. I'll do this unless I hear objections (second try!). :) > >> Cedric >> >>> This is what I'm going to go with unless I hear any strong objections by >>> Monday. > > I strongly object to it. It's only you between me and my happiness! I strongly agree with you though. That's why I asked, I knew it didn't feel right. -- Tom. -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] RFC: New text filter API
On 09/06/16 16:23, Cedric BAIL wrote: > On Jun 9, 2016 03:14, "Tom Hacohen"wrote: >> As part of reworking the text API for the next version I'm tackling the >> text filter API. It needs to be easy to bind, easy to use and efficient. >> I have an idea in mind, and I want to hear some feedback from people >> who've used text filtering to know if there's something I may be >> missing/can do better. >> >> What I have in mind: >> >> Add a text filter event with Text_Filter_Info (keeping the name short >> for this example) as the event info. >> >> Text_Filter_Info looks as follows (names will change, just for the > example): >> orig: const char * >> new: Eina_Strbuf * >> rejected: bool >> >> The event is called with orig=original text, new=null, rejected=false. >> The event callbacks can then decide to reject the text chunk (by setting >> rejected = true), or modify the original text by creating a new strbuf >> and setting new to it. >> If rejected is set, the chunk is rejected no matter what the strbuf >> value is. >> I chose a strbuf because it's more efficient and easier to augment the >> text with a strbuf (most likely) than with a normal allocated string. >> However, a case could be made for a normal allocated string because in >> almost (all?) cases, the string will not grow. > > My main concern is actually what happen if there is more than one event > handler registered. I think it become pretty complex to chain them with all > this parameter. What if you just pass the text embedded in the strbuf > already and you just look at it for all behavior at the end ? I disagree. This is irrelevant though because of what Felipe said. I'll reply to his email now. -- Tom. -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas-native-tbm: fix stride mismatch and allocate image data for converting from yuv to rgb.
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=93b4df1f5a506492bb322a9761b5379f5f9cf6ad commit 93b4df1f5a506492bb322a9761b5379f5f9cf6ad Author: Minkyoung KimDate: Mon Jun 13 15:24:14 2016 +0900 evas-native-tbm: fix stride mismatch and allocate image data for converting from yuv to rgb. Summary: 1. For converting tbm buffer from yuv to rgb, image.data should be allocated. 2. Stride should be set by info of tbm surface. 3. The number of row is height*2. but if height is odd, last row is invalid in process of _evas_video_i420. Test Plan: Local Test, Tizen2.4 Mobile Reviewers: spacegrapher, wonsik, jpeg Subscribers: cedric, dkdk Differential Revision: https://phab.enlightenment.org/D3870 --- .../engines/software_generic/evas_native_common.h | 2 + .../engines/software_generic/evas_native_tbm.c | 45 +- .../evas/engines/software_x11/evas_engine.c| 16 ++-- src/modules/evas/engines/wayland_shm/evas_engine.c | 16 ++-- 4 files changed, 63 insertions(+), 16 deletions(-) diff --git a/src/modules/evas/engines/software_generic/evas_native_common.h b/src/modules/evas/engines/software_generic/evas_native_common.h index 7bcc5ea..a13b7a0 100644 --- a/src/modules/evas/engines/software_generic/evas_native_common.h +++ b/src/modules/evas/engines/software_generic/evas_native_common.h @@ -107,11 +107,13 @@ struct _Native }; EAPI void *_evas_native_tbm_surface_image_set(void *data, void *image, void *native); +EAPI int _evas_native_tbm_surface_stride_get(void *data, void *native); EAPI int _evas_native_tbm_init(void); EAPI void _evas_native_tbm_shutdown(void); void *_evas_native_dmabuf_surface_image_set(void *image, void *native); typedef void *(*Evas_Native_Tbm_Surface_Image_Set_Call)(void *data, void *image, void *native); +typedef int (*Evas_Native_Tbm_Surface_Stride_Get_Call)(void *data, void *native); #endif //_EVAS_NATIVE_COMMON_H diff --git a/src/modules/evas/engines/software_generic/evas_native_tbm.c b/src/modules/evas/engines/software_generic/evas_native_tbm.c index 752d750..af6a1ab 100644 --- a/src/modules/evas/engines/software_generic/evas_native_tbm.c +++ b/src/modules/evas/engines/software_generic/evas_native_tbm.c @@ -66,6 +66,7 @@ typedef struct _tbm_surface_info /* returns 0 on success */ static int (*sym_tbm_surface_map) (tbm_surface_h surface, int opt, tbm_surface_info_s *info) = NULL; static int (*sym_tbm_surface_unmap) (tbm_surface_h surface) = NULL; +static int (*sym_tbm_surface_get_info) (tbm_surface_h surface, tbm_surface_info_s *info) = NULL; EAPI int _evas_native_tbm_init(void) @@ -100,6 +101,7 @@ _evas_native_tbm_init(void) fail = 0; SYM(tbm_lib, tbm_surface_map); SYM(tbm_lib, tbm_surface_unmap); + SYM(tbm_lib, tbm_surface_get_info); if (fail) { dlclose(tbm_lib); @@ -171,18 +173,18 @@ _evas_video_i420(unsigned char *evas_data, const unsigned char *source_data, uns rows = (const unsigned char **)evas_data; - stride_y = EVAS_ROUND_UP_4(w); - stride_uv = EVAS_ROUND_UP_8(w) / 2; + stride_y = w; + stride_uv = w / 2; for (i = 0; i < rh; i++) rows[i] = _data[i * stride_y]; - for (j = 0; j < (rh / 2); j++, i++) + for (j = 0; j < ((rh + 1) / 2); j++, i++) rows[i] = _data[h * stride_y + j * stride_uv]; for (j = 0; j < (rh / 2); j++, i++) rows[i] = _data[h * stride_y + -(rh / 2) * stride_uv + +((rh + 1) / 2) * stride_uv + j * stride_uv]; } @@ -245,17 +247,40 @@ _native_free_cb(void *image) Native *n = im->native.data; if (!im) return; + im->native.data= NULL; im->native.func.bind = NULL; im->native.func.unbind = NULL; im->native.func.free = NULL; - im->image.data = NULL; free(n); _evas_native_tbm_shutdown(); } +EAPI int +_evas_native_tbm_surface_stride_get(void *data EINA_UNUSED, void *native) +{ + Evas_Native_Surface *ns = native; + tbm_surface_info_s info; + int stride; + + if (!ns) + return -1; + + if (!_evas_native_tbm_init()) + { +ERR("Could not initialize TBM!"); +return -1; + } + + if (sym_tbm_surface_get_info(ns->data.tbm.buffer, )) + return -1; + + stride = info.planes[0].stride; + return stride; + } + EAPI void * _evas_native_tbm_surface_image_set(void *data EINA_UNUSED, void *image, void *native) { @@ -277,13 +302,13 @@ _evas_native_tbm_surface_image_set(void *data EINA_UNUSED, void *image, void *na return NULL; tbm_surf = ns->data.tbm.buffer; - +/* if (!_evas_native_tbm_init()) { ERR("Could not initialize TBM!"); return NULL; } - +*/ n = calloc(1,
[EGIT] [core/efl] master 01/01: edje cc - remove debug printf i missed. :(
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3f426ca519794843643252520f2c9b8f3bf85a30 commit 3f426ca519794843643252520f2c9b8f3bf85a30 Author: Carsten Haitzler (Rasterman)Date: Mon Jun 13 15:22:11 2016 +0900 edje cc - remove debug printf i missed. :( oops. i removed the others but not this one. yes i did git diff etc. --- src/bin/edje/edje_cc_out.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 038cbc9..8239918 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -2160,7 +2160,6 @@ data_write_scripts(Eet_File *ef) } #undef BIN_EXT - fprintf(stderr, " SCRIPT\n"); for (i = 0, l = codes; l; l = eina_list_next(l), i++) { Code *cd = eina_list_data_get(l); --
[EGIT] [core/efl] master 01/01: edje - set up eet data descriptor right with right struct and size
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a02c32f99a37a0bd17ef0005839f018e7e1fa30c commit a02c32f99a37a0bd17ef0005839f018e7e1fa30c Author: Carsten Haitzler (Rasterman)Date: Mon Jun 13 15:21:22 2016 +0900 edje - set up eet data descriptor right with right struct and size this should fix T3869 --- src/lib/edje/edje_data.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c index d56e0cc..6fef146 100644 --- a/src/lib/edje/edje_data.c +++ b/src/lib/edje/edje_data.c @@ -238,6 +238,7 @@ _eet_for_style_property(void) eet = eet_data_descriptor_stream_new(); eet_gradient = _eet_for_style_gradient(); + EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(_dash, Efl_Gfx_Dash); eet_dash = eet_data_descriptor_stream_new(_dash); EET_DATA_DESCRIPTOR_ADD_BASIC(eet_dash, Efl_Gfx_Dash, "length", length, EET_T_DOUBLE); EET_DATA_DESCRIPTOR_ADD_BASIC(eet_dash, Efl_Gfx_Dash, "gap", gap, EET_T_DOUBLE); --