summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-07-07 16:26:32 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-07-07 16:33:16 -0400
commit7c6a712151033d66d726d4a54e773c3a5b6b829a (patch)
tree3a6c1d839a1965406c7360c2c02cea56bec66263
parent889c8c3167a94c292ef63f2780def8a6ad3ddfd7 (diff)
downloadenlightenment-7c6a712151033d66d726d4a54e773c3a5b6b829a.tar.gz
unset DISPLAY in mixer when performing pulseaudio operations under wl
-rw-r--r--src/modules/mixer/lib/backends/pulseaudio/pulse_ml.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/modules/mixer/lib/backends/pulseaudio/pulse_ml.c b/src/modules/mixer/lib/backends/pulseaudio/pulse_ml.c
index 469aaca297..e4776fdc71 100644
--- a/src/modules/mixer/lib/backends/pulseaudio/pulse_ml.c
+++ b/src/modules/mixer/lib/backends/pulseaudio/pulse_ml.c
@@ -18,6 +18,18 @@
#define DBG(...) EINA_LOG_DBG(__VA_ARGS__)
#define WRN(...) EINA_LOG_WARN(__VA_ARGS__)
+#define PULSEAUDIO_START \
+ char *disp = NULL; \
+ if (getenv("WAYLAND_DISPLAY")) \
+ { \
+ disp = eina_strdup(getenv("DISPLAY")); \
+ unsetenv("DISPLAY"); \
+ }
+
+#define PULSEAUDIO_END \
+ if (disp) setenv("DISPLAY", disp, 1); \
+ free(disp)
+
/* Ecore mainloop integration start */
struct pa_io_event
{
@@ -71,9 +83,9 @@ _ecore_io_wrapper(void *data, Ecore_Fd_Handler *handler)
flags |= PA_IO_EVENT_OUTPUT;
if (ecore_main_fd_handler_active_get(handler, ECORE_FD_ERROR))
flags |= PA_IO_EVENT_ERROR;
-
+PULSEAUDIO_START;
event->callback(event->mainloop, event, fd, flags, event->userdata);
-
+PULSEAUDIO_END;
return ECORE_CALLBACK_RENEW;
}
@@ -133,8 +145,9 @@ _ecore_time_wrapper(void *data)
{
pa_time_event *event = (pa_time_event *)data;
+PULSEAUDIO_START;
event->callback(event->mainloop, event, &event->tv, event->userdata);
-
+PULSEAUDIO_END;
return ECORE_CALLBACK_CANCEL;
}
@@ -231,10 +244,10 @@ Eina_Bool
_ecore_defer_wrapper(void *data)
{
pa_defer_event *event = (pa_defer_event *)data;
-
+PULSEAUDIO_START;
event->idler = NULL;
event->callback(event->mainloop, event, event->userdata);
-
+PULSEAUDIO_END;
return ECORE_CALLBACK_CANCEL;
}