Commit Graph

145 Commits

Author SHA1 Message Date
Vitor Sousa f02ff462e7 efl callbacks: update some events calls to no longer trigger legacy callbacks 2016-08-30 13:59:59 -03:00
Tom Hacohen d5e321466e Efl object: Rename Eo_Event -> Efl_Event.
This is the last step of the Eo renaming efforts.
2016-08-30 13:34:10 +01:00
Vitor Sousa 8356b16a49 Efl Object: remove legacy callback calls from event_callback_call
Efl.Object.event_callback_call no longer calls legacy smart callbacks;
calling only event callbacks registered with the given event description
pointer.

Create the method Efl.Object.event_callback_legacy_call to inherit the old
behavior from Efl.Object.event_callback_call, calling both Efl.Object events
and legacy smart callbacks.

Update all other files accordingly in order to still supply legacy
callbacks while they are necessary.
2016-08-26 15:45:07 -03:00
Tom Hacohen e65aae994e Eo: Finish the renaming of Eo to the EFL.
This renames all the rest of the API to the EFL namespace except for
Eo_Event that will follow soon.

Obviously breaks both API and ABI.
2016-08-15 15:07:42 +01:00
Tom Hacohen c662934be8 Change the EFL to follow the new Eo rename. 2016-08-11 17:04:43 +01:00
Jean-Philippe Andre 28c917836c efl: Cleanup some code (return values)
This removes some useless code in various places, where the
switch from eo_do() to standard function call was not properly
refactored.

This changes:

type ret = 0;
ret = my_eo_function();
return ret;

To:

return my_eo_function();
2016-08-05 10:32:30 +09:00
Jean Guyomarc'h 57f95de890 ecore_audio: use the correct module wrapper
This was code for sndfile. sndfile module should have been
used instead of the pulseaudio one.
It led to a build break when having sndfile but not pulseaudio.

Ref: 879d93377b
2016-08-02 21:12:33 +02:00
Carsten Haitzler 879d93377b efl runtime dynamic lib loading - make errors consistent and useful
so drop trying to appease the openbsd packages and stick to "upstream
so major versions" and let users fix their systems with symlinks. also
report what we are looking for so they have a chance to symlink to
make efl happy.

at some point we should make a single simple runtime lib linker
subsystem in efl so all these errors are reported in the same way,
input libray names are listed in a simple consistent way etc. etc.

for now we have 3 locations in efl that do this and they are roughly
similar. we can unify it later.
2016-08-02 11:23:34 +09:00
Carsten Haitzler d27f5fcab7 ecore_audio - save 232k of real RAM by dlopening depednecies
so libpuls and libsndfile suck in dependencies. they suck in so much
that by the time linking is done we've written to about 230kb of
PRIVATE MEMORY as dirty pages in symbol tablesm global veriables etc.
etc. - this is just horrible. especially if an app never makes any
sound... it's just wasted memory. this stuff is invisible to normal
memory debug tools. so this begins to address things. please see
T4227. my numbers now put me at:

1780Kb total dirty writable mapped from library file pages. down from
2012Kb.

This fixes some memory bloat reported in the above ticket, but there
is more to fix for sure.

@fix
2016-08-01 14:41:15 +09:00
Tom Hacohen 6202cc7485 Adjust the code according to the eo event stop changes.
This was changed in the previous commit.
2016-06-20 18:02:00 +01:00
Benjamin Jacobs 1ad2a2bd52 ecore_audio: uncondionally include libgen.h.
Basically everyone should have it.  If not, maybe we should consider
to test the value of _POSIX_C_SOURCE before testing platform specific
defines, or adding a feature check.

Fixes the following warning on DragonFlyBSD:

lib/ecore_audio/ecore_audio_obj_out_pulse.c:282:60: warning: implicit declaration of function 'basename' [-Wimplicit-function-declaration]
        class_vars.context = pa_context_new(class_vars.api, basename(argv[0]));
	                                                            ^
