summaryrefslogtreecommitdiff
path: root/src/lib/ecore_audio (unfollow)
AgeCommit message (Collapse)Author
2020-12-15ecore_audio: Rename EAPI macro to ECORE_AUDIO_API in Ecore Audio libraryFelipe Magno de Almeida
Summary: Patch from a series of patches to rename EAPI symbols to specific library DSOs. = The Rationale = This patch is from a series of patches to rename EAPI symbols to specific library DSOs. 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 LIBAPI is the only solution that works for MSVC. Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com> Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com> Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev> Reviewers: vtorri, woohyun, lucas, jptiz Reviewed By: vtorri, lucas Subscribers: vtorri, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12212
2020-06-23Get rid of trailing whitespaces (4 / 14)Elyes HAOUAS
Remove trailing whitespaces Differential Revision: https://phab.enlightenment.org/D12002
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-04-14meson: do not install namespace problem legacy filesMarcel Hollerbach
these files are not required for the unified API, but they have namespace problems, so for now, do not install them Differential Revision: https://phab.enlightenment.org/D11665
2020-03-25ecore/audio: rewrite pulseaudio output to not use global variablesMike Blumenkrantz
this breaks down immediately when calling init/shutdown in quick succession due to the async nature of pulseaudio. we have object-based private data, so we can just use that instead Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11531
2020-03-25ecore/audio: correctly handle sndfile error when setting new vioMike Blumenkrantz
need to immediately call the free here to avoid leaking the callback data Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11530
2020-03-25ecore/audio: remove duplicated vio code from sndfile inputMike Blumenkrantz
this is already done in the base implementation Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11529
2020-03-25ecore/audio: add a couple more functions to the pulse callback structMike Blumenkrantz
to be used later Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11528
2020-03-25ecore/audio: free vio on in/out object destructionMike Blumenkrantz
ensure we don't leak these since that means we also leak the user's free data and callback Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11527
2020-03-25ecore/audio: add ERR messages when trying to overwrite existing vioMike Blumenkrantz
this probably causes a crash or a leak at some point Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11526
2019-09-26eolian: rename event_prefix to event_c_prefix for consistencyDaniel Kolesa
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-10docs: nicer formatting of the NULL keyword, everywhereXavi Artigas
2019-08-31eolian: properly handle non-beta restriction of __undefined_typeDaniel Kolesa
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: https://phab.enlightenment.org/D8430
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-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: https://phab.enlightenment.org/D8241
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 <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7782
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 <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7714
2019-01-18efl: convert all abstracts 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/D7686
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
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: https://phab.enlightenment.org/D7669
2018-12-07meson: add inital support for windows compilationMarcel Hollerbach
Differential Revision: https://phab.enlightenment.org/D7416
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-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-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: https://phab.enlightenment.org/D6330
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-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: https://phab.enlightenment.org/D5310 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
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: https://phab.enlightenment.org/D5302 Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
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: https://phab.enlightenment.org/D5029 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-08-08ecore_audio_pulse_ml: Check memory allocation failJaehyun Cho