[E-devel] EDJE scheme for long text with pictures inserted in different position

2020-12-21 Thread Jing
Hi all,


I have a long text content, interspersed with pictures, what good scheme can be 
implemented in edje, or where there is demo for reference, thank you very much!
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] ecore_timer_add issue : the timer is triggered before the set time

2020-11-27 Thread Jing
Hi Carsten,In addition, I use the third timer(1s) to get ecore_time_get(), and 
sometimes there will be multiple consecutive prints at the same time when 
publishing, see debug info below


---B1Create 12.0s timer.startTime:1775.77991
-A1---Create 30.00s timer...name:timeout_exit...
GUI_DEBUG: OnTimer: update_info_bar:1775.82
GUI_DEBUG: OnTimer: update_info_bar:1776.68
GUI_DEBUG: OnTimer: update_info_bar:1777.68
GUI_DEBUG: OnTimer: update_info_bar:1778.68
GUI_DEBUG: OnTimer: update_info_bar:1779.68
GUI_DEBUG: OnTimer: update_info_bar:1780.68
GUI_DEBUG: OnTimer: update_info_bar:1781.68
GUI_DEBUG: OnTimer: update_info_bar:1782.68
GUI_DEBUG: OnTimer: update_info_bar:1783.68
GUI_DEBUG: OnTimer: update_info_bar:1784.68
GUI_DEBUG: OnTimer: update_info_bar:1785.68
GUI_DEBUG: OnTimer: update_info_bar:1786.68
---B1--stop timer...:11.84165...
GUI_DEBUG: OnTimer: update_info_bar:1787.68
GUI_DEBUG: OnTimer: update_info_bar:1788.68
GUI_DEBUG: OnTimer: update_info_bar:1789.68
GUI_DEBUG: OnTimer: update_info_bar:1790.68
GUI_DEBUG: OnTimer: update_info_bar:1791.68
GUI_DEBUG: OnTimer: update_info_bar:1792.22
GUI_DEBUG: OnTimer: update_info_bar:1792.22
GUI_DEBUG: OnTimer: update_info_bar:1792.22
GUI_DEBUG: OnTimer: update_info_bar:1792.23
GUI_DEBUG: OnTimer: update_info_bar:1792.23
GUI_DEBUG: OnTimer: update_info_bar:1792.23
GUI_DEBUG: OnTimer: update_info_bar:1792.24
GUI_DEBUG: OnTimer: update_info_bar:1792.24
GUI_DEBUG: OnTimer: update_info_bar:1792.24
GUI_DEBUG: OnTimer: update_info_bar:1792.25
GUI_DEBUG: OnTimer: update_info_bar:1792.25
GUI_DEBUG: OnTimer: update_info_bar:1792.32
GUI_DEBUG: OnTimer: update_info_bar:1793.32
-A1---End timer..Name:timeout_exit.18.48023...
GUI_DEBUG: OnTimer: update_info_bar:1794.32
GUI_DEBUG: OnTimer: update_info_bar:1795.32
GUI_DEBUG: OnTimer: update_info_bar:1796.32
GUI_DEBUG: OnTimer: update_info_bar:1797.32
GUI_DEBUG: OnTimer: update_info_bar:1798.32
GUI_DEBUG: OnTimer: update_info_bar:1799.32
GUI_DEBUG: OnTimer: update_info_bar:1800.32
GUI_DEBUG: OnTimer: update_info_bar:1801.32
GUI_DEBUG: OnTimer: update_info_bar:1802.32
GUI_DEBUG: OnTimer: update_info_bar:1802.85
GUI_DEBUG: OnTimer: update_info_bar:1802.85
GUI_DEBUG: OnTimer: update_info_bar:1802.85
GUI_DEBUG: OnTimer: update_info_bar:1802.86
GUI_DEBUG: OnTimer: update_info_bar:1803.77
GUI_DEBUG: OnTimer: update_info_bar:1804.77
GUI_DEBUG: OnTimer: update_info_bar:1805.77
GUI_DEBUG: OnTimer: update_info_bar:1806.77
GUI_DEBUG: OnTimer: update_info_bar:1807.77
GUI_DEBUG: OnTimer: update_info_bar:1808.77
GUI_DEBUG: OnTimer: update_info_bar:1809.77
GUI_DEBUG: OnTimer: update_info_bar:1810.77
GUI_DEBUG: OnTimer: update_info_bar:1811.77
GUI_DEBUG: OnTimer: update_info_bar:1812.77
GUI_DEBUG: OnTimer: update_info_bar:1813.77







At 2020-11-27 09:48:24, "Jing"  wrote:
>Hi Carsten,
>It is no problem to test this timer's demo separately, but there are 
> other modules working in my program. 
>What I want to know is if there are other functions or interface calls that 
>will cause the timer to be inaccurate.
>Or is there any way to track or debug.
>There may be timers running elsewhere in my program. Is there an upper 
> limit on the total number of timers that the system can run at the same time? 
> If so, how can I change its upper limit?
>
>
>
>
>The following is the call of two timers in my program, triggered by 
> pressing the key. I tested it 4 times, and the following is the test result,  
>
>
>
>
># KEY PRESSED: 257
>GUI_DEBUG: checkAlarmEvent: zone_name (Front door) detect an doorbell event
>GUI_DEBUG: addAlarmEventLog: zone index:0 alarm type:6start time:1606440732
>GUI_DEBUG: gs_turnOnLcd: Turn on lcd:100
>---B1Create 12.0s timer.startTime:66606.17111
>-A1---Create 30.00s timer..
>KEY RELEASE: 257
>---B1--stop timer...:10.63954...
>-A1---End timer...28.63969...
>
>
># 
># KEY PRESSED: 257
>GUI_DEBUG: checkAlarmEvent: zone_name (Front door) detect an doorbell event
>GUI_DEBUG: addAlarmEventLog: zone index:0 alarm type:6start time:1606440767
>GUI_DEBUG: gs_turnOnLcd: Turn on lcd:100
>---B1Create 12.0s timer.startTime:66641.61388
>-A1---Create 30.00s timer..
>KEY RELEASE: 257
>---B1--stop timer...:9.05849...
>-A1---End timer...27.01736...
>
>
># 
># KEY PRESSED: 257
>GUI_DEBUG: checkAlarmEvent: zone_name (Front door) detect an doorbell event
>GUI_DEBUG: addAlarmEventLog: zone index:0 alarm type:6start time:1606440799
>GUI_DEBUG: gs_turnOnLcd: Turn on lcd:100
>---B1Create 12.0s timer.startTime:66673.35983
>-A1---Create 30.00s timer..
>KEY RELEASE: 257
>---B1--stop timer...:12.00082...
>-A1---End

Re: [E-devel] ecore_timer_add issue : the timer is triggered before the set time

2020-11-26 Thread Jing
Hi Carsten,
It is no problem to test this timer's demo separately, but there are 
other modules working in my program. 
What I want to know is if there are other functions or interface calls that 
will cause the timer to be inaccurate.
Or is there any way to track or debug.
There may be timers running elsewhere in my program. Is there an upper 
limit on the total number of timers that the system can run at the same time? 
If so, how can I change its upper limit?




The following is the call of two timers in my program, triggered by 
pressing the key. I tested it 4 times, and the following is the test result,  




# KEY PRESSED: 257
GUI_DEBUG: checkAlarmEvent: zone_name (Front door) detect an doorbell event
GUI_DEBUG: addAlarmEventLog: zone index:0 alarm type:6start time:1606440732
GUI_DEBUG: gs_turnOnLcd: Turn on lcd:100
---B1Create 12.0s timer.startTime:66606.17111
-A1---Create 30.00s timer..
KEY RELEASE: 257
---B1--stop timer...:10.63954...
-A1---End timer...28.63969...


# 
# KEY PRESSED: 257
GUI_DEBUG: checkAlarmEvent: zone_name (Front door) detect an doorbell event
GUI_DEBUG: addAlarmEventLog: zone index:0 alarm type:6start time:1606440767
GUI_DEBUG: gs_turnOnLcd: Turn on lcd:100
---B1Create 12.0s timer.startTime:66641.61388
-A1---Create 30.00s timer..
KEY RELEASE: 257
---B1--stop timer...:9.05849...
-A1---End timer...27.01736...


# 
# KEY PRESSED: 257
GUI_DEBUG: checkAlarmEvent: zone_name (Front door) detect an doorbell event
GUI_DEBUG: addAlarmEventLog: zone index:0 alarm type:6start time:1606440799
GUI_DEBUG: gs_turnOnLcd: Turn on lcd:100
---B1Create 12.0s timer.startTime:66673.35983
-A1---Create 30.00s timer..
KEY RELEASE: 257
---B1--stop timer...:12.00082...
-A1---End timer...30.00083...


# 
# KEY PRESSED: 257
GUI_DEBUG: checkAlarmEvent: zone_name (Front door) detect an doorbell event
GUI_DEBUG: addAlarmEventLog: zone index:0 alarm type:6start time:1606440834
GUI_DEBUG: gs_turnOnLcd: Turn on lcd:100
---B1Create 12.0s timer.startTime:66709.01075
-A1---Create 30.00s timer..
KEY RELEASE: 257
---B1--stop timer...:11.38699...
-A1---End timer...25.02816...



















At 2020-11-27 01:27:15, "Carsten Haitzler"  wrote:
>On Thu, 26 Nov 2020 10:10:29 +0800 (CST) Jing  said:
>
>Timers are working fine as far as i can see. a repeat timer every 0.5 sec and
>some other ones to go off at 1.0, 2.0, 3.5, 5.0, 10.0, 20.0, 30.0, and 60.0 sec
>from the start of the app running... i don't see your issue.
>
>// gcc t.c -o t `pkg-config --cflags --libs ecore`
>#include 
>
>double t0;
>
>Eina_Bool _cb_rep(void *data) {
>   printf("repeat -> @ %1.5f\n", ecore_time_get() - t0);
>   return EINA_TRUE;
>}
>
>Eina_Bool _cb_tm(void *data) {
>   printf("timer @ %1.5f\n", ecore_time_get() - t0);
>   return EINA_FALSE;
>}
>
>int main(int argc, char **argv) {
>   ecore_init();
>   t0 = ecore_time_get();
>   ecore_timer_add(0.5, _cb_rep, NULL);
>   ecore_timer_add(1.0, _cb_tm, NULL);
>   ecore_timer_add(2.0, _cb_tm, NULL);
>   ecore_timer_add(2.5, _cb_tm, NULL);
>   ecore_timer_add(5.0, _cb_tm, NULL);
>   ecore_timer_add(10.0, _cb_tm, NULL);
>   ecore_timer_add(20.0, _cb_tm, NULL);
>   ecore_timer_add(30.0, _cb_tm, NULL);
>   ecore_timer_add(60.0, _cb_tm, NULL);
>   ecore_main_loop_begin();
>   ecore_shutdown();
>}
>
>running it:
>
> 5:24PM ~ > ./t
>repeat -> @ 0.50281
>repeat -> @ 1.00252
>timer @ 1.00253
>repeat -> @ 1.50279
>repeat -> @ 2.00252
>timer @ 2.00253
>repeat -> @ 2.50275
>timer @ 2.50277
>repeat -> @ 3.00255
>repeat -> @ 3.50256
>repeat -> @ 4.00252
>repeat -> @ 4.50276
>repeat -> @ 5.00252
>timer @ 5.00253
>repeat -> @ 5.50280
>repeat -> @ 6.00265
>repeat -> @ 6.50283
>repeat -> @ 7.00277
>repeat -> @ 7.50261
>repeat -> @ 8.00261
>repeat -> @ 8.50254
>repeat -> @ 9.00284
>repeat -> @ 9.50281
>repeat -> @ 10.00282
>timer @ 10.00284
>repeat -> @ 10.50277
>repeat -> @ 11.00256
>repeat -> @ 11.50276
>repeat -> @ 12.00151
>repeat -> @ 12.50067
>repeat -> @ 13.00279
>repeat -> @ 13.50255
>repeat -> @ 14.00280
>repeat -> @ 14.50280
>repeat -> @ 15.00277
>repeat -> @ 15.50282
>repeat -> @ 16.00281
>repeat -> @ 16.50281
>repeat -> @ 17.00257
>repeat -> @ 17.50281
>repeat -> @ 18.00280
>repeat -> @ 18.50264
>repeat -> @ 19.00269
>repeat -> @ 19.50158
>repeat -> @ 20.00279
>timer @ 20.00281
>repeat -> @ 20.50271
>