lib/ecore_audio/ecore_audio_obj_out_pulse.c:282:60: warning: passing argument 2 of 'pa_context_new' makes pointer from integer without a cast [-Wint-conversion]
In file included from /usr/local/include/pulse/pulseaudio.h:29:0,
                 from lib/ecore_audio/ecore_audio_private.h:17,
                 from lib/ecore_audio/ecore_audio_obj_out_pulse.c:18:
/usr/local/include/pulse/context.h:172:13: note: expected 'const char *' but argument is of type 'int'
 pa_context *pa_context_new(pa_mainloop_api *mainloop, const char *name);
             ^

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-06-06 12:05:43 -07:00
Jean Guyomarc'h 7bb32abf33 ecore_audio: remove useless eo data in core audio 2016-06-05 12:12:02 +02:00
Daniel Kolesa b1946ca5d6 eolian: utilize the new void_ptr builtin across eo files
This lets me narrow down the remaining cases of pointers across the EFL.
The void pointers will later need to be reevaluated on per-case basis and
replaced appropriately where possible/feasible.
2016-06-02 13:00:26 +01:00
Daniel Kolesa 6fc482aa9b eolian: utilize the new builtin string type across eo files 2016-05-31 16:05:43 +01:00
Daniel Kolesa e984e5a11a eolian: remove pointers from complex and class types
Complex types (i.e. list, array, hash, accessor etc.) now do not require
pointers with them anymore (the pointer is implied) and the same goes for
class handles. Eolian now explicitly disallows creating pointers to these
as well. This is the first part of the work to remove pointers from Eolian
completely, with the goal of simplifying the DSL (higher level) and therefore
making it easier for bindings (as well as easier API usage).

@feature
2016-05-23 15:58:33 +01:00
Cedric Bail 75a53ece10 eo: for consistency use object like all our API. 2016-05-18 08:18:04 -07:00
Carsten Haitzler 43661180f7 efl - key/data/value/obj attach to eo objects - make these properties
the key data now is a property so they come out in bindings really
nicely like:

  obj.key_data["blah"] = x;

  x = obj.key_data["blah"];

etc.
2016-05-18 02:02:45 +09:00
Daniel Kolesa 7782c0bcb9 eolian: add event_prefix and have classes follow that or eo_prefix by default
Previously events used to use class name as a prefix and ignored eo_prefix
when specified. This is no longer the case. Events follow eo_prefix by default
now. In order to get around this for classes where this is undesirable, a new
field event_prefix was added which takes priority over eo_prefix. If neither
is specified, class name is used like previously.

@feature
2016-05-17 17:50:43 +01:00
Tom Hacohen 96c4c88070 Efl: Remove "legacy_prefix: null;" as it's now the default. 2016-05-12 17:27:35 +01:00
Daniel Kolesa 7e94eb22b4 eolian: mark pure virtual funcs outside of implements
This is a better syntax and should've been like this in the first place.
2016-05-12 16:15:24 +01:00
Tom Hacohen 05c01867b6 Ecore audio: Correctly namespace now that Eolian supports it better.
Eolian had a restriction due to the C++ generator that classes and
namespaces would be named differently. Now that the C++ generator is
fixed, eolian dropped the restriction and we can finally fix the wrong
namespaces in ecore audio.
2016-05-10 11:36:35 +01:00
Chris Michael cf7cf35c3c ecore-audio: Fix issue of improper deleting of ecore_job
This patch fixes a compiler warning where eo_del was being called on
an Ecore_Job.

