path: root/src/lib/ecore_audio (follow)
AgeCommit message (Collapse)Author
2019-05-09eolian: move from eo_prefix to c_prefixDaniel Kolesa
2019-03-20docs: Remove obsolete @since tags from EO filesXavi Artigas
Summary: All legacy @since tags have already moved to the *.legacy.h files. EO files are now devoid of @since tags (except some eldbus still needed for legacy). Upcoming patches will add @since 1.22 to those APIs which come out of beta in this release. APIs marked @beta do not need @since tags. Test Plan: Everything builds, EO docs (like DocFX) have no Since tags. Reviewers: zmike, bu5hm4n, lauromoura, cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
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:
2019-03-08eo files: mark a bunch of types with @betaMike Blumenkrantz
Summary: these are all types that we do not currently want to release Depends on D8102 Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric Tags: #efl_api Differential Revision:
2019-02-15ecore audio - mark it all as betaCarsten Haitzler (Rasterman)
this api needs a re-think in terms of being portablke/back-enmd agnostic. it shouldnt expose windows vs pulse etc. and shouldnt be ecore_XXX for sure.
2019-01-26ecore: make ecore_audio_out abstractMarcel Hollerbach
ecore_audio does define format and source, those are then used in some leave classes, ecore_audio is only used in the tests, and should not be used externally. Therefore make it abstract. The other missing implementations are in the leave classes, They are resolved with providing empty implementations, since no format switching is supported. ref T5719 Reviewed-by: Cedric BAIL <> Differential Revision:
2019-01-23ecore_audio: implement not implemented APIs as emptyMarcel Hollerbach
the empty handlers will always return 0 / NULL so never indicate success. Reviewed-by: Xavi Artigas <> Differential Revision:
2019-01-18efl: convert all abstracts to the new eolian syntaxMarcel Hollerbach
ref T7459 Reviewed-by: Daniel Kolesa <> Reviewed-by: Xavi Artigas <> Differential Revision:
2019-01-18efl: convert all classes to the new eolian syntaxMarcel Hollerbach
ref T7459 Reviewed-by: Daniel Kolesa <> Reviewed-by: Xavi Artigas <> Differential Revision:
2019-01-17ecore_audio: remove pure virtual functions from classesMarcel Hollerbach
Summary: A call to a undefined function results in a NOP we can get the same behaviour with @empty. In Ecore.Audio this pure_virtual function makes sense, so make the class abstract. ref T7632 Reviewers: cedric, segfaultxavi, zmike, q66 Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7632 Differential Revision:
2018-12-07meson: add inital support for windows compilationMarcel Hollerbach
Differential Revision:
2018-12-03meson: use eolian_gen with -SMarcel Hollerbach
this ensures that eolian does not parse installed .eo files Differential Revision:
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 <> Differential Revision: Depends on D7011
2018-06-21efl: include sys/types.h where ssize_t is usedDaniel Kolesa
This include is necessary according to POSIX. Without it, build fails on certain platforms (QNX). It may already be included implicitly in some of those files, but declare intent. Fixes T6667.
2018-06-19ecore-audio: make this a Efl_ObjectMarcel Hollerbach
sorry for the late fixup, the Ecore_Audio_Object is documented as "the audio object" however, it is not, internally it is used as struct, thus gdb gets confused.
2018-06-19ecore_audio: add back function that is stableMarcel Hollerbach
this function was removed, but should not have been removed. Differential Revision:
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:
2018-04-17eolian gen: enable constness generation on property getter implsDaniel Kolesa
This changes a lot of things all across the EFL. Previously, methods tagged @const had both their external prototype and internal impl generated with const on object, while property getters only had const on the external API. This is now changed and it all has const everywhere. Ref T6859.
2018-04-06ecore audio - add comment that this is an intended leak...Carsten Haitzler (Rasterman)
2018-04-06ecore audio - dont unload modules etc. in case audio obj around on exitCarsten Haitzler (Rasterman)
if audio objects are around after ecore_audio has been shut down then they may access the sndfile or pulse lib ptrs/funcs and thus dont unload these. should fix crashes on shutdown.
2018-02-15ecore_audio: remove "name" propertyMike Blumenkrantz
2018-01-18all: Simplify definition of EAPIVincent Torri
This will help in the transition from Autotools to Meson. This has been tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-13ecore_audio wasapi - fix ecore win32 handler deletion and destructionCarsten Haitzler (Rasterman)
vtorri pointed this out in T6607. this should fix this. fixed T6607 @fix
2018-01-12ecore_audio - only complain once about not loading pulse/sndfileCarsten Haitzler (Rasterman)
otherwise we get a complaint for everty time some audio needs/wants to play and that's just noisy and ugly, so only do it once - the first time sndfile/pulse are being loaded and it fails.
2018-01-12ecore_audio - don't about destruction because of failed sndfile loadCarsten Haitzler (Rasterman)
this means objetcs are only partly destroyed and that is wrong. @fix
2017-12-13ecore_audio: fix using undefined macrosIvan Furs
Summary: @T6154 Reviewers: vtorri, cedric, NikaWhite, raster Subscribers: artem.popov, vtorri, jenkins, cedric, jpeg Tags: #windows, #efl Differential Revision: Signed-off-by: Cedric BAIL <>
2017-12-13Revert "Revert "ecore_audio: a minimal template for playing sound on WINDOWS ↵Cedric BAIL
is added"" This reverts commit 4457f8c9c8aea0dffa6fbbfd6caaa655da1c0094.
2017-10-13ecore_audio: unused variables are removed to fix warning.Prince Kumar Dubey
Reviewers: raster, cedric Reviewed By: cedric Subscribers: rajeshps, jpeg Differential Revision: Signed-off-by: Cedric Bail <>
2017-10-07Revert "ecore_audio: a minimal template for playing sound on WINDOWS is added"Carsten Haitzler (Rasterman)
This reverts commit 7a98f617e94ef42787e06e685a8d5e7be34fff21. this commit breaks compiling things against efl badly. i'm on holiday and haver only a mini screen and keyboard wwith me so any serious wok in hunting these issues isn't going to be fun or easy. as this causes bad build brreaks this is worth a revert IMHO. please re-submit wwhen you've tested against efl by building things against it. also our public headers just should not have such ifdefs/if's that change api presented based on how efl is cnfigured. we expose the same api and macros and types regardless of internal config.
2017-10-03ecore_audio: a minimal template for playing sound on WINDOWS is addedIvan Furs
Summary: Realization of audio data playback through WASAPI (Windows Audio Session API).(minimal) WASAPI model: 1. Find a playback device (in the default system) 2. Register the client on the playback device. 3. Create a playback format for audio data. 4. Initialize the client with the created format, and access mode, .... 5. Take the object-rendering from the client for play the data stream. 6. Play data stream ecore_audio model: 1. create a object for play the data stream(out object) 2. create a object to receive the data stream(in object) 3. register in the out-object the in-object 4. play data stream Necessary: Realize the ecore_audio object to play the data stream using the WASAPI model. How implemented: 1. The object ecore_audio_out_wasapi is implemented 2. object ecore_audio_out_wasapi - the object constructor is find a playback device (in the default system)(WASAPI) 3. _ecore_audio_out_wasapi_ecore_audio_out_input_attach - register in the out-object the in-object    3.1 Register the client on the playback device.(WASAPI)    3.2 Create a playback format for audio data.(WASAPI)    3.3 Initialize the client with the created format, and access mode, ....(WASAPI) 4. _write_cb - play data    4.1 Take the object-rendering from the client for play the data stream.(WASAPI)    4.2 Play data stream(WASAPI) Reviewers: cedric, vtorri, raster, an.kroitor, NikaWhite, FurryMyad, rimmed, t.naumenko, Jaehyun, bowonryu Reviewed By: vtorri, NikaWhite Subscribers: artem.popov, cedric, jpeg Tags: #windows Differential Revision: Signed-off-by: Cedric BAIL <>
2017-08-08ecore_audio_pulse_ml: Check memory allocation failJaehyun Cho
2017-07-22ecore_audio headers conflict with app have ifdefsCarsten Haitzler (Rasterman)
Ecore_Audio.h had #ifdef HAVE_PULSE ... and that is just so wrong as this is something an ap[p may or may not set in its config.h ... but this certainly hase no place in our public headers. the api's there should always be there... symbols always... just imtplementation may be empty ... though ecore_audio doesnt build at all without pulse... so it's moot. so fix this build issue i found when fixing e build issues with meson changes etc. @fix
2017-06-07docs: Fix typos and some wrong expressions in Ecore, Ecore_Audio, ↵Myoungwoon Roy, Kim
Ecore_Cocoa, Ecore_Con, and Ector API reference doxygen. Summary: I had fixed some typos and wrong expressions, such as capital letters, $simbols in .eo and singulars in Ecore, Ecore_Audio, Ecore_Cocoa, Ecore_Con, and Ector API reference doxygen. Test Plan: Doxygen Revision Reviewers: Jaehyun_Cho, stefan, jpeg, cedric, raster Reviewed By: Jaehyun_Cho Differential Revision:
2017-06-02ecore-audio: unset DISPLAY conditionally before processing pulse eventsMike Blumenkrantz
in some cases, pulse events trigger spawning another pulse instance, and the environment at this time is used to determine whether to attempt an x11 connection fix T2599 @fix
2017-04-26eo: move all the key_ properties to CDaniel Kolesa
2017-03-24ecore audio: Fix loss of last streamJiwon Kim
Summary: pa_stream's write callback requires to size of stream data using 'len' parameter. This size depend on pulse audio's internal status and not consistent. When a efl read audio's last stream, length of read('bread') is less than write callback's 'len' parameter. If the gap between 'len' and 'bread' is small, last stream is played fortunately. Otherwise, the last stream is discarded. (It is doubtful about pa_stream's pre-buffering.) To prevent it, push silent stream which is amount of deficient length. @fix T5281 Reviewers: raster Reviewed By: raster Subscribers: cedric, jpeg, woohyun Maniphest Tasks: T5281 Differential Revision:
2017-02-27docs: Fix typos and some wrong expressions in Ecore and Edje API reference ↵Myoungwoon Roy, Kim
doxygen. Summary: I had fixed some typos and wrong expressions, euch as capital letters, singular Etc. in Ecore and Edje API reference doxygen. Test Plan: Doxygen Revision Reviewers: stefan, cedric, raster, Jaehyun_Cho, jpeg Subscribers: conr2d Differential Revision:
2017-02-13doxygen: Fix typos & invalid statements in ecoreMyoungwoon Roy, Kim
This covers ecore audio, avahi, buffer and con. Summary: There are some typos and cacologigue statements in doxygen of ecore_audio, ecore_avahi, ecore_buffer, and ecore_con. Test Plan: API Doxygen Revision Reviewers: stefan, cedric, raster, Jaehyun_Cho Subscribers: jpeg, conr2d Differential Revision:
2017-01-13eolian: change eo file syntax @virtual_pure -> @pure_virtualDaniel Kolesa
2017-01-11eolian: enforce specification of both get and set in prop implsDaniel Kolesa
Now you can't use the same syntax as you would for a method to implement a property as whole, instead you need to specify the getter and/or setter explicitly. This is to allow parent classes to expand their properties without altering behavior of the child classes.
2016-12-27ecore audio: use new property impl syntaxDaniel Kolesa
2016-11-11docs: ecore_adio: finish up eo docs for ecore_audioStefan Schmidt
2016-11-04ecore_audio, eio eo: remove pointersDaniel Kolesa
2016-11-03docs: ecore: document various type definesStefan Schmidt
2016-10-31ecore audio - fix hang in wayland due to pulse audio connecting to xCarsten Haitzler (Rasterman)
pulse insists on connecting to the xserver on init/setup context if: 1. DISPLAY is set AND 2. DISPLAY is not empty so to do a pretty horrible worka-round, empty off the display if its set so pa doesnt go connect to x and do this if WAYLAND_DISPLAy is set assuming we'll use wayland then. this is far better than a solid rock-hard hang. :) @fix
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