[E-devel] ecore_timer_add issue : the timer is triggered before the set time

2020-11-25 Thread Jing
Hi all,
I use ecore_timer_add to create a 30-second timer, but the callback is 
triggered before the time is up. For example, the callback is triggered in 20 
seconds. Why does this happen? Please help, thanks.
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Image display issue when use evas_object_image_file_set()

2019-12-16 Thread Jing
Hi Carsten,
For compressed in RAM and scaled down thumbnail, any demo for it ?
I will try both methods to fix my issue, many thanks.

At 2019-12-13 16:33:47, "Carsten Haitzler"  wrote:
>On Fri, 13 Dec 2019 15:19:06 +0800 (CST) Jing   said:
>
>> Hi Carsten,  Is there a way to compress the original image into a small image
>> to display? Any demo for it ?
>
>That's vague. What do you mean? Compress on disk? compressed in RAM? just
>scaled down thumbnail?  something else?
>
>> Thanks.
>> At 2019-10-24 19:03:52, "Carsten Haitzler (The Rasterman)"
>>  wrote:
>> >On Thu, 24 Oct 2019 18:58:30 +0800 (CST) Jing   said:
>> >
>> >> Hi Vincent, thanks for your advise, thanks.
>> >> 
>> >> Hi Carsten,  any advise for the memory consumption issue when display 
>> >> image
>> >> number/size is large ?  Thanks.
>> >
>> >use thumbnails? don't create image objects that are not visible? create them
>> >when they become visible?
>> >
>> >> At 2019-10-23 18:14:45, "Vincent Torri"  wrote:
>> >> >On Wed, Oct 23, 2019 at 12:05 PM Jing  wrote:
>> >> >>
>> >> >> Hi Carsten,I am using a raw edje object. Follow your advise, i use
>> >> >> evas_object_image_add and evas_object_image_file_set can display
>> >> >> different images in my GUI. But when the number/size of image is
>> >> >> large,  it will consume a lot of memory, is there any way to reduce the
>> >> >> memory consumption?
>> >> >>
>> >> >> Besides, it there any way to play mp3 and mp4 file ?  Please advise,
>> >> >> many thanks.
>> >> >
>> >> >you can use emotion library for media files. You must compile the EFL
>> >> >with at least a video backend (vlc or xine or gstreamer 1)
>> >> >
>> >> >Vincent
>> >> >
>> >> >>
>> >> >> At 2019-10-22 21:31:36, "Carsten Haitzler"  
>> >> >> wrote:
>> >> >> >On Tue, 22 Oct 2019 20:13:51 +0800 (CST) Jing  
>> >> >> >said:
>> >> >> >
>> >> >> >> Hi Carsten,
>> >> >> >> Thanks for your reply.  I want to dynamically display different
>> >> >> >> images in my GUI, the images are read from SD card. How to add this
>> >> >> >> feature ? Please help,thanks.
>> >> >> >
>> >> >> >many ways. you can use a basic evas image object
>> >> >> >(evas_object_image_add) then set the file on it and query size, set
>> >> >> >min/max size hints so edje will do the right thing in sizing the
>> >> >> >object. swallow this object into the right swallow part name. efl,
>> >> >> >enlightenment, terminology, rage is full of code like this. you can
>> >> >> >use an elm image which will handle async loading for you and some
>> >> >> >other things if you want to pass off that handling to elementary.
>> >> >> >
>> >> >> >it all depends on your existing code and where you have started from.
>> >> >> >are you using a raw edje object. en elm layout (which wraps edje
>> >> >> >objects)? what other objects and code are you using?
>> >> >> >
>> >> >> >> At 2019-10-22 16:45:55, "Carsten Haitzler (The Rasterman)"
>> >> >> >>  wrote:
>> >> >> >> >On Tue, 22 Oct 2019 15:03:47 +0800 (CST) Jing 
>> >> >> >> >said:
>> >> >> >> >
>> >> >> >> >> Hi all,
>> >> >> >> >> I define a IMAGE part in my EDC file with a default image. And
>> >> >> >> >> call evas_object_image_file_set() to display a new image.  But
>> >> >> >> >> when other parts receive a signal or event,  this IMAGE part will
>> >> >> >> >> return to display the default png image,  please advise how to
>> >> >> >> >> fix this issue,  many thanks.
>> >> >> >> >
>> >> >> >> >never do that. the image is owned/controlled by edje. you are not
>> >> >> >> >meant to modify the object of an edje part in any way. also don't
>> >> >> >> >

Re: [E-devel] Image display issue when use evas_object_image_file_set()

2019-12-12 Thread Jing
Hi Carsten,  Is there a way to compress the original image into a small image 
to display? Any demo for it ?



Thanks.
At 2019-10-24 19:03:52, "Carsten Haitzler (The Rasterman)" 
 wrote:
>On Thu, 24 Oct 2019 18:58:30 +0800 (CST) Jing   said:
>
>> Hi Vincent, thanks for your advise, thanks.
>> 
>> Hi Carsten,  any advise for the memory consumption issue when display image
>> number/size is large ?  Thanks.
>
>use thumbnails? don't create image objects that are not visible? create them
>when they become visible?
>
>> At 2019-10-23 18:14:45, "Vincent Torri"  wrote:
>> >On Wed, Oct 23, 2019 at 12:05 PM Jing  wrote:
>> >>
>> >> Hi Carsten,I am using a raw edje object. Follow your advise, i use
>> >> evas_object_image_add and evas_object_image_file_set can display different
>> >> images in my GUI. But when the number/size of image is large,  it will
>> >> consume a lot of memory, is there any way to reduce the memory 
>> >> consumption?
>> >>
>> >> Besides, it there any way to play mp3 and mp4 file ?  Please advise, many
>> >> thanks.
>> >
>> >you can use emotion library for media files. You must compile the EFL
>> >with at least a video backend (vlc or xine or gstreamer 1)
>> >
>> >Vincent
>> >
>> >>
>> >> At 2019-10-22 21:31:36, "Carsten Haitzler"  wrote:
>> >> >On Tue, 22 Oct 2019 20:13:51 +0800 (CST) Jing   
>> >> >said:
>> >> >
>> >> >> Hi Carsten,
>> >> >> Thanks for your reply.  I want to dynamically display different images
>> >> >> in my GUI, the images are read from SD card. How to add this feature ?
>> >> >> Please help,thanks.
>> >> >
>> >> >many ways. you can use a basic evas image object (evas_object_image_add)
>> >> >then set the file on it and query size, set min/max size hints so edje
>> >> >will do the right thing in sizing the object. swallow this object into
>> >> >the right swallow part name. efl, enlightenment, terminology, rage is
>> >> >full of code like this. you can use an elm image which will handle async
>> >> >loading for you and some other things if you want to pass off that
>> >> >handling to elementary.
>> >> >
>> >> >it all depends on your existing code and where you have started from. are
>> >> >you using a raw edje object. en elm layout (which wraps edje objects)?
>> >> >what other objects and code are you using?
>> >> >
>> >> >> At 2019-10-22 16:45:55, "Carsten Haitzler (The Rasterman)"
>> >> >>  wrote:
>> >> >> >On Tue, 22 Oct 2019 15:03:47 +0800 (CST) Jing 
>> >> >> >said:
>> >> >> >
>> >> >> >> Hi all,
>> >> >> >> I define a IMAGE part in my EDC file with a default image. And call
>> >> >> >> evas_object_image_file_set() to display a new image.  But when other
>> >> >> >> parts receive a signal or event,  this IMAGE part will return to
>> >> >> >> display the default png image,  please advise how to fix this
>> >> >> >> issue,  many thanks.
>> >> >> >
>> >> >> >never do that. the image is owned/controlled by edje. you are not
>> >> >> >meant to modify the object of an edje part in any way. also don't rely
>> >> >> >on it always existing. it may be deleted and re-created. you do not
>> >> >> >own this object. the edje parent does.
>> >> >> >
>> >> >> >if you want to have an image you can control, then SWALLOW parts are
>> >> >> >for that. you provide an object to edje to "swallow into" the part.
>> >> >> >this means edje will do these things to the swallowed object:
>> >> >> >
>> >> >> >1. move + resize this object
>> >> >> >2. stack it (raise/lower etc.)
>> >> >> >3. take over layer controls (just don't mess with the layer to begin
>> >> >> >with)
>> >> >> >4. show/hide as needed
>> >> >> >5. set clipper
>> >> >> >6. apply any evas maps
>> >> >> >7. control pass/repeat events flags
>> >> >> >
>> >> >> >when the edje parent is 

Re: [E-devel] Memory free questions when using EFL

2019-12-02 Thread Jing
Hi Carsten,
Currently, when enter a layout , my program will  use edje_object_add() to add 
an object, and then use edje_object_file_set()
to define the layout by EDC file, the object will saved into stack, when exit 
from the layout, then will use evas_object_del() to delete the object.
A same layout, i enter and exit several times, the memory will keep growing. 
For example, the initial memory is A,
1.  After first time enter and exit, the memory will grow to B
2.  On the second try enter, the memory still B, but after exit, the memory 
will grow to C.  ---Why ??
Please help to advise how to fix this issue.


Besides, I don't quite understand your below saying,  do you have demo for it ? 
  


"your memory will keep growing ad the objects will be queued for deletion after
2 more renders. you would need the main loop to go idle *AND* for there to be
visible changes in the canvas needing rendering. evas_norender(evas); exists
for these cases where you do a loop where you add/del objects and never show
them or have them rendered (and just use the canvas as a workbench). this
forces a "no rendering" render cycle that will clean up queued objects.

it's exceedingly rare to do the above without having your canvas go through
some rendering at some point.

also edje will QUEUE signals and process them in idle time. if there is never
any idle time in the ecore mainloop then the signals will just queue up and
not be processed. setting a file will produce some signals already (like "load" 
"")."