ref c1141c7b0b

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-05-04 11:40:29 -04:00
Stefan Schmidt c5b00c5974 ecore_audio: document ecore_audio core class
Merging some property descriptions and some smaller changes.
2016-04-18 22:07:31 +02:00
Stefan Schmidt a8a0c2b4a1 ecore_audio: document all ecore_audio_out classes 2016-04-18 22:07:31 +02:00
Stefan Schmidt 67147dc331 ecore_audio: document all ecore_audio_in classes
For the properties we really only need to document the property itself and not
its setter and getter functions.
2016-04-18 22:07:31 +02:00
Daniel Zaoui 457c6e43fc Eo: fix oversight for key_data 2016-03-04 14:01:48 +02:00
Tom Hacohen f21ade6123 Automatic migration to Eo4.
I just ran my script (email to follow) to migrate all of the EFL
automatically. This commit is *only* the automatic conversion, so it can
be easily reverted and re-run.
2016-03-03 09:58:08 +00:00
Tom Hacohen e71e6561ee Eo callbacks: Migrate all of the EFL to the new event cb signatures. 2016-02-29 11:33:27 +00:00
Tom Hacohen fdd2f2b6d7 Ecore audio: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-16 15:17:30 +00:00
Mike Blumenkrantz 1e18cf7057 ecore-audio: defer deletion of pulseaudio timer until after event processing
==27523== Invalid write of size 8
==27523==    at 0x9E855F5: _ecore_time_wrapper (ecore_audio_pulse_ml.c:132)
==27523==    by 0x647E5CF: _ecore_call_task_cb (ecore_private.h:336)
==27523==    by 0x647FB8B: _ecore_timer_expired_call (ecore_timer.c:733)
==27523==    by 0x647F9EE: _ecore_timer_expired_timers_call (ecore_timer.c:686)
==27523==    by 0x647B4CE: _ecore_main_loop_iterate_internal (ecore_main.c:1814)
==27523==    by 0x647998E: ecore_main_loop_begin (ecore_main.c:983)
==27523==    by 0x4E4F676: elm_run (elm_main.c:1099)
==27523==    by 0x12801B: elm_main (test.c:1010)
==27523==    by 0x1280C4: main (test.c:1021)
==27523==  Address 0x20537208 is 8 bytes inside a block of size 56 free'd
==27523==    at 0x4A07D6A: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==27523==    by 0x9E858ED: _ecore_pa_time_free (ecore_audio_pulse_ml.c:204)
==27523==    by 0x108DB350: free_events (socket-client.c:109)
==27523==    by 0x108DBA53: do_call (socket-client.c:157)
==27523==    by 0x9E855F0: _ecore_time_wrapper (ecore_audio_pulse_ml.c:131)
==27523==    by 0x647E5CF: _ecore_call_task_cb (ecore_private.h:336)
==27523==    by 0x647FB8B: _ecore_timer_expired_call (ecore_timer.c:733)
==27523==    by 0x647F9EE: _ecore_timer_expired_timers_call (ecore_timer.c:686)
==27523==    by 0x647B4CE: _ecore_main_loop_iterate_internal (ecore_main.c:1814)
==27523==    by 0x647998E: ecore_main_loop_begin (ecore_main.c:983)
==27523==    by 0x4E4F676: elm_run (elm_main.c:1099)
==27523==    by 0x12801B: elm_main (test.c:1010)
==27523==    by 0x1280C4: main (test.c:1021)

