]> git.sesse.net Git - vlc/blob - test/libvlc/equalizer.c
11d4826bb82375482332ba8dfb8cea481b9b3032
[vlc] / test / libvlc / equalizer.c
1 /*
2  * equalizer.c - libvlc smoke test
3  */
4
5 #include <string.h>
6
7 #include "test.h"
8
9 static void test_equalizer (const char ** argv, int argc)
10 {
11     libvlc_instance_t *vlc;
12     libvlc_media_player_t *mp;
13     libvlc_equalizer_t *equalizer;
14     unsigned u_presets, u_bands;
15
16     log ("Testing equalizer\n");
17
18     vlc = libvlc_new (argc, argv);
19     assert (NULL != vlc);
20
21     mp = libvlc_media_player_new (vlc);
22     assert (NULL != mp);
23
24     // presets
25
26     log ("Testing equalizer presets\n");
27
28     u_presets = libvlc_audio_equalizer_get_preset_count();
29     assert (u_presets > 0);
30
31     for (unsigned i = 0; i < u_presets; i++)
32     {
33         assert (NULL != libvlc_audio_equalizer_get_preset_name(i));
34
35         equalizer = libvlc_audio_equalizer_new_from_preset(i);
36         assert (equalizer);
37
38         libvlc_audio_equalizer_release(equalizer);
39     }
40
41     // preset out of range
42
43     assert (NULL == libvlc_audio_equalizer_get_preset_name(u_presets));
44     assert (NULL == libvlc_audio_equalizer_new_from_preset(u_presets));
45
46     // bands
47
48     log ("Testing equalizer bands\n");
49
50     u_bands = libvlc_audio_equalizer_get_band_count();
51     assert (u_bands > 0);
52
53     for (unsigned i = 0; i < u_bands; i++)
54         assert (-1.0f != libvlc_audio_equalizer_get_band_frequency(i));
55
56     // band out of range
57
58     assert (-1.0f == libvlc_audio_equalizer_get_band_frequency(u_bands));
59
60     // initialisation
61
62     log ("Testing equalizer initialisation\n");
63
64     equalizer = libvlc_audio_equalizer_new();
65     assert (equalizer);
66
67     assert (libvlc_audio_equalizer_get_preamp(equalizer) == 0.0f);
68
69     for (unsigned i = 0; i < u_bands; i++)
70         assert (libvlc_audio_equalizer_get_amp_at_index(equalizer, i) == 0.0f);
71
72     // preamp (range -20.0 to 20.0)
73
74     log ("Testing equalizer preamp\n");
75
76     assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 19.9f));
77     assert (libvlc_audio_equalizer_get_preamp(equalizer) == 19.9f);
78
79     assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 20.0f));
80     assert (libvlc_audio_equalizer_get_preamp(equalizer) == 20.0f);
81
82     assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 20.1f));
83     assert (libvlc_audio_equalizer_get_preamp(equalizer) == 20.0f);
84
85     assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -19.9f));
86     assert (libvlc_audio_equalizer_get_preamp(equalizer) == -19.9f);
87
88     assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -20.0f));
89     assert (libvlc_audio_equalizer_get_preamp(equalizer) == -20.0f);
90
91     assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -20.1f));
92     assert (libvlc_audio_equalizer_get_preamp(equalizer) == -20.0f);
93
94     // amp at index (range -20.0 to 20.0)
95
96     log ("Testing equalizer amp at index\n");
97
98     for (unsigned i = 0; i < u_bands; i++)
99     {
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);
102
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);
105
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);
108
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);
111
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);
114
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);
117     }
118
119     // amp at index out of range
120
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));
123
124     // no equalizer
125
126     log ("Testing release NULL\n");
127
128     libvlc_audio_equalizer_release (NULL);
129
130     // media player
131
132     log ("Testing set equalizer\n");
133
134     assert (0 == libvlc_media_player_set_equalizer(mp, NULL));
135     assert (0 == libvlc_media_player_set_equalizer(mp, equalizer));
136
137     // maximum string length (test string concatenation)
138
139     log ("Testing equalizer-bands string limit\n");
140
141     for (unsigned i = 0; i < u_bands; i++)
142         assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, i, -19.1234567f));
143
144     assert (0 == libvlc_media_player_set_equalizer(mp, equalizer));
145
146     // cleanup
147
148     log ("Testing equalizer cleanup\n");
149
150     libvlc_audio_equalizer_release (equalizer);
151
152     log ("Finished testing equalizer\n");
153
154     libvlc_media_player_release (mp);
155
156     libvlc_release (vlc);
157 }
158
159 int main (void)
160 {
161     test_init();
162
163     test_equalizer (test_defaults_args, test_defaults_nargs);
164
165     return 0;
166 }