At 2019-11-30 00:45:26, "Carsten Haitzler"  wrote:
>On Fri, 29 Nov 2019 09:10:05 +0800 (CST) Jing   said:
>
>> OK, Carsten, please help to check my code flow, Is there anything wrong?
>> Please advise, thanks.
>
>there is nothing wrong with it. hiding isn't needed as deletion already
>hides... it might be smarter to show after you have moved and resized and
>set layer to avoid extra events, but nothing really is wrong there.
>
>have you used valgrind and massif to crack memory usage, then massif-visualizer
>to view it?
>
>> 在 2019-11-29 05:16:23,"Carsten Haitzler"  写道:
>> >On Thu, 28 Nov 2019 20:14:53 +0800 (CST) Jing   said:
>> >
>> >> Thanks Carsten,
>> >> 
>> >> 
>> >> I did not find edje_object_del(), did you mean evas_object_del()?
>> >
>> >sorry - my typo. evas_object_del();
>> >
>> >> Here is my code flow:
>> >> //enter:
>> >> obj = edje_object_add(evas)
>> >> edje_object_file_set(obj, file , grup)
>> >> evas_object_show(obj )
>> >> evas_object_move()
>> >> evas_object_resize()
>> >> evas_object_focus_set()
>> >> evas_object_layer_set()
>> >> //exit:
>> >> evas_object_hide(obj)
>> >> evas_object_del(obj)
>> >> Is there anything wrong? Please advise, thanks.
>> >> 
>> >> At 2019-11-28 17:21:38, "Carsten Haitzler (The Rasterman)"
>> >>  wrote:
>> >> >On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing   
>> >> >said:
>> >> >
>> >> >> Thanks Hermet for you reply.
>> >> >> 
>> >> >> 
>> >> >> In my test, i find that if i call function
>> >> >> edje_object_file_set(Edje_Object *obj, const char *file, const char
>> >> >> *group), even i call evas_object_del(Edje_Object *obj); to delete the
>> >> >> obj, the memory of my program will keep growing, if i am not use
>> >> >> edje_object_file_set() then this issue will not exists.  Is there a way
>> >> >> to free the memory of edje_object_file_set() ? Please advise, thanks.
>> >> >
>> >> >Memory will be freed... is it possible you are not getting any rendering
>> >> >happening? e.g. if you do something like:
>> >> >
>> >> >for (i = 0; i < 10; i++) {
>> >> >  o = edje_object_add(evas);
>> >> >  edje_object_del(o);
>> >> >}
>> >> >
>> >> >your memory will keep growing ad the objects will be queued for deletion
>> >> >after 2 more renders. you would need the main loop to go idle *AND* for
>> >> >there to be visible changes in the canvas needing rendering.
>> >> >evas_norender(evas); exists for these cases where you do a loop where you
>> >> >add/del objects and never show them or have them rendered (and just use
>> >> >the canvas as a workbench). this forces a "no rendering" render cycle
>> >> >that will clean up queued objects.

Re: [E-devel] Memory free questions when using EFL

2019-11-28 Thread Jing
OK, Carsten, please help to check my code flow, Is there anything wrong? Please 
advise, thanks.


在 2019-11-29 05:16:23,"Carsten Haitzler"  写道:
>On Thu, 28 Nov 2019 20:14:53 +0800 (CST) Jing   said:
>
>> Thanks Carsten,
>> 
>> 
>> I did not find edje_object_del(), did you mean evas_object_del()?
>
>sorry - my typo. evas_object_del();
>
>> Here is my code flow:
>> //enter:
>> obj = edje_object_add(evas)
>> edje_object_file_set(obj, file , grup)
>> evas_object_show(obj )
>> evas_object_move()
>> evas_object_resize()
>> evas_object_focus_set()
>> evas_object_layer_set()
>> //exit:
>> evas_object_hide(obj)
>> evas_object_del(obj)
>> Is there anything wrong? Please advise, thanks.
>> 
>> At 2019-11-28 17:21:38, "Carsten Haitzler (The Rasterman)"
>>  wrote:
>> >On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing   said:
>> >
>> >> Thanks Hermet for you reply.
>> >> 
>> >> 
>> >> In my test, i find that if i call function 
>> >> edje_object_file_set(Edje_Object
>> >> *obj, const char *file, const char *group), even i call
>> >> evas_object_del(Edje_Object *obj); to delete the obj, the memory of my
>> >> program will keep growing, if i am not use edje_object_file_set() then 
>> >> this
>> >> issue will not exists.  Is there a way to free the memory of
>> >> edje_object_file_set() ? Please advise, thanks.
>> >
>> >Memory will be freed... is it possible you are not getting any rendering
>> >happening? e.g. if you do something like:
>> >
>> >for (i = 0; i < 10; i++) {
>> >  o = edje_object_add(evas);
>> >  edje_object_del(o);
>> >}
>> >
>> >your memory will keep growing ad the objects will be queued for deletion
>> >after 2 more renders. you would need the main loop to go idle *AND* for
>> >there to be visible changes in the canvas needing rendering.
>> >evas_norender(evas); exists for these cases where you do a loop where you
>> >add/del objects and never show them or have them rendered (and just use the
>> >canvas as a workbench). this forces a "no rendering" render cycle that will
>> >clean up queued objects.
>> >
>> >it's exceedingly rare to do the above without having your canvas go through
>> >some rendering at some point.
>> >
>> >also edje will QUEUE signals and process them in idle time. if there is 
>> >never
>> >any idle time in the ecore mainloop then the signals will just queue up and
>> >not be processed. setting a file will produce some signals already (like
>> >"load" "").
>> >
>> >> At 2019-11-26 12:24:45, "Hermet Park"  wrote:
>> >> >Once object is deleted, the subsequent memory belonging to the object 
>> >> >will
>> >> >be removed as well.
>> >> >You don't need to care about it. Callbacks neither.
>> >> >
>> >> >On Mon, Nov 25, 2019 at 9:12 PM Jing  wrote:
>> >> >
>> >> >> Hi all,
>> >> >> I have some memory free questions when using below two functions:
>> >> >>
>> >> >>
>> >> >> 1.  EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char
>> >> >> *file, const char *group);
>> >> >> ---  After this function done,  i will call  evas_object_del (obj) to
>> >> >> delete the obj,  anything else that i need to free ?  For example, the
>> >> >> edj file used in this funciton?
>> >> >>
>> >> >>
>> >> >> 2.  evas_object_event_callback_add(Evas_Object *eo_obj,
>> >> >> Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data)
>> >> >>  After this function done,  i will call  evas_object_del (obj) to
>> >> >> delete the obj,   the callback will be auto deleted after
>> >> >> evas_object_del or  i have to use
>> >> >> evas_object_event_callback_del(Evas_Object *eo_obj, Evas_Callback_Type
>> >> >> type, Evas_Object_Event_Cb func) to delete ?
>> >> >>
>> >> >>
>> >> >> Thanks.
>> >> >>
>> >> >>
>> >> >> ___
>> >> >> enlightenment-devel mailing list
>> >> >> enlightenment-devel@lists.

Re: [E-devel] Memory free questions when using EFL

2019-11-28 Thread Jing
Thanks Carsten,


I did not find edje_object_del(), did you mean evas_object_del()?


Here is my code flow:
//enter:
obj = edje_object_add(evas)
edje_object_file_set(obj, file , grup)
evas_object_show(obj )
evas_object_move()
evas_object_resize()
evas_object_focus_set()
evas_object_layer_set()
//exit:
evas_object_hide(obj)
evas_object_del(obj)
Is there anything wrong? Please advise, thanks.

At 2019-11-28 17:21:38, "Carsten Haitzler (The Rasterman)" 
 wrote:
>On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing   said:
>
>> Thanks Hermet for you reply.
>> 
>> 
>> In my test, i find that if i call function edje_object_file_set(Edje_Object
>> *obj, const char *file, const char *group), even i call
>> evas_object_del(Edje_Object *obj); to delete the obj, the memory of my
>> program will keep growing, if i am not use edje_object_file_set() then this
>> issue will not exists.  Is there a way to free the memory of
>> edje_object_file_set() ? Please advise, thanks.
>
>Memory will be freed... is it possible you are not getting any rendering
>happening? e.g. if you do something like:
>
>for (i = 0; i < 10; i++) {
>  o = edje_object_add(evas);
>  edje_object_del(o);
>}
>
>your memory will keep growing ad the objects will be queued for deletion after
>2 more renders. you would need the main loop to go idle *AND* for there to be
>visible changes in the canvas needing rendering. evas_norender(evas); exists
>for these cases where you do a loop where you add/del objects and never show
>them or have them rendered (and just use the canvas as a workbench). this
>forces a "no rendering" render cycle that will clean up queued objects.
>
>it's exceedingly rare to do the above without having your canvas go through
>some rendering at some point.
>
>also edje will QUEUE signals and process them in idle time. if there is never
>any idle time in the ecore mainloop then the signals will just queue up and
>not be processed. setting a file will produce some signals already (like "load"
>"").
>
>> At 2019-11-26 12:24:45, "Hermet Park"  wrote:
>> >Once object is deleted, the subsequent memory belonging to the object will
>> >be removed as well.
>> >You don't need to care about it. Callbacks neither.
>> >
>> >On Mon, Nov 25, 2019 at 9:12 PM Jing  wrote:
>> >
>> >> Hi all,
>> >> I have some memory free questions when using below two functions:
>> >>
>> >>
>> >> 1.  EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char
>> >> *file, const char *group);
>> >> ---  After this function done,  i will call  evas_object_del (obj) to
>> >> delete the obj,  anything else that i need to free ?  For example, the edj
>> >> file used in this funciton?
>> >>
>> >>
>> >> 2.  evas_object_event_callback_add(Evas_Object *eo_obj, Evas_Callback_Type
>> >> type, Evas_Object_Event_Cb func, const void *data)
>> >>  After this function done,  i will call  evas_object_del (obj) to
>> >> delete the obj,   the callback will be auto deleted after evas_object_del
>> >> or  i have to use  evas_object_event_callback_del(Evas_Object *eo_obj,
>> >> Evas_Callback_Type type, Evas_Object_Event_Cb func) to delete ?
>> >>
>> >>
>> >> Thanks.
>> >>
>> >>
>> >> ___
>> >> enlightenment-devel mailing list
>> >> enlightenment-devel@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >>
>> >
>> >
>> >-- 
>> >Regards, Hermet
>> >
>> >___
>> >enlightenment-devel mailing list
>> >enlightenment-devel@lists.sourceforge.net
>> >https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> 
>> ___
>> 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" --
>Carsten Haitzler - ras...@rasterman.com

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Memory free questions when using EFL

2019-11-27 Thread Jing
Thanks Hermet for you reply.


In my test, i find that if i call function edje_object_file_set(Edje_Object 
*obj, const char *file, const char *group), even i call 
evas_object_del(Edje_Object *obj); to delete the obj,
the memory of my program will keep growing, if i am not use 
edje_object_file_set() then this issue will not exists.  Is there a way to free 
the memory of edje_object_file_set() ?
Please advise, thanks.


At 2019-11-26 12:24:45, "Hermet Park"  wrote:
>Once object is deleted, the subsequent memory belonging to the object will
>be removed as well.
>You don't need to care about it. Callbacks neither.
>
>On Mon, Nov 25, 2019 at 9:12 PM Jing  wrote:
>
>> Hi all,
>> I have some memory free questions when using below two functions:
>>
>>
>> 1.  EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char
>> *file, const char *group);
>> ---  After this function done,  i will call  evas_object_del (obj) to
>> delete the obj,  anything else that i need to free ?  For example, the edj
>> file used in this funciton?
>>
>>
>> 2.  evas_object_event_callback_add(Evas_Object *eo_obj, Evas_Callback_Type
>> type, Evas_Object_Event_Cb func, const void *data)
>>  After this function done,  i will call  evas_object_del (obj) to
>> delete the obj,   the callback will be auto deleted after evas_object_del
>> or  i have to use  evas_object_event_callback_del(Evas_Object *eo_obj,
>> Evas_Callback_Type type, Evas_Object_Event_Cb func) to delete ?
>>
>>
>> Thanks.
>>
>>
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>
>
>-- 
>Regards, Hermet
>
>___
>enlightenment-devel mailing list
>enlightenment-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] valgrind show error when debug efl demo

