2 * equalizer.c - libvlc smoke test
9 static void test_equalizer (const char ** argv, int argc)
11 libvlc_instance_t *vlc;
12 libvlc_media_player_t *mp;
13 libvlc_equalizer_t *equalizer;
14 unsigned u_presets, u_bands;
16 log ("Testing equalizer\n");
18 vlc = libvlc_new (argc, argv);
21 mp = libvlc_media_player_new (vlc);
26 log ("Testing equalizer presets\n");
28 u_presets = libvlc_audio_equalizer_get_preset_count();
29 assert (u_presets > 0);
31 for (unsigned i = 0; i < u_presets; i++)
33 assert (NULL != libvlc_audio_equalizer_get_preset_name(i));
35 equalizer = libvlc_audio_equalizer_new_from_preset(i);
38 libvlc_audio_equalizer_release(equalizer);
41 // preset out of range
43 assert (NULL == libvlc_audio_equalizer_get_preset_name(u_presets));
44 assert (NULL == libvlc_audio_equalizer_new_from_preset(u_presets));
48 log ("Testing equalizer bands\n");
50 u_bands = libvlc_audio_equalizer_get_band_count();
53 for (unsigned i = 0; i < u_bands; i++)
54 assert (-1.0f != libvlc_audio_equalizer_get_band_frequency(i));
58 assert (-1.0f == libvlc_audio_equalizer_get_band_frequency(u_bands));
62 log ("Testing equalizer initialisation\n");
64 equalizer = libvlc_audio_equalizer_new();
67 assert (libvlc_audio_equalizer_get_preamp(equalizer) == 0.0f);
69 for (unsigned i = 0; i < u_bands; i++)
70 assert (libvlc_audio_equalizer_get_amp_at_index(equalizer, i) == 0.0f);
72 // preamp (range -20.0 to 20.0)
74 log ("Testing equalizer preamp\n");
76 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 19.9f));
77 assert (libvlc_audio_equalizer_get_preamp(equalizer) == 19.9f);
79 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 20.0f));
80 assert (libvlc_audio_equalizer_get_preamp(equalizer) == 20.0f);
82 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 20.1f));
83 assert (libvlc_audio_equalizer_get_preamp(equalizer) == 20.0f);
85 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -19.9f));
86 assert (libvlc_audio_equalizer_get_preamp(equalizer) == -19.9f);
88 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -20.0f));
89 assert (libvlc_audio_equalizer_get_preamp(equalizer) == -20.0f);
91 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -20.1f));
92 assert (libvlc_audio_equalizer_get_preamp(equalizer) == -20.0f);
94 // amp at index (range -20.0 to 20.0)
96 log ("Testing equalizer amp at index\n");
98 for (unsigned i = 0; i < u_bands; i++)
100 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 19.9f, i));
101 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 19.9f);
103 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 20.0f, i));
104 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 20.0f);
106 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 20.1f, i));
107 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 20.0f);
109 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -19.9f, i));
110 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -19.9f);
112 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -20.0f, i));
113 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -20.0f);
115 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -20.1f, i));
116 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -20.0f);
119 // amp at index out of range
121 assert (0.0f == libvlc_audio_equalizer_get_amp_at_index (equalizer, u_bands));
122 assert (-1 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 19.9f, u_bands));
126 log ("Testing release NULL\n");
128 libvlc_audio_equalizer_release (NULL);
132 log ("Testing set equalizer\n");
134 assert (0 == libvlc_media_player_set_equalizer(mp, NULL));
135 assert (0 == libvlc_media_player_set_equalizer(mp, equalizer));
137 // maximum string length (test string concatenation)
139 log ("Testing equalizer-bands string limit\n");
141 for (unsigned i = 0; i < u_bands; i++)
142 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, i, -19.1234567f));
144 assert (0 == libvlc_media_player_set_equalizer(mp, equalizer));
148 log ("Testing equalizer cleanup\n");
150 libvlc_audio_equalizer_release (equalizer);
152 log ("Finished testing equalizer\n");
154 libvlc_media_player_release (mp);
156 libvlc_release (vlc);
163 test_equalizer (test_defaults_args, test_defaults_nargs);