Commit Graph

462 Commits

Author SHA1 Message Date
Daniel Zaoui 0987b31247 Eolian/Generator: detach Eo1 from Legacy generator.
This step is needed to clean the code and to prepare the integration of
Eo2 inside Eolian.
Except the eo_do invocation, there is no reason why legacy has to know
about Eo.
2014-03-24 08:14:30 +02:00
Daniel Zaoui cc9526cd7f Eolian/Generator: generate Eo * instead of Evas_Object * 2014-03-23 08:04:22 +02:00
Carsten Haitzler 4da1081c4d drm - shut up warnings (not actual bugs) 2014-03-22 19:12:07 +09:00
Mike Blumenkrantz f3d5cee0e4 edje_cc can now use group.program_remove to remove inherited programs
@feature
2014-03-22 02:20:09 -04:00
Mike Blumenkrantz 7cfde40500 edje_cc no longer fails when program.name is specified after program.after 2014-03-22 00:52:55 -04:00
Mike Blumenkrantz a755dfa75e edje_cc should probably disallow overriding of currently-sequencing program 2014-03-22 00:13:18 -04:00
Mike Blumenkrantz b8bc366a28 edje_cc now supports program.sequence for more easily chaining programs together
this is just some syntax shortening for program.after which causes program.action and program.script to create a new program and automatically chain it within the sequence{} block

