]> git.sesse.net Git - vlc/blobdiff - test/libvlc/core.c
libvlc: add tests for the equalizer API
[vlc] / test / libvlc / core.c
index e9d773c1520d1be43281f701f874da44e739467d..b7fe646cd38e78f30ac4ce7cfb1918a711a5a9a0 100644 (file)
 
 #include "test.h"
 
+#include <string.h>
+
 static void test_core (const char ** argv, int argc)
 {
     libvlc_instance_t *vlc;
-    int id;
 
     log ("Testing core\n");
 
-    libvlc_exception_init (&ex);
-    vlc = libvlc_new (argc, argv, &ex);
-    catch ();
+    vlc = libvlc_new (argc, argv);
+    assert (vlc != NULL);
 
     libvlc_retain (vlc);
     libvlc_release (vlc);
     libvlc_release (vlc);
 }
 
+static void test_moduledescriptionlist (libvlc_module_description_t *list)
+{
+    libvlc_module_description_t *module = list;
+    while ( module ) {
+        assert (strlen (module->psz_name) );
+        assert (strlen (module->psz_shortname) );
+        assert (module->psz_longname == NULL || strlen (module->psz_longname));
+        assert (module->psz_help == NULL || strlen (module->psz_help));
+        module = module->p_next;
+    }    
+
+    libvlc_module_description_list_release (list);
+}
+
+static void test_audiovideofilterlists (const char ** argv, int argc)
+{
+    libvlc_instance_t *vlc;
+
+    log ("Testing libvlc_(audio|video)_filter_list_get()\n");
+
+    vlc = libvlc_new (argc, argv);
+    assert (vlc != NULL);
+
+    test_moduledescriptionlist (libvlc_audio_filter_list_get (vlc));
+    test_moduledescriptionlist (libvlc_video_filter_list_get (vlc));
+
+    libvlc_release (vlc);
+}
+
+static void test_audio_output (void)
+{
+    libvlc_instance_t *vlc = libvlc_new (0, NULL);
+    assert (vlc != NULL);
+
+    libvlc_audio_output_t *mods = libvlc_audio_output_list_get (vlc);
+    assert (mods != NULL);
+
+    puts ("Audio outputs:");
+    for (const libvlc_audio_output_t *o = mods; o != NULL; o = o->p_next)
+    {
+        libvlc_audio_output_device_t *devs;
+
+        printf(" %s: %s\n", o->psz_name, o->psz_description);
+
+        devs = libvlc_audio_output_device_list_get (vlc, o->psz_name);
+        if (devs == NULL)
+            continue;
+        for (const libvlc_audio_output_device_t *d = devs;
+             d != NULL;
+             d = d->p_next)
+             printf("  %s: %s\n", d->psz_device, d->psz_description);
+
+        libvlc_audio_output_device_list_release (devs);
+    }
+    libvlc_audio_output_list_release (mods);
+    libvlc_release (vlc);
+}
 
 int main (void)
 {
     test_init();
 
     test_core (test_defaults_args, test_defaults_nargs);
+    test_audiovideofilterlists (test_defaults_args, test_defaults_nargs);
+    test_audio_output ();
 
     return 0;
 }