-DPACKAGE_LIB_DIR=\"$(libdir)\" \
-I$(top_srcdir)/utils \
@EFL_CFLAGS@ \
+ @PULSEAUDIO_CFLAGS@ \
@TIZEN_CFLAGS@
MAINTAINERCLEANFILES = \
utils/log.h \
utils/ofono.c \
utils/ofono.h \
+ utils/pulseaudio.c \
+ utils/pulseaudio.h \
utils/simple-popup.c \
utils/simple-popup.h \
utils/util.c \
utils/util.h
utils_libofono_efl_utils_la_LIBADD = \
@EFL_LIBS@ \
+ @PULSEAUDIO_LIBS@ \
@TIZEN_LIBS@
if HAVE_TIZEN
dialer_dialer_LDADD = \
@EFL_LIBS@ \
+ @PULSEAUDIO_LIBS@ \
@TIZEN_LIBS@ \
utils/libofono-efl-utils.la
dbus-1
])
+PKG_CHECK_MODULES([PULSEAUDIO],
+ [
+ libpulse
+ libpulse-mainloop-glib
+ ])
+
EFL_WITH_BIN([edje], [edje-cc], [edje_cc])
want_tizen="auto"
#include "gui.h"
#include "log.h"
#include "ofono.h"
+#include "pulseaudio.h"
#include "rc.h"
#include "util.h"
}
#endif
+ if (!pa_init()) {
+ CRITICAL("Could not setup pulseaudio");
+ _app_exit_code = EXIT_FAILURE;
+ goto end_pulseaudio;
+ }
+
if (!gui_init()) {
CRITICAL("Could not setup graphical user interface");
_app_exit_code = EXIT_FAILURE;
end_util:
util_shutdown();
+end_pulseaudio:
+ pa_shutdown();
#ifdef HAVE_TIZEN
end_amb:
amb_shutdown();
BuildRequires: pkgconfig(aul)
BuildRequires: pkgconfig(appsvc)
BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(libpulse)
BuildRequires: edje-tools
Requires: ofono
Requires: automotive-message-broker
--- /dev/null
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <Elementary.h>
+#include <pulse/context.h>
+#include <pulse/pulseaudio.h>
+#include <pulse/glib-mainloop.h>
+
+#include "pulseaudio.h"
+#include "log.h"
+
+static pa_glib_mainloop *mainloop = NULL;
+static pa_context *pa_ctx = NULL;
+
+Eina_Bool pa_init(void)
+{
+ if (!mainloop)
+ mainloop = pa_glib_mainloop_new(NULL);
+
+ pa_ctx = pa_context_new(pa_glib_mainloop_get_api(mainloop),
+ "lemolo");
+
+ // connects to the pulse server
+ if (pa_context_connect(pa_ctx,
+ NULL,
+ PA_CONTEXT_NOFAIL, NULL) < 0)
+ {
+ ERR("Failed to connect to pulseaudio daemon");
+ pa_glib_mainloop_free(mainloop);
+ mainloop = NULL;
+ return EINA_FALSE;
+ }
+
+ return EINA_TRUE;
+}
+
+void pa_shutdown(void)
+{
+ if (pa_ctx) {
+ pa_context_disconnect(pa_ctx);
+ pa_context_unref(pa_ctx);
+ }
+
+ if (mainloop) {
+ pa_glib_mainloop_free(mainloop);
+ mainloop = NULL;
+ }
+}