discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=9fc9fce9a73d78ff1593d7f22b4501af487f0695

commit 9fc9fce9a73d78ff1593d7f22b4501af487f0695
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Jul 7 16:26:32 2017 -0400

    unset DISPLAY in mixer when performing pulseaudio operations under wl
---
 .../mixer/lib/backends/pulseaudio/pulse_ml.c       | 23 +++++++++++++++++-----
 1 file 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 9460cb696..75987d11a 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;
 }
 

-- 


Reply via email to