recursive sequences not currently allowed/planned (don't be insane)

@feature
2014-03-21 23:56:05 -04:00
Mike Blumenkrantz 98eaad570b edje_cc macros even more of its parser setup for consistency 2014-03-21 23:04:05 -04:00
Mike Blumenkrantz b6949578cf edje_cc typo which almost broke everything except nobody noticed 2014-03-21 22:36:22 -04:00
Mike Blumenkrantz cc5f8c6852 edje_cc uses macros for some of its handler setup
this reduces code size, ensures consistency, and actually fixes bugs where the "filter" keyword was erroneously disallowed in some places

@fix
2014-03-21 22:09:54 -04:00
Mike Blumenkrantz 499020ce4d edje_cc no longer reads every character of a script during parsing 2014-03-21 22:08:19 -04:00
Mike Blumenkrantz 0681af5ca1 edje_cc group.remove should probably be group.part_remove
this allows things like group.program_remove to exist
2014-03-21 16:50:12 -04:00
Mike Blumenkrantz 4619c3de4e edje_cc now supports part.inherit for copying attributes of parts within a group more easily
@feature
2014-03-21 15:47:04 -04:00
Mike Blumenkrantz 79a6653f59 edje_cc error message for description with missing state is now useful 2014-03-21 15:40:40 -04:00
Mike Blumenkrantz fa14af1afb edje_cc no longer errors when inheriting a description before/when state is not set
anonymous states are allowed in other places, so having this check is inconsistent and breaks inheriting. an error will be triggered at a later point.
2014-03-21 15:25:15 -04:00
Mike Blumenkrantz 153e3b45b4 edje_cc now supports group.remove for removing parts from inherited groups
@feature
2014-03-21 15:12:38 -04:00
Mike Blumenkrantz c4fc401d87 edje_cc now supports program.targets keyword for adding N targets in one line
@feature
2014-03-20 19:40:51 -04:00
Mike Blumenkrantz d025f89b2e edje_cc also checks min args correctly for STATE_SET actions
@fix
2014-03-20 19:27:48 -04:00
Mike Blumenkrantz 0f1ccdad09 edje_cc now correctly handles lack of state int in STATE_SET action
@fix
2014-03-20 19:20:50 -04:00
Mike Blumenkrantz edf825fd07 edje_cc no longer fails on collections.group{}
@fix
2014-03-20 14:59:58 -04:00
Cedric BAIL 15654012a6 edje: let's be careful on the string content.
Fix CID 1193215.
2014-03-20 16:48:38 +09:00
Tae-Hwan Kim 3061a706c4 Add new PLUGIN_RUN action type and new plugins.plugin handlers 1. If external library is commerical source and not opensource, we cannot include/build the library within edje. 2. If external library does not use general encodable sources, we...
Summary:
...cannot encode those things into edje.

In our case, we need vibration when longpressed. But those files are not
audio or image and cannot be encoded into edje. Also, this library is not
opensource so should not be linked directly with edje.
So we should call vibration API by using this plug-in.

Reviewers: raster, cedric, seoz, Hermet

CC: cedric

Differential Revision: https://phab.enlightenment.org/D588
2014-03-20 13:00:21 +09:00
Stefan Schmidt 44a54caa16 eolian/eo1_generator: Fix leak in error path
We allocated tmpstr so we should free it before we return in the error case.

CID 1191926
2014-03-19 16:40:52 +01:00
Daniel Zaoui d5256d442d Eolian/Generator: Don't generate sub ids structure if not needed.
If no methods and properties are declared for a class, no base id and
sub_ids structure are generated.

@fix
2014-03-19 07:52:04 +02:00
Daniel Zaoui 15f2bda474 Eolian/Generator: fix generation of events. 2014-03-19 07:04:28 +02:00
Jean-Philippe Andre 320a9f18c5 Evas cserve2: Fix client crashes when a file changed
Clients must ignore changed file entries as they are not valid
anymore. The server will also mark the entry as invalid in case
of file update.

@fix
2014-03-18 13:49:05 +09:00
Daniel Zaoui 5d1b948508 Eolian/Generator: Retrieve the Eo prefix from the database instead of
guessing it.
2014-03-16 16:00:29 +02:00
Yossi Kantor 6862fa801b Eolian/Generator: Improved event generation
Line breaks in source files and extern definitions
of events in header files.
2014-03-16 09:23:49 +02:00
Daniel Zaoui c203df0b5d Eolian: Support default return values from .eo file.
Now, it is possible to assign a default return value for a
method/property.
It will be used in case the function invocation makes issues, e.g eo_do
failing to find the function...
2014-03-16 08:37:23 +02:00
Daniel Zaoui 81c2a5d217 Eolian/Generator: return values set to 0.
Before eo_do invocation, generated legacy functions returning a value
initialize it to 0.
This change is needed in the case that eo_do fails to find some
function, which leads to an unitialized value and behavior.
2014-03-14 13:21:51 +02:00
Daniel Zaoui dcf94e9dd8 Eolian/Generator: fix generation of headers for const params.
When a parameter of a property is const for get but not for set, the
.eo file indicates it by setting a flag 'const' for this parameter.
The generation was checking this flag for C files generation but not for
H files.
2014-03-13 09:14:14 +02:00
Daniel Zaoui fd67c1692c Eolian/Generator: fix generation for return values.
- Remove space between type and variable if a star is present.
- Initialize return value to NULL before eo_do. It is needed in case the
eo_do invocation fails (NULL object...).
- Add const to the internal return value if needed.
2014-03-11 15:43:46 +02:00
Daniel Zaoui d3f343bdcc Eolian/Generator: fix type when no data type exists.
When data is set as "null", the generator was writing for this data
variable "void * *_pd" instead of "void *_pd".
2014-03-11 15:25:24 +02:00
Daniel Zaoui 0d6fadcab9 Eolian/Generator: fix for virtual pure implementations 2014-03-11 15:20:54 +02:00
Yossi Kantor b070981f8f Eolian: Support of unsigned short as int in va_arg 2014-03-11 07:37:47 +02:00
Daniel Zaoui d96c429179 Eolian/Generator: support NULL pointers for return values.
When an Eo operation returns a value, this one is stored in the last
parameter as an out parameter.
In case the caller doesn't set a pointer there, the storing will be done
in a NULL pointer and will bring to a segfault.

The generator has been modified to handle this case. Now, if the ret
pointer is NULL, the value will not be returned.
2014-03-10 15:07:05 +02:00
Daniel Zaoui 4e33fd16e2 Eolian: add support of eo_prefix and data.
You can add in the .eo file the eo_prefix:... and data:... in case
you want to override respectively the Eo prefix and the data type.
If "data: null" is used, no data type will be added.
2014-03-10 15:07:05 +02:00
Daniel Zaoui a04e80e7f6 Eolian/Generator: fix for legacy function name overriding.
When legacy is specified in the .eo file, the generator was adding the
property/method name after the legacy name.
So if you have 'legacy evas_object_textblock_clear_all' for clear method,
it was adding the function evas_object_textblock_clear_all_clear.
2014-03-10 13:28:03 +02:00
Daniel Zaoui 4be9526cc2 Eolian/Generator: more fixes related to stars to add to params. 2014-03-09 13:19:30 +02:00
Tom Hacohen 561ea66dec Eet vieet: Fixed to work on non-bash compat shells.
Thanks to Davide Andreoli for reporting and suggesting fixes.
2014-03-08 10:55:37 +00:00
Daniel Zaoui a78f779486 Eolian: Fixes into generated files.
- Added Doxygen description to parameters and return
- Added default description for parameters
- Return type needs to be after all the other parameters
- Better handling of stars for pointers: try to figure if a space is
needed between the type and the variable (e.g int *a / int a)
2014-03-07 17:42:41 +02:00
Daniel Zaoui bb8af681f9 Eolian: Coverity fixes 2014-03-07 17:42:41 +02:00
Tom Hacohen e63a5cc903 Eet: Added vieet a tool to edit eet files.
This tool lets you just open an eet file for editing directly,
by wrapping around 'eet' and the preferred editor defined in the env var
'EDITOR'.

@feature
2014-03-07 15:11:30 +00:00
Tom Hacohen 426e95b214 Eolian gen: Have a more useful error message when failing to write file. 2014-03-07 12:01:52 +00:00
Cedric BAIL f01a5a6265 git: ignore generated file. 2014-03-07 09:36:52 +09:00
Daniel Zaoui 7aebf671bf Eolian/Generator: Switch set/get functions generation.
We want to generate first set properties and then get properties to be
in accordance with the current op ids order.
2014-03-06 15:12:51 +02:00
Daniel Zaoui 232a3cf5fc Eolian/Generator: Fix comments generation in headers.
Trailing whitespaces were added in description empty lines.
2014-03-06 15:12:51 +02:00
Chris Michael 3d5f93a9cf ecore-drm: Add code for SPARTACUS !! ;)
@ferature: This adds code for the ecore-drm auth process to open
restricted inputs/cards/etc by the user.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-06 11:15:29 +00:00
Cedric BAIL dea550eba1 edje: add AUTHORS and more than one license file to Edje.
@feature
2014-03-06 16:33:06 +09:00
Cedric BAIL add9540b1c edje: fix edje_watch to not pass the '\n' to eio_monitor.
Eina_File line iterator does give the length of the line including the '\n'.
We did previously ignore that and passed the '\n' down to eio_monitor. Obviously
it would fail to monitor a PATH that finished with a '\n' and edje_watch did
stop working. I guess nobody did any real testing with edje watch in the past
year.

