Commit Graph

45 Commits

Author SHA1 Message Date
Daniel Kolesa 9d9a3e87c8 build: disable Lua binding generation
Summary:
As Lua bindings don't work right now, it is pointless to waste
build time generating them. Elua itself on the other hand is
useful and should stay enabled.

This also does some preparation work for separate configure
switch for bindings after release, but for now keep configure
switches as they are.

Reviewers: zmike, stefan_schmidt

Subscribers: cedric, bu5hm4n, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6721
2018-08-01 13:31:15 -04:00
Ivan Furs 97f79344da ecore_audio: fix using undefined macros
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-13 10:27:48 -08:00
Cedric BAIL 53c548a97e Revert "Revert "ecore_audio: a minimal template for playing sound on WINDOWS is added""
This reverts commit 4457f8c9c8.
2017-12-13 10:27:48 -08:00
Carsten Haitzler 4457f8c9c8 Revert "ecore_audio: a minimal template for playing sound on WINDOWS is added"
This reverts commit 7a98f617e9.

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-07 19:09:53 +09:00
Ivan Furs 7a98f617e9 ecore_audio: a minimal template for playing sound on WINDOWS is added
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-10-03 11:36:49 -07:00
Carsten Haitzler 8f67f2f2d3 ecore_audio headers conflict with app have ifdefs
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-07-22 17:59:11 +09:00
Jean Guyomarc'h 403b0ecfa6
ecore_audio: drop support for CoreAudio on macOS
CoreAudio support was initially introduced by commit
62e29b39f4 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-29 23:01:38 +02:00
Jean Guyomarc'h 4d7aade978 ecore_audio: fix distribution of eolian files
When a 'make dist' is executed on a repository that does not have
CoreAudio support, eolian files required for CoreAudio compilation will
not be distributed, making the source distribution incompatible where
CoreAudio is required.
There is the same potential issue for pulseaudio, but as it is a basic
requirement, it is likely to always have been distributed because the
distribution was always created from a base which enabled pulseaudio.

This allows to produce on Linux a sources tarball usable on Mac OS X.

@fix
2016-09-04 17:00:44 +02: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
Stefan Schmidt fffe6dc7b8 build: clean generated js and lua files manually to avoid problems with CLEANFILES
We hit another argument too long error with CLEANFILES. Moving the generated
files for js and lua into separated variables and cleaning them manually fixes
the issue.
2016-06-21 17:07:13 +02:00
Stefan Schmidt 93eadd76d6 build: split EXTRA_DIST files in src/ off from DISTFILES and handle separately
This is again to avoid the "Argument list too long" error we are hitting more and
more now. Given we just merged elementary, emotion generic players, evas generic
loaders and elm_code it is not surprising we are hitting it again.

This time the number of files being hold in DISTFILES has just grown to big so a
make dist was no longer possible. If one looks at what the DISTFILES variable
from automake holds you can image it grows a lot with all the source files plus
generated files we have in tree now.

DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)

To cut off a big chunk but still keep all the other automagic in place for
SOURCE files I went and renamed the EXTRA_DIST in src/ to EXTRA_DIST2 and handle
the files in a dist-hook now.

Another thing to note here is that this also only happens as we have the one big
Makefile with includes. If we go back to per directory Makefiles this problem
should vanish as well. In any case we need a solution for 1.18 now and this is
what I have to offer. If you have a cleaner solution in mind feel welcome to
test it out and if everything we need keeps working (make, make examples,
make check, make benchmark, make dist and make distcheck) go ahead.
2016-06-10 13:04:18 +02:00
Felipe Magno de Almeida e3c8b280c6 c++: Reorganized C++ binding generation
Moved all generation to a single Makefile_Cxx.am file instead of
throughout the whole project. And fixed C++ generation on Elementary
after elm merge.
2016-05-23 15:05:50 -03:00
Stefan Schmidt 0a03e63350 build: keep our CLEANFILES tidy to avoid argument list too long during clean
We have been putting the generated eo files and BUILT_SOURCES into CLEANFILES
several times. So far this have not been a real problem but with the elm merge
and more and more eo files showing up this did explode recently.

During make distcheck a lot of files kept being around and make complained about
them. It took some digging to find the arguments list to long error. If you want
details on this great limitation have a look here:
http://www.linuxjournal.com/article/6060

In our case we have been lucky enough that we just appened many files over and
over again. Not doing that solves the issue for now. My testing showed no
problems but if I missed something let me know.

Fixes T3386
2016-03-31 16:29:32 +02:00
Felipe Magno de Almeida a3db1dddd3 efl-js: JavaScript Eolian binding
To configure efl sources with bindings to use in nodejs add ––with-js=nodejs in configure flags to generate node files

$ configure --with-js=nodejs

and compile normally with:

$ make
$ make install

To use, you have to require efl:

