From 7c6a712151033d66d726d4a54e773c3a5b6b829a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 7 Jul 2017 16:26:32 -0400 Subject: [PATCH] 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 469aaca29..e4776fdc7 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; }