@fix
2014-03-05 12:14:40 +09:00
Daniel Zaoui fe682d9760 Eolian: Valgrind fixes 2014-03-03 18:14:14 +02:00
Daniel Zaoui 49822ec28d Eolian: remove Ecore_File dependency 2014-03-03 18:14:14 +02:00
Daniel Zaoui e8ee7ae24b Eolian: fix warnings.
Don't want Stefan to be angry ;-)
2014-03-03 14:28:30 +02:00
Yossi Kantor 1287177ac2 Eolian: New features/bugs fixes
1) Include files now have include guards
  2) --gh option generates legacy header with --legacy flag and eo header
  without --legacy flag
  3) EOLIAN keyword is introduced to mark functions used by generated
  file.
  4) * for comments when comment text is empty
2014-03-03 14:09:57 +02:00
Yossi Kantor 67dd5ef497 Eolian: New generation feature tested and bugs fixed
1) Underscore for static global names
  2) Escape special characters for in-code descriptions
  3) Proper spaces for generated lines
2014-03-03 14:09:57 +02:00
Daniel Zaoui 87f661e08e Eolian: support non null parameters.
The generation is only needed in legacy headers.
2014-03-03 14:09:57 +02:00
Daniel Zaoui 210051ebb3 Eolian/Generator: fix data type for implement function 2014-03-03 14:09:57 +02:00
Daniel Zaoui 10d7bffc4a Eolian: support warn_unused variables. 2014-03-03 14:09:56 +02:00
Daniel Zaoui 2db3cdb5e3 Eolian: Valgrind cleaning 2014-03-03 14:09:56 +02:00
Daniel Zaoui 21533a0079 Eolian/Generator: errors handling improvement.
Errors occuring during generation are now propagated to the main (i.e
exit code).
Logs have been ported to EINA_LOG instead of printf.
2014-03-03 14:09:56 +02:00
Daniel Zaoui baaf92c93a Eolian/Generator: implementation prototype change
Since we know the type of the private data given as parameter of the
implemented function, we can set it instead of void *.
2014-03-03 14:09:56 +02:00
Daniel Zaoui 60919ecbe6 Eolian/Generator: improve command line arguments and logging.
Now --gh/--gc don't require an additional argument.
If eolian_gen is called with --gc and some file.eo, the tool will
generate file.eo.c.
You can force another filename by using the -o with an argument.