2019-11-27 Thread Jing
Hi all,
I use valgrind to check memory on efl demo, but valgrind show error as shown 
below, attached are the efl demo codes, please help to advise where went wrong ?


sudo valgrind --tool=memcheck --leak-check=full ./edje-anchors
==37097== Memcheck, a memory error detector
==37097== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==37097== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==37097== Command: ./edje-anchors
==37097== 
key:Escape
==37097== 
==37097== HEAP SUMMARY:
==37097== in use at exit: 246,790 bytes in 2,198 blocks
==37097==   total heap usage: 17,746 allocs, 15,548 frees, 6,874,546 bytes 
allocated
==37097== 
==37097== 10 bytes in 1 blocks are definitely lost in loss record 10 of 238
==37097==at 0x4C2DE96: malloc (vg_replace_malloc.c:309)
==37097==by 0x5D07489: strdup (strdup.c:42)
==37097==by 0x72A8CBE: eina_vpath_resolve (eina_vpath.c:285)
==37097==by 0x90128D9: _efreet_efreet_app_interface_set (efreet.c:49)
==37097==by 0x9012F27: efreet_init (efreet.c:149)
==37097==by 0x5803F36: edje_init (edje_main.c:78)
==37097==by 0x400EED: main (in 
/home/lg/GSC/efl-1.21.1/src/examples/edje/edje-anchors)
==37097== 
==37097== 32 bytes in 1 blocks are definitely lost in loss record 49 of 238
==37097==at 0x4C2FFAC: calloc (vg_replace_malloc.c:762)
==37097==by 0x4FD5B28: generic_cache_new (evas_common_generic_cache.c:7)
==37097==by 0x4FE9AE6: eng_engine_new (evas_engine.c:3880)
==37097==by 0x4EAC544: evas_output_method_set (evas_main.c:1224)
==37097==by 0x12C3F004: ecore_evas_software_x11_new_internal 
(ecore_evas_x.c:4153)
==37097==by 0x554F606: ecore_evas_software_x11_new (ecore_evas.c:3831)
==37097==by 0x554F7EA: _ecore_evas_constructor_software_x11 
(ecore_evas.c:780)
==37097==by 0x55499EF: _ecore_evas_new_auto_discover (ecore_evas.c:1021)
==37097==by 0x55499EF: ecore_evas_new (ecore_evas.c:1046)
==37097==by 0x400F12: main (in 
/home/lg/GSC/efl-1.21.1/src/examples/edje/edje-anchors)
==37097== 
==37097== 82 bytes in 1 blocks are definitely lost in loss record 154 of 238
==37097==at 0x4C2DE96: malloc (vg_replace_malloc.c:309)
==37097==by 0x727B586: eina_module_new (eina_module.c:272)
==37097==by 0x4F530F6: evas_module_find_type.part.3 (evas_module.c:601)
==37097==by 0x4EA9E52: evas_render_method_lookup (evas_main.c:644)
==37097==by 0x12C3EE2D: ecore_evas_software_x11_new_internal 
(ecore_evas_x.c:4086)
==37097==by 0x554F606: ecore_evas_software_x11_new (ecore_evas.c:3831)
==37097==by 0x554F7EA: _ecore_evas_constructor_software_x11 
(ecore_evas.c:780)
==37097==by 0x55499EF: _ecore_evas_new_auto_discover (ecore_evas.c:1021)
==37097==by 0x55499EF: ecore_evas_new (ecore_evas.c:1046)
==37097==by 0x400F12: main (in 
/home/lg/GSC/efl-1.21.1/src/examples/edje/edje-anchors)
==37097== 
==37097== 232 (192 direct, 40 indirect) bytes in 1 blocks are definitely lost 
in loss record 190 of 238
==37097==at 0x4C2FFAC: calloc (vg_replace_malloc.c:762)
==37097==by 0x703431E: _efl_add_internal_start (eo.c:896)
==37097==by 0x4E8F279: evas_device_add_full (evas_device.c:190)
==37097==by 0x4EAC655: evas_output_method_set (evas_main.c:1251)
==37097==by 0x12C3F004: ecore_evas_software_x11_new_internal 
(ecore_evas_x.c:4153)
==37097==by 0x554F606: ecore_evas_software_x11_new (ecore_evas.c:3831)
==37097==by 0x554F7EA: _ecore_evas_constructor_software_x11 
(ecore_evas.c:780)
==37097==by 0x55499EF: _ecore_evas_new_auto_discover (ecore_evas.c:1021)
==37097==by 0x55499EF: ecore_evas_new (ecore_evas.c:1046)
==37097==by 0x400F12: main (in 
/home/lg/GSC/efl-1.21.1/src/examples/edje/edje-anchors)
==37097== 
==37097== 232 (192 direct, 40 indirect) bytes in 1 blocks are definitely lost 
in loss record 191 of 238
==37097==at 0x4C2FFAC: calloc (vg_replace_malloc.c:762)
==37097==by 0x703431E: _efl_add_internal_start (eo.c:896)
==37097==by 0x4E8F279: evas_device_add_full (evas_device.c:190)
==37097==by 0x4EAC6A0: evas_output_method_set (evas_main.c:1255)
==37097==by 0x12C3F004: ecore_evas_software_x11_new_internal 
(ecore_evas_x.c:4153)
==37097==by 0x554F606: ecore_evas_software_x11_new (ecore_evas.c:3831)
==37097==by 0x554F7EA: _ecore_evas_constructor_software_x11 
(ecore_evas.c:780)
==37097==by 0x55499EF: _ecore_evas_new_auto_discover (ecore_evas.c:1021)
==37097==by 0x55499EF: ecore_evas_new (ecore_evas.c:1046)
==37097==by 0x400F12: main (in 
/home/lg/GSC/efl-1.21.1/src/examples/edje/edje-anchors)
==37097== 
==37097== 232 (192 direct, 40 indirect) bytes in 1 blocks are definitely lost 
in loss record 192 of 238
==37097==at 0x4C2FFAC: calloc (vg_replace_malloc.c:762)
==37097==by 0x703431E: _efl_add_internal_start (eo.c:896)
==37097==by 0x4E8F279: evas_device_add_full (evas_device.c:190)
==37097==by 0x4EAC6DE: evas_output_method_set (evas_main.c:1260)
==37097==by 0x12C3F004: 

[E-devel] Memory free questions when using EFL

2019-11-25 Thread Jing
Hi all,
I have some memory free questions when using below two functions:


1.  EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char *file, 
const char *group);
---  After this function done,  i will call  evas_object_del (obj) to delete 
the obj,  anything else that i need to free ?  For example, the edj file used 
in this funciton?


2.  evas_object_event_callback_add(Evas_Object *eo_obj, Evas_Callback_Type 
type, Evas_Object_Event_Cb func, const void *data)
 After this function done,  i will call  evas_object_del (obj) to delete 
the obj,   the callback will be auto deleted after evas_object_del  or  i have 
to use  evas_object_event_callback_del(Evas_Object *eo_obj, Evas_Callback_Type 
type, Evas_Object_Event_Cb func) to delete ?   


Thanks.


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] ERR<693>:eo lib/eo/eo_base_class.c:1764 ef l_event_callback_call() Eo ID 0x800009ac i s not a valid object

2019-11-25 Thread Jing
Thanks Hermet.
This issue is a probability issue, I haven't found the reproduce steps yet, so 
it's really bothers me。

