diff options
author | Alexander Mikhaylenko <exalm7659@gmail.com> | 2020-10-27 21:55:19 +0500 |
---|---|---|
committer | Alexander Mikhaylenko <exalm7659@gmail.com> | 2020-10-27 22:01:27 +0500 |
commit | 42d3ef0bcdeea322c2ba3b1b0ad181649923a261 (patch) | |
tree | 9b01be7cc3ec1b6930f52f35e2c4055be8295d86 | |
parent | 76a0641fb1195fd7664964270c4e94c3c26f27df (diff) | |
download | gnome-screenshot-42d3ef0bcdeea322c2ba3b1b0ad181649923a261.tar.gz |
build: Migrate fro libcanberra to gsound
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | org.gnome.Screenshot.json | 44 | ||||
-rw-r--r-- | src/meson.build | 2 | ||||
-rw-r--r-- | src/screenshot-utils.c | 45 |
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 * |