Moreover, logging has been added to the generator.
2014-03-03 14:09:56 +02:00
Yossi Kantor 521701ff70 Eolian: naming convention for implemented functions
The format is now _<current_class>_<inherited_class>_function_name.
2014-03-03 14:09:56 +02:00
Daniel Zaoui 02f4c112ca Eolian/Generator: add private data to the prototypes of implementations 2014-03-03 14:09:56 +02:00
Yossi Kantor c7beca12ec Eolian: Class type and class constructor/destructor generation added 2014-03-03 14:09:56 +02:00
Daniel Zaoui 920c035c57 Eolian: Support of virtual pure functions.
Virtual pure can be defined in Eolian format by adding in the section
implements virtual::class_name::func_name[::func_type].
2014-03-03 14:09:55 +02:00
Daniel Zaoui f7dce9c8c9 Eolian/Generator: update options and return value from main.
-v is used instead of -V
returns 1 when an error occurred
useless print removed when scanning include directories
2014-03-03 14:09:55 +02:00
Daniel Zaoui 5ae7cc962f Eolian: Format changes
- Support keys/values for properties instead of params
- Direction for parameters syntax changed from in to @in...
- obj:const changed to const in .eo
2014-03-03 14:09:55 +02:00
Daniel Zaoui a8661af73e Eolian: update .gitignore 2014-03-03 14:09:55 +02:00
Daniel Zaoui 61b180448a Eolian/Generator: improve the files management.
Now, the .eo file given as parameter doesn't have to be into the given
include paths.
2014-03-03 14:09:55 +02:00
Daniel Zaoui 9add4c695c Eolian: remove --class option.
Now, the .eo file needs to be supplied instead of the class.
2014-03-03 14:09:54 +02:00
Yossi Kantor 17abdbdd43 Eolian: Code review fixes
1) API defined under EFL_BETA_API_SUPPORT
2) Init counters for init and shutdown
3) void for no-parameters functions
2014-03-03 14:09:54 +02:00
Daniel Zaoui 7a114b18af Eolian/Generator: oups, didn't mean to push that. 2014-03-03 14:09:54 +02:00
Daniel Zaoui 8de58b9757 Eolian/Lexer: rename signals to events. 2014-03-03 14:09:54 +02:00
Daniel Zaoui a934780714 Eolian-generator: fix crash during generation
It happens when no description is supplied for an event.
2014-03-03 14:09:54 +02:00
Daniel Zaoui ab8d877150 Eolian/Generator: support legacy as option.
For the moment, the option works for C files. Have to add support for H
files.
2014-03-03 14:09:54 +02:00
Daniel Zaoui 327202ef37 Eolian/Generator: port options to getopt
Even if we want to remove the appending options, we still support them.
We will remove them later.
2014-03-03 14:09:54 +02:00
Daniel Zaoui 5dea8ee0a8 Eolian: first import.
Imported by Tom, from the eolian repo which was written by:
Daniel Zaoui <daniel.zaoui@samsung.com>
Yakov Goldberg <yakov.g@samsung.com>
Yossi Kantor <yossi.kantor@samsung.com>
Savio Sena <savio@expertisesolutions.com.br>
Jérémy Zurcher <jeremy@asynk.ch>