At 2019-11-25 16:54:17, "Hermet Park"  wrote:
>Normally, we can use EINA_LOG_ABORT=1 to abort process when error(ERR or
>CRI) occurs.
>Then gdb would tell you the callstack where that object is removed wrongly.
>
>But in this case you must fix all prior errors to catch up the your actual
>issue.
>
>You may need to carefully check where it tries to remove the invalid
>objects in other way.
>For this, you can check callstack using gdb adding breakpoint to this code
>=>  Eo ID 0x89ac is not a valid object. Current  thread: main. This ID
>has probably been deleted or this was never a valid object ID. (domain=0,
>current_domain=0, lo cal_domai n=0, available_domains=[0 1],
>generation=2c, id=10, ref=1)
>
>See where your efl code has it:
>~/efl/core/efl/src/lib/eo$ grep -nr "is not a valid object"
>eo.c:1875:   ERR("Object %p is not a valid object in this context: object
>domain: %d, "
>
>On Mon, Nov 25, 2019 at 4:10 PM Jing  wrote:
>
>> Hi all,
>> I met below err in my program,  i have no idea which part is wrong ,
>> please help to advise, thanks.
>>
>>
>> 05:06:56]Ecore_Con Shutd]own called without ca lling Ecore_Con Init.
>> [05:06:56]'
>> [05:06:56]CRI<3542>:eina_log li[b/ecore_con/ecore_con.c:146
>> ecore_con_shutdown() unknown log domain -1, original message was: ERR:
>> 'Ecore_Con Shutdow n ca lled without calling Ecore_Con Init.
>> [05:06:56]'
>> [05:06:56]693]  Error  connecting to bus of type 2  0   69324689  .
>> error name: org.freedesktop.DBus.Error.FileNotFound error message: Failed
>> to connect to socket /var/run/dbus /system_b us_s ocket: No such file or
>> directory
>> [05:06:56]ERR<3544>:eina_safety lib/eldbus/eldbus_cor4e.c:1126
>> eldbus_connection_get() safety check failed: conn == NULL
>> [05:06:56]ERR<33544>:eina_safety lib/eldbus/eldbus_object5.c:1392
>> eldbus_object_get() safety check failed: conn == NULL
>> [05:06:56]ERR<3544>:ecore_system _upower
>> modules/ecore/system/upower/ecore_ syst em_upower.c:446
>> _ecore_system_upower_init() could not get object
>> name=org.freedesktop.UPower, path=/org /freedesktop/UPower
>> [05:06:56]
>> [05:06:56]ERR<3544>:eina_safety li b/eldbus/eldbus_core.c:1437
>> eldbus_name_owner_c hanged_callback_del() ERR<3545>:eina_safety
>> lib/eldb3us/e4ldbus_core.c:1126 eldbus_connection_get() safet y check
>> failed: conn == NULLsafety check failed : conn == NULL
>> [05:06:56]ERR<3545>:eina_safety  lib/eldbus/eldbus_object.c:192 eldbus_obj
>> ect_get()  safety check failed: conn == NULL
>> [05:06:56]ERR<3545>:ecore_system_upower modules/ecore/system/upower/eco
>> re_s yste0m_upower.c:446 _ecore_system_upower_init() could not get object
>> name=org.fr eede sktop.UPower, path=/org/freedesktop/UPower
>> [05:06:56]Eo ID 0x89ac is not a valid  object. Current thread: main.
>> This ID has probably been deleted or th is w as never a valid object ID.
>> (domain=0, current_domai n=0, local_domain=0, available_domains=[0 1],
>> generat ion= c, id=10, ref=1)ERR<3545>:eina_safety
>> lib/eldbus/eldbus_core.c:1437 eldbus_name_0owner_changed_callback_del()
>> [05:06:56]safety  check failed: conn == NULLERR<693>:eo lib/eo/eo_bas
>> e_class.c:1764 efl_event_callback_call()
>> [05:06:56]Eo ID 0x89ac is not a valid object. Current  thread: main.
>> This ID has probably been deleted or this was never a valid object ID.
>> (domain=0, current_domain=0, lo cal_domai n=0, available_domains=[0 1],
>> generation=2c, id=10, ref=1)
>> [05:06:56]ERR<693>:eo lib/eo/eo_base_class.c:1764
>> efl_event_callback_call() Eo ID 0x800 009ac is not a valid object. Current
>> threa d: main. This ID has probably been deleted or t his was never a valid
>> object ID. (domain=0, current_domain=0, local_domain=0, available_do
>> mains=[0 1], generation=2c, id=10, ref=1)
>> [05:06:56]0
>> [05:06:56]CRI<3545>:eina_log lib/ecore_con/ecore_con.c:146 ecore_con_shutd
>> own(g) unknownslog domain -1, original message was: ERR: 'ERR<693c>:eo
>> lib/eo/eo_ba_se_class.c:1764 efl_event_callbagck_call() Ecore_Con Shutdown
>> called without calling Ecore_Con Init.
>> [05:06:56]Eo IuD 0x89ac is not a valid object. Current thread: main.
>> This ID has probabl0, current_domain=0,is was never a valid object ID.
>> (domain=
>> [05:06:56] local_domain=0, available_domains=[0 1
>> ], gen[eration=2c, id=10, ref=1)'
>> [0

[E-devel] ERR<693>:eo lib/eo/eo_base_class.c:1764 ef l_event_callback_call() Eo ID 0x800009ac i s not a valid object

2019-11-24 Thread Jing
Hi all,
I met below err in my program,  i have no idea which part is wrong ,  please 
help to advise, thanks.


05:06:56]Ecore_Con Shutd]own called without ca lling Ecore_Con Init.
[05:06:56]'
[05:06:56]CRI<3542>:eina_log li[b/ecore_con/ecore_con.c:146 
ecore_con_shutdown() unknown log domain -1, original message was: ERR: 
'Ecore_Con Shutdow n ca lled without calling Ecore_Con Init.
[05:06:56]'
[05:06:56]693]  Error  connecting to bus of type 2  0   69324689  . error 
name: org.freedesktop.DBus.Error.FileNotFound error message: Failed to connect 
to socket /var/run/dbus /system_b us_s ocket: No such file or directory
[05:06:56]ERR<3544>:eina_safety lib/eldbus/eldbus_cor4e.c:1126 
eldbus_connection_get() safety check failed: conn == NULL
[05:06:56]ERR<33544>:eina_safety lib/eldbus/eldbus_object5.c:1392 
eldbus_object_get() safety check failed: conn == NULL
[05:06:56]ERR<3544>:ecore_system _upower modules/ecore/system/upower/ecore_ 
syst em_upower.c:446 _ecore_system_upower_init() could not get object 
name=org.freedesktop.UPower, path=/org /freedesktop/UPower
[05:06:56]
[05:06:56]ERR<3544>:eina_safety li b/eldbus/eldbus_core.c:1437 
eldbus_name_owner_c hanged_callback_del() ERR<3545>:eina_safety 
lib/eldb3us/e4ldbus_core.c:1126 eldbus_connection_get() safet y check failed: 
conn == NULLsafety check failed : conn == NULL
[05:06:56]ERR<3545>:eina_safety  lib/eldbus/eldbus_object.c:192 eldbus_obj 
ect_get()  safety check failed: conn == NULL
[05:06:56]ERR<3545>:ecore_system_upower modules/ecore/system/upower/eco re_s 
yste0m_upower.c:446 _ecore_system_upower_init() could not get object 
name=org.fr eede sktop.UPower, path=/org/freedesktop/UPower
[05:06:56]Eo ID 0x89ac is not a valid  object. Current thread: main. This 
ID has probably been deleted or th is w as never a valid object ID. (domain=0, 
current_domai n=0, local_domain=0, available_domains=[0 1], generat ion= c, 
id=10, ref=1)ERR<3545>:eina_safety lib/eldbus/eldbus_core.c:1437 
eldbus_name_0owner_changed_callback_del() 
[05:06:56]safety  check failed: conn == NULLERR<693>:eo lib/eo/eo_bas 
e_class.c:1764 efl_event_callback_call() 
[05:06:56]Eo ID 0x89ac is not a valid object. Current  thread: main. This 
ID has probably been deleted or this was never a valid object ID. (domain=0, 
current_domain=0, lo cal_domai n=0, available_domains=[0 1], generation=2c, 
id=10, ref=1) 
[05:06:56]ERR<693>:eo lib/eo/eo_base_class.c:1764  efl_event_callback_call() Eo 
ID 0x800 009ac is not a valid object. Current threa d: main. This ID has 
probably been deleted or t his was never a valid object ID. (domain=0, 
current_domain=0, local_domain=0, available_do mains=[0 1], generation=2c, 
id=10, ref=1)
[05:06:56]0
[05:06:56]CRI<3545>:eina_log lib/ecore_con/ecore_con.c:146 ecore_con_shutd 
own(g) unknownslog domain -1, original message was: ERR: 'ERR<693c>:eo 
lib/eo/eo_ba_se_class.c:1764 efl_event_callbagck_call() Ecore_Con Shutdown 
called without calling Ecore_Con Init.
[05:06:56]Eo IuD 0x89ac is not a valid object. Current thread: main. This 
ID has probabl0, current_domain=0,is was never a valid object ID. (domain=
[05:06:56] local_domain=0, available_domains=[0 1], 
gen[eration=2c, id=10, ref=1)'
[05:06:56]1
[05:06:56]ERR<693>:eo lib/eo/eo_base_class.c:1764 efl_event_callba2ck_call() Eo 
ID 0x89ac is not a valid 5object. Current thread: main. This ID has 
probabl8y been deleted or this was never a valid object ID. (domain=0, 
current_domain=0, local_domain=0, available_domains=[0 1], generation=2c0, 
id=10, ref=1)
[05:06:56]ERR<6293>:eo lib/eo/eo_base_class.c:1764 efl_e.vent_callback_call() 
Eo ID 0x89ac is not a valid object. Cu1rrent thread: main. This ID has 
probably been deleted or this w9as never a valid objec9t ID. (domain=0, 
current_do5main=0, local_domain=03, available_domains=[0 1], generation=2c, 
id=10, ref=1)
[05:06:56]0] [  ERR<693>:eo lib/eo/eo_base_class.c:1764 
e6fl_event_callback_call() Eo ID 0x89ac is not9 a valid object. 6Current 
thread: m]ain. This ID has probably been deleted or t his was never a valid 
object ID. (domain=0, current_domain=0, local_domain=0, available_d omains=[0 1 
   ], generation=2c, id=10, ref=1)
[05:06:56]ERR<693>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo 
ID 0x800 009ac is not a valid object . Current thread: main. This ID  has 0prob 
ably been  deleted or this was never a valid object ID. (domain=0, 
current_domain=0, local_domain=0, available_domains=[0 1], generation=2c, 
id=10, ref =1)






___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Memory leak issue when using signal to loading image in EDJE

2019-11-19 Thread Jing
Hi Cedric,
I send the signal "START_LOADING" to load the image in my program and use linux 
"top"  command to detect the memory of my program,  the memory will keep 
growing if i am not send  "STOP_LOADING".

At 2019-11-20 01:46:35, "Cedric Bail"  wrote:
>Hi Jing,
>
>On Tuesday, November 19, 2019 4:28 AM, Jing  wrote:
>> Below are my parts definition in EDC file, i find the memory leak issue when 
>> use signal "START_LOADING" and "STOP_LOADING" to start and stop the image 
>> loading.
>> If there anything wrong ? Please advise, thanks.
>
>How do you detect your memory leak and could you share the memory leak report 
>here or in pm?
>
>Best,
>  Cedric
> 
>
>> collections.group { "fresh_group";
>> parts {
>> image { "fresh";
>> repeat_events: 1;
>> desc { "default"
>> min: CAPTION_ICON_SIZE CAPTION_ICON_SIZE;
>> max: CAPTION_ICON_SIZE CAPTION_ICON_SIZE;
>> anchors.vertical_center: "refresh_weather" VERTICAL_CENTER;
>> anchors.horizontal_center: "refresh_weather" HORIZONTAL_CENTER;
>> image { normal: "refresh_default.png"; }
>> }
>> desc { "loading1"
>> inherit: "default";
>> image { normal: "refresh_gif1.png"; }
>> }
>> desc { "loading2"
>> inherit: "default";
>> image { normal: "refresh_gif2.png"; }
>> }
>> desc { "loading3"
>> inherit: "default";
>> image { normal: "refresh_gif3.png"; }
>> }
>> desc { "loading4"
>> inherit: "default";
>> image { normal: "refresh_gif4.png"; }
>> }
>> desc { "loading5"
>> inherit: "default";
>> image { normal: "refresh_gif5.png"; }
>> }
>> desc { "loading6"
>> inherit: "default";
>> image { normal: "refresh_gif6.png"; }
>> }
>> desc { "loading7"
>> inherit: "default";
>> image { normal: "refresh_gif7.png"; }
>> }
>> desc { "loading8"
>> inherit: "default";
>> image { normal: "refresh_gif8.png"; }
>> }
>> }
>> }
>> programs {
>> program {
>> name: "start";
>> signal: "START_LOADING";
>> source: "cardstack";
>> action: STATE_SET "default";
>> target: "fresh";
>> after: "img1";
>> }
>> program {
>> name: "img1";
>> action: STATE_SET "loading1";
>> target: "fresh";
>> transition: LINEAR 0.1;
>> in: 0.1 0.0;
>> after: "img2";
>> }
>> program {
>> name: "img2";
>> action: STATE_SET "loading2";
>> target: "fresh";
>> transition: LINEAR 0.1;
>> in: 0.1 0.0;
>> after: "img3";
>> }
>> program {
>> name: "img3";
>> action: STATE_SET "loading3";
>> target: "fresh";
>> transition: LINEAR 0.1;
>> in: 0.1 0.0;
>> after: "img4";
>> }
>> program {
>> name: "img4";
>> action: STATE_SET "loading4";
>> target: "fresh";
>> transition: LINEAR 0.1;
>> in: 0.1 0.0;
>> after: "img5";
>> }
>> program {
>> name: "img5";
>> action: STATE_SET "loading5";
>> target: "fresh";
>> transition: LINEAR 0.1;
>> in: 0.1 0.0;
>> after: "img6";
>> }
>> program {
>> name: "img6";
>> action: STATE_SET "loading6";
>> target: "fresh";
>> transition: LINEAR 0.1;
>> in: 0.1 0.0;
>> after: "img7";
>> }
>> program {
>> name: "img7";
>> action: STATE_SET "loading7";
>> target: "fresh";
>> transition: LINEAR 0.1;
>> in: 0.1 0.0;
>> after: "img8";
>> }
>> program {
>> name: "img8";
>> action: STATE_SET "loading8";
>> target: "fresh";
>> transition: LINEAR 0.1;
>> in: 0.1 0.0;
>> after: "img1";
>> }
>> program {
>> name: "stop";
>> signal: "STOP_LOADING";
>> source: "cardstack";
>> sequence {
>> action: ACTION_STOP;
>> target: "start";
>> target: "img1";
>> target: "img2";
>> target: "img3";
>> target: "img4";
>> target: "img5";
>> target: "img6";
>> target: "img7";
>> target: "img8";
>> action: STATE_SET "default";
>> target: "fresh";
>> }
>> }
>> }
>> }
>> 
>
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Memory leak issue when using signal to loading image in EDJE

2019-11-19 Thread Jing
Hi all,
Below are my parts definition in EDC file,  i  find the memory leak issue when 
use signal "START_LOADING" and "STOP_LOADING" to start and stop the image 
loading.
If there anything wrong ?  Please advise, thanks.


