Commit cbedb0c6 authored by Mark Lee's avatar Mark Lee Committed by Rémi Denis-Courmont

libvlc: add tests for the equalizer API

Signed-off-by: Rémi Denis-Courmont's avatarRémi Denis-Courmont <remi@remlab.net>
parent c180afe5
......@@ -14,6 +14,7 @@ extra_check_verbose__0 = $(extra_check_verbose_0)
###############################################################################
check_PROGRAMS = \
test_libvlc_core \
test_libvlc_equalizer \
test_libvlc_media \
test_libvlc_media_list \
test_libvlc_media_player \
......@@ -58,6 +59,8 @@ LIBVLC = ../lib/libvlc.la
test_libvlc_core_SOURCES = libvlc/core.c
test_libvlc_core_LDADD = $(LIBVLC)
test_libvlc_equalizer_SOURCES = libvlc/equalizer.c
test_libvlc_equalizer_LDADD = $(LIBVLC)
test_libvlc_media_SOURCES = libvlc/media.c
test_libvlc_media_LDADD = $(LIBVLC)
test_libvlc_media_list_player_SOURCES = libvlc/media_list_player.c
......
/*
* equalizer.c - libvlc smoke test
*/
#include <string.h>
#include "test.h"
static void test_equalizer (const char ** argv, int argc)
{
libvlc_instance_t *vlc;
libvlc_media_player_t *mp;
libvlc_equalizer_t *equalizer;
unsigned u_presets, u_bands;
log ("Testing equalizer\n");
vlc = libvlc_new (argc, argv);
assert (NULL != vlc);
mp = libvlc_media_player_new (vlc);
assert (NULL != mp);
// presets
log ("Testing equalizer presets\n");
u_presets = libvlc_audio_equalizer_get_preset_count();
assert (u_presets > 0);
for (unsigned i = 0; i < u_presets; i++)
{
assert (NULL != libvlc_audio_equalizer_get_preset_name(i));
equalizer = libvlc_audio_equalizer_new_from_preset(i);
assert (equalizer);
libvlc_audio_equalizer_release(equalizer);
}
// preset out of range
assert (NULL == libvlc_audio_equalizer_get_preset_name(u_presets));
assert (NULL == libvlc_audio_equalizer_new_from_preset(u_presets));
// bands
log ("Testing equalizer bands\n");
u_bands = libvlc_audio_equalizer_get_band_count();
assert (u_bands > 0);
for (unsigned i = 0; i < u_bands; i++)
assert (-1.0f != libvlc_audio_equalizer_get_band_frequency(i));
// band out of range
assert (-1.0f == libvlc_audio_equalizer_get_band_frequency(u_bands));
// initialisation
log ("Testing equalizer initialisation\n");
equalizer = libvlc_audio_equalizer_new();
assert (equalizer);
assert (libvlc_audio_equalizer_get_preamp(equalizer) == 0.0f);
for (unsigned i = 0; i < u_bands; i++)
assert (libvlc_audio_equalizer_get_amp_at_index(equalizer, i) == 0.0f);
// preamp (range -20.0 to 20.0)
log ("Testing equalizer preamp\n");
assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 19.9f));
assert (libvlc_audio_equalizer_get_preamp(equalizer) == 19.9f);
assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 20.0f));
assert (libvlc_audio_equalizer_get_preamp(equalizer) == 20.0f);
assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 20.1f));
assert (libvlc_audio_equalizer_get_preamp(equalizer) == 20.0f);
assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -19.9f));
assert (libvlc_audio_equalizer_get_preamp(equalizer) == -19.9f);
assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -20.0f));
assert (libvlc_audio_equalizer_get_preamp(equalizer) == -20.0f);
assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -20.1f));
assert (libvlc_audio_equalizer_get_preamp(equalizer) == -20.0f);
// amp at index (range -20.0 to 20.0)
log ("Testing equalizer amp at index\n");
for (unsigned i = 0; i < u_bands; i++)
{
assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 19.9f, i));
assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 19.9f);
assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 20.0f, i));
assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 20.0f);
assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 20.1f, i));
assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 20.0f);
assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -19.9f, i));
assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -19.9f);
assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -20.0f, i));
assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -20.0f);
assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -20.1f, i));
assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -20.0f);
}
// amp at index out of range
assert (0.0f == libvlc_audio_equalizer_get_amp_at_index (equalizer, u_bands));
assert (-1 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 19.9f, u_bands));
// no equalizer
log ("Testing release NULL\n");
libvlc_audio_equalizer_release (NULL);
// media player
log ("Testing set equalizer\n");
assert (0 == libvlc_media_player_set_equalizer(mp, NULL));
assert (0 == libvlc_media_player_set_equalizer(mp, equalizer));
// maximum string length (test string concatenation)
log ("Testing equalizer-bands string limit\n");
for (unsigned i = 0; i < u_bands; i++)
assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, i, -19.1234567f));
assert (0 == libvlc_media_player_set_equalizer(mp, equalizer));
// cleanup
log ("Testing equalizer cleanup\n");
libvlc_audio_equalizer_release (equalizer);
log ("Finished testing equalizer\n");
libvlc_media_player_release (mp);
libvlc_release (vlc);
}
int main (void)
{
test_init();
test_equalizer (test_defaults_args, test_defaults_nargs);
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment