summaryrefslogtreecommitdiff
path: root/tests/check/libs/mixer.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check/libs/mixer.c')
-rw-r--r--tests/check/libs/mixer.c241
1 files changed, 0 insertions, 241 deletions
diff --git a/tests/check/libs/mixer.c b/tests/check/libs/mixer.c
deleted file mode 100644
index 1133ecb1..00000000
--- a/tests/check/libs/mixer.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* GStreamer
- *
- * unit tests for audio support library
- *
- * Copyright (C) 2007 Jan Schmidt <thaytan@noraisin.net>
- *
- * 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 <gst/check/gstcheck.h>
-
-#include <gst/interfaces/mixer.h>
-
-#include <string.h>
-
-#define TEST_ELEMENT_TYPE (test_element_get_type())
-
-typedef struct TestElement TestElement;
-typedef struct TestElementClass TestElementClass;
-
-struct TestElement
-{
- GstElement parent;
-};
-
-struct TestElementClass
-{
- GstElementClass parent_class;
-};
-
-static void init_interface (GType type);
-static void gst_implements_interface_init (GstImplementsInterfaceClass * klass);
-
-GST_BOILERPLATE_FULL (TestElement, test_element, GstElement, GST_TYPE_ELEMENT,
- init_interface);
-
-static void
-test_element_mixer_interface_init (GstMixerClass * klass)
-{
- /* Not actually implementing any interfaces for this test atm */
-}
-
-static void
-init_interface (GType type)
-{
- static const GInterfaceInfo mixer_iface_info = {
- (GInterfaceInitFunc) test_element_mixer_interface_init,
- NULL,
- NULL,
- };
- static const GInterfaceInfo implements_iface_info = {
- (GInterfaceInitFunc) gst_implements_interface_init,
- NULL,
- NULL,
- };
-
- g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE,
- &implements_iface_info);
- g_type_add_interface_static (type, GST_TYPE_MIXER, &mixer_iface_info);
-}
-
-static void
-test_element_base_init (gpointer klass)
-{
-}
-
-static void
-test_element_class_init (TestElementClass * klass)
-{
-}
-
-static gboolean
-test_element_interface_supported (GstImplementsInterface * ifacE,
- GType interface_type)
-{
- if (interface_type == GST_TYPE_MIXER)
- return TRUE;
-
- return FALSE;
-}
-
-static void
-gst_implements_interface_init (GstImplementsInterfaceClass * klass)
-{
- klass->supported = test_element_interface_supported;
-}
-
-static void
-test_element_init (TestElement * this, TestElementClass * klass)
-{
-}
-
-GST_START_TEST (test_messages)
-{
- /* Create an empty GstElement that has a GstMixer interface and then
- * send some notifications and validate them */
- GstElement *test_element =
- (GstElement *) g_object_new (TEST_ELEMENT_TYPE, NULL);
- GstBus *bus = gst_bus_new ();
- GstMixerTrack *mtrack = g_object_new (GST_TYPE_MIXER_TRACK, NULL);
- GstMixerOptions *mopts = g_object_new (GST_TYPE_MIXER_OPTIONS, NULL);
- GstMixerTrack *t;
- GstMixerOptions *o;
- gint vols_in[2] = { 50, 75 };
- gboolean mute, record;
- gint *vols_out;
- gint n_chans, i;
- const gchar *val;
- GstMessage *message;
-
- mtrack->num_channels = 2;
- mtrack->flags = GST_MIXER_TRACK_MUTE | GST_MIXER_TRACK_RECORD;
-
- gst_element_set_bus (test_element, bus);
-
- /* Test mute-toggled */
- gst_mixer_mute_toggled (GST_MIXER (test_element), mtrack, TRUE);
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_MUTE_TOGGLED);
- /* Test that we can pass NULL args */
- gst_mixer_message_parse_mute_toggled (message, NULL, NULL);
- /* Test the parsing */
- gst_mixer_message_parse_mute_toggled (message, &t, &mute);
- fail_unless (t == mtrack);
- fail_unless (mute == TRUE);
- gst_message_unref (message);
-
- /* Test record-toggled */
- gst_mixer_record_toggled (GST_MIXER (test_element), mtrack, TRUE);
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_RECORD_TOGGLED);
- gst_mixer_message_parse_record_toggled (message, NULL, NULL);
- gst_mixer_message_parse_record_toggled (message, &t, &record);
- fail_unless (t == mtrack);
- fail_unless (record == TRUE);
- gst_message_unref (message);
-
- /* Test volume-changed */
- gst_mixer_volume_changed (GST_MIXER (test_element), mtrack, vols_in);
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_VOLUME_CHANGED);
- gst_mixer_message_parse_volume_changed (message, NULL, NULL, NULL);
- gst_mixer_message_parse_volume_changed (message, NULL, NULL, &n_chans);
- fail_unless (n_chans == 2);
- gst_mixer_message_parse_volume_changed (message, &t, &vols_out, &n_chans);
- fail_unless (mtrack == t);
- for (i = 0; i < n_chans; i++)
- fail_unless (vols_out[i] == vols_in[i]);
-
- gst_message_unref (message);
- g_free (vols_out);
-
- /* Test option-changed */
- gst_mixer_option_changed (GST_MIXER (test_element), mopts, "TESTING");
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_OPTION_CHANGED);
- gst_mixer_message_parse_option_changed (message, NULL, NULL);
- gst_mixer_message_parse_option_changed (message, &o, &val);
- fail_unless (o == mopts);
- fail_unless (g_str_equal (val, "TESTING"));
- gst_message_unref (message);
-
- /* Test options-list-changed */
- gst_mixer_options_list_changed (GST_MIXER (test_element), mopts);
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED);
- gst_mixer_message_parse_options_list_changed (message, &o);
- fail_unless (o == mopts);
- gst_message_unref (message);
-
- /* Test mixer-changed */
- gst_mixer_mixer_changed (GST_MIXER (test_element));
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_MIXER_CHANGED);
- gst_message_unref (message);
-
- gst_object_unref (mtrack);
- gst_object_unref (mopts);
- gst_object_unref (bus);
- gst_object_unref (test_element);
-}
-
-GST_END_TEST;
-
-static Suite *
-mixer_suite (void)
-{
- Suite *s = suite_create ("mixer interface");
- TCase *tc_chain = tcase_create ("notifications");
-
- suite_add_tcase (s, tc_chain);
- tcase_add_test (tc_chain, test_messages);
-
- return s;
-}
-
-int
-main (int argc, char **argv)
-{
- int nf;
-
- Suite *s = mixer_suite ();
- SRunner *sr = srunner_create (s);
-
- gst_check_init (&argc, &argv);
-
- srunner_run_all (sr, CK_NORMAL);
- nf = srunner_ntests_failed (sr);
- srunner_free (sr);
-
- return nf;
-}