It is not ready as a public API yet. It needs to run on GeoClue1
and GeoClue2 which will definitely bring API changes as some parts
are tied to mcuh to what GeoClue1 offers right now.
Solved diamond inheritance problem by completely removing inheritance in
the abstract class.
All ancestors are inherited directly in the concrete class.
The algorithm that list the ancestors also avoid repetition.
Now concrete classes define methods too. This helps referring the correct
method directly by the object type (when there are methods with the same
name).
Moved the declaration and definition of constructor methods to the concrete
class, since they should not be used in derived classes.
Updated example that call "color_set".
With this model, if two ancestor classes have a method with the same name,
to call one of them from a derived class you must write the scoped name of
the member function in the wrapper.
In this case, either Evas.Object and Evas.SmartObject have a property
named "color".
Added "from_global" option to the full_name grammar too.
In convert.cc: Reading functions instead of implements to convert the
Eolian_Class. It avoids creation of methods that do not belong to the
class, in special it avoids calling the default constructor twice in the
generated code.
No longer generating one constructor in the C++ wrapper for each eolian
class constructor, since the correct behavior demands that all constructor
should be called. Now the wrappers have "constructor methods" that
must be called when creating a new object.
Updated test cases and examples to match the new interface. Some class
constructors and some test cases have to be removed since they were based
on the wrong assumption that constructors are mutually exclusive.
Created new generators for forwarding parameters and for looping over
the relevant parameters to the C++ wrapper executing a generic lambda.
Added a TODO comment regarding the call of constructor methods of all
base classes. Currently there is no base type with constructors, so this
situation should be discussed more.
Added a TODO comment regarding the way callback parameters are being
processed.
Summary:
While going through eina for understanding, wrote a program to understand
he differences between different eina inarray functions. Thought, this might
be useful for others too, so adding the same.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1803
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
This patch set adds the necessary code to expose device axis state to applications. This was primarily written with graphics tablets in mind, which -- in addition to acting like a mouse -- also provide information about pen pressure, tilt, etc. Other devices could potentially benefit from this API as well: touchscreens, joysticks, knob controllers, "spaceballs", etc.
Whenever an update to the device state is recieved, an "Axis update" event is synthesized. This event contains the updated information, typically scaled and normalized to a particular logical range (e.g. zero to one for pressure, -pi to pi radians for angles, etc.). Information about the tool which generated the event is also stored so that applications can disambiguate events from multiple devices (or in the case of multitouch screens, individual fingers).
This API is only wired up for use with X11 at the moment. Support for other backends (e.g. Wayland) should be easy to add for those familiar them.
**Note**: The following is a list of changes from the "v2" patches originally sent to the mailinglist
//Define and implement new Ecore_Event_Axis_Update events//
* Harcode axis labels instead of including xserver-properties.h
* Use C89-style comments
* Use doxygen comments
* Update comment text to note axes with unbounded/undefined ranges/units
* Create "Ecore_Axis" and "Ecore_Axis_Label" typedefs
* Reference typedef'd instead of raw types
* Adjust how we count through valuators to support tilt/az
* Add support for tilt and azimuth
* Tweak memory management in case number of valuators differ
* Expand TWIST axis normalization to declared range
* Only normalize TWIST axis if resolution == 1 (wacom bug)
* Cache label atoms on first use to minimize round-trips
//Implement EVAS_CALLBACK_AXIS_UPDATE event and friends//
* Update to doxygen comments
* Update comment text to note axes with unbounded/undefined ranges/units
* Typedef 'Evas_Axis_Label', 'Evas_Axis'
* Move typedef for 'Evas_Event_Axis_Update'
* Reference typedef'd instead of raw types
//Wire the Ecore and Evas implementations of axis update events together//
* Expose ecore_event_evas_axis_update in Ecore_Input_Evas.h
* Move ecore_event_evas_axis_update to more logical position
//DEBUG: Add axis update logging to evas-multi-touch.c//
* Removed from patch set
//Make evas-multi-touch demo use new axis functionality//
* Have pressure adjust rectangle brightness instead of size
* Use more available axis data when rendering rectangle (azimuth, tilt, twist)
Test Plan: The evas-multi-touch demo was updated to support axis update events. A graphics tablet was then used to verify that the pressure, azimuth, tilt, and twist data was coming through correctly.
Reviewers: cedric, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1514
Conflicts:
src/lib/ecore_input/Ecore_Input.h
Carsten Haitzler -
** fixed forward enum typedefs (make things unhappy)
** fixed conflict above
** fixed wrong param type for _evas_canvas_event_feed_axis_update()
** fixed @sinces to be 1.13
** fixed formatting/indeting
** fixed order of operation reliance in if's with ()'s to be clear
** fixed functions to be static that should have been
Summary:
.ply format is important for relation blender and EFl, because in blender exist only two mesh export API: bpy.ops.import_mesh.ply and bpy.ops.import_mesh.stl. One of them is necessary for .edc 3D generator. Which I writing now.
Sorry, it isn't like image loader. Refactoring of import/export will be soon.
Reviewers: Oleksander, artem.popov, Hermet, raster, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1544
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
For some reason, they were normal functions instead of eo functions,
which makes them harder to bind, less safe, and just wrong.
This commit fixes that.
Summary: The first version of .eet format is added. All changes due to discussion in D1307 are done.
Reviewers: artem.popov, se.osadchy, reutskiy.v.v, Hermet, raster, cedric, Oleksander
@feature
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1477
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: The first version of .eet format is added.
Reviewers: Hermet, raster, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1307
Summary: This example shows mechanism of 3d object rotation
Reviewers: cedric, Hermet, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1114
Summary:
The generation of class prefixes was not taking into account the full
classname -- the namespace was not being prepended to it. Fixed that and
also re-organized the code a bit, removed some Wshadow warnings also.
This commit fixes 'make examples' and 'make check'.
Reviewers: tasn, cedric, q66
CC: felipealmeida, smohanty, cedric
Differential Revision: https://phab.enlightenment.org/D1100
Implemented namespaces
Added eolian_wrappers.hh with C++ code wrapping Eolain API
Changed eolian_cxx program options. Now they're eolian_gen's
Added functions to safe_str.hh (safe_lower, safe_upper, normalize_spaces, path_base)
Added a mocked version of type_lookup.hh in advance. The full
version will come as soon as complex-types are added.
Made apply again by Daniel Kolesa, original implementation by Savio Sena.
Summary:
There is param (of the map block in part's description) that allows user to
set a color for specified vertex/point of that part.
That param was undocumented so actually no one know that this param is exist and can be used in edj file.
Two main fixes:
- adding documentation for map.color param in edc reference.
- adding .edc source code example for seeing how map.color param works.
@fix
Reviewers: cedric, Hermet, raster, seoz
Reviewed By: cedric
CC: cedric, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D1083
Summary: Just updating the .eo's to match the new syntax.
Reviewers: cedric, q66, tasn, JackDanielZ
Reviewed By: q66
CC: felipealmeida, smohanty, woohyun, cedric
Differential Revision: https://phab.enlightenment.org/D1067
Elua is a LuaJIT based runtime for the EFL meant to provide facilities for rapid application development. The name is temporary. The EFL bindings will be generated with Eolian. @feature
Summary:
Add ecore_evas_cursor_unset function.
Use the new function in the ecore_evas_object_example.
@feature
Test Plan: ecore_evas_object_example
Reviewers: raster, cedric, seoz, Hermet
CC: cedric
Differential Revision: https://phab.enlightenment.org/D812
Summary: This example need for demonstration work of the propagate events.
Reviewers: Hermet, cedric, raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D890
Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
Summary:
Add API that checks OBB's points of node are inside frustum of camera.
Add example with frustum culling.
@feature
Reviewers: Hermet, cedric, raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D942
Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
Summary:
Support union, subtract, intersection, equal(comparison) between tilers.
@feature
Test Plan: Test with added test case(src/tests/eina/eina_test_tiler.c) and the example(src/examples/eina/eina_tiler_02.c)
Reviewers: gwanglim, devilhorns, raster, zmike, cedric
CC: cedric
Differential Revision: https://phab.enlightenment.org/D880
Summary:
Mainly from the examples but also from libunibreak and tests/eet.
I'm not sure if it's really worth to remove warnings from the examples
-- because it adds pedantic-ness to something supposed to be didatic,
but I leave for you guys to judge.
Reviewers: tasn, cedric
CC: felipealmeida, raster, smohanty, cedric
Differential Revision: https://phab.enlightenment.org/D896
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Summary:
Includes Makefile_Eolian*_Helper.am and -- since
_EOLIAN_GEN_DEP and _EOLIAN_CXX_DEP can't be resolved from
src/examples -- redefine the generation rules locally.
Reviewers: cedric, stefan, stefan_schmidt
CC: felipealmeida, cedric
Differential Revision: https://phab.enlightenment.org/D836
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Summary:
EFL_PTHREAD_CFLAGS are needed for tests and users that use
efl::eina::thread's and EFL_PTHREAD_LIBS to eina_cxx, eo and evas examples.
Reviewers: cedric, stefan, stefan_schmidt
CC: cedric, savio
Differential Revision: https://phab.enlightenment.org/D832
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Summary:
Fix function with return type and not returning any value and
remove warnings about unused identifiers in examples for eina C++.
Reviewers: cedric, stefan, stefan_schmidt
CC: savio, cedric
Differential Revision: https://phab.enlightenment.org/D837
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Summary:
Added HAVE_CXX11 guards to Makefile*.am files for C++ binding to avoid
compilation errors for examples when C++11 isn't supported. This also
disable installation of all EFL CXX pkgconfig files.
Reviewers: cedric, stefan, stefan_schmidt
CC: cedric, savio
Differential Revision: https://phab.enlightenment.org/D831
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Summary:
This patch fixes T1226 by adding a Makefile.examples to
examples/eolian_cxx. It also fixes a bug in bin/eolian_cxx: the
include paths were not being correctly generated for directories
outside EFL tree.
Reviewers: cedric, smohanty, stefan_schmidt, stefan
CC: uartie, wayland-efl, felipealmeida, raster, woohyun, cedric
Maniphest Tasks: T1226
Differential Revision: https://phab.enlightenment.org/D824
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
since eo default ref count is 1 and increased by canvas parent again,
they should be unref() called if they wanna deleted automatically.
I wonder if evas unref the objects while it removes the objects from it's list,
then user don't need to call eo_unref() manually which may cause a mistake in usage.
Summary:
Fixed distcheck for Eolian C++. Made the generated files as
nodist so it doesn't get picked up for generation way too
early.
Reviewers: cedric, seoz
CC: cedric
Maniphest Tasks: T1220
Differential Revision: https://phab.enlightenment.org/D820
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Summary:
This patch adds 'eolian_cxx' -- a C++ bindings generator --
to the EFL tree. Eolian Cxx uses Eolian API to read .eo files and generate
.eo.hh. It relies/depends on Eo Cxx and Eina Cxx (both non-generated
bindings).
src/bin/eolian_cxx: The eolian_cxx program.
src/lib/eolian_cxx: A header-only library that implements the C++ code
generation that binds the .eo classes.
=Examples=
src/examples/eolian_cxx/eolian_cxx_simple_01.cc: The simplest example,
it just uses some "dummy" generated C++ classes.
src/examples/eolian_cxx/eolian_cxx_inherit_01.cc: Illustrates how
pure C++ classes inherit from .eo generated classes.
src/examples/evas/evas_cxx_rectangle.cc: More realistic example using
the generated bindings Evas Cxx. Still a bit shallow because we don't
have full fledged .eo descriptions yet, but will be improved.
=Important=
The generated code is not supported and not a stable API/ABI. It is
here to gather people interest and get review before we set things in
stone for release 1.11.
@feature
Reviewers: cedric, smohanty, raster, stefan_schmidt
CC: felipealmeida, JackDanielZ, cedric, stefan
Differential Revision: https://phab.enlightenment.org/D805
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
First step to get the examples compiling output in a useful state.
With all the warning noise one would never see the important messages.
If you add new code please make sure its warning free.
Summary: The warning was "format not a string literal and no format arguments [-Wformat-security]".
Test Plan: gcc -o evas-box evas-box.c `pkg-config --libs --cflags evas ecore ecore-evas eina`
Reviewers: singh.amitesh, seoz, stefan_schmidt
CC: cedric, stefan_schmidt
Differential Revision: https://phab.enlightenment.org/D585
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
The goal of this library is to make the life of C++ developers easier
when having to manipulate Eina datatype by providing a layer to abstract
those data type in C++. Check examples for now. Documentation will come
soon, but we are pushing that rather sooner to get feedback on those bindings.
As you will notice, this library is just composed of headers. There is no .so
and we do think it is better this way. Reducing ABI and API stability issue for
applications developers who are the primary target of this binding.
Also please note that you will need to have C++11 to use this binding.
Signed-off-by: Cedric Bail <cedric.bail@free.fr>
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.
Some commits to port emotion to GStreamer 1.0 and implement some missing features,
clean up code a bit and fix some bugs on the way.
This works as good as the 0.10 code for me now with the emotion examples,
just the Samsung hardware specific code is commented out. This should be
ported by someone who has such hardware, and also in a clean way now that
GStreamer since 1.0 has features to handle all this properly.
There's still a lot of potential to clean things up and fix many bugs, and also
to implement zerocopy rendering. But those are for later if there's actual
interest in this at all.
Commits:
- Update configure checks and ecore example to GStreamer 1.0
- Initial port of emotion to GStreamer 1.0
- Samsung specific code commented out, should be ported by someone
with the hardware.
- Return GST_FLOW_FLUSHING when the sink is unlocked
- Remove unused GSignal from the sink
- Use GstVideoInfo to store the format details inside the sink
- Add support for pixel-aspect-ratio
- Store video format information in GstVideoInfo for the different video streams
- Use GstAudioInfo to store the audio format information
- Remove some unused defines
- Header cleanup
- Implement initial support for GstNavigation interface
- Implement setting of audio/video channel
Reviewers: cedric
CC: cedric
Differential Revision: https://phab.enlightenment.org/D387
Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
positional arguments must appear at the end of the description array
(after the last option) and should have a metavar set and not have
shortname or longname. Simple, elegant and fit :-)
There is a new function to parse the positional arguments,
ecore_getopt_parse_positional() because we may want to not try to
parse them in the case of a quit-option such as --help, --license,
--copyright, --version or some user-defined action. This avoids us
producing errors of missing positional arguments when printing help
and adds some flexibility as well.
This should make Tasn happy :-)
This makes the clipper colors correct and also gets rid of the
following error message spam:
ERR..._color_set() Evas only handles pre multiplied colors!
Fixes T557
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
I added EET_DATA_DESCRIPTOR_ADD_MAPPING_BASIC because I need basic types in unions, and EET_DATA_DESCRIPTOR_ADD_MAPPING is only for structs.
I also modified the example with a float and a string.
Reviewers: cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D313
Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
We can't use ECORE_CON_LIBS at the examples/ "make" context
since it defines libraries relative to the src/ directory
(e.g. lib/ecore/libecore.la). Use ECORE_CON_COMMON_LDADD instead.
This fixes the following link error with ecore_fd_handler_gnutls_example
when the project is configured with --with-crypto=gnutls:
libtool: link: cannot find the library `lib/ecore/libecore.la'
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Only specify ecore_pipe_gstreamer_example in EXTRA_PROGRAMS inside the
HAVE_GSTREAMER makefile guard.
Fixes: https://phab.enlightenment.org/T423
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
input_attach, input_detach, format_set, and source_set now return an
Eina_Bool
Tests, examples and edje_multisense adapted
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
Width and height should be swapped when the screen is rotated by 90 or
270 degrees.
Additionally, add a command to the ecore_evas_window_sizes_example which
returns the screen geometry.
Implement ecore_audio_input_speed_set() in playback example
Fix volume limit off-by-one check while I'm at it
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
I add new example related with this. (ecore_evas_extn_socket & plug example)
ecore extn use this infrasturcture, server app and client app can communicate each other
later, this can be used to contorl access message
SVN revision: 83942
it was failing:
- leaving missing objects (.edj, .la)
- eo was not building its examples automatically with --enable-always-build-examples
- make dist with '--enable-always-build-examples' was not including 'src/examples'
plus lots of ignored files due test changes.
SVN revision: 82894
There's no reason to keep a msg after it was sent. Before this patch we
had edbus_service_signal_send() unref'ing its msg and all the others
not. Also, several users (particularly the edbus_proxy_send() ones) were
forgetting to unref the msg.
This patch makes all these methods unref the message after it has been
succesfully sent:
- edbus_connection_send()
- edbus_object_send()
- edbus_proxy_send()
- edbus_service_signal_send()
SVN revision: 82807
- they have no 'all' rule, keep out of SUBDIRS
- they depend on 'all-am', the non-recursive target that builds everything.
- they do not need a directory on its own to declare nothing.x
SVN revision: 82689
this one was quite a huge work, but hopefully it's correct.
NOTES:
* removed vlc generic module, it should go into a separate package.
* gstreamer is enabled by default (see --disable-gstreamer)
* xine is disabled by default (see --enable-gstreamer)
* generic is always built statically if supported
* gstreamer and xine can't be configured as static (just lacks command line options, build system supports it)
* v4l2 is enabled by default on linux if eeze is built (see --disable-v4l2)
* emotion_test moved to src/tests/emotion and depends on EFL_ENABLE_TESTS (--with-tests), but is still installed if enabled.
TODO (need your help!):
* fix warnings with gstreamer and xine engine
* call engine shutdown functions if building as static
* remove direct usage of PACKAGE_*_DIR and use eina_prefix
* add eina_prefix checkme file as evas and others
* add support for $EFL_RUN_IN_TREE
* create separate package for emotion_generic_modules
* check docs hierarchy (doxygen is segv'in here)
SVN revision: 82501
Tests are disabled by default, but they should be mandatory for
distcheck. So should be examples, we should have them to at least
compile.
As there is no way to force "make distcheck" to run "make examples",
I've created --enable-always-build-examples to make examples regular
noinst_PROGRAMS, being always compiled. distcheck will use that
option.
SVN revision: 82276
if use BUILT_SOURCES it will always generate those files, and their
requirement codegen.edj, even if examples were not to be built.
make will automatically build the files if there are rules to do so,
we just have to clean them.
SVN revision: 82275
Carefully compared 'svn export' and 'make dist' results and couple of
files were missing.
Changes:
* Makefile.am: removed all .pc from EXTRA_DIST, we shouldn't
distribute them here as they will contain ./configure data such as
install location.
* src/Makefile.am: moved all if-endif to files, otherwise EXTRA_DIST
won't work properly. We must EXTRA_DIST outside of the if-endif
block.
* static_libs/liblinebreak: removed couple of unused files.
SVN revision: 82241
this is still in progress, mostly the multisense stuff is pending.
it seems that when we merge ecore_audio in edje the libremix and
similar are gone, at least from Edje, and will be in ecore_audio
itself (or pulseaudio).
Changes:
* __UNUSED__ to EINA_UNUSED
* binaries (epp, embryo_cc, edje_cc) now consider EFL_RUN_IN_TREE and
will assume the binaries are still not installed, running from
build tree location (needs more testing, maybe doesn't work with
srcdir != builddir, still doesn't solve cross compile builds)
SVN revision: 82139
it's useful to copy file from one place to another and this will be
used in eio' s implementation.
NOTE: did not use mmap here as mmap faults may be cumbersome to handle
(Eina_File itself does that, but in a nasty way) and the
implementation would be severely different as there is no Eina_File
from FD, and there is no way to inject custom memory/fd into the
Eina_File's fault handling. The performance would not be that
different anyways and the splice() is already in there for systems
with good performance (read: Linux).
SVN revision: 81942
- remove EFL_LIBS and EFL_CFLAGS, use per-lib values that inherit
from EFL (general)
- add NAME_LDFLAGS and EFL_LDFLAGS for linker flags.
- LDADD (binaries) now use NAME_LDFLAGS instead of NAME_LIBS, as they
link to libname.la and that will pull in the libtool dependencies
SVN revision: 81915
Give it sound files (ogg, wav, not mp3) as parameter or
"tone:freq=<f>,duration=<dur_in_s>" to play a lovely sine wave
* '<' and '>' seek forward and backward
* '+' and '-' change the volume
* Space toggles pause
* Shows information for the song (remaining, %)
* (Un)loop a song with 'l'
* 'n' - Next song
* 'm' - Next song simultaneous to current
* Volume can be set from 0 - 150%
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
SVN revision: 81001
Including ECORE_LIBS in LDADD is not enough, we have to include the
relevant libs from efl as well (eina, evas, ...)
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
SVN revision: 80260
This caused automake to generate a faulty Makefile, which in turn caused
compilation to fail.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
SVN revision: 79345
I can't be sure that distcheck is fixed as the check of eet is failing.
I've disable the run of the eina test for now as it is *very* long. I'll
re-enable it once eet check is running flawlessly
SVN revision: 76772