Commit Graph

43 Commits

Author SHA1 Message Date
Mike Blumenkrantz 30e52e9413 ecore_audio: remove "name" property 2018-02-15 13:11:00 -05:00
Jiwon Kim 25fcdde356 ecore audio: Fix loss of last stream
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: https://phab.enlightenment.org/D4726
2017-03-24 10:34:54 +09:00
Carsten Haitzler d79232d605 ecore audio - fix hang in wayland due to pulse audio connecting to x
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-31 19:53:34 +09:00
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
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
Cedric Bail 75a53ece10 eo: for consistency use object like all our API. 2016-05-18 08:18:04 -07: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
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
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
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
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
Jean Guyomarc'h 6844a702dc ecore_audio: fix crash on OSX when using Ecore_Audio with PulseAudio
Summary: Fix implicit function declaration of basename() which led to a violent crash when used.

Reviewers: cedric, naguirre, raoulh, raster

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
2014-07-22 12:39:48 +02:00
Tom Hacohen 0fc3279db9 Efl: Update code to use the new class names generated by eolian. 2014-06-03 11:28:01 +01:00
Tom Hacohen 96fe5bd941 More adjustments for eo2 calls. 2014-04-10 04:20:21 +01:00
Tom Hacohen 92cc33c46f Eo: EO_BASE_CLASS->EO_CLASS. 2014-04-10 04:20:21 +01:00
Yossi Kantor 7876846f01 Eolian: Integration of Ecore Audio Out Pulse 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
Carsten Haitzler 80d666e7a4 ecore-audio - protect against more list-walking while list is modified 2013-11-17 11:03:20 +09:00
Carsten Haitzler 35228f32f1 ecore-audio - handle deletion of objects from outputs list in ctx fail cb 2013-11-10 11:04:18 +09:00
Carsten Haitzler 3b531d01bd ecore-audio - remove the obj from the list before calling eo super destructor 2013-11-10 10:45:33 +09:00
Tom Hacohen c7addf4083 Changed Eo class names to be consistent.
All the class names are now of the format: Lib_Type_Subtype_Extra.
2013-11-07 11:17:52 +00:00
Tom Hacohen 682c69764d Revert "eo: libs,test,benchmarks Eo_Class -> Eo"
This reverts commit 1714fe93f4.

We actually want this type, it makes things clearer.

Conflicts:
	src/tests/eo/function_overrides/function_overrides_inherit2.c
	src/tests/eo/function_overrides/function_overrides_simple.c
	src/tests/eo/suite/eo_test_class_simple.c
2013-09-27 16:40:32 +01:00
Jérémy Zurcher 1714fe93f4 eo: libs,test,benchmarks Eo_Class -> Eo
Conflicts:
	src/tests/eo/suite/eo_test_general.c
2013-09-27 14:01:46 +01:00
Carsten Haitzler 12981b168e ecore-audio - expose ready and fail events so multisense can avoid leaks
well well well. i WASN'T crazy. there WAS a leak. it was
ecore-audio+multisense. if a pulse audio output doesn't connect... NO
ONE KNOWS. all audio streams keep being appended to it forever just
consuming more memory indefinitely. there is no way to handle it.
expose events so it CAN be handled.
2013-08-27 23:44:53 +09:00
Carsten Haitzler f8c9a8d167 revert the revert... damn you git!
Revert "Revert "Efl: replace eo_data_get for objects data referencing.""

This reverts commit b64a2994b3.
2013-05-02 16:47:16 +09:00
Carsten Haitzler b64a2994b3 Revert "Efl: replace eo_data_get for objects data referencing."
This reverts commit 654a3f5f94.
2013-05-02 14:17:19 +09:00
Daniel Zaoui 654a3f5f94 Efl: replace eo_data_get for objects data referencing. 2013-05-01 10:37:08 +03:00
Daniel Willmann 6c7dbf67af ecore_audio: Add vio_set method / write cb to output
ecore_audio_obj_out now also supports VIO. Add attribute need_writer so
we can generalize the idler creation for subclasses at a later time.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-26 18:49:24 +01:00
Daniel Willmann 3b70c0bc83 ecore_audio: Zero copy in pulse output
Using pa_stream_write_begin we can just request a buffer to write into
This reduces the amount of calloc()/free() and memcpy calls.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-26 18:49:24 +01:00
Daniel Willmann 97d4b50c91 ecore_audio: Add more return values for methods, catch up with API
input_attach, input_detach, format_set, and source_set now return an
Eina_Bool

Tests, examples and edje_multisense adapted

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-23 17:13:39 +01:00
Daniel Willmann 6781342d3c ecore_audio: Guard against attaching an input twice
Add check in input_attach and change test case accordingly

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-19 18:34:16 +01:00
Daniel Willmann 2d85906367 ecore_audio: Fix warnings
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-18 19:34:33 +01:00
Daniel Willmann e99ab4623a ecore_audio: Add return value to input_attach method
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-18 19:32:46 +01:00
Daniel Willmann e93ddc9bb3 ecore_audio_pulse: Fix small bug that would delay PA stream deletion
In case of short reads just make sure that playback is started
immediately. No need to drain just yet as that just causes issues with
delayed removals of streams.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-18 19:16:40 +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