summaryrefslogtreecommitdiff
path: root/src/lib/emotion (unfollow)
AgeCommit message (Collapse)Author
2021-01-11emotion: emotion EAPI macro to EMOTION_API in Emotion libraryFelipe Magno de Almeida
Summary: Patch from a series of patches to rename EAPI symbols to specific library DSOs. = The Rationale = EAPI was designed to be able to pass `__attribute__ ((visibility ("default")))` for symbols with GCC, which would mean that even if -fvisibility=hidden was used when compiling the library, the needed symbols would get exported. MSVC __almost__ works like GCC (or mingw) in which you can declare everything as export and it will just work (slower, but it will work). But there's a caveat: global variables will not work the same way for MSVC, but works for mingw and GCC. For global variables (as opposed to functions), MSVC requires correct DSO visibility for MSVC: instead of declaring a symbol as export for everything, you need to declare it as import when importing from another DSO and export when defining it locally. With current EAPI definitions, we get the following example working in mingw and MSVC (observe it doesn't define any global variables as exported symbols). Example 1: dll1: ``` EAPI void foo(void); EAPI void bar() { foo(); } ``` dll2: ``` EAPI void foo() { printf ("foo\n"); } ``` This works fine with API defined as __declspec(dllexport) in both cases and for gcc defining as `__atttribute__((visibility("default")))`. However, the following: Example 2: dll1: ``` EAPI extern int foo; EAPI void foobar(void); EAPI void bar() { foo = 5; foobar(); } ``` dll2: ``` EAPI int foo = 0; EAPI void foobar() { printf ("foo %d\n", foo); } ``` This will work on mingw but will not work for MSVC. And that's why EAPI is the only solution that worked for MSVC. Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com> Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev> Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com> Reviewers: vtorri, woohyun, jptiz, lucas Reviewed By: vtorri, lucas Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12227
2020-06-05emotion: remove all left overs from removed backendsStefan Schmidt
We removed them in the last release. Make sure we cleanup all the references and dead code still belonging to it. Extra note on the Emotion_Module enum removal. While it was exposed in the public Emotion.h header it is never used anywhere in the code and has no purpose, thus it can safely be removed. Reviewed-by: Carsten Haitzler (Rasterman) <raster@rasterman.com> Differential Revision: https://phab.enlightenment.org/D11941
2020-05-27build: stop buildsystem from beeing a public dependencyMarcel Hollerbach
this is wrong, each library should declare it on its own Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D11883
2020-05-27refactor buildMarcel Hollerbach
libraries are split into deps, external deps, and pub deps. Evas engines are refactored to use the predefined engine deps. this is preparation work for efl-one. Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D11806
2020-05-26build: lib: harmonize the use of package_c_args in all libsStefan Schmidt
Add it to subprojects which are not using it and remove and old ELEMENTARY_BUILD define we no longer use. This allows us to have a central place in the main meson.build file to set this variable. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Reviewed-by: Vincent Torri <vincent.torri@gmail.com> Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br> Differential Revision: https://phab.enlightenment.org/D11854
2020-05-18Revert "Fix EAPI definition by defining EFL_BUILD for each built DLL"Carsten Haitzler (Rasterman)
This reverts commit 3ade45cbc82bea1772c7ad1afb7e1ba5dd67d930.
2020-05-18Fix EAPI definition by defining EFL_BUILD for each built DLLVincent Torri
Summary: EAPI must be defined to dllexport when building DLL, and to dllimport when using these DLL. To achieve this, define EFL_BUILD for each library and module, and set DLL_EXPORT unconditionally. Static library are and will be not supported Test Plan: compilation Reviewers: zmike, raster, jptiz Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11834
2020-03-25emotion - webcam - fix segv on webcam plug/unplug and cleanCarsten Haitzler (Rasterman)
well hunting was fun... custom webcams i just cant see being used. no api to add them - have to hand craft a config file .. and udev/eeze provide info on webcam devices anyway at runtime with plug/unplug etc. ... so this should be the only ay (for now) and it keesp the code simpler and less bug-prone now issue was some nasty skipping unref as opposed to destroy. in chasing i simplified the code to help me narrow it down and not chase the same logic in multiple places. shorter cleaere, simpler and minux one bug. @fix
2020-03-03doxygen docs: fix multiple defined @section'sXavi Artigas
Section names must be globally unique. We rarely reference sections so we don't actually need to use @section and a simple header suffices.
2020-02-28doxygen: fix duplicated toc sectionsXavi Artigas
2019-12-31Efl.Player: Add setter of playback_progressJunsuChoi
Summary: The setter of Efl.Player.playback_progress is implemented in each class below. Efl.Ui.Animation_View Efl.Ui.Image Efl.Ui.Image_Zoomable Efl.Canvas.Video ref T8476 Depends on D10915 Test Plan: N/A Reviewers: Hermet, bu5hm4n, kimcinoo, Jaehyun_Cho, segfaultxavi, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8476 Differential Revision: https://phab.enlightenment.org/D10931
2019-12-04emotion & evas: remove gstreamer 0.10 supportStefan Schmidt
We have Gstreamer 1.x support for a long time already. We used to keep this around as fallback. By now Linux distributions start to actually no longer ship the Gstreamer 0.10.x packages and upstream has not seen a release in in 5 years. Time to remove it on our side as well. Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com> Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D10779
2019-10-31evas: move efl_input_device into evas/Efl_Canvas.hCedric Bail
Summary: The internal and the API we would like is mostly a canvas API. A lot of the code in evas is working around the fact that efl_input_device is not defined inside Evas. This patch is the first step to try to clean this up. Depends on D10487 Reviewers: zmike, raster, bu5hm4n, Hermet Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T8321 Differential Revision: https://phab.enlightenment.org/D10488
2019-09-24efl/player: progress -> playback_progressMike Blumenkrantz
no functional changes ref T7877 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D10116
2019-09-24efl/player: rename 'play' property to 'pause'Mike Blumenkrantz
this is a bit of an overhaul wherein the existing 'play' mechanics are all inverted. 'pause' is a state which stops playback but does not affect the playback_position property. this patch also includes implementations of Efl.Player::playing for a couple classes which (now) only implement pause, as this is a requirement for the objects to actually activate their animations test cases: * unit tests * all elm_test animation cases * elm_test video * rage Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D10114
2019-09-24efl/player: pos -> playback_positionMike Blumenkrantz
ref T7877 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D10112
2019-09-24efl/player: prune properties duplicated in efl.playableMike Blumenkrantz
efl.playable implements a number of properties which are also present in efl.player. playable was intended to be separate, so enforce this split in all classes which use player ref T7877 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D10109
2019-09-24efl/audio_control: remove playerMike Blumenkrantz
Summary: this does not require any other interfaces Reviewers: bu5hm4n Reviewed By: bu5hm4n Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10110
2019-09-24efl_player: split off audio related propertiesMarcel Hollerbach
Summary: this commit moves the audio related properties from Efl.Player to Efl.Player_Audio. Reviewers: zmike, Jaehyun_Cho Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7877 Differential Revision: https://phab.enlightenment.org/D10106
2019-09-13docs: Move property docs to property level instead of set/getXavi Artigas
Eolian @properties should be documented at the property level, and documentation at the setter or getter level should be left to setter- or getter-specific comments. There is usually no need at all to have setter- or getter- specific comments. Also, a property is not a method so descriptions should match that. This patch removes lots of duplicated text, and will allow enabling by default the eolian check that ensures that properties have proper property-level docs. No functional changes.
2019-09-04fix parsing module path on WindowsVincent Torri
Summary: only '/' path separator is used while on Windows it can also be '\\'. Fix rage and emotion_test play of videos Test Plan: emotion_test plays videos while it didn't before this patch Reviewers: raster, cedric, zmike Reviewed By: raster Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9837
2019-09-02docs: Fix typos and wrap EO files to 120 charsXavi Artigas
As per our style guide: https://www.enlightenment.org/contrib/docs/eo-guide.md
2019-08-29efl: implement efl.file::unload for classes that implement loadMike Blumenkrantz
unload is a crucial method for classes that implement load, as this is the method which is called during e.g., efl_file_simple_load() when a new file is specified in order to destroy the previous object data Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9786
2019-08-22emotion - webcam fix deletion of webcam still left in webcam listCarsten Haitzler (Rasterman)
we may destroy webcams but leave them in the list. this fixes that by removing them from our global list when we do unref to 0. @fix
2019-05-29emotion: don't update crop clipper geometry if crop clipper doesn't existMike Blumenkrantz
Summary: this object does not exist if no image border is set @fix Depends on D9002 Reviewers: cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9003
2019-05-22include evil_private.h in last files, and disable symbolic links on Windows ↵Vincent Torri
in a couple of files Test Plan: compilation Reviewers: zmike, raster, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8933
2019-04-02docs: Fix common misspellings in H filesXavi Artigas
Fixed all appearances of words from this list in H files: https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
2019-03-18efl: remove EFL_EO_API_SUPPORT macroDaniel Kolesa
Summary: Since we're now going to be shipping some eo classes as stable, there is no point in keeping the eo api behind a macro, and it should be enabled by default. Another case is beta classes, but those are behind the EFL_BETA_API_SUPPORT guard. This also changes includes around the place where things are clearly broken (such as an included header needing something from another header but that other header being guarded, notably efl_ui_widget.h needing focus manager but focus manager being behind beta in Elementary.h) Reviewers: zmike, cedric, bu5hm4n, stefan_schmidt, segfaultxavi Reviewed By: cedric, segfaultxavi Subscribers: segfaultxavi, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8322
2019-03-14build: add a option to disable eo file installationMarcel Hollerbach
Summary: this is done because .eo files are not stable, and in order to stop people depending on it, its better for now to disable the installation of them for now. ref T7676 Reviewers: stefan_schmidt, cedric, zmike, devilhorns Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7676 Differential Revision: https://phab.enlightenment.org/D7897
2019-03-06emotion: remove all legacy usage from eo filesMike Blumenkrantz
this takes the current generated output from eolian for legacy code in evas and adds it to the tree, then removes legacy references from the corresponding eo files. in the case where the entire eo file was for a legacy object, that eo file has been removed from the tree ref T7724 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D8118
2019-03-06evas: remove all legacy usage from eo filesMike Blumenkrantz
this takes the current generated output from eolian for legacy code in evas and adds it to the tree, then removes legacy references from the corresponding eo files. in the case where the entire eo file was for a legacy object, that eo file has been removed from the tree ref T7724 Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de> Differential Revision: https://phab.enlightenment.org/D8107
2019-02-27efl.file: improve api a bitMike Blumenkrantz
Summary: the previous implementation/api had a number of issues: * "file" property contained both "file" and "key" values - also performed file loading operation * "load_error" property which was specific to image objects * no methods for controlling file loading/unloading this patch attempts the following changes: * split "file" property into "file" and "key" properties - also remove "key" from existing "mmap" property * remove "load_error" * directly return error codes from operations * add "load" and "unload" methods for directly controlling load state * add implicit file loading if file/mmap is set during construction * rewrite all efl.file implementations to move file loading into load() method * rewrite all usage of efl.file api based on these changes * add C extension functions to mimic previous behavior ref T7577 Reviewers: segfaultxavi, bu5hm4n, cedric Reviewed By: segfaultxavi Subscribers: vitor.sousa, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7577 Differential Revision: https://phab.enlightenment.org/D8018
2019-02-14Mark BETA classes individuallyXavi Artigas
Summary: Instead of surrounding all the #include "*.eo.h" lines in Efl.h with #ifdef EFL_BETA_API_SUPPORT, include these files unconditionally, but mark all classes as @beta in the eo files. This will allow taking them out of beta one by one as we deem them stable enough. Otherwise, the current procedure involves moving the #include line out of the ifdef block, which is cumbersome and messes include order. Depends on D7950 Fixes T7692 Test Plan: Nothing changes Reviewers: zmike, bu5hm4n, cedric Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7692 Differential Revision: https://phab.enlightenment.org/D7951
2019-02-13Remove individual class BETA guardsXavi Artigas
Summary: Eolian adds a per-class BETA guard (like EFL_UI_WIN_BETA) to any method tagged as @beta. This means that any app (and the EFL code) wanting to use BETA features has to enable them class by class, which is cumbersome. This commit replaces the individual guards with the global EFL_BETA_API_SUPPORT guard, so apps only need to define one symbol to access BETA features. Any usage of the per-class guards has been removed from the EFL code and examples. When building EFL the global guard is defined by configure, so all EFL methods already have access to BETA API. Efl_Core.h and Efl_Ui.h no longer define EFL_BETA_API_SUPPORT. Apps wanting to use BETA API have to define this symbol before including any EFL header (It has been added to the examples requiring it). Test Plan: make && make check && make examples still work, but there's a lot less #defines in the code Reviewers: zmike, bu5hm4n, q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T6788 Differential Revision: https://phab.enlightenment.org/D7924
2019-01-18efl: convert all classes to the new eolian syntaxMarcel Hollerbach
ref T7459 Reviewed-by: Daniel Kolesa <daniel@octaforge.org> Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7684
2018-12-06meson: use eolian_gen with -SMarcel Hollerbach
this ensures that eolian does not parse installed .eo files Differential Revision: https://phab.enlightenment.org/D7405
2018-12-03meson: use eolian_gen with -SMarcel Hollerbach
this ensures that eolian does not parse installed .eo files Differential Revision: https://phab.enlightenment.org/D7405
2018-11-28eo-docs: Remove Doxygen tags from efl*.eo filesXavi Artigas
Summary: - Replace '\@ref name' with '@name' - Remove unused \@internal tag This tag affects text AFTER it, and there is no text after it. - Remove \@note tag Replaced with a simple NOTE: text, since eolian does not have an equivalent tag. - Remove spurious \@Efl... tags They should really be @Efl... - Remove \@p tags There is no eolian equivalent, and a simpler $ suffices in this case. Fixes T7482 Reviewers: q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7482 Differential Revision: https://phab.enlightenment.org/D7372
2018-11-09emotion modules - warn - fix possible uninit varCarsten Haitzler (Rasterman)
2018-10-24meson: add eolian custom dependencies supportDaniel Kolesa
This uses the meson/ninja depfile functionality + eolian to make sure proper dependencies between generated files and .eo files are managed, to ensure consistent re-generation of all generated files that are affected upon .eo file modification. For custom rules with multiple outputs, Ninja currently does not support depfiles. Therefore, split those into two custom rules so that the depfiles functionality can be enabled. While this is ugly and slows down the process a little by having to invoke Eolian twice instead of once, it has to be done and it's still better than what we had in Autotools anyway. Differential revision: D7187 Fixes T6700.
2018-10-02here comes mesonMarcel Hollerbach
a new shiny buildtool that currently completes in the total of ~ 4 min.. 1 min. conf time 2:30 min. build time Where autotools takes: 1:50 min. conf time 3:40 min. build time. meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read. Further informations can be gathered from the README.meson Right now, bindings & windows support are missing. It is highly recommented to use meson 0.48 due to optimizations in meson that reduced the time the meson call would need. Co-authored-by: Mike Blumenkrantz <zmike@samsung.com> Differential Revision: https://phab.enlightenment.org/D7012 Depends on D7011
2018-09-18emotion: Convert to new animatorsDerek Foreman
Summary: Use more efficient animator mechanism. Depends on D7049 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7050
2018-08-29evas: call evas_find before safety checkYeongjong Lee
Summary: edje_edit_object_add edje_object_add emotion_object_add evas_object_xxx_add These APIs had allowed to set parent to EFL_CANVAS_OBJECT(Evas_Object) before 8bb11a17. we should call evas_find before safety check for backward compatibility. Test Plan: win = elm_win_add(NULL, "main", ELM_WIN_BASIC); 1. `rect = evas_object_rectangle_add(evas_object_evas_get(win));` 2. `rect = evas_object_rectangle_add(win);` Check that 1. and 2. works. Reviewers: Hermet, zmike Reviewed By: Hermet Subscribers: cedric, #reviewers, CHAN, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D6909
2018-08-16evas: check evas class instead of using evas_findYeongjong Lee
Summary: A object that is not evas class shouldn't use evas_find. it may occurs segfault. ref c2e8b492b18bdecc2300ad051ba1406e40ad068f Test Plan: Evas *evas = evas_new(); evas_free(evas); evas_object_line_add(evas); Check weather there is segfault. Reviewers: Hermet, raster, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers, zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6816
2018-08-13emotion: make intree running workMarcel Hollerbach
Summary: before it would have only worked if there would have been the architecture in the path, which was definitly not the case. This fixes the problems. Depends on D6795 Subscribers: cedric, #reviewers, #committers, zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6819
2018-05-24evas: enforce legacy parent to be the canvas.Cedric Bail
2018-05-19efl: Add missing event typesXavi Artigas
Summary: All events must have a type now, otherwise bindings don't know how to handle the event_info field. Most of the missing event types were actually "void" (no event_info present). Some struct definitions had to be moved to eo instead of h files, so they are available to bindings. Some have not, and are marked with FIXME. Some namespaces have been fixed (like Efl_Event_Cb -> Efl.Event_Cb). In general, there are hundreds of changed files, but mostly to add a type which was not present before, so there's no harm done. Also, A lot of FIXMEs have been added which should be, like, fixed. For example, some events can send different types of event_info, which is very inconvenient (and error prone). Test Plan: make with c# bindings works, make check and make examples work too. Reviewers: cedric, q66, lauromoura Subscribers: zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6169
2018-04-24Efl.Gfx.Image* (From Efl.Image*)Xavi Artigas
Ref https://phab.enlightenment.org/T6847 Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24Efl.Image_Load_Controller* (From Efl.Image.Load*)Xavi Artigas
Ref https://phab.enlightenment.org/T6847 Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24Efl.Gfx.Entity (from Efl.Gfx)Xavi Artigas
Ref https://phab.enlightenment.org/T6847 Reviewed-by: Cedric Bail <cedric@osg.samsung.com>