Further hide module_t layout from plugins
[vlc.git] / src / modules / entry.c
index 76ca57d..8dff09a 100644 (file)
 #include <vlc/vlc.h>
 #include <assert.h>
 
+static const char default_name[] = "unnamed";
+
+module_t *vlc_module_create (vlc_object_t *obj)
+{
+    module_t *module = vlc_object_create (obj, VLC_OBJECT_MODULE);
+    if (module == NULL)
+        return NULL;
+
+#ifndef HAVE_SHARED_LIBVLC
+    module->p_symbols = &obj->p_libvlc_global->p_module_bank->symbols;
+#endif
+    module->b_loaded = module->b_submodule = VLC_FALSE;
+    module->b_reentrant = module->b_unloadable = VLC_TRUE;
+    module->psz_object_name = module->psz_longname = default_name;
+    module->psz_help = module->psz_shortname = NULL;
+    module->pp_shortcuts[0] = default_name;
+    for (unsigned i = 1; i < MODULE_SHORTCUT_MAX; i++)
+         module->pp_shortcuts[i] = NULL;
+
+    module->i_cpu = 0;
+    module->psz_program = NULL;
+    module->psz_capability = "";
+    module->i_score = 1;
+    module->pf_activate = NULL;
+    module->pf_deactivate = NULL;
+    return module;
+}
+
 
 module_t *vlc_submodule_create (module_t *module)
 {
@@ -51,6 +79,7 @@ module_t *vlc_submodule_create (module_t *module)
     return submodule;
 }
 
+
 int vlc_module_set (module_t *module, int propid, void *value)
 {
     switch (propid)
@@ -107,6 +136,12 @@ int vlc_module_set (module_t *module, int propid, void *value)
             module->b_unloadable = (value != NULL);
             break;
 
+        case VLC_MODULE_NAME:
+            module->pp_shortcuts[0] = module->psz_object_name = (char *)value;
+            if (module->psz_longname == default_name)
+                module->psz_longname = (char *)value;
+            break;
+
         default:
             msg_Err (module, "unknown module property %d", propid);
             msg_Err (module, "LibVLC might be too old to use this module.");