[gnome-screenshot/wip/exalm/gtk4: 1/2] build: Migrate fro libcanberra to gsound




commit 42d3ef0bcdeea322c2ba3b1b0ad181649923a261
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date:   Tue Oct 27 21:55:19 2020 +0500

    build: Migrate fro libcanberra to gsound

 meson.build               |  2 +-
 org.gnome.Screenshot.json | 44 ++++++++++++++++++++++++++++----------------
 src/meson.build           |  2 +-
 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 *


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]