diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-04-29 10:54:40 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-04-29 10:54:40 -0400 |
commit | f8ef15b555fc3d21ede2e3f8d01c068cbe5c7e03 (patch) | |
tree | d2efd55655716593e26eaf239672b71eabc83bca /tests/testsounds.c | |
parent | 76cc1cae0098eff78834d9f4b7263dd7f530eb1d (diff) | |
download | gtk+-f8ef15b555fc3d21ede2e3f8d01c068cbe5c7e03.tar.gz |
Add a quick sound test
Just to show that our media infrastructure is up
to playing little beeps and bings.
Diffstat (limited to 'tests/testsounds.c')
-rw-r--r-- | tests/testsounds.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/testsounds.c b/tests/testsounds.c new file mode 100644 index 0000000000..169120eb71 --- /dev/null +++ b/tests/testsounds.c @@ -0,0 +1,68 @@ +#include <gtk/gtk.h> + +static void +ended (GObject *object) +{ + g_object_unref (object); +} + +static void +play (const char *name) +{ + char *path; + GtkMediaStream *stream; + + path = g_build_filename ("tests", name, 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_free (path); +} + +static void +enter (GtkButton *button) +{ + play ("service-login.oga"); +} + +static void +leave (GtkButton *button) +{ + play ("service-logout.oga"); +} + +int main (int argc, char *argv[]) +{ + GtkWidget *window; + GtkWidget *box; + GtkWidget *button; + + gtk_init (); + + window = gtk_window_new (); + + box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); + gtk_widget_set_halign (box, GTK_ALIGN_CENTER); + gtk_widget_set_valign (box, GTK_ALIGN_CENTER); + gtk_container_add (GTK_CONTAINER (window), box); + + button = gtk_button_new_with_label ("Α"); + g_signal_connect (button, "clicked", G_CALLBACK (enter), NULL); + gtk_container_add (GTK_CONTAINER (box), button); + + button = gtk_button_new_with_label ("Ω"); + g_signal_connect (button, "clicked", G_CALLBACK (leave), NULL); + gtk_container_add (GTK_CONTAINER (box), button); + + gtk_window_present (GTK_WINDOW (window)); + + while (1) + g_main_context_iteration (NULL, FALSE); + + return 0; +} |