To configure efl sources with bindings to use in nodejs add ––with-js=nodejs in configure flags to generate node files
$ configure --with-js=nodejs
and compile normally with:
$ make
$ make install
To use, you have to require efl:
efl = require('efl')
The bindings is divided in two parts: generated and manually
written. The generation uses the Eolian library for parsing Eo files
and generate C++ code that is compiled against V8 interpreter library
to create a efl.node file that can be required in a node.js instance.
@feature
The negation should be uses after checking the capability bit with the &.
Better use parenthesis to make this work.
Thankls to the sparse sematic parser for spotting this.
Summary:
_emotion_pending_ecore_begin and _emotion_pending_ecore_end are not called from
the same thread. Indeed, _emotion_pending_ecore_begin is called from gstreamer
callbacks, and _emotion_pending_ecore_end is called from the mainloop.
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3061
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Everything is implemented except visualization, mouse events and some
EMOTION_EVENT. Video can output RGBA, YUY2, YV12 or I420.
About the video sink: this emotion module use libvlc callbacks:
libvlc_video_set_format_callbacks and libvlc_video_set_callbacks. It may be
temporary. Indeed, an other solution is to add an Evas module inside vlc. But
this vlc module would need to link with emotion in order to use
_emotion_frame_new and _emotion_frame_resize private functions. I didn't
succeed to output a frame without these private functions: see
15daff4d3f
List of /* FIXME */:
- Visualization not implemented since there is no API (for now) in libvlc.
- Mouse events not implemented since there is no API (for now) in libvlc.
- Some EMOTION_EVENT are not handled.
- SIGSEGV in evas_gl_common_texture_nv12_update with
EVAS_COLORSPACE_YCBCR420NV12601_PL colorspace.
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3071
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
From now on, constructors should return a value, usually the object
being worked on, or NULL (if the constructor failed). This can also
be used for implementing singletons, by just always returning the same
object from the constructor.
This is one of the final steps towards stabilizing Eo.
@feature
Instead of "@in type name;" we now use "@in name: type;". This change
is done because of consistency with the rest of Eolian; pretty much
every other part of Eolian syntax uses the latter form.
This is a big breaking change in the .eo format, so please update your
.eo files accordingly and compile Elementary together with the EFL.
@feature
Before this change eo_add() used to create an object with 1 ref, and if
the object had a parent, a second ref.
Now, eo_add() always returns an object with 1 ref, and eo_add_ref()
preserves the old behaviour (for bindings).
eo_unref now un-parents if refcount is 0, and eo_del() is an alias for
eo_unref (will change to be a way to ensure an object is dead and goes
to zombie-land even if still refed).
if you don't init (or set engine) on an emotion object, itstill works
- it chooses the default engine.. whihc i now have set as gst1. :) one
less thing that HAS to be done on init. better.
Summary:
Before "open_done" callback, play unset is ineffective.
is it intentional logic?
if we set play and unset play again before "open_done" callback, the video will be played.
@fix
Reviewers: raster, cedric
CC: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D786
@fix
Summary:
In emotion_engine_instance_new(), if given module name is wrong or if loding is failed, fallback module loading should be triggered.a (previously, it check just whether name is NULL or not)
In case of T1025, "vlc" was given name. Therefore, fallback was not triggered.
Fixes T1025
Test Plan: enlightenment -> efm -> mouse over multimedia files -> check whether preview is shown properly or not
Reviewers: raster, cedric
CC: seoz, cedric, zmike
Maniphest Tasks: T1025
Differential Revision: https://phab.enlightenment.org/D773
this makes efl ignore certain env vars for thnigs and entirely removes
user modules (that no one ever used) etc. etc. to ensure that *IF* an
app is setuid, there isn't a priv escalation path that is easy.
so firstly the module loading logic in emotion is pretty bad. it
forcible loads into memory (dlopen + run code from) EVERY emotion
module whenever you use emotion anywhere. this is a fat memory cost and
startup cost. it should not ever have done this. so remove that code
and make it explicitly load only the backend requested and fall back
to using what is compiled in (generic by default) and otherwise
generic as a module, then xine, then gstreamer then gstreamer1.
gstreamer1 seems broke - all i see is a black box (no video).
this also fixes a deadlock problem. if you have BOTH gstreamer AND
gstreamer1 modules loaded i get a deadlock inside glib. this seemingly
fixes it as it'll only load the first one it finds, not both (unless
explicitly requested).
Being annoyed by different types of eina critical macros - CRI, CRIT,
CRITICAL -, I concluded to unify them to one. Discussed on IRC and
finally, CRI was chosen to meet the consistency with other macros -
ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.