1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
From 3a252ca6f0a5afb04f3874267bfc0a569446bca8 Mon Sep 17 00:00:00 2001
From: Max Krummenacher <max.krummenacher@toradex.com>
Date: Thu, 23 Jun 2016 20:12:25 +0200
Subject: [PATCH] make sound a configure option
add a --without-sound switch which builds without soundeffect and
drops the dependency on gstreamer
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
---
configure.ac | 9 ++++++++-
src/Makefile.am | 5 +++--
src/main.c | 4 ++++
src/style.c | 15 ++++++++++++++-
4 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 971f3df..b12244a 100755
--- a/configure.ac
+++ b/configure.ac
@@ -12,6 +12,8 @@ AC_ARG_WITH([xtst], AS_HELP_STRING([--without-xtst], [Build without Xtst extensi
AM_CONDITIONAL([WITH_XTST], [test "x$with_xtst" != "xno"])
AC_ARG_WITH([xrecord], AS_HELP_STRING([--without-xrecord], [Build without XRecord extension (requires the Xtst extension) (default: enabled)]))
AM_CONDITIONAL([WITH_XRECORD], [test "x$with_xrecord" != "xno" -a "x$with_xtst" != "xno"])
+AC_ARG_WITH([sound], AS_HELP_STRING([--without-sound], [Build without sound extension (default: enabled)]))
+AM_CONDITIONAL([WITH_SOUND], [test "x$with_sound" != "xno"])
AC_ARG_WITH([at-spi], AS_HELP_STRING([--without-at-spi], [Build without at-spi(default: enabled)]))
AM_CONDITIONAL([WITH_AT_SPI], [test "x$with_at_spi" != "xno"])
AC_ARG_WITH([panelapplet], AS_HELP_STRING([--without-panelapplet], [Build without libpanelapplet(default: enabled)]))
@@ -61,7 +63,7 @@ if test "x$with_docs" != "xno"; then
fi
# Checks for libraries.
-DEP_MODULES="xext gmodule-2.0 cairo librsvg-2.0 libxml-2.0 gstreamer-1.0"
+DEP_MODULES="xext gmodule-2.0 cairo librsvg-2.0 libxml-2.0"
PKG_CHECK_MODULES(DEPS, $DEP_MODULES)
PKG_CHECK_MODULES([GTK3], [gtk+-3.0], AC_DEFINE([ENABLE_GTK3], [], [GTK3 enabled.]),
@@ -86,6 +88,9 @@ if test "x$with_xtst" != "xno"; then
AC_DEFINE(ENABLE_XRECORD, ["xrecord"], [xrecord extension is enabled])
fi
fi
+if test "x$with_sound" != "xno"; then
+ PKG_CHECK_MODULES([SOUND], gstreamer-1.0, AC_DEFINE([ENABLE_SOUND], [], [Sound enabled.]), AC_MSG_ERROR(Could not configure gstreamer 1.0. Please either install gstreamer 1.0 or disable sound: --without-sound configure option))
+fi
if test "x$with_at_spi" != "xno"; then
PKG_CHECK_MODULES([AT_SPI2], [atspi-2], AC_DEFINE([ENABLE_AT_SPI2], [], [dbus at-spi enabled.]),
AC_MSG_ERROR(Could not configure at-spi. Please either install at-spi or disable it: --without-at-spi configure option))
@@ -103,6 +108,8 @@ AC_SUBST(LIBNOTIFY_CFLAGS)
AC_SUBST(LIBNOTIFY_LIBS)
AC_SUBST(XTST_CFLAGS)
AC_SUBST(XTST_LIBS)
+AC_SUBST(SOUND_CFLAGS)
+AC_SUBST(SOUND_LIBS)
AC_SUBST(AT_SPI2_CFLAGS)
AC_SUBST(AT_SPI2_LIBS)
AC_SUBST(LIBGNOME_CFLAGS)
diff --git a/src/Makefile.am b/src/Makefile.am
index 9d38512..9d5a417 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -14,9 +14,10 @@ endif
florence_CPPFLAGS = -I$(top_srcdir) -DICONDIR="\"$(ICONDIR)\""\
-DFLORENCELOCALEDIR=\""$(florencelocaledir)"\"\
-DDATADIR="\"$(datadir)/florence\"" $(DEPS_CFLAGS) $(GTK3_CFLAGS)\
- $(LIBGNOME_CFLAGS) $(LIBNOTIFY_CFLAGS) $(XTST_CFLAGS) $(AT_SPI2_CFLAGS) $(INCLUDES)
+ $(LIBGNOME_CFLAGS) $(LIBNOTIFY_CFLAGS) $(XTST_CFLAGS) $(SOUND_CFLAGS)\
+ $(AT_SPI2_CFLAGS) $(INCLUDES)
florence_LDADD = $(DEPS_LIBS) $(LIBM) $(X11_LIBS) $(LIBGNOME_LIBS) $(LIBNOTIFY_LIBS)\
- $(XTST_LIBS) $(AT_SPI2_LIBS) $(GTK3_LIBS) -lflorence-1.0
+ $(XTST_LIBS) $(SOUND_LIBS) $(AT_SPI2_LIBS) $(GTK3_LIBS) -lflorence-1.0
libflorence_1_0_la_SOURCES = lib/florence.c
library_includedir=$(includedir)/florence-1.0
diff --git a/src/main.c b/src/main.c
index c5def08..8fe5514 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,7 +23,9 @@
#include <sys/types.h>
#include <getopt.h>
#include <gtk/gtk.h>
+#ifdef ENABLE_SOUND
#include <gst/gst.h>
+#endif
#include "system.h"
#include "trace.h"
#include "settings.h"
@@ -128,7 +130,9 @@ int main (int argc, char **argv)
close(pipefd[0]);
gtk_init(&argc, &argv);
settings_init(FALSE, config_file);
+#ifdef ENABLE_SOUND
gst_init(&argc, &argv);
+#endif
if (signal(SIGINT, sig_handler)==SIG_ERR)
flo_error(_("Failed to register SIGINT signal handler."));
diff --git a/src/style.c b/src/style.c
index e7f58c5..673d348 100644
--- a/src/style.c
+++ b/src/style.c
@@ -26,8 +26,10 @@
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xmlsave.h>
-#include <gst/gst.h>
#include "system.h"
+#ifdef ENABLE_SOUND
+#include <gst/gst.h>
+#endif
#include "trace.h"
#include "key.h"
#include "style.h"
@@ -546,6 +548,7 @@ GdkPixbuf *style_pixbuf_draw(struct style *style)
}
/* Liberate the pipeline */
+#ifdef ENABLE_SOUND
void style_sound_pipeline_free(GstElement *pipeline)
{
START_FUNC
@@ -660,6 +663,14 @@ void style_sound_play(struct style *style, const gchar *match, enum style_sound_
}
END_FUNC
}
+#else
+void style_sound_free(gpointer data, gpointer userdata)
+{
+}
+void style_sound_play(struct style *style, const gchar *match, enum style_sound_type type)
+{
+}
+#endif
/* create a new style from the layout file */
struct style *style_new(gchar *base_uri)
@@ -696,6 +707,7 @@ struct style *style_new(gchar *base_uri)
}
}
+#ifdef ENABLE_SOUND
layoutreader_reset(layout);
layoutreader_element_open(layout, "style");
if (layoutreader_element_open(layout, "sounds")) {
@@ -704,6 +716,7 @@ struct style *style_new(gchar *base_uri)
layoutreader_sound_free(sound);
}
}
+#endif
layoutreader_free(layout);
if (!base_uri) g_free(uri);
--
2.6.6
|