path: root/src/lib/ecore_audio (follow)
AgeCommit message (Collapse)Author
2016-10-30ecore_audio: deprecating enum is apparently not supported in every version ↵Cedric Bail
of gcc.
2016-10-29ecore_audio: drop support for CoreAudio on macOSJean Guyomarc'h
CoreAudio support was initially introduced by commit 62e29b39f4df40fd3c0a6b17f7a16f0f8fc1d0c9 as an experimental feature. It played basic sounds, but suffered from drawbacks: it was controlling the master channel, and therefore any sound played by ecore_audio would shut down a previous sound (e.g. background music) for the time of the sound being played. So that wasn't exactly great... Also, after some time, some hangs have been reported when playing a sound on input. Most of the time, it translated as a pause in the main loop (see T3797). More recently (several months ago), ecore_audio with CoreAudio stopped working during 1.19 development... So... CoreAudio support on macOS has never been great. And now it's fully broken. Instead of trying to revive the thing, let just use PulseAudio. PulseAudio can be installed without any trouble on macOS thanks to package managers such as Homebrew. Actually, the efl package provided by Homebrew already provides PulseAudio as a dependency. And it actually just works very fine. Dropping CoreAudio seems therefore a nice option: removes unmaintained code, fixes bugs, and add features.
2016-10-25docs: document all missing enumsStefan Schmidt
With this commit we reach 100% enum doc coverage. The fields in the enums are still at 91%, but there is progress on that front as well.
2016-10-25docs: harmonise use of enum sentinel description in eo filesStefan Schmidt
2016-08-30efl callbacks: update some events calls to no longer trigger legacy callbacksdevs/vitorsousa/update_event_callsVitor Sousa
2016-08-30Efl object: Rename Eo_Event -> Efl_Event.Tom Hacohen
This is the last step of the Eo renaming efforts.
2016-08-26Efl Object: remove legacy callback calls from event_callback_callVitor Sousa
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-15Eo: Finish the renaming of Eo to the EFL.Tom Hacohen
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-11Change the EFL to follow the new Eo rename.Tom Hacohen
2016-08-05efl: Cleanup some code (return values)Jean-Philippe Andre
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-02ecore_audio: use the correct module wrapperJean Guyomarc'h
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: 879d93377b219dca00be63f8139fee79b7938147
2016-08-02efl runtime dynamic lib loading - make errors consistent and usefulCarsten Haitzler (Rasterman)
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-01ecore_audio - save 232k of real RAM by dlopening depedneciesCarsten Haitzler (Rasterman)
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-06-20Adjust the code according to the eo event stop changes.Tom Hacohen
This was changed in the previous commit.
2016-06-06ecore_audio: uncondionally include libgen.h.Benjamin Jacobs
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 <>
2016-06-05ecore_audio: remove useless eo data in core audioJean Guyomarc'h
2016-06-02eolian: utilize the new void_ptr builtin across eo filesDaniel Kolesa
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-05-31eolian: utilize the new builtin string type across eo filesDaniel Kolesa
2016-05-23eolian: remove pointers from complex and class typesDaniel Kolesa
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-18eo: for consistency use object like all our API.Cedric Bail
2016-05-18efl - key/data/value/obj attach to eo objects - make these propertiesCarsten Haitzler (Rasterman)
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-17eolian: add event_prefix and have classes follow that or eo_prefix by defaultDaniel Kolesa
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-12Efl: Remove "legacy_prefix: null;" as it's now the default.Tom Hacohen
2016-05-12eolian: mark pure virtual funcs outside of implementsDaniel Kolesa
This is a better syntax and should've been like this in the first place.
2016-05-10Ecore audio: Correctly namespace now that Eolian supports it better.Tom Hacohen
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-04ecore-audio: Fix issue of improper deleting of ecore_jobChris Michael
This patch fixes a compiler warning where eo_del was being called on an Ecore_Job. ref c1141c7b0b09b23c802b27d8c2c2bbe91919121b @fix Signed-off-by: Chris Michael <>
2016-04-18ecore_audio: document ecore_audio core classStefan Schmidt
Merging some property descriptions and some smaller changes.
2016-04-18ecore_audio: document all ecore_audio_out classesStefan Schmidt
2016-04-18ecore_audio: document all ecore_audio_in classesStefan Schmidt
For the properties we really only need to document the property itself and not its setter and getter functions.
2016-03-04Eo: fix oversight for key_dataDaniel Zaoui
2016-03-03Automatic migration to Eo4.Tom Hacohen
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-02-29Eo callbacks: Migrate all of the EFL to the new event cb signatures.Tom Hacohen
2016-02-16Ecore audio: Fix Eolian warnings.Tom Hacohen
This includes either migrating types to eolian, fixing namespace or importing extra types.
2015-09-30ecore-audio: defer deletion of pulseaudio timer until after event processingMike Blumenkrantz
==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/ ==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-08-04Ecore audio: Fix typoTom Hacohen
We really need to fix dependency tracking for .eo files. It didn't regenerate dependencies...
2015-08-04Ecore audio: Fix eo references.Tom Hacohen
2015-07-08efl: fix doc references across the tree to validate rightDaniel Kolesa
2015-06-25Ecore_Audio: Avoid abort() in PulseAudioJean-Philippe Andre
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-18ecore_audio: convert docsDaniel Kolesa
2015-06-18ecore_audio_in: convert docsDaniel Kolesa
2015-06-11eo: move all event doc comments to new syntaxDaniel Kolesa
2015-05-28Eo base: Remove the free_func parameter from key_data_set.Tom Hacohen
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-20Eo: Add a return value to eo_constructor().Tom Hacohen
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-20Ecore audio: Remove redundant constructor/destructor.Tom Hacohen
There's no need to have a constructor/destructor that just do the super call.
2015-05-18eolian: new syntax for params/values/keysDaniel Kolesa
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-11eolian: fix up remaining doc comments in the treeDaniel Kolesa
2015-05-07eolian: change all EFL .eo files to use new syntax for propertiesDaniel Kolesa
2015-05-07ecore: remove the need to order the header correctly for Windows.Cedric BAIL
2015-05-07ecore_audio: integrate Apple's CoreAudio to play sounds on OS X.Jean Guyomarc'h
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: Signed-off-by: Cedric BAIL <>
2015-04-10ecore_audio: include libgen.h on FreeBSD to define basename(3)Conrad Meyer
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: Signed-off-by: Cedric BAIL <>