collections.group { "fresh_group";
parts {
image { "fresh";
repeat_events: 1;
desc { "default"
min: CAPTION_ICON_SIZE CAPTION_ICON_SIZE; 
max: CAPTION_ICON_SIZE CAPTION_ICON_SIZE; 
anchors.vertical_center: "refresh_weather" VERTICAL_CENTER;
anchors.horizontal_center: "refresh_weather" HORIZONTAL_CENTER;
image { normal: "refresh_default.png"; }
}
desc { "loading1"
inherit: "default";
image { normal: "refresh_gif1.png"; }
}
desc { "loading2"
inherit: "default";
image { normal: "refresh_gif2.png"; }
}
desc { "loading3"
inherit: "default";
image { normal: "refresh_gif3.png"; }
}
desc { "loading4"
inherit: "default";
image { normal: "refresh_gif4.png"; }
}
desc { "loading5"
inherit: "default";
image { normal: "refresh_gif5.png"; }
}
desc { "loading6"
inherit: "default";
image { normal: "refresh_gif6.png"; }
}
desc { "loading7"
inherit: "default";
image { normal: "refresh_gif7.png"; }
}
desc { "loading8"
inherit: "default";
image { normal: "refresh_gif8.png"; }
}
}
}
programs {
program {
name: "start";
signal: "START_LOADING";
source: "cardstack";
action: STATE_SET "default";
target: "fresh";
after: "img1";
}
program {
name: "img1";
action: STATE_SET "loading1";
target: "fresh";
transition: LINEAR 0.1;
in: 0.1 0.0;
after: "img2";
}
program {
name: "img2";
action: STATE_SET "loading2";
target: "fresh";
transition: LINEAR 0.1;
in: 0.1 0.0;
after: "img3";
}
program {
name: "img3";
action: STATE_SET "loading3";
target: "fresh";
transition: LINEAR 0.1;
in: 0.1 0.0;
after: "img4";
}
program {
name: "img4";
action: STATE_SET "loading4";
target: "fresh";
transition: LINEAR 0.1;
in: 0.1 0.0;
after: "img5";
}
program {
name: "img5";
action: STATE_SET "loading5";
target: "fresh";
transition: LINEAR 0.1;
in: 0.1 0.0;
after: "img6";
}
program {
name: "img6";
action: STATE_SET "loading6";
target: "fresh";
transition: LINEAR 0.1;
in: 0.1 0.0;
after: "img7";
}
program {
name: "img7";
action: STATE_SET "loading7";
target: "fresh";
transition: LINEAR 0.1;
in: 0.1 0.0;
after: "img8";
}
program {
name: "img8";
action: STATE_SET "loading8";
target: "fresh";
transition: LINEAR 0.1;
in: 0.1 0.0;
after: "img1";
}
program {
name: "stop";
signal: "STOP_LOADING";
source: "cardstack";
sequence {
action: ACTION_STOP;
 target: "start";
target: "img1";
target: "img2";
target: "img3";
target: "img4";
target: "img5";
target: "img6";
target: "img7";
target: "img8";
action: STATE_SET "default";
target: "fresh";
}
}
   }
 } 
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] The image tearing issue when slide the screen

2019-11-04 Thread Jing
Hi Carsten,
Follow your advice, i change to use drm method and the image tearing issue is 
fixed now, but i met new issue that,  the application layer can not receive the 
KEY/BUTTON UP and DOWN events any more.
 _ecore_fb_li_device_event_key() in ecore_fb_li.c can received the event, but 
in application layer i use function 
ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, keyDownCB, cardstack); The 
callback function will not be called.


Please help to advise how fix this issue, many thanks.

At 2019-09-28 01:34:32, "Carsten Haitzler"  wrote:
>On Fri, 27 Sep 2019 13:42:09 +0800 (CST) Jing   said:
>
>> Hi Carsten,
>> 
>> 
>> Thanks for your reply. You are saying "drm can be vsynced and tear-free even
>> if  it is configured without gl-drm", right?
>
>drm is separate to gl_drm. drm is software rendered but with display target of
>drm/kms. gl_drm is opengl rendered with a display target of drm/kms. kms allows
>for tear-free vsynced display of buffers direct to "the framebuffer" (not
>fbcon which is the old single front-buffered kernel fb display).
>
>> But from source code in src/modules/ecore_evas/engines/drm/ecore_evas_drm.c,
>> it seems only enabling vsync with option BUILD_ECORE_EVAS_GL_DRM,  how can we
>> build efl to enable vsync without gl-drm package:
>
>drm/kms vsync by design. google "kernel mode switching" :) just try it...
>
>> #ifdef BUILD_ECORE_EVAS_GL_DRM
>>if (tinfo && gl)
>>  {
>> char *num;
>> Evas_Engine_Info_GL_Drm *einfo = tinfo;
>> 
>> einfo->info.vsync = EINA_TRUE;
>> 
>> num = getenv("EVAS_DRM_VSYNC");
>> if ((num) && (!atoi(num)))
>>   einfo->info.vsync = EINA_FALSE;
>> 
>> einfo->info.dev = edata->dev;
>> einfo->info.bpp = edata->bpp;
>> einfo->info.depth = edata->depth;
>> einfo->info.format = edata->format;
>> einfo->info.rotation = ee->rotation;
>> einfo->info.output = edata->output;
>> if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
>>   {
>>  ERR("evas_engine_info_set() for engine '%s' failed", 
>> ee->driver);
>>  goto eng_err;
>>   }
>>  }
>>else
>> #endif
>> 
>> 
>> Looking forward to your reply, thanks.
>> 
>> At 2019-09-23 22:13:11, "Carsten Haitzler"  wrote:
>> >On Mon, 23 Sep 2019 14:02:09 +0800 (CST) Jing   said:
>> >
>> >> Hi Carsten,
>> >> Thanks for your reply.  Correction: Actually, we didn't use X11 and only
>> >> use frame buffer,  based on our flash and memory performance considering,
>> >> we are using a light configuration, here is our configuration for your
>> >> reference. Our system do support basic drm, but vsync needs gl_drm(we
>> >> didn't have gl accelerate),  do you have any simple option to avoid tear
>> >> issue or implemented a simple ping pong buffer mechanism.
>> >
>> >there's gl_drm that needs gl accel an also just drm which is software
>> >rendered, but uses kms/drm to display buffers. this will be vsynced and
>> >tear-free. the fb backend will tear because of the reasons i already gave in
>> >the previous mail. :)
>> >
>> >> --with-tests=none --disable-systemd --disable-doc --disable-cxx-bindings
>> >> --enable-fb --disable-cocoa --disable-poppler --disable-spectre
>> >> --disable-libraw --disable-xcf --disable-libmount --disable-audio
>> >> --disable-avahi --disable-pulseaudio --disable-xinput2 --disable-xim
>> >> --disable-scim --disable-ibus --disable-elua --without-glib 
>> >> --with-x11=none
>> >> --with-opengl=none --without-x --without-mount --without-umount
>> >> --without-eject --disable-image-loader-bmp --disable-image-loader-dds
>> >> --disable-image-loader-tgv --disable-image-loader-xpm
>> >> --disable-image-loader-webp --disable-image-loader-wbmp
>> >> --disable-image-loader-tiff --disable-image-loader-tga
>> >> --disable-image-loader-psd --disable-image-loader-pmaps
>> >> --disable-image-loader-jp2k --disable-image-loader-ico
>> >> --disable-image-loader-gif --disable-gstreamer1 --disable-xinput22
>> >> --disable-librsvg --disable-vg-loader-svg --disable-vg-loader-eet
>> >> --with-crypto=none --disable-doc --disable-v4l2 --disable-libvlc
>> >> --with-net-control=none --disable-libeeze --dis

Re: [E-devel] Image display issue when use evas_object_image_file_set()

2019-10-24 Thread Jing
Hi Vincent, thanks for your advise, thanks.

Hi Carsten,  any advise for the memory consumption issue when display image 
number/size is large ?  Thanks.

At 2019-10-23 18:14:45, "Vincent Torri"  wrote:
>On Wed, Oct 23, 2019 at 12:05 PM Jing  wrote:
>>
>> Hi Carsten,I am using a raw edje object. Follow your advise, i use 
>> evas_object_image_add and evas_object_image_file_set can display different 
>> images in my GUI.
>> But when the number/size of image is large,  it will consume a lot of 
>> memory, is there any way to reduce the memory consumption?
>>
>> Besides, it there any way to play mp3 and mp4 file ?  Please advise, many 
>> thanks.
>
>you can use emotion library for media files. You must compile the EFL
>with at least a video backend (vlc or xine or gstreamer 1)
>
>Vincent
>
>>
>> At 2019-10-22 21:31:36, "Carsten Haitzler"  wrote:
>> >On Tue, 22 Oct 2019 20:13:51 +0800 (CST) Jing   said:
>> >
>> >> Hi Carsten,
>> >> Thanks for your reply.  I want to dynamically display different images in 
>> >> my
>> >> GUI, the images are read from SD card. How to add this feature ? Please
>> >> help,thanks.
>> >
>> >many ways. you can use a basic evas image object (evas_object_image_add) 
>> >then
>> >set the file on it and query size, set min/max size hints so edje will do 
>> >the
>> >right thing in sizing the object. swallow this object into the right swallow
>> >part name. efl, enlightenment, terminology, rage is full of code like this. 
>> >you
>> >can use an elm image which will handle async loading for you and some other
>> >things if you want to pass off that handling to elementary.
>> >
>> >it all depends on your existing code and where you have started from. are 
>> >you
>> >using a raw edje object. en elm layout (which wraps edje objects)? what 
>> >other
>> >objects and code are you using?
>> >
>> >> At 2019-10-22 16:45:55, "Carsten Haitzler (The Rasterman)"
>> >>  wrote:
>> >> >On Tue, 22 Oct 2019 15:03:47 +0800 (CST) Jing  said:
>> >> >
>> >> >> Hi all,
>> >> >> I define a IMAGE part in my EDC file with a default image. And call
>> >> >> evas_object_image_file_set() to display a new image.  But when other 
>> >> >> parts
>> >> >> receive a signal or event,  this IMAGE part will return to display the
>> >> >> default png image,  please advise how to fix this issue,  many thanks.
>> >> >
>> >> >never do that. the image is owned/controlled by edje. you are not meant 
>> >> >to
>> >> >modify the object of an edje part in any way. also don't rely on it 
>> >> >always
>> >> >existing. it may be deleted and re-created. you do not own this object. 
>> >> >the
>> >> >edje parent does.
>> >> >
>> >> >if you want to have an image you can control, then SWALLOW parts are for
>> >> >that. you provide an object to edje to "swallow into" the part. this 
>> >> >means
>> >> >edje will do these things to the swallowed object:
>> >> >
>> >> >1. move + resize this object
>> >> >2. stack it (raise/lower etc.)
>> >> >3. take over layer controls (just don't mess with the layer to begin 
>> >> >with)
>> >> >4. show/hide as needed
>> >> >5. set clipper
>> >> >6. apply any evas maps
>> >> >7. control pass/repeat events flags
>> >> >
>> >> >when the edje parent is deleted, child swallowed objects are orphaned 
>> >> >(they
>> >> >are kicked out of the parent edje) and it's up to you to clean them up or
>> >> >re-use them as needed.
>> >> >
>> >> >so create an image and then swallow this image object into a SWALLOW 
>> >> >part.
>> >> >
>> >> >
>> >> >--
>> >> >- Codito, ergo sum - "I code, therefore I am" --
>> >> >Carsten Haitzler - ras...@rasterman.com
>> >
>> >
>> >--
>> >- Codito, ergo sum - "I code, therefore I am" --
>> >Carsten Haitzler - ras...@rasterman.com
>>
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>
>___
>enlightenment-devel mailing list
>enlightenment-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Image display issue when use evas_object_image_file_set()

