VLC  3.0.15
Macros | Typedefs | Functions
vlc_modules.h File Reference
Include dependency graph for vlc_modules.h:

Go to the source code of this file.

Macros

#define vlc_module_load(o, c, n, s, ...)   vlc_module_load(VLC_OBJECT(o),c,n,s,__VA_ARGS__)
 
#define vlc_module_unload(o, m, d, ...)   vlc_module_unload(VLC_OBJECT(o),m,d,__VA_ARGS__)
 
#define module_need(a, b, c, d)   module_need(VLC_OBJECT(a),b,c,d)
 
#define module_unneed(a, b)   module_unneed(VLC_OBJECT(a),b)
 
#define module_start(o, m)   module_start(VLC_OBJECT(o),m)
 
#define module_stop(o, m)   module_stop(VLC_OBJECT(o),m)
 
#define module_GetLongName(m)   module_get_name( m, true )
 
#define module_get_main(a)   module_get_main()
 

Typedefs

typedef int(* vlc_activate_t) (void *func, va_list args)
 
typedef void(* vlc_deactivate_t) (void *func, va_list args)
 

Functions

module_tvlc_module_load (vlc_object_t *obj, const char *cap, const char *name, bool strict, vlc_activate_t probe,...)
 Finds and instantiates the best module of a certain type. More...
 
void vlc_module_unload (vlc_object_t *obj, module_t *, vlc_deactivate_t deinit,...)
 Deinstantiates a module. More...
 
module_tmodule_need (vlc_object_t *, const char *, const char *, bool)
 
void module_unneed (vlc_object_t *, module_t *)
 
bool module_exists (const char *)
 Tell if a module exists. More...
 
module_tmodule_find (const char *)
 Get a pointer to a module_t given it's name. More...
 
int module_start (vlc_object_t *, const module_t *)
 
void module_stop (vlc_object_t *, const module_t *)
 
module_config_tmodule_config_get (const module_t *, unsigned *)
 
void module_config_free (module_config_t *)
 Release the configuration. More...
 
void module_list_free (module_t **)
 Frees the flat list of VLC modules. More...
 
module_t ** module_list_get (size_t *n)
 Gets the flat list of VLC modules. More...
 
bool module_provides (const module_t *m, const char *cap)
 Checks whether a module implements a capability. More...
 
const char * module_get_object (const module_t *m)
 Get the internal name of a module. More...
 
const char * module_get_name (const module_t *m, bool long_name)
 Get the human-friendly name of a module. More...
 
const char * module_get_help (const module_t *m)
 Get the help for a module. More...
 
const char * module_get_capability (const module_t *m)
 Gets the capability of a module. More...
 
int module_get_score (const module_t *m)
 Get the score for a module. More...
 
const char * module_gettext (const module_t *, const char *)
 Translate a string using the module's text domain. More...
 
static module_tmodule_get_main (void)
 
static bool module_is_main (const module_t *p_module)
 

Detailed Description

This file defines functions for modules in vlc

Macro Definition Documentation

◆ module_get_main

#define module_get_main (   a)    module_get_main()

◆ module_GetLongName

#define module_GetLongName (   m)    module_get_name( m, true )

◆ module_need

#define module_need (   a,
  b,
  c,
 
)    module_need(VLC_OBJECT(a),b,c,d)

◆ module_start

#define module_start (   o,
 
)    module_start(VLC_OBJECT(o),m)

◆ module_stop

#define module_stop (   o,
 
)    module_stop(VLC_OBJECT(o),m)

◆ module_unneed

#define module_unneed (   a,
 
)    module_unneed(VLC_OBJECT(a),b)

◆ vlc_module_load

#define vlc_module_load (   o,
  c,
  n,
  s,
  ... 
)    vlc_module_load(VLC_OBJECT(o),c,n,s,__VA_ARGS__)

◆ vlc_module_unload

#define vlc_module_unload (   o,
  m,
  d,
  ... 
)    vlc_module_unload(VLC_OBJECT(o),m,d,__VA_ARGS__)

Typedef Documentation

◆ vlc_activate_t

typedef int(* vlc_activate_t) (void *func, va_list args)

◆ vlc_deactivate_t

typedef void(* vlc_deactivate_t) (void *func, va_list args)

Function Documentation

◆ module_config_free()

void module_config_free ( module_config_t config)

Release the configuration.

Parameters
theconfiguration
Returns
nothing

References config.

◆ module_config_get()

module_config_t* module_config_get ( const module_t ,
unsigned *   
)

◆ module_exists()

bool module_exists ( const char *  psz_name)

Tell if a module exists.

Parameters
psz_nameth name of the module
Returns
TRUE if the module exists

References module_find(), and psz_name.

Referenced by aout_New().

◆ module_find()

module_t* module_find ( const char *  name)

Get a pointer to a module_t given it's name.

Parameters
namethe name of the module
Returns
a pointer to the module or NULL in case of a failure

