From f2092fc757d59c103356ff581a1930c2af514f4c Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Fri, 30 Dec 2005 14:54:06 +0000 Subject: [PATCH] move old example to tests/examples/volume/volune.c Original commit message from CVS: * configure.ac: * gst/volume/Makefile.am: * gst/volume/demo.c: move old example to tests/examples/volume/volune.c * tests/examples/Makefile.am: * tests/examples/seek/seek.c: (main): change window-close event from "delete-event" to "destroy" * tests/examples/volume/Makefile.am: * tests/examples/volume/volume.c: (value_changed_callback), (setup_gui), (message_received), (eos_message_received), (main): fix event handling and bus usage --- ChangeLog | 15 +++++++ configure.ac | 1 + gst/volume/Makefile.am | 6 --- tests/examples/Makefile.am | 4 +- tests/examples/seek/seek.c | 2 +- tests/examples/volume/Makefile.am | 6 +++ .../demo.c => tests/examples/volume/volume.c | 45 +++++++++++++++++-- 7 files changed, 67 insertions(+), 12 deletions(-) create mode 100644 tests/examples/volume/Makefile.am rename gst/volume/demo.c => tests/examples/volume/volume.c (73%) diff --git a/ChangeLog b/ChangeLog index f95e3aaf66..0fec1066d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2005-12-30 Stefan Kost + + * configure.ac: + * gst/volume/Makefile.am: + * gst/volume/demo.c: + move old example to tests/examples/volume/volune.c + * tests/examples/Makefile.am: + * tests/examples/seek/seek.c: (main): + change window-close event from "delete-event" to "destroy" + * tests/examples/volume/Makefile.am: + * tests/examples/volume/volume.c: (value_changed_callback), + (setup_gui), (message_received), (eos_message_received), (main): + fix event handling and bus usage + + 2005-12-29 Stefan Kost * gst/audiotestsrc/gstaudiotestsrc.c: diff --git a/configure.ac b/configure.ac index 95a921c5dc..073fde8272 100644 --- a/configure.ac +++ b/configure.ac @@ -640,6 +640,7 @@ tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/seek/Makefile +tests/examples/volume/Makefile tests/icles/Makefile docs/Makefile docs/libs/Makefile diff --git a/gst/volume/Makefile.am b/gst/volume/Makefile.am index 71219e096a..8d7c72470d 100644 --- a/gst/volume/Makefile.am +++ b/gst/volume/Makefile.am @@ -11,9 +11,3 @@ libgstvolume_la_LIBADD = \ noinst_HEADERS = gstvolume.h -if HAVE_GTK -noinst_PROGRAMS = demo -demo_SOURCES = demo.c -demo_CFLAGS = $(GTK_CFLAGS) $(GST_CFLAGS) -D_GNU_SOURCE -demo_LDFLAGS = $(GTK_LIBS) $(GST_LIBS) -lm -endif diff --git a/tests/examples/Makefile.am b/tests/examples/Makefile.am index 8bd68dfb3c..a92de36b80 100644 --- a/tests/examples/Makefile.am +++ b/tests/examples/Makefile.am @@ -4,6 +4,6 @@ else FT2_SUBDIRS = endif -SUBDIRS = $(FT2_SUBDIRS) +SUBDIRS = $(FT2_SUBDIRS) volume -DIST_SUBDIRS = seek +DIST_SUBDIRS = seek volume diff --git a/tests/examples/seek/seek.c b/tests/examples/seek/seek.c index 5b2be23b8a..f3e9b0ef85 100644 --- a/tests/examples/seek/seek.c +++ b/tests/examples/seek/seek.c @@ -1440,7 +1440,7 @@ main (int argc, char **argv) g_signal_connect (G_OBJECT (flush_checkbox), "toggled", G_CALLBACK (flush_toggle_cb), pipeline); - g_signal_connect (G_OBJECT (window), "delete_event", gtk_main_quit, NULL); + g_signal_connect (G_OBJECT (window), "destroy", gtk_main_quit, NULL); /* show the gui. */ gtk_widget_show_all (window); diff --git a/tests/examples/volume/Makefile.am b/tests/examples/volume/Makefile.am new file mode 100644 index 0000000000..b89e49a807 --- /dev/null +++ b/tests/examples/volume/Makefile.am @@ -0,0 +1,6 @@ +if HAVE_GTK +noinst_PROGRAMS = volume +volume_SOURCES = volume.c +volume_CFLAGS = $(GTK_CFLAGS) $(GST_CFLAGS) -D_GNU_SOURCE +volume_LDFLAGS = $(GTK_LIBS) $(GST_LIBS) -lm +endif diff --git a/gst/volume/demo.c b/tests/examples/volume/volume.c similarity index 73% rename from gst/volume/demo.c rename to tests/examples/volume/volume.c index 802c21cb16..5c37e54cbe 100644 --- a/gst/volume/demo.c +++ b/tests/examples/volume/volume.c @@ -1,6 +1,6 @@ /* GStreamer * - * demo.c: sample application to change the volume of a pipeline + * volume.c: sample application to change the volume of a pipeline * * Copyright (C) <2004> Thomas Vander Stichele * @@ -85,6 +85,34 @@ setup_gui (GstElement * volume) gtk_widget_show_all (GTK_WIDGET (window)); } +static void +message_received (GstBus * bus, GstMessage * message, GstPipeline * pipeline) +{ + const GstStructure *s; + + s = gst_message_get_structure (message); + g_print ("message from \"%s\" (%s): ", + GST_STR_NULL (GST_ELEMENT_NAME (GST_MESSAGE_SRC (message))), + gst_message_type_get_name (GST_MESSAGE_TYPE (message))); + if (s) { + gchar *sstr; + + sstr = gst_structure_to_string (s); + g_print ("%s\n", sstr); + g_free (sstr); + } else { + g_print ("no message details\n"); + } +} + +static void +eos_message_received (GstBus * bus, GstMessage * message, + GstPipeline * pipeline) +{ + message_received (bus, message, pipeline); + gtk_main_quit (); +} + int main (int argc, char *argv[]) { @@ -92,6 +120,7 @@ main (int argc, char *argv[]) GstElement *pipeline = NULL; GError *error = NULL; GstElement *volume; + GstBus *bus; gst_init (&argc, &argv); gtk_init (&argc, &argv); @@ -111,14 +140,24 @@ main (int argc, char *argv[]) return 1; } + /* setup message handling */ + bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + g_signal_connect (bus, "message::error", (GCallback) message_received, + pipeline); + g_signal_connect (bus, "message::warning", (GCallback) message_received, + pipeline); + g_signal_connect (bus, "message::eos", (GCallback) eos_message_received, + pipeline); + /* setup GUI */ setup_gui (volume); /* go to main loop */ gst_element_set_state (pipeline, GST_STATE_PLAYING); - gst_bus_poll (gst_element_get_bus (pipeline), - GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1); + gtk_main (); gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (pipeline); return 0; }