X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmodules%2Fmodules.h;h=a87056083e79e25ef62194f0698ca51623225a14;hb=72a9cd361c2fc0376dbf008194b76f5d61d14aae;hp=90e5c86e259b95c1af893393b906b5dec24f8bf0;hpb=cf52eed62879b14051f8097676fdf5f90b60bb67;p=vlc diff --git a/src/modules/modules.h b/src/modules/modules.h index 90e5c86e25..a87056083e 100644 --- a/src/modules/modules.h +++ b/src/modules/modules.h @@ -1,24 +1,24 @@ /***************************************************************************** * modules.h : Module management functions. ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team + * Copyright (C) 2001 VLC authors and VideoLAN * $Id$ * * Authors: Samuel Hocevar * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ #ifndef LIBVLC_MODULES_H @@ -46,7 +46,11 @@ struct module_cache_t /** The module handle type */ typedef void *module_handle_t; -typedef module_t *(*vlc_plugin_cb) (void); +/** Plugin entry point prototype */ +typedef int (*vlc_plugin_cb) (int (*)(void *, void *, int, ...), void *); + +/** Main module */ +int vlc_entry__main (int (*)(void *, void *, int, ...), void *); /** * Internal module descriptor @@ -96,11 +100,12 @@ struct module_t char * domain; /* gettext domain */ }; +module_t *vlc_plugin_describe (vlc_plugin_cb); module_t *vlc_module_create (module_t *); void vlc_module_destroy (module_t *); void module_InitBank (void); -void module_LoadPlugins( vlc_object_t * ); +size_t module_LoadPlugins( vlc_object_t * ); #define module_LoadPlugins(a) module_LoadPlugins(VLC_OBJECT(a)) void module_EndBank (bool); int module_Map (vlc_object_t *, module_t *); @@ -116,6 +121,9 @@ void module_Unload (module_handle_t); void CacheMerge (vlc_object_t *, module_t *, module_t *); void CacheDelete(vlc_object_t *, const char *); size_t CacheLoad (vlc_object_t *, const char *, module_cache_t **); + +struct stat; + int CacheAdd (module_cache_t **, size_t *, const char *, const struct stat *, module_t *); void CacheSave (vlc_object_t *, const char *, module_cache_t *, size_t);