efl = require('efl')

The bindings is divided in two parts: generated and manually
written. The generation uses the Eolian library for parsing Eo files
and generate C++ code that is compiled against V8 interpreter library
to create a efl.node file that can be required in a node.js instance.

@feature
2015-12-23 23:59:40 -02:00
Vincent Torri d0ced20a04 ecore_audio: do not compile elua file if ecore_audio is disabled
@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-26 01:11:23 +01: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
Daniel Kolesa f33101ea8c elua/autotools: generate .eo.lua files out of all eo files at build time
Also change the generator a bit so that it doesn't rely on lib name information
and fix the runtime to properly source lua files within tree.
2014-10-06 13:28:09 +01:00
Tom Hacohen 23143148f1 Build system: Clean up the generation of sources from eolian.
This cleans up a lot of the build system. This makes everything
consistent, clean, less redundant and also fixes the issue of make clean
not cleaning up generated files.
2014-10-02 16:54:08 +01:00
Yossi Kantor 07da26add9 Eolian: Integration of Ecore Audio In Tone 2014-04-02 15:56:14 +03:00
Yossi Kantor 7876846f01 Eolian: Integration of Ecore Audio Out Pulse 2014-04-02 15:56:14 +03:00
Yossi Kantor 88860a209e Eolian: Integration of Ecore Audio Out Sndfile 2014-04-02 15:56:14 +03:00
Yossi Kantor 6295d77a3c Eolian: Integration of Ecore Audio In Sndfile 2014-04-02 15:56:14 +03:00
Yossi Kantor 70b39368e6 Eolian: Integration of Ecore Audio Out 2014-04-02 15:56:14 +03:00
Yossi Kantor 2c8bc8df52 Eolian: Integration of Ecore Audio In 2014-04-02 15:56:14 +03:00
Yossi Kantor eb2821bca0 Eolian: Integration of Ecore Audio 2014-04-02 15:56:14 +03:00
Rafael Antognolli b9836fbc07 Revert "ecore_audio: Add alsa support"
This reverts commit 4db03f700c.
2013-05-03 17:44:07 -03:00
Daniel Willmann 4db03f700c ecore_audio: Add alsa support
This is not well tested and thus disabled by default

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-05-03 17:04:11 +01:00
Daniel Willmann 3fdc608da1 ecore_audio: Move sndfile VIO into a file to access from in- and output
The VIO wrapper functions are needed from the sndfile inputs and outputs
so move them to a separate file and access from both.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-26 18:49:24 +01:00
Carsten Haitzler daac3fb794 add a global Efl_Config.h for everyone.
* ned to replicate changes in other .pc.in files
* need to replicate changes in other E*.h installed header files
2013-04-24 23:43:33 +09:00
Daniel Willmann de265a994a ecore_audio: Make efl compile with PA disabled again
Now instead of having ifdefs in the .c files we just don't compile the
ones we don't need. Much cleaner.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-19 13:43:52 +01:00
Daniel Willmann 7255656738 ecore_audio: Add pulseaudio output for eo
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-18 19:14:32 +01:00
Daniel Willmann e865d5b0a4 ecore_audio: Add tone input class
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-18 19:14:32 +01:00
Daniel Willmann 422d3313e8 ecore_audio: Add sndfile in- and output
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-18 19:12:17 +01:00
Daniel Willmann 845aeb5c63 ecore_audio_obj_in: Implemented read and event sending
A protected read function must now be implemented by the child class to
perform the actual reading.

Signals on playback loop and end are sent.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-18 19:12:17 +01:00
Daniel Willmann 48b78234a8 ecore_audio: Build Eo-based Ecore_Audio and tests now
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-18 19:12:17 +01:00
Gustavo Sverzut Barbieri cf1699fe22 each module install headers in their own directory.
SVN revision: 82895
2013-01-16 19:28:30 +00:00
Gustavo Sverzut Barbieri b1bc5aeb24 efl: simplify automake.
Instead of -I$(top_srcdir)... -I$(top_builddir)... and then do it for
the .la, use the EFL_ macros to generate the contents to be used in
automake files.

There is a nasty bit that libtool will parse Makefile*.am and will not
get _DEPENDENCIES from _LIBADD and _LDADD if these are in
@REPLACEMENT@. To solve this we must explicitly set _DEPENDENCIES. The
contents of this is almost the same as _LIBADD or _LDADD with the
"_INTERNAL_" replacement name.

I hope the code will be result will be shorter and consistent as there
is less places to change when we add/remove dependencies.

Statistics are quite impressive (diffstat):
{{{
37 files changed, 663 insertions(+), 1599 deletions(-)
}}}



SVN revision: 82785
2013-01-14 22:36:23 +00:00
Gustavo Sverzut Barbieri 2b29626d8d efl: fix make dist.
Carefully compared 'svn export' and 'make dist' results and couple of
files were missing.

