[gtk/game-sounds] gtk-demo: Make losing games hurt
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/game-sounds] gtk-demo: Make losing games hurt
- Date: Fri, 9 Sep 2022 19:37:31 +0000 (UTC)
commit 681ec04b85add746356d28600eaf6084f533287b
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Sep 9 15:36:31 2022 -0400
gtk-demo: Make losing games hurt
Use a more annoying sound for losses.
And use it for all games.
demos/gtk-demo/listview_minesweeper.c | 20 ++++++++++++++++++++
demos/gtk-demo/peg_solitaire.c | 10 ++--------
demos/gtk-demo/sliding_puzzle.c | 2 +-
3 files changed, 23 insertions(+), 9 deletions(-)
---
diff --git a/demos/gtk-demo/listview_minesweeper.c b/demos/gtk-demo/listview_minesweeper.c
index f7f77d6231..662ba06553 100644
--- a/demos/gtk-demo/listview_minesweeper.c
+++ b/demos/gtk-demo/listview_minesweeper.c
@@ -8,6 +8,7 @@
* to implement rather different interaction behavior to a typical list.
*/
+#include "config.h"
#include <glib/gi18n.h>
#include <gtk/gtk.h>
@@ -375,6 +376,23 @@ sweeper_game_init (SweeperGame *self)
sweeper_game_new_game (self, 8, 8, 10);
}
+static void
+celebrate (gboolean win)
+{
+ char *path;
+ GtkMediaStream *stream;
+
+ if (win)
+ path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "complete.oga", NULL);
+ else
+ path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "suspend-error.oga", NULL);
+ stream = gtk_media_file_new_for_filename (path);
+ gtk_media_stream_set_volume (stream, 1.0);
+ gtk_media_stream_play (stream);
+ g_signal_connect (stream, "notify::ended", G_CALLBACK (g_object_unref), NULL);
+ g_free (path);
+}
+
static void
sweeper_game_end (SweeperGame *self,
gboolean win)
@@ -383,7 +401,9 @@ sweeper_game_end (SweeperGame *self,
{
self->playing = FALSE;
g_object_notify_by_pspec (G_OBJECT (self), game_properties[GAME_PROP_PLAYING]);
+ celebrate (win);
}
+
if (self->win != win)
{
self->win = win;
diff --git a/demos/gtk-demo/peg_solitaire.c b/demos/gtk-demo/peg_solitaire.c
index 0f5761408c..2006aab736 100644
--- a/demos/gtk-demo/peg_solitaire.c
+++ b/demos/gtk-demo/peg_solitaire.c
@@ -119,12 +119,6 @@ solitaire_peg_new (void)
/*** Helper for finding a win ***/
-static void
-ended (GObject *object)
-{
- g_object_unref (object);
-}
-
static void
celebrate (gboolean win)
{
@@ -134,12 +128,12 @@ celebrate (gboolean win)
if (win)
path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "complete.oga", NULL);
else
- path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "dialog-error.oga", NULL);
+ path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "suspend-error.oga", NULL);
stream = gtk_media_file_new_for_filename (path);
gtk_media_stream_set_volume (stream, 1.0);
gtk_media_stream_play (stream);
- g_signal_connect (stream, "notify::ended", G_CALLBACK (ended), NULL);
+ g_signal_connect (stream, "notify::ended", G_CALLBACK (g_object_unref), NULL);
g_free (path);
}
diff --git a/demos/gtk-demo/sliding_puzzle.c b/demos/gtk-demo/sliding_puzzle.c
index 592fe0fde2..0e4c08a00f 100644
--- a/demos/gtk-demo/sliding_puzzle.c
+++ b/demos/gtk-demo/sliding_puzzle.c
@@ -40,7 +40,7 @@ celebrate (gboolean win)
if (win)
path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "complete.oga", NULL);
else
- path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "dialog-error.oga", NULL);
+ path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "suspend-error.oga", NULL);
stream = gtk_media_file_new_for_filename (path);
gtk_media_stream_set_volume (stream, 1.0);
gtk_media_stream_play (stream);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]