summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Mikhaylenko <exalm7659@gmail.com>2020-10-27 21:55:19 +0500
committerAlexander Mikhaylenko <exalm7659@gmail.com>2020-10-27 22:01:27 +0500
commit42d3ef0bcdeea322c2ba3b1b0ad181649923a261 (patch)
tree9b01be7cc3ec1b6930f52f35e2c4055be8295d86
parent76a0641fb1195fd7664964270c4e94c3c26f27df (diff)
downloadgnome-screenshot-42d3ef0bcdeea322c2ba3b1b0ad181649923a261.tar.gz
build: Migrate fro libcanberra to gsound
-rw-r--r--meson.build2
-rw-r--r--org.gnome.Screenshot.json44
-rw-r--r--src/meson.build2
-rw-r--r--src/screenshot-utils.c45
4 files changed, 52 insertions, 41 deletions
diff --git a/meson.build b/meson.build
index 4ad282d..3bfb619 100644
--- a/meson.build
+++ b/meson.build
@@ -39,7 +39,7 @@ xext_dep = dependency('xext', required: get_option ('x11'))
glib_dep = dependency('glib-2.0', version: glib_req_version)
gtk_dep = dependency('gtk+-3.0', version: gtk_req_version)
libhandy_dep = dependency('libhandy-1', version: libhandy_req_version)
-canberra_dep = dependency('libcanberra-gtk3')
+gsound_dep = dependency('gsound')
config_h = configuration_data()
config_h.set_quoted('VERSION', meson.project_version())
diff --git a/org.gnome.Screenshot.json b/org.gnome.Screenshot.json
index c133fd9..fb6ec56 100644
--- a/org.gnome.Screenshot.json
+++ b/org.gnome.Screenshot.json
@@ -29,24 +29,36 @@
],
"modules" : [
{
- "name" : "libcanberra-gtk3",
- "cleanup" : [
- "/bin",
- "/lib/gnome-settings-daemon-3.0",
- "/share/doc",
- "/share/gdm",
- "/share/gnome"
- ],
- "config-opts" : [
- "--disable-alsa",
- "--disable-null",
- "--disable-oss"
- ],
+ "name" : "gsound",
+ "buildsystem" : "autotools",
"sources" : [
{
- "type" : "archive",
- "url" : "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz",
- "sha256" : "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
+ "type" : "git",
+ "url" : "https://gitlab.gnome.org/GNOME/gsound.git"
+ }
+ ],
+ "modules" : [
+ {
+ "name" : "libcanberra",
+ "cleanup" : [
+ "/bin",
+ "/lib/gnome-settings-daemon-3.0",
+ "/share/doc",
+ "/share/gdm",
+ "/share/gnome"
+ ],
+ "config-opts" : [
+ "--disable-alsa",
+ "--disable-null",
+ "--disable-oss"
+ ],
+ "sources" : [
+ {
+ "type" : "archive",
+ "url" : "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz",
+ "sha256" : "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
+ }
+ ]
}
]
},
diff --git a/src/meson.build b/src/meson.build
index 5c014a2..91b97e7 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -27,7 +27,7 @@ dependencies = [
glib_dep,
gtk_dep,
libhandy_dep,
- canberra_dep
+ gsound_dep
]
c_args = [
diff --git a/src/screenshot-utils.c b/src/screenshot-utils.c
index 9b87cad..09ff4af 100644
--- a/src/screenshot-utils.c
+++ b/src/screenshot-utils.c
@@ -25,7 +25,7 @@
#include <gtk/gtk.h>
#include <glib.h>
#include <glib/gi18n.h>
-#include <canberra-gtk.h>
+#include <gsound.h>
#include "screenshot-backend-shell.h"
@@ -37,33 +37,32 @@ void
screenshot_play_sound_effect (const gchar *event_id,
const gchar *event_desc)
{
- ca_context *c;
- ca_proplist *p = NULL;
- int res;
+ GSoundContext *context;
+ GError *error = NULL;
- c = ca_gtk_context_get ();
+ context = gsound_context_new (NULL, &error);
- res = ca_proplist_create (&p);
- if (res < 0)
- goto done;
+ if (G_UNLIKELY (error)) {
+ g_critical ("Couldn't initialize GSound: %s", error->message);
+ g_clear_error (&error);
- res = ca_proplist_sets (p, CA_PROP_EVENT_ID, event_id);
- if (res < 0)
- goto done;
-
- res = ca_proplist_sets (p, CA_PROP_EVENT_DESCRIPTION, event_desc);
- if (res < 0)
- goto done;
-
- res = ca_proplist_sets (p, CA_PROP_CANBERRA_CACHE_CONTROL, "permanent");
- if (res < 0)
- goto done;
+ return;
+ }
- ca_context_play_full (c, 0, p, NULL, NULL);
+ gsound_context_play_simple (context,
+ NULL,
+ &error,
+ GSOUND_ATTR_EVENT_ID, event_id,
+ GSOUND_ATTR_EVENT_DESCRIPTION, event_desc,
+ GSOUND_ATTR_CANBERRA_CACHE_CONTROL, "permanent",
+ NULL);
+
+ if (G_UNLIKELY (error)) {
+ g_critical ("Couldn't play sound: %s", error->message);
+ g_clear_error (&error);
+ }
- done:
- if (p != NULL)
- ca_proplist_destroy (p);
+ g_object_unref (context);
}
GdkPixbuf *