Signed-off-by: Tom Hacohen <tom@stosb.com>
2014-03-03 14:09:53 +02:00
Cedric Bail 92a24dea79 edje: @feature to include license in edje file.
This will close T1027.
2014-03-03 08:39:53 -03:00
Jean-Philippe Andre 1fae9e5e21 cserve2: Fix minor clang warning 2014-02-14 13:06:05 +09:00
Carsten Haitzler bf4d34c172 edje - edje_cc - remove logically dead code
fixes CID 1135268
2014-02-13 19:31:29 +09:00
Carsten Haitzler 8764bd240c evas cserve2 - fix chekc of wrong return type
the wrong value was checked (not the returned value) - coverity caught
this. fixes CID 1135269
2014-02-13 19:27:11 +09:00
Carsten Haitzler db1990020a edje - feature - add channel types for sounds and ability to mute them
this adds a new feature to be able to assign a sample to a given
"type" of audio channel, and then to be able to mute these from code.
2014-02-09 19:08:12 +09:00
Carsten Haitzler 7c7f2eb300 formatting - make parse enum easier to read 2014-02-09 13:38:36 +09:00
Carsten Haitzler 82af0f60c5 edje_cc - sample play - document speed param and allow wider range 2014-02-09 13:31:00 +09:00
Jean-Philippe Andre 22e94df0f7 Evas filters: Quick check for existing part name
We just add all buffer source names to the part lookup queue,
so that edje_cc will check that the source part exists.

The final int key is discarded.
2014-02-07 17:33:18 +09:00
Jean-Philippe Andre a25b212bac Evas filters: Add support for proxies in Edje
They will be defined with the following syntax:
buffer:buf(src=part);
2014-02-07 17:33:18 +09:00
Jean-Philippe Andre 08f2624e6a Evas filters: Implement basic Edje support
Does not support proxies yet.
Implemented as "filter" field in a part.description.text (next
to a "font").
2014-02-07 17:33:18 +09:00
Cedric BAIL 5593964ead embryo: force the insertion of a '/' in the path to be sure that file path make sense. 2014-01-24 08:19:47 +09:00
Carsten Haitzler 1c2da046dc embryo_cc - remove trainling / from path for windows stat so it works 2014-01-23 08:45:44 +09:00
Jean Guyomarc'h 1e287bde2b edje_cc: factorize two strlen()s
Reviewers: cedric, raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D454
2014-01-20 12:47:46 +09:00
Jean-Philippe Andre 137383b532 Evas/cserve2: Add some safety checks when reading socket messages
Fixes CID 1039571 and 1039572.
2014-01-15 16:06:08 +09:00
Jean-Philippe Andre debbba4758 Evas/cserve2: Fix potential crash in image_free
Don't try to free an object that was already freed.
Basically, allow image_free(NULL).
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 99efaf4ad1 Evas/cserve2: Clear up File_Data when opening a new image
After a file changed, the "changed" flag was not reset in the
File_Data structure, although it was supposed to represent a
new entry altogether.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 73670beba3 Evas/cserve2: Rename "invalid" field to "changed"
This flag indicates that a file changed, not that the entry
is invalid. There is another "valid" flag already.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 1d99c82381 Evas/cserve2: Improve error messages a bit 2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 038f4b4fcf Evas/cserve2: Reduce error logs on invalid glyph load
Change message level from ERR to WRN, when a glyph is not
loadable because FT fails to load it or it contains 0 pixel.

cserve2 used to complain about invalid glyph 3, on a few fonts
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 6a4c84a6a4 Evas/cserve2: Fix crash in server on file change
An inotify callback is triggered when an image file changes,
and it is supposed to cleanup all references to this image.

Unfortunately, it was doing it in a very unsafe way as pointers
could become invalid, because of hash free callbacks in the
referenced image list. Add some list safety and always assume
the pointer might be dead after free operations.

TBH, this _file_changed_cb function looks very confused to me
(as it tries to bypass eina_hash_del).
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 00417fe256 Evas/cserve2: Fix memleak during shutdown
Don't reset the dead slave callback, as it is used to free the
slave worker's resources.
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre f1aa32a4a4 Evas/cserve2: Use calloc instead of malloc
This will silence some warnings from valgrind (and add some
safety as well...)
2014-01-14 14:23:04 +09:00