References count, module_t::i_shortcuts, list, module_list_free(), module_list_get(), name, module_t::pp_shortcuts, and unlikely.

Referenced by module_exists().

◆ module_get_capability()

const char* module_get_capability ( const module_t m)

Gets the capability of a module.

Parameters
mthe module
Returns
the capability, or "none" if unspecified

References module_t::psz_capability.

Referenced by module_provides(), and vlc_module_store().

◆ module_get_help()

const char* module_get_help ( const module_t m)

Get the help for a module.

Parameters
mthe module
Returns
the help

References module_t::psz_help.

◆ module_get_main()

static module_t* module_get_main ( void  )
inlinestatic

◆ module_get_name()

const char* module_get_name ( const module_t m,
bool  long_name 
)

Get the human-friendly name of a module.

Parameters
mthe module
long_nameTRUE to have the long name of the module
Returns
the short or long name of the module

References module_get_object(), module_t::psz_longname, and module_t::psz_shortname.

Referenced by filter_chain_AppendInner().

◆ module_get_object()

const char* module_get_object ( const module_t m)

Get the internal name of a module.

Parameters
mthe module
Returns
the module name

References module_t::i_shortcuts, module_t::pp_shortcuts, and unlikely.

Referenced by config_SaveConfigFile(), ListModules(), module_get_name(), module_is_main(), module_unneed(), and vlc_module_load().

◆ module_get_score()

int module_get_score ( const module_t m)

Get the score for a module.

Parameters
mthe module return the score for the capability

References module_t::i_score.

Referenced by vlc_module_load().

◆ module_gettext()

const char* module_gettext ( const module_t m,
const char *  str 
)

Translate a string using the module's text domain.

Parameters
mthe module
strthe American English ASCII string to localize
Returns
the gettext-translated string

References module_t::plugin, vlc_plugin_t::textdomain, and unlikely.

Referenced by ListModules(), and print_section().

◆ module_is_main()

static bool module_is_main ( const module_t p_module)
inlinestatic

References module_get_object().

◆ module_list_free()

void module_list_free ( module_t **  list)

Frees the flat list of VLC modules.

Parameters
listlist obtained by module_list_get()
lengthnumber of items on the list
Returns
nothing.

References list.

Referenced by ListModules(), module_find(), module_LoadPlugins(), and vlc_module_load().

◆ module_list_get()

module_t** module_list_get ( size_t *  n)

Gets the flat list of VLC modules.

Parameters
n[OUT] pointer to the number of modules
Returns
table of module pointers (release with module_list_free()), or NULL in case of error (in that case, *n is zeroed).

References vlc_plugin_t::next, module_t::next, unlikely, and vlc_plugins.

Referenced by ListModules(), module_find(), and module_LoadPlugins().

◆ module_need()

module_t* module_need ( vlc_object_t ,
const char *  ,
const char *  ,
bool   
)

◆ module_provides()

bool module_provides ( const module_t m,
const char *  cap 
)

Checks whether a module implements a capability.

Parameters
mthe module
capthe capability to check
Returns
true if the module has the capability

References module_get_capability().

◆ module_start()

int module_start ( vlc_object_t ,
const module_t  
)

< No error

References module_t::pf_activate, and VLC_SUCCESS.

◆ module_stop()

void module_stop ( vlc_object_t ,
const module_t  
)

◆ module_unneed()

void module_unneed ( vlc_object_t ,
module_t  
)

◆ vlc_module_load()

module_t* vlc_module_load ( vlc_object_t obj,
const char *  capability,
const char *  name,
bool  strict,
vlc_activate_t  probe,
  ... 
)

Finds and instantiates the best module of a certain type.

All candidates modules having the specified capability and name will be sorted in decreasing order of priority. Then the probe callback will be invoked for each module, until it succeeds (returns 0), or all candidate module failed to initialize.

The probe callback first parameter is the address of the module entry point. Further parameters are passed as an argument list; it corresponds to the variable arguments passed to this function. This scheme is meant to support arbitrary prototypes for the module entry point.

Parameters
objVLC object
capabilitycapability, i.e. class of module
namename of the module asked, if any
strictif true, do not fallback to plugin with a different name but the same capability
probemodule probe callback
Returns
the module or NULL in case of a failure

< No error

< Timeout

< No error

< Timeout

References vlc_common_members::force, likely, module_get_object(), module_get_score(), module_list_cap(), module_list_free(), module_load(), module_match_name(), msg_Dbg, name, vlc_object_t::obj, strcasecmp(), unlikely, var_InheritString, VLC_ETIMEOUT, vlc_object_set_name, and VLC_SUCCESS.

Referenced by module_need().

◆ vlc_module_unload()

void vlc_module_unload ( vlc_object_t obj,
module_t module,
vlc_deactivate_t  deinit,
  ... 
)

Deinstantiates a module.

Parameters
modulethe module pointer as returned by vlc_module_load()
deinitdeactivation callback

References module_t::pf_deactivate, and vlc_objres_clear().

Referenced by module_unneed().