summaryrefslogtreecommitdiff
path: root/profiles/mate-audio-profiles-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'profiles/mate-audio-profiles-test.c')
-rw-r--r--profiles/mate-audio-profiles-test.c188
1 files changed, 0 insertions, 188 deletions
diff --git a/profiles/mate-audio-profiles-test.c b/profiles/mate-audio-profiles-test.c
deleted file mode 100644
index 444e9c6..0000000
--- a/profiles/mate-audio-profiles-test.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/* mate-audio-profiles-test.c: */
-
-/*
- * Copyright (C) 2003 Thomas Vander Stichele
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <gtk/gtk.h>
-#include <mateconf/mateconf-client.h>
-#include <gst/gst.h>
-
-#include <profiles/mate-media-profiles.h>
-
-static void
-edit_clicked_cb (GtkButton *button, GtkWindow *window)
-{
- GtkWidget *edit_dialog = NULL;
- edit_dialog = gm_audio_profiles_edit_new (mateconf_client_get_default (), window);
- g_assert (edit_dialog != NULL);
- gtk_widget_show_all (GTK_WIDGET (edit_dialog));
-}
-
-static void
-test_clicked_cb (GtkButton *button, GtkWidget *combo)
-{
- GstStateChangeReturn ret;
- gchar *partialpipe = NULL;
- gchar *extension = NULL;
- gchar *pipeline_desc;
- GError *error = NULL;
- GMAudioProfile *profile;
- GstElement *pipeline = NULL;
- GstMessage *msg = NULL;
- GstBus *bus = NULL;
-
- profile = gm_audio_profile_choose_get_active (combo);
- g_return_if_fail (profile != NULL);
-
- gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE);
-
- extension = g_strdup (gm_audio_profile_get_extension (profile));
- partialpipe = g_strdup (gm_audio_profile_get_pipeline (profile));
-
- g_print ("You chose profile with name %s and pipeline %s\n",
- gm_audio_profile_get_name (profile),
- gm_audio_profile_get_pipeline (profile));
-
- pipeline_desc = g_strdup_printf ("audiotestsrc wave=sine num-buffers=4096 "
- " ! audioconvert "
- " ! %s "
- " ! filesink location=test.%s",
- partialpipe, extension);
-
- g_print ("Going to run pipeline %s\n", pipeline_desc);
-
- pipeline = gst_parse_launch (pipeline_desc, &error);
- if (error)
- {
- g_warning ("Error parsing pipeline: %s", error->message);
- goto done;
- }
-
- bus = gst_element_get_bus (pipeline);
-
- gst_element_set_state (pipeline, GST_STATE_PLAYING);
-
- /* wait for state change to complete or to have failed */
- ret = gst_element_get_state (pipeline, NULL, NULL, -1);
- if (ret == GST_STATE_CHANGE_FAILURE) {
- /* check if an error was posted on the bus */
- if ((msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, 0))) {
- gst_message_parse_error (msg, &error, NULL);
- }
-
- g_warning ("Error starting pipeline: %s",
- (error) ? error->message : "UNKNOWN ERROR");
-
- goto done;
- }
-
- g_print ("Writing test sound to test.%s ...\n", extension);
-
- /* wait for it finish (error or EOS), but no more than 30 secs */
- msg = gst_bus_poll (bus, GST_MESSAGE_ERROR | GST_MESSAGE_EOS, 30*GST_SECOND);
-
- if (msg) {
- switch (GST_MESSAGE_TYPE (msg)) {
- case GST_MESSAGE_EOS:
- g_print ("Test finished successfully.\n");
- break;
- case GST_MESSAGE_ERROR:
- gst_message_parse_error (msg, &error, NULL);
- g_warning ("Error starting pipeline: %s",
- (error) ? error->message : "UNKNOWN ERROR");
- break;
- default:
- g_assert_not_reached ();
- }
- } else {
- g_warning ("Test did not finish within 30 seconds!\n");
- }
-
-done:
-
- g_print ("==============================================================\n");
-
- if (error)
- g_error_free (error);
-
- if (pipeline) {
- gst_element_set_state (pipeline, GST_STATE_NULL);
- gst_object_unref (pipeline);
- }
-
- if (msg)
- gst_message_unref (msg);
-
- if (bus)
- gst_object_unref (bus);
-
- g_free (pipeline_desc);
- g_free (partialpipe);
- g_free (extension);
-
- gtk_widget_set_sensitive (GTK_WIDGET (button), TRUE);
-}
-
-int
-main (int argc, char **argv)
-{
- GtkWidget *window, *hbox, *combo, *edit, *test;
- MateConfClient *mateconf;
- GOptionContext *context;
- GError *error = NULL;
-
- g_thread_init (NULL);
- context = g_option_context_new (NULL);
- g_option_context_add_group (context, gst_init_get_option_group ());
- g_option_context_add_group (context, gtk_get_option_group (TRUE));
- if (g_option_context_parse (context, &argc, &argv, &error) == FALSE) {
- g_print ("%s\nRun '%s --help' to see a full list of available command line options.\n",
- error->message, argv[0]);
- g_error_free (error);
- g_option_context_free (context);
- exit (1);
- }
- g_option_context_free (context);
-
- mateconf = mateconf_client_get_default ();
- mate_media_profiles_init (mateconf);
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- combo = gm_audio_profile_choose_new ();
-
- edit = gtk_button_new_with_mnemonic ("_Edit Profiles");
- test = gtk_button_new_with_mnemonic ("_Test");
- g_signal_connect (edit, "clicked", (GCallback) edit_clicked_cb, window);
- g_signal_connect (test, "clicked", (GCallback) test_clicked_cb, combo);
- g_signal_connect (edit, "destroy", (GCallback) gtk_main_quit, NULL);
-
- hbox = gtk_hbox_new (FALSE, 7);
- gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), test, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), edit, FALSE, TRUE, 0);
- gtk_container_add (GTK_CONTAINER (window), hbox);
- gtk_widget_show_all (window);
- gtk_main ();
-
- return 0;
-}