@fix
2015-09-30 16:23:55 -04:00
Tom Hacohen 377bf414b1 Ecore audio: Fix typo
We really need to fix dependency tracking for .eo files. It didn't regenerate
dependencies...
2015-08-04 11:35:18 +01:00
Tom Hacohen b2a0026f7a Ecore audio: Fix eo references. 2015-08-04 11:13:01 +01:00
Daniel Kolesa 18502b8429 efl: fix doc references across the tree to validate right 2015-07-08 15:13:26 +01:00
Jean-Philippe Andre 6db0ff4229 Ecore_Audio: Avoid abort() in PulseAudio
In some cases (stress test), pulseaudio fails to play a sound
and pa_stream_drain() returns NULL, making pa_operation_unref()
crash right after.
2015-06-25 14:36:08 +09:00
Daniel Kolesa 4384efec2e ecore_audio: convert docs 2015-06-18 16:37:01 +01:00
Daniel Kolesa cdbf57979f ecore_audio_in: convert docs 2015-06-18 15:55:37 +01:00
Daniel Kolesa 27237976ad eo: move all event doc comments to new syntax 2015-06-11 17:09:02 +01:00
Tom Hacohen 52d998f475 Eo base: Remove the free_func parameter from key_data_set.
This was not really useful and against the Eolian guidelines.
While I promised I won't break things until the 27th, I was ill
(still am), so I'm giving myself a 1 day pass. :P
2015-05-28 17:47:59 +01:00
Tom Hacohen 6efbfe227a Eo: Add a return value to eo_constructor().
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
2015-05-20 13:03:24 +01:00
Tom Hacohen e7ed0bfced Ecore audio: Remove redundant constructor/destructor.
There's no need to have a constructor/destructor that just
do the super call.
2015-05-20 13:03:23 +01:00
Daniel Kolesa 058a9c9d88 eolian: new syntax for params/values/keys
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
2015-05-18 16:14:31 +01:00
Daniel Kolesa 3dc27cb482 eolian: fix up remaining doc comments in the tree 2015-05-11 15:38:03 +01:00
Daniel Kolesa ed0988a22d eolian: change all EFL .eo files to use new syntax for properties 2015-05-07 16:36:58 +01:00
Cedric BAIL ce5ccfb5be ecore: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
Jean Guyomarc'h 62e29b39f4 ecore_audio: integrate Apple's CoreAudio to play sounds on OS X.
Summary:
Ecore_Audio now supports Apple's CoreAudio to play sounds read by libsndfile.
edje_multisense integrates this new feature to enable PLAY_SAMPLE on OS X.

Test Plan:
Compiles, links and installs fine on OS X.
Run terminology and elementary_test to hear sound played on user input.

Reviewers: raster, naguirre, cedric

Reviewed By: cedric

Subscribers: plamot, cedric

Differential Revision: https://phab.enlightenment.org/D2295

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:07 +02:00
Conrad Meyer 6ceac2509d ecore_audio: include libgen.h on FreeBSD to define basename(3)
Summary:
Fixes warning:

    lib/ecore_audio/ecore_audio_obj_out_pulse.c:275:60: warning: implicit declaration of function 'basename' is invalid in C99
      [-Wimplicit-function-declaration]
       class_vars.context = pa_context_new(class_vars.api, basename(argv[0]));
                                                           ^
    lib/ecore_audio/ecore_audio_obj_out_pulse.c:275:60: warning: incompatible integer to pointer conversion passing 'int' to parameter of
      type 'const char *' [-Wint-conversion]
       class_vars.context = pa_context_new(class_vars.api, basename(argv[0]));
                                                           ^~~~~~~~~~~~~~~~~
    /usr/local/include/pulse/context.h:174:67: note: passing argument to parameter 'name' here
    pa_context *pa_context_new(pa_mainloop_api *mainloop, const char *name);
                                                                  ^

Test Plan: It now compiles without warning.

Projects: #efl

Differential Revision: https://phab.enlightenment.org/D2313

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:05 +02:00
Bryce Harrington 27920d31c1 Spelling fixes
Summary:
emmited  ==> emitted
resistence  ==> resistance
occured  ==> occurred

Reviewers: cedric, zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2192
2015-03-18 21:38:33 -04:00
ChunEon Park d65714f520 ecore/ecore_audio: fix timer control logically wrong.
@fix
2015-03-01 17:59:52 +09:00
kabeer khan e319e702a1 ecore_audio: fix memory leak in ecore_audio_pulse.
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

@fix

Reviewers: devilhorns, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1761

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-10 11:19:23 +01:00
Adrien Nader d22917626c ecore_audio: add @brief doc for struct Ecore_Audio_Vio.
It's simply a copy of the one given in the following typedef:
  typedef struct _Ecore_Audio_Vio Ecore_Audio_Vio;
2014-10-20 18:28:19 +02:00