Changes:

 * Makefile.am: removed all .pc from EXTRA_DIST, we shouldn't
   distribute them here as they will contain ./configure data such as
   install location.
 * src/Makefile.am: moved all if-endif to files, otherwise EXTRA_DIST
   won't work properly. We must EXTRA_DIST outside of the if-endif
   block.
 * static_libs/liblinebreak: removed couple of unused files.




SVN revision: 82241
2013-01-04 20:55:12 +00:00
Gustavo Sverzut Barbieri df1b3d30c4 efl: refactor CFLAGS, LIBS, LIBADD and LDADD usage.
- remove EFL_LIBS and EFL_CFLAGS, use per-lib values that inherit
   from EFL (general)

 - add NAME_LDFLAGS and EFL_LDFLAGS for linker flags.

 - LDADD (binaries) now use NAME_LDFLAGS instead of NAME_LIBS, as they
   link to libname.la and that will pull in the libtool dependencies



SVN revision: 81915
2012-12-31 00:46:14 +00:00
Gustavo Sverzut Barbieri 493f9a9ff9 efl: unify LDFLAGS for LTLIBRARIES
SVN revision: 81911
2012-12-30 22:15:29 +00:00
Gustavo Sverzut Barbieri cd3d6653af efl: move -lm to configure.ac variables.
EFL_ADD_LIBS() will add to requirements_libs_NAME and that will end
into NAME_LIBS.



SVN revision: 81910
2012-12-30 21:52:34 +00:00
Vincent Torri ef2ca5b931 cleaning: remove unneeded $(top_builddir)
SVN revision: 81324
2012-12-19 07:17:32 +00:00
Carsten Haitzler 7470edfa5a sorry vincent. i know you dont like thus, but with this commit efl
tree simply is broken and doesnt compile. error here:

...
src/Makefile_Evas.am:1809: unterminated conditionals: HAVE_WINDOWS_TRUE
src/Makefile.am:24:   src/Makefile_Evas.am' included from here
src/Makefile.am:128: unterminated conditionals: HAVE_WINDOWS_TRUE
src/Makefile.am: installing ./depcomp'
automake: ####################
automake: ## Internal Error ##
automake: ####################
automake: undefined condition TRUE' for RECURSIVE_TARGETS'
automake: RECURSIVE_TARGETS:
automake:   {
automake:     HAVE_WINDOWS => {
automake:       type: +=
automake:       where: /usr/share/automake-1.11/am/texinfos.am:
automake:       comment:
automake:       value: dvi-recursive html-recursive info-recursive
pdf-recursive ps-recursive \
automake:   install-dvi-recursive \
automake:   install-html-recursive \
automake:   install-info-recursive \
automake:   install-pdf-recursive \
automake:   install-ps-recursive all-recursive check-recursive
installcheck-recursive
automake:       owner: Automake
automake:     }
automake:   }
automake:
automake: Please contact <bug-automake@gnu.org>.
 at /usr/share/automake-1.11/Automake/Channels.pm line 657
         Automake::Channels::msg('automake', '', 'undefined condition
TRUE\' for RECURSIVE_TARGETS\'\x{a}RECURSIV...') called at
/usr/share/automake-1.11/Automake/ChannelDefs.pm line 208
        Automake::ChannelDefs::prog_error('undefined condition TRUE\'
for RECURSIVE_TARGETS\'\x{a}RECURSIV...') called at
/usr/share/automake-1.11/Automake/Item.pm line 94
        Automake::Item::rdef('Automake::Variable=HASH(0x38cbe20)',
'Automake::Condition=HASH(0x2832a48)') called at /usr/bin/automake
line 4102
        Automake::handle_subdirs() called at /usr/bin/automake line 8305
                Automake::generate_makefile('src/Makefile.am',
'src/Makefile.in') called at /usr/bin/automake line 8602
        Automake::handle_makefile('src/Makefile.in') called at
/usr/bin/automake line 8616
        Automake::handle_makefiles_serial() called at
/usr/bin/automake line 8769
autoreconf: automake failed with exit status: 255
...

i looked at the HAVE_WINDOWS if's and it seems fine to me - i couldnt
find what was missing, so i had to resort to a revert instead of fix :(
sorry :(



SVN revision: 81267
2012-12-18 15:41:06 +00:00
Vincent Torri 7b944729bb no need to search headers in builddir
SVN revision: 81258
2012-12-18 15:11:51 +00:00
Daniel Willmann 29931c273f efl: Add build system support for ecore_audio
Disabled by default, enable with --enable-audio
ALSA support is disabled as it is not there yet. Pulseaudio should work
though.

Support for .ogg and .wav is there as well (.mp3 is not)

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>

SVN revision: 81000
2012-12-14 23:38:25 +00:00