raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6ed29b44255517b7cc7e0bba02c5f7731a7bf444
commit 6ed29b44255517b7cc7e0bba02c5f7731a7bf444 Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Mon Sep 1 17:09:09 2014 +0900 emotion - audio volume - leave as-is on file open/init this fixes gst and gst1 modules to leave volume be on start. generic can't really query easily, so just set to 0.8 by default, and xine is already just fine. do this because back-ends seems to have a habit of setting master volume, not per-app volume. @fix --- src/modules/emotion/generic/emotion_generic.c | 2 +- src/modules/emotion/gstreamer/emotion_gstreamer.c | 10 +++++++--- src/modules/emotion/gstreamer1/emotion_gstreamer.c | 8 ++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/modules/emotion/generic/emotion_generic.c b/src/modules/emotion/generic/emotion_generic.c index 2a688f4..cde1449 100644 --- a/src/modules/emotion/generic/emotion_generic.c +++ b/src/modules/emotion/generic/emotion_generic.c @@ -1030,7 +1030,7 @@ em_add(const Emotion_Engine *api, Evas_Object *obj, const Emotion_Module_Options ev->fd_read = NULL; ev->fd_write = NULL; ev->speed = 1.0; - ev->volume = 1.0; + ev->volume = 0.8; ev->audio_mute = EINA_FALSE; ev->cmd.type = -1; diff --git a/src/modules/emotion/gstreamer/emotion_gstreamer.c b/src/modules/emotion/gstreamer/emotion_gstreamer.c index cae7acd..8472056 100644 --- a/src/modules/emotion/gstreamer/emotion_gstreamer.c +++ b/src/modules/emotion/gstreamer/emotion_gstreamer.c @@ -1787,7 +1787,9 @@ _emotion_gstreamer_video_pipeline_parse(Emotion_Gstreamer_Video *ev, GstQuery *query; const GValue *val; gchar *str; - + gboolean mute = 0; + gdouble vol = 0.0; + gdouble length_time = 0.0; gint width; gint height; @@ -1987,8 +1989,10 @@ _emotion_gstreamer_video_pipeline_parse(Emotion_Gstreamer_Video *ev, ev->pipeline_parsed = EINA_TRUE; - em_audio_channel_volume_set(ev, ev->volume); - em_audio_channel_mute_set(ev, ev->audio_mute); + g_object_get(ev->pipeline, "volume", &vol, NULL); + g_object_get(ev->pipeline, "mute", &mute, NULL); + ev->volume = vol; + ev->audio_mute = mute; if (ev->play_started) { diff --git a/src/modules/emotion/gstreamer1/emotion_gstreamer.c b/src/modules/emotion/gstreamer1/emotion_gstreamer.c index 6906563..da618a3 100644 --- a/src/modules/emotion/gstreamer1/emotion_gstreamer.c +++ b/src/modules/emotion/gstreamer1/emotion_gstreamer.c @@ -100,6 +100,8 @@ em_file_open(void *video, Emotion_Gstreamer *ev = video; char *uri; char *suburi = NULL; + gboolean mute = 0; + gdouble vol = 0.0; if (!file) return EINA_FALSE; @@ -125,8 +127,10 @@ em_file_open(void *video, if (!ev->pipeline) return EINA_FALSE; - em_audio_channel_volume_set(ev, ev->volume); - em_audio_channel_mute_set(ev, ev->audio_mute); + g_object_get(ev->pipeline, "volume", &vol, NULL); + g_object_get(ev->pipeline, "mute", &mute, NULL); + ev->volume = vol; + ev->audio_mute = mute; ev->position = 0.0; --