2019-10-23 Thread Jing
Hi Carsten,I am using a raw edje object. Follow your advise, i use 
evas_object_image_add and evas_object_image_file_set can display different 
images in my GUI.
But when the number/size of image is large,  it will consume a lot of memory, 
is there any way to reduce the memory consumption?

Besides, it there any way to play mp3 and mp4 file ?  Please advise, many 
thanks.


At 2019-10-22 21:31:36, "Carsten Haitzler"  wrote:
>On Tue, 22 Oct 2019 20:13:51 +0800 (CST) Jing   said:
>
>> Hi Carsten,
>> Thanks for your reply.  I want to dynamically display different images in my
>> GUI, the images are read from SD card. How to add this feature ? Please
>> help,thanks.
>
>many ways. you can use a basic evas image object (evas_object_image_add) then
>set the file on it and query size, set min/max size hints so edje will do the
>right thing in sizing the object. swallow this object into the right swallow
>part name. efl, enlightenment, terminology, rage is full of code like this. you
>can use an elm image which will handle async loading for you and some other
>things if you want to pass off that handling to elementary.
>
>it all depends on your existing code and where you have started from. are you
>using a raw edje object. en elm layout (which wraps edje objects)? what other
>objects and code are you using?
>
>> At 2019-10-22 16:45:55, "Carsten Haitzler (The Rasterman)"
>>  wrote:
>> >On Tue, 22 Oct 2019 15:03:47 +0800 (CST) Jing  said:
>> >
>> >> Hi all,
>> >> I define a IMAGE part in my EDC file with a default image. And call
>> >> evas_object_image_file_set() to display a new image.  But when other parts
>> >> receive a signal or event,  this IMAGE part will return to display the
>> >> default png image,  please advise how to fix this issue,  many thanks.
>> >
>> >never do that. the image is owned/controlled by edje. you are not meant to
>> >modify the object of an edje part in any way. also don't rely on it always
>> >existing. it may be deleted and re-created. you do not own this object. the
>> >edje parent does.
>> >
>> >if you want to have an image you can control, then SWALLOW parts are for
>> >that. you provide an object to edje to "swallow into" the part. this means
>> >edje will do these things to the swallowed object:
>> >
>> >1. move + resize this object
>> >2. stack it (raise/lower etc.)
>> >3. take over layer controls (just don't mess with the layer to begin with)
>> >4. show/hide as needed
>> >5. set clipper
>> >6. apply any evas maps
>> >7. control pass/repeat events flags
>> >
>> >when the edje parent is deleted, child swallowed objects are orphaned (they
>> >are kicked out of the parent edje) and it's up to you to clean them up or
>> >re-use them as needed.
>> >
>> >so create an image and then swallow this image object into a SWALLOW part.
>> >
>> >
>> >-- 
>> >- Codito, ergo sum - "I code, therefore I am" --
>> >Carsten Haitzler - ras...@rasterman.com
>
>
>-- 
>- Codito, ergo sum - "I code, therefore I am" --
>Carsten Haitzler - ras...@rasterman.com

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Image display issue when use evas_object_image_file_set()

2019-10-22 Thread Jing
Hi Carsten,
Thanks for your reply.  I want to dynamically display different images in my 
GUI, the images are read from SD card.
How to add this feature ? Please help,thanks.



At 2019-10-22 16:45:55, "Carsten Haitzler (The Rasterman)" 
 wrote:
>On Tue, 22 Oct 2019 15:03:47 +0800 (CST) Jing  said:
>
>> Hi all,
>> I define a IMAGE part in my EDC file with a default image. And call
>> evas_object_image_file_set() to display a new image.  But when other parts
>> receive a signal or event,  this IMAGE part will return to display the
>> default png image,  please advise how to fix this issue,  many thanks.
>
>never do that. the image is owned/controlled by edje. you are not meant to
>modify the object of an edje part in any way. also don't rely on it always
>existing. it may be deleted and re-created. you do not own this object. the
>edje parent does.
>
>if you want to have an image you can control, then SWALLOW parts are for that.
>you provide an object to edje to "swallow into" the part. this means edje will
>do these things to the swallowed object:
>
>1. move + resize this object
>2. stack it (raise/lower etc.)
>3. take over layer controls (just don't mess with the layer to begin with)
>4. show/hide as needed
>5. set clipper
>6. apply any evas maps
>7. control pass/repeat events flags
>
>when the edje parent is deleted, child swallowed objects are orphaned (they are
>kicked out of the parent edje) and it's up to you to clean them up or re-use
>them as needed.
>
>so create an image and then swallow this image object into a SWALLOW part.
>
>
>-- 
>- Codito, ergo sum - "I code, therefore I am" --
>Carsten Haitzler - ras...@rasterman.com

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Image display issue when use evas_object_image_file_set()

2019-10-22 Thread Jing
Hi all,
I define a IMAGE part in my EDC file with a default image. And call 
evas_object_image_file_set() to display a new image.  But when other parts 
receive a signal or event,  this IMAGE part will return to display the default 
png image,  please advise how to fix this issue,  many thanks.
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Character '<' display issue when using edje_object_part_text_set

2019-10-16 Thread Jing
Hi Carsten,
So there is no way I can display character  '<'  in a TEXTBLOCK part ??
Is there any other way I can display character  '<' in my UI ?


Thanks. 



At 2019-10-17 01:22:50, "Carsten Haitzler (The Rasterman)" 
 wrote:
>On Wed, 16 Oct 2019 18:05:30 +0800 (CST) Jing  said:
>
>> Hi all,
>> I failed to display '<'  by using edje_object_part_text_set(layout,
>> "part_name", "<") . Text display is empty. Please help to advise how to fix
>> this issue, thanks. ___
>> enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>if that is a part that is a TEXTBLOCK part then that is a tag like html - or
>the start of one, and thus you need to escape it.
>
>
>-- 
>- Codito, ergo sum - "I code, therefore I am" --
>Carsten Haitzler - ras...@rasterman.com

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Character '<' display issue when using edje_object_part_text_set

2019-10-16 Thread Jing
Hi all,
I failed to display '<'  by using edje_object_part_text_set(layout, 
"part_name", "<") . Text display is empty. Please help to advise how to fix 
this issue, thanks.
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] The image tearing issue when slide the screen

2019-09-26 Thread Jing
Hi Carsten,


Thanks for your reply. You are saying "drm can be vsynced and tear-free even if 
 it is configured without gl-drm", right?


But from source code in src/modules/ecore_evas/engines/drm/ecore_evas_drm.c, it 
seems only enabling vsync with option BUILD_ECORE_EVAS_GL_DRM,  how can we 
build efl to enable vsync without gl-drm package:


#ifdef BUILD_ECORE_EVAS_GL_DRM
   if (tinfo && gl)
 {
char *num;
Evas_Engine_Info_GL_Drm *einfo = tinfo;

einfo->info.vsync = EINA_TRUE;

num = getenv("EVAS_DRM_VSYNC");
if ((num) && (!atoi(num)))
  einfo->info.vsync = EINA_FALSE;

einfo->info.dev = edata->dev;
einfo->info.bpp = edata->bpp;
einfo->info.depth = edata->depth;
einfo->info.format = edata->format;
einfo->info.rotation = ee->rotation;
einfo->info.output = edata->output;
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
  {
 ERR("evas_engine_info_set() for engine '%s' failed", ee->driver);
 goto eng_err;
  }
 }
   else
#endif


Looking forward to your reply, thanks.

At 2019-09-23 22:13:11, "Carsten Haitzler"  wrote:
>On Mon, 23 Sep 2019 14:02:09 +0800 (CST) Jing   said:
>
>> Hi Carsten,
>> Thanks for your reply.  Correction: Actually, we didn't use X11 and only use
>> frame buffer,  based on our flash and memory performance considering, we are
>> using a light configuration, here is our configuration for your reference.
>> Our system do support basic drm, but vsync needs gl_drm(we didn't have gl
>> accelerate),  do you have any simple option to avoid tear issue or
>> implemented a simple ping pong buffer mechanism.
>
>there's gl_drm that needs gl accel an also just drm which is software rendered,
>but uses kms/drm to display buffers. this will be vsynced and tear-free. the fb
>backend will tear because of the reasons i already gave in the previous mail. 
>:)
>
>> --with-tests=none --disable-systemd --disable-doc --disable-cxx-bindings
>> --enable-fb --disable-cocoa --disable-poppler --disable-spectre
>> --disable-libraw --disable-xcf --disable-libmount --disable-audio
>> --disable-avahi --disable-pulseaudio --disable-xinput2 --disable-xim
>> --disable-scim --disable-ibus --disable-elua --without-glib --with-x11=none
>> --with-opengl=none --without-x --without-mount --without-umount
>> --without-eject --disable-image-loader-bmp --disable-image-loader-dds
>> --disable-image-loader-tgv --disable-image-loader-xpm
>> --disable-image-loader-webp --disable-image-loader-wbmp
>> --disable-image-loader-tiff --disable-image-loader-tga
>> --disable-image-loader-psd --disable-image-loader-pmaps
>> --disable-image-loader-jp2k --disable-image-loader-ico
>> --disable-image-loader-gif --disable-gstreamer1 --disable-xinput22
>> --disable-librsvg --disable-vg-loader-svg --disable-vg-loader-eet
>> --with-crypto=none --disable-doc --disable-v4l2 --disable-libvlc
>> --with-net-control=none --disable-libeeze --disable-gesture
>> --disable-xpresent --disable-cserve --disable-always-build-examples
>> --with-profile=dev --disable-physics --disable-valgrind 
>> --disable-quick-launch
>> 
>> 
>> Looking forward to your reply, thanks.
>> 
>> At 2019-09-21 15:53:12, "Carsten Haitzler"  wrote:
>> >On Sat, 21 Sep 2019 13:47:40 +0800 (CST) Jing   said:
>> >
>> >> I use efl-1.21.1(define the image/rect in edc file) to develop in linux
>> >> environment.  Using X11 and framebuffer. Looking forward to your reply,
>> >> thanks.
>> >
>> >what framebuffer engine/rendering path? in x11 what rendering engine? what
>> >windowmanager/compositor?
>> >
>> >tl;dr; short version: this stuff is complicated and crosses lots of software
>> >boundaries (protocols, kernel vs xserver vs client vs multiple toolkits vs
>> >compositor etc.). i'll cover some of those details below s you didn't tell 
>> >me
>> >everything above.
>> >
>> >if you are using the fb engine for framebuffer rendering, then it has no
>> >vsync or double buffering support. it's built on the old /dev/fb interface
>> >and mmaps the existing fb and renders to cpu local memory then copies stuff
>> >to the framebuffer. thus it will tear at times. that's life with fbcon as it
>> >doesn't have buffer swapping semantics (it could allocated double-height
>> >buffers and do panning... but it still has no ability to explicitly vsync
>> >this so will still lead to tearing). that's why there is a drm engin

Re: [E-devel] The image tearing issue when slide the screen

2019-09-23 Thread Jing
Hi Carsten,
Thanks for your reply.  Correction: Actually, we didn't use X11 and only use 
frame buffer,  based on our flash and memory performance considering, we are 
using a light configuration, here is our configuration for your reference.  Our 
system do support basic drm, but vsync needs gl_drm(we didn't have gl 
accelerate),  do you have any simple option to avoid tear issue or implemented 
a simple ping pong buffer mechanism.

