summaryrefslogtreecommitdiff
path: root/tests/check/elements/equalizer.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check/elements/equalizer.c')
-rw-r--r--tests/check/elements/equalizer.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/check/elements/equalizer.c b/tests/check/elements/equalizer.c
index 29b2e3862..ea76581bc 100644
--- a/tests/check/elements/equalizer.c
+++ b/tests/check/elements/equalizer.c
@@ -294,6 +294,57 @@ GST_START_TEST (test_equalizer_band_number_changing)
GST_END_TEST;
+GST_START_TEST (test_equalizer_presets)
+{
+ GstElement *eq1, *eq2;
+ gint type;
+ gdouble gain, freq;
+
+ eq1 = gst_check_setup_element ("equalizer-nbands");
+ g_object_set (G_OBJECT (eq1), "num-bands", 3, NULL);
+
+ /* set properties to non-defaults */
+ gst_child_proxy_set ((GstObject *) eq1,
+ "band0::type", 0, "band0::gain", -3.0, "band0::freq", 100.0,
+ "band1::type", 1, "band1::gain", +3.0, "band1::freq", 1000.0,
+ "band2::type", 2, "band2::gain", +9.0, "band2::freq", 10000.0, NULL);
+
+ /* save preset */
+ gst_preset_save_preset ((GstPreset *) eq1, "_testpreset_");
+ GST_INFO_OBJECT (eq1, "Preset saved");
+
+ eq2 = gst_check_setup_element ("equalizer-nbands");
+ g_object_set (G_OBJECT (eq2), "num-bands", 3, NULL);
+
+ /* load preset */
+ gst_preset_load_preset ((GstPreset *) eq2, "_testpreset_");
+ GST_INFO_OBJECT (eq1, "Preset loaded");
+
+ /* compare properties */
+ gst_child_proxy_get ((GstObject *) eq2,
+ "band0::type", &type, "band0::gain", &gain, "band0::freq", &freq, NULL);
+ ck_assert_int_eq (type, 0);
+ fail_unless (gain == -3.0, NULL);
+ fail_unless (freq == 100.0, NULL);
+ gst_child_proxy_get ((GstObject *) eq2,
+ "band1::type", &type, "band1::gain", &gain, "band1::freq", &freq, NULL);
+ ck_assert_int_eq (type, 1);
+ fail_unless (gain == +3.0, NULL);
+ fail_unless (freq == 1000.0, NULL);
+ gst_child_proxy_get ((GstObject *) eq2,
+ "band2::type", &type, "band2::gain", &gain, "band2::freq", &freq, NULL);
+ ck_assert_int_eq (type, 2);
+ fail_unless (gain == +9.0, NULL);
+ fail_unless (freq == 10000.0, NULL);
+
+ gst_preset_delete_preset ((GstPreset *) eq1, "_testpreset_");
+ gst_check_teardown_element (eq1);
+ gst_check_teardown_element (eq2);
+}
+
+GST_END_TEST;
+
+
static Suite *
equalizer_suite (void)
{
@@ -305,6 +356,7 @@ equalizer_suite (void)
tcase_add_test (tc_chain, test_equalizer_5bands_minus_24);
tcase_add_test (tc_chain, test_equalizer_5bands_plus_12);
tcase_add_test (tc_chain, test_equalizer_band_number_changing);
+ tcase_add_test (tc_chain, test_equalizer_presets);
return s;
}