--with-tests=none --disable-systemd --disable-doc --disable-cxx-bindings 
--enable-fb --disable-cocoa --disable-poppler --disable-spectre 
--disable-libraw --disable-xcf --disable-libmount --disable-audio 
--disable-avahi --disable-pulseaudio --disable-xinput2 --disable-xim 
--disable-scim --disable-ibus --disable-elua --without-glib --with-x11=none 
--with-opengl=none --without-x --without-mount --without-umount --without-eject 
--disable-image-loader-bmp --disable-image-loader-dds 
--disable-image-loader-tgv --disable-image-loader-xpm 
--disable-image-loader-webp --disable-image-loader-wbmp 
--disable-image-loader-tiff --disable-image-loader-tga 
--disable-image-loader-psd --disable-image-loader-pmaps 
--disable-image-loader-jp2k --disable-image-loader-ico 
--disable-image-loader-gif --disable-gstreamer1 --disable-xinput22 
--disable-librsvg --disable-vg-loader-svg --disable-vg-loader-eet 
--with-crypto=none --disable-doc --disable-v4l2 --disable-libvlc 
--with-net-control=none --disable-libeeze --disable-gesture --disable-xpresent 
--disable-cserve --disable-always-build-examples --with-profile=dev 
--disable-physics --disable-valgrind --disable-quick-launch


Looking forward to your reply, thanks.

At 2019-09-21 15:53:12, "Carsten Haitzler"  wrote:
>On Sat, 21 Sep 2019 13:47:40 +0800 (CST) Jing   said:
>
>> I use efl-1.21.1(define the image/rect in edc file) to develop in linux
>> environment.  Using X11 and framebuffer. Looking forward to your reply,
>> thanks.
>
>what framebuffer engine/rendering path? in x11 what rendering engine? what
>windowmanager/compositor?
>
>tl;dr; short version: this stuff is complicated and crosses lots of software
>boundaries (protocols, kernel vs xserver vs client vs multiple toolkits vs
>compositor etc.). i'll cover some of those details below s you didn't tell me
>everything above.
>
>if you are using the fb engine for framebuffer rendering, then it has no vsync
>or double buffering support. it's built on the old /dev/fb interface and mmaps
>the existing fb and renders to cpu local memory then copies stuff to the
>framebuffer. thus it will tear at times. that's life with fbcon as it doesn't
>have buffer swapping semantics (it could allocated double-height buffers and do
>panning... but it still has no ability to explicitly vsync this so will still
>lead to tearing). that's why there is a drm engine... thus sues drm/kms as the
>framebuffer interface which does have swapping/atomic/vsync semantics and will
>then not tear. this is the engine that e uses as a wayland compositor (well drm
>or gl_drm depending if you have gl accel on or not).
>
>with software rendering in x11, no mechanism exists to explicitly avoid tearing
>for clients  (ignoring the double buffer extension in x which doesn't actually
>provide SWAPPING mechanics and leads to worse performance anyway. it at best
>does copies from the backbuffer to the window... - i can go into gory details
>if you want).
>
>if you have no compositor in x then rendering goes straight to the frontbuffer
>framebuffer. by that i mean the update regions once filled by the cpu in shared
>memory are COPIED over to the window which lives in the framebuffer. if it's
>composited then these regions are copied to the pixmap that represents the
>window and the compositor will, at some point after that render that pixmap to
>its own backbuffer and swap and the compositor itself may also tear in its
>presenting to the screen depending on the compositor you have. i have seen
>compiz (the compositor ubuntu has used for unity) EXPLICITLY do copies to the
>front buffer to try to do partial update rendering to reduce rendering amount
>BUT at the expense of always tearing. that's why i asked.
>
>efl/e only does this in the software path - with the gl path we always buffer
>swap and request vsynced swaps if asked (tear-free0 for the compositor. we
>can't do anything about the client rendering, but if clients use gl as well and
>do swaps then they have a chance of the x implementation doing proper buffer
>swaps (not copies) from the gl backbuffer to the composited target pixmap
>(exchange the buffers if sizes match). again - depends on your compositor/wm
>and how it may reparent windows and do frame draws. e doesn't draw frames via x
>when compositing but does it in-compositor making the client pixmap an exact
>1:! of the client window with frame

Re: [E-devel] The image tearing issue when slide the screen

2019-09-20 Thread Jing
I use efl-1.21.1(define the image/rect in edc file) to develop in linux 
environment.  Using X11 and framebuffer. Looking forward to your reply, thanks.



At 2019-09-20 20:55:53, "Carsten Haitzler (The Rasterman)" 
 wrote:
>On Fri, 20 Sep 2019 18:48:14 +0800 (CST) Jing  said:
>
>> Hi all,
>> 
>> 
>> I met a problem that when i slide the screen(mouse move), the edge of the
>> image or rectangle object will tear( appear jagged, see my attached
>> snapshot). I have set various values with ecore_animator_frametime_set, but
>> there is no improvement. What can I do to fix this issue?  Please help,
>> thanks a lot.
>
>what environment? x? wayland? what is rendering the object? what kind of
>environment?
>
>-- 
>- Codito, ergo sum - "I code, therefore I am" --
>Carsten Haitzler - ras...@rasterman.com

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Help: Error receive: evas_object_event_callback_del_full() safety check failed: obj == NULL

2019-05-16 Thread Jing
Hi  all,


Below is my  EDC description:


//group  1
collections.group { "content";   
parts {
rect { "bg";
   desc {
 fixed: 1 1;
 color: COLOR_TRANSPARENT;
 rel1.relative: 0 0;
 rel1.offset: 0 0;
 rel2.relative: 1 1;
 rel2.offset: 600 0;
 }
   }
}
 }


//group2
collections.group { 
parts {
group { "content"; 
source: "content"; 
desc { 
 fixed: 1 1; 
 rel1.relative: 0.0 0.1; 
 rel2.relative: 1.0 0.9; 
 } 
}
   }
}


group2 source to group1,  the layout display has no problem,   but when i 
evas_object_hide this layout will receive below error:


ERR<1608>:eina_safety lib/evas/canvas/evas_callbacks.c:540 
evas_object_event_callback_del_full() safety check failed: obj == NULL


When i remove the " source: "content";  " then will not have this error, i 
don't know why ?


Please help to fix it, thanks a lot.












 





 
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Help: How to get EDC textblock text string width ? Any API?

2019-05-14 Thread Jing
Hi all,
Below is my EDC textblock decription:
textblock { "testtext";
desc { "default";
rel1.to: "anotherpart";
rel1.offset: 20 15;
text.align: 0 0;
text.style: "setting/item_tip_text/default";
text.text:"this is a test string, how to get text string width not string 
length";
}
}


I want to get the text string width, but I didn't find the corresponding  api 
for this, please help, thanks.




 





 
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] How to move EDC textblock position ? evas_object_move not working !

2019-05-07 Thread Jing
Hi all,


Below is my EDC textblock describtion:
textblock { "remove";
desc { "default";
min: 210 50;
max: 210 50;
anchors.top: GROUP  BOTTOM;
anchors.left: GROUP LEFT;
anchors.margin: 0 0 50 0;
text.style: "font/default";
text.text:"Remove";
visible:1;
}
desc {"hide";
   inherit: "default";
   visible:0;
}
}
I try below codes to move the testblock position:


remove_obj = edje_object_part_object_get(edje_obj, "remove");
evas_object_move( remove_obj , 2, 200 );
evas_object_show( remove_obj );
evas_object_geometry_get(remove_obj , , , NULL, NULL);


The x,y value i printf are already the new on 2,200,  but the position that the 
canvas shows is still the old one.


I don't know why, please help, thanks.






___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Help: Questions about the usage of edje add elemetary

2019-04-16 Thread Jing
I mean can elm widet be added to the same Evas canvas with edje.   Can i use 
insert elm like:


ecore_evas_init -->
edje_init-->
ecore_evas_new-->
ecore_evas_get-->
bg =evas_object_rectangle_add-->
elm_win_add(bg, NULL, ELM_WIN_BASIC);   // Not sure whether it is reasonable

edje_object_add-->
edje_object_file_set->
ecore_evas_show-->
ecore_main_loop_begin-->
ecore_evas_free-->
ecore_evas_shutdown-->
edje_shutdown



At 2019-04-16 18:29:29, "Vincent Torri"  wrote:
>On Tue, Apr 16, 2019 at 12:22 PM Jing  wrote:
>>
>> Hi all,
>>
>>
>> According to the efl examples, the basic process flow of edje usage is:
>>
>>
>> ecore_evas_init -->
>> edje_init-->
>> ecore_evas_new-->
>> ecore_evas_get-->
>> evas_object_rectangle_add-->
>> edje_object_add-->
>> edje_object_file_set->
>> ecore_evas_show-->
>> ecore_main_loop_begin-->
>> ecore_evas_free-->
>> ecore_evas_shutdown-->
>> edje_shutdown
>>
>>
>> The basic process flow of elementary usage is:
>>
>>
>> elm_win_util_standard_add-->
>> elm_box_add-->
>> elm_button_add-->
>> elm_entry_add-->
>> elm_list_add-->
>> evas_object_show-->
>> elm_box_pack_end-->
>> evas_object_resize-->
>> evas_object_show-->
>> elm_run
>>
>>
>> Elemetary add edje is ok, use elm_layout_add and elm_layout_file_set.
>>
>>
>> For edje add elemetary , can i insert the elm function to edje flow ? Can i 
>> create an elm win base on edje evas ?
>
>if i'm not mistaken, an elm widet is an evas object
>
>Vincent
>
>
>___
>enlightenment-devel mailing list
>enlightenment-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Help: Questions about the usage of edje add elemetary

2019-04-16 Thread Jing
Hi all, 


According to the efl examples, the basic process flow of edje usage is:


ecore_evas_init -->
edje_init-->
ecore_evas_new-->
ecore_evas_get-->
evas_object_rectangle_add-->
edje_object_add-->
edje_object_file_set->
ecore_evas_show-->
ecore_main_loop_begin-->
ecore_evas_free-->
ecore_evas_shutdown-->
edje_shutdown


The basic process flow of elementary usage is:


elm_win_util_standard_add-->
elm_box_add-->
elm_button_add-->
elm_entry_add-->
elm_list_add-->
evas_object_show-->
elm_box_pack_end-->
evas_object_resize-->
evas_object_show-->
elm_run


Elemetary add edje is ok, use elm_layout_add and elm_layout_file_set.


For edje add elemetary , can i insert the elm function to edje flow ? Can i 
create an elm win base on edje evas ?


Please advise ,thanks.
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Help: A detailed description of Edje Program signals

2019-04-10 Thread Jing
Hi  all,
Below are the signals used in animations.edc in efl-1.21.1\src\examples\edje.


program {
 signal: "load";
 source: "";
 in: 2.0 0.0;
 after: "animation,state1";
  }
  program {
 name: "animation,state1";
 signal: "animation,start";
 source: "";
 in: 1.0 0.0;
 action: STATE_SET "invert" 1.0;
 target: "part_one";
 target: "part_two";
 target: "part_three";
 transition: LINEAR 0.6;
 after: "animation,state2";
  }
  program {
 name: "animation,state2";
 signal: "animation,start";
 source: "";
 in: 1.0 0.0;
 action: STATE_SET "default" 0.0;
 target: "part_one";
 target: "part_two";
 target: "part_three";
 transition: LINEAR 0.6;
 after: "animation,state1";
   }


I find nothing about signal "load"/"animation,start"  in 
https://www.enlightenment.org/develop/legacy/program_guide/edje/program.


I need a detailed description of Edje Program signals, otherwise i don't know 
which signals that EDJE supports.


Please help, thanks.




___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel