vlc_plugin.h File Reference

This file implements plugin (module) macros used to define a vlc module. More...

Include dependency graph for vlc_plugin.h:

Go to the source code of this file.

Defines

#define LIBVLC_MODULES_MACROS_H   1
#define vlc_module_set(mod,...)   vlc_plugin_set ((mod), NULL, __VA_ARGS__)
#define vlc_config_set(cfg,...)   vlc_plugin_set (NULL, (cfg), __VA_ARGS__)
#define MODULE_NAME   main
#define MODULE_SYMBOL   1_1_0c
 Current plugin ABI version.
#define MODULE_SUFFIX   "__1_1_0c"
#define CONCATENATE(y, z)   CRUDE_HACK( y, z )
#define CRUDE_HACK(y, z)   y##__##z
#define __VLC_SYMBOL(symbol)   CONCATENATE( symbol, MODULE_NAME )
#define DLL_SYMBOL
#define CDECL_SYMBOL
#define EXTERN_SYMBOL
#define vlc_module_begin()
#define vlc_module_end()
#define add_submodule()
#define add_requirement(cap)
#define add_shortcut(shortcut)
#define set_shortname(shortname)
#define set_description(desc)
#define set_help(help)
#define set_capability(cap, score)
#define set_callbacks(activate, deactivate)
#define linked_with_a_crap_library_which_uses_atexit()
#define set_text_domain(dom)   domain = (dom);
#define add_type_inner(type)   vlc_plugin_set (p_module, NULL, VLC_CONFIG_CREATE, (type), &p_config);
#define add_typedesc_inner(type, text, longtext)
#define add_typeadv_inner(type, text, longtext, advc)
#define add_typename_inner(type, name, text, longtext, advc, cb)
#define add_string_inner(type, name, text, longtext, advc, cb, v)
#define add_int_inner(type, name, text, longtext, advc, cb, v)
#define set_category(i_id)
#define set_subcategory(i_id)
#define set_section(text, longtext)   add_typedesc_inner( CONFIG_SECTION, text, longtext )
#define add_category_hint(text, longtext, advc)   add_typeadv_inner( CONFIG_HINT_CATEGORY, text, longtext, advc )
#define add_subcategory_hint(text, longtext)   add_typedesc_inner( CONFIG_HINT_SUBCATEGORY, text, longtext )
#define end_subcategory_hint   add_type_inner( CONFIG_HINT_SUBCATEGORY_END )
#define add_usage_hint(text)   add_typedesc_inner( CONFIG_HINT_USAGE, text, NULL )
#define add_string(name, value, p_callback, text, longtext, advc)
#define add_password(name, value, p_callback, text, longtext, advc)
#define add_file(name, value, p_callback, text, longtext, advc)
#define add_directory(name, value, p_callback, text, longtext, advc)
#define add_font(name, value, p_callback, text, longtext, advc)
#define add_module(name, psz_caps, value, p_callback, text, longtext, advc)
#define add_module_list(name, psz_caps, value, p_callback, text, longtext, advc)
#define add_module_cat(name, i_subcategory, value, p_callback, text, longtext, advc)
#define add_module_list_cat(name, i_subcategory, value, p_callback, text, longtext, advc)
#define add_integer(name, value, p_callback, text, longtext, advc)
#define add_key(name, value, p_callback, text, longtext, advc)
#define add_integer_with_range(name, value, i_min, i_max, p_callback, text, longtext, advc)
#define add_float(name, v, p_callback, text, longtext, advc)
#define add_float_with_range(name, value, f_min, f_max, p_callback, text, longtext, advc)
#define add_bool(name, v, p_callback, text, longtext, advc)
#define add_obsolete_inner(name, type)
#define add_obsolete_bool(name)   add_obsolete_inner( name, CONFIG_ITEM_BOOL )
#define add_obsolete_integer(name)   add_obsolete_inner( name, CONFIG_ITEM_INTEGER )
#define add_obsolete_float(name)   add_obsolete_inner( name, CONFIG_ITEM_FLOAT )
#define add_obsolete_string(name)   add_obsolete_inner( name, CONFIG_ITEM_STRING )
#define add_deprecated_alias(name)   vlc_config_set (p_config, VLC_CONFIG_OLDNAME, (const char *)(name));
#define change_short(ch)   vlc_config_set (p_config, VLC_CONFIG_SHORTCUT, (int)(ch));
#define change_string_list(list, list_text, list_update_func)
#define change_integer_list(list, list_text, list_update_func)
#define change_integer_range(minv, maxv)   vlc_config_set (p_config, VLC_CONFIG_RANGE, (int)(minv), (int)(maxv));
#define change_float_range(minv, maxv)
#define change_action_add(pf_action, text)
#define change_internal()   vlc_config_set (p_config, VLC_CONFIG_PRIVATE);
#define change_need_restart()   vlc_config_set (p_config, VLC_CONFIG_RESTART);
#define change_autosave()   vlc_config_set (p_config, VLC_CONFIG_PERSISTENT);
#define change_unsaveable()   vlc_config_set (p_config, VLC_CONFIG_VOLATILE);
#define change_safe()   vlc_config_set (p_config, VLC_CONFIG_SAFE);
#define VLC_META_EXPORT(name, value)
#define VLC_COPYRIGHT_EXPORT
#define VLC_LICENSE_EXPORT
#define VLC_METADATA_EXPORTS

Enumerations

enum  vlc_module_properties {
  VLC_SUBMODULE_CREATE, VLC_CONFIG_CREATE, VLC_MODULE_CPU_REQUIREMENT = 0x100, VLC_MODULE_SHORTCUT,
  VLC_MODULE_CAPABILITY, VLC_MODULE_SCORE, VLC_MODULE_CB_OPEN, VLC_MODULE_CB_CLOSE,
  VLC_MODULE_NO_UNLOAD, VLC_MODULE_NAME, VLC_MODULE_SHORTNAME, VLC_MODULE_DESCRIPTION,
  VLC_MODULE_HELP, VLC_CONFIG_NAME = 0x1000, VLC_CONFIG_VALUE, VLC_CONFIG_RANGE,
  VLC_CONFIG_ADVANCED, VLC_CONFIG_VOLATILE, VLC_CONFIG_PERSISTENT, VLC_CONFIG_RESTART,
  VLC_CONFIG_PRIVATE, VLC_CONFIG_REMOVED, VLC_CONFIG_CAPABILITY, VLC_CONFIG_SHORTCUT,
  VLC_CONFIG_OLDNAME, VLC_CONFIG_SAFE, VLC_CONFIG_DESC, VLC_CONFIG_LIST,
  VLC_CONFIG_ADD_ACTION
}

Functions

int vlc_plugin_set (module_t *, module_config_t *, int,...)


Detailed Description

This file implements plugin (module) macros used to define a vlc module.


Define Documentation

#define __VLC_SYMBOL ( symbol   )     CONCATENATE( symbol, MODULE_NAME )

#define add_bool ( name,
v,
p_callback,
text,
longtext,
advc   ) 

Value:

add_typename_inner( CONFIG_ITEM_BOOL, name, text, longtext, advc, \
                        p_callback ) \
    if (v) vlc_config_set (p_config, VLC_CONFIG_VALUE, (int)true);

#define add_category_hint ( text,
longtext,
advc   )     add_typeadv_inner( CONFIG_HINT_CATEGORY, text, longtext, advc )

#define add_deprecated_alias ( name   )     vlc_config_set (p_config, VLC_CONFIG_OLDNAME, (const char *)(name));

#define add_directory ( name,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_DIRECTORY, name, text, longtext, advc, \
                      p_callback, value )

#define add_file ( name,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_FILE, name, text, longtext, advc, \
                      p_callback, value )

#define add_float ( name,
v,
p_callback,
text,
longtext,
advc   ) 

Value:

add_typename_inner( CONFIG_ITEM_FLOAT, name, text, longtext, advc, p_callback ) \
    vlc_config_set (p_config, VLC_CONFIG_VALUE, (double)(v));

#define add_float_with_range ( name,
value,
f_min,
f_max,
p_callback,
text,
longtext,
advc   ) 

Value:

add_float( name, value, p_callback, text, longtext, advc ) \
    change_float_range( f_min, f_max )

#define add_font ( name,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_FONT, name, text, longtext, advc, \
                      p_callback, value )

#define add_int_inner ( type,
name,
text,
longtext,
advc,
cb,
 ) 

Value:

add_typename_inner( type, name, text, longtext, advc, cb ) \
    vlc_config_set (p_config, VLC_CONFIG_VALUE, (int)(v));

#define add_integer ( name,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_int_inner( CONFIG_ITEM_INTEGER, name, text, longtext, advc, \
                   p_callback, value )

#define add_integer_with_range ( name,
value,
i_min,
i_max,
p_callback,
text,
longtext,
advc   ) 

Value:

add_integer( name, value, p_callback, text, longtext, advc ) \
    change_integer_range( i_min, i_max )

#define add_key ( name,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_int_inner( CONFIG_ITEM_KEY, name, text, longtext, advc, p_callback, \
                   value )

#define add_module ( name,
psz_caps,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_MODULE, name, text, longtext, advc, \
                      p_callback, value ) \
    vlc_config_set (p_config, VLC_CONFIG_CAPABILITY, (const char *)(psz_caps));

#define add_module_cat ( name,
i_subcategory,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_MODULE_CAT, name, text, longtext, advc, \
                      p_callback, value ) \
    change_integer_range (i_subcategory /* gruik */, 0);

#define add_module_list ( name,
psz_caps,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_MODULE_LIST, name, text, longtext, advc, \
                      p_callback, value ) \
    vlc_config_set (p_config, VLC_CONFIG_CAPABILITY, (const char *)(psz_caps));

#define add_module_list_cat ( name,
i_subcategory,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_MODULE_LIST_CAT, name, text, longtext, \
                      advc, p_callback, value ) \
    change_integer_range (i_subcategory /* gruik */, 0);

#define add_obsolete_bool ( name   )     add_obsolete_inner( name, CONFIG_ITEM_BOOL )

#define add_obsolete_float ( name   )     add_obsolete_inner( name, CONFIG_ITEM_FLOAT )

#define add_obsolete_inner ( name,
type   ) 

Value:

add_type_inner( type ) \
    vlc_config_set (p_config, VLC_CONFIG_NAME, \
                    (const char *)(name), (vlc_callback_t)NULL); \
    vlc_config_set (p_config, VLC_CONFIG_REMOVED);

#define add_obsolete_integer ( name   )     add_obsolete_inner( name, CONFIG_ITEM_INTEGER )

#define add_obsolete_string ( name   )     add_obsolete_inner( name, CONFIG_ITEM_STRING )

#define add_password ( name,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_PASSWORD, name, text, longtext, advc, \
                      p_callback, value )

#define add_requirement ( cap   ) 

Value:

if (vlc_module_set (p_module, VLC_MODULE_CPU_REQUIREMENT, \
                        (int)(CPU_CAPABILITY_##cap))) \
        goto error;

#define add_shortcut ( shortcut   ) 

Value:

if (vlc_module_set (p_submodule, VLC_MODULE_SHORTCUT, \
        (const char *)(shortcut))) \
        goto error;

#define add_string ( name,
value,
p_callback,
text,
longtext,
advc   ) 

Value:

add_string_inner( CONFIG_ITEM_STRING, name, text, longtext, advc, \
                      p_callback, value )

#define add_string_inner ( type,
name,
text,
longtext,
advc,
cb,
 ) 

Value:

add_typename_inner( type, name, text, longtext, advc, cb ) \
    vlc_config_set (p_config, VLC_CONFIG_VALUE, (const char *)(v));

#define add_subcategory_hint ( text,
longtext   )     add_typedesc_inner( CONFIG_HINT_SUBCATEGORY, text, longtext )

 
#define add_submodule (  ) 

Value:

if (vlc_plugin_set (p_module, NULL, VLC_SUBMODULE_CREATE, &p_submodule)) \
        goto error;

#define add_type_inner ( type   )     vlc_plugin_set (p_module, NULL, VLC_CONFIG_CREATE, (type), &p_config);

#define add_typeadv_inner ( type,
text,
longtext,
advc   ) 

Value:

add_typedesc_inner( type, text, longtext ) \
    if (advc) vlc_config_set (p_config, VLC_CONFIG_ADVANCED);

#define add_typedesc_inner ( type,
text,
longtext   ) 

Value:

add_type_inner( type ) \
    vlc_config_set (p_config, VLC_CONFIG_DESC, domain, \
                    (const char *)(text), (const char *)(longtext));

#define add_typename_inner ( type,
name,
text,
longtext,
advc,
cb   ) 

Value:

add_typeadv_inner( type, text, longtext, advc ) \
    vlc_config_set (p_config, VLC_CONFIG_NAME, \
                    (const char *)(name), (vlc_callback_t)(cb));

#define add_usage_hint ( text   )     add_typedesc_inner( CONFIG_HINT_USAGE, text, NULL )

#define CDECL_SYMBOL

#define change_action_add ( pf_action,
text   ) 

Value:

vlc_config_set (p_config, VLC_CONFIG_ADD_ACTION, domain, \
                    (vlc_callback_t)(pf_action), (const char *)(text));

 
#define change_autosave (  )     vlc_config_set (p_config, VLC_CONFIG_PERSISTENT);

#define change_float_range ( minv,
maxv   ) 

Value:

vlc_config_set (p_config, VLC_CONFIG_RANGE, \
                    (double)(minv), (double)(maxv));

#define change_integer_list ( list,
list_text,
list_update_func   ) 

Value:

vlc_config_set (p_config, VLC_CONFIG_LIST, domain, \
                    (size_t)(sizeof (list) / sizeof (int)), \
                    (const int *)(list), \
                    (const char *const *)(list_text), \
                    (vlc_callback_t)(list_update_func));

#define change_integer_range ( minv,
maxv   )     vlc_config_set (p_config, VLC_CONFIG_RANGE, (int)(minv), (int)(maxv));

 
#define change_internal (  )     vlc_config_set (p_config, VLC_CONFIG_PRIVATE);

 
#define change_need_restart (  )     vlc_config_set (p_config, VLC_CONFIG_RESTART);

 
#define change_safe (  )     vlc_config_set (p_config, VLC_CONFIG_SAFE);

#define change_short ( ch   )     vlc_config_set (p_config, VLC_CONFIG_SHORTCUT, (int)(ch));

#define change_string_list ( list,
list_text,
list_update_func   ) 

Value:

vlc_config_set (p_config, VLC_CONFIG_LIST, domain, \
                    (size_t)(sizeof (list) / sizeof (char *)), \
                    (const char *const *)(list), \
                    (const char *const *)(list_text), \
                    (vlc_callback_t)(list_update_func));

 
#define change_unsaveable (  )     vlc_config_set (p_config, VLC_CONFIG_VOLATILE);

#define CONCATENATE ( y,
 )     CRUDE_HACK( y, z )

#define CRUDE_HACK ( y,
 )     y##__##z

#define DLL_SYMBOL

#define end_subcategory_hint   add_type_inner( CONFIG_HINT_SUBCATEGORY_END )

#define EXTERN_SYMBOL

#define LIBVLC_MODULES_MACROS_H   1

 
#define linked_with_a_crap_library_which_uses_atexit (  ) 

Value:

if (vlc_module_set (p_submodule, VLC_MODULE_NO_UNLOAD)) \
        goto error;

#define MODULE_NAME   main

#define MODULE_SUFFIX   "__1_1_0c"

#define MODULE_SYMBOL   1_1_0c

Current plugin ABI version.

#define set_callbacks ( activate,
deactivate   ) 

Value:

if (vlc_module_set (p_submodule, VLC_MODULE_CB_OPEN, activate) \
     || vlc_module_set (p_submodule, VLC_MODULE_CB_CLOSE, deactivate)) \
        goto error;

#define set_capability ( cap,
score   ) 

Value:

if (vlc_module_set (p_submodule, VLC_MODULE_CAPABILITY, \
                        (const char *)(cap)) \
     || vlc_module_set (p_submodule, VLC_MODULE_SCORE, (int)(score))) \
        goto error;

#define set_category ( i_id   ) 

Value:

#define set_description ( desc   ) 

Value:

if (vlc_module_set (p_submodule, VLC_MODULE_DESCRIPTION, domain, \
                        (const char *)(desc))) \
        goto error;

#define set_help ( help   ) 

Value:

if (vlc_module_set (p_submodule, VLC_MODULE_HELP, domain, \
                        (const char *)(help))) \
        goto error;

#define set_section ( text,
longtext   )     add_typedesc_inner( CONFIG_SECTION, text, longtext )

#define set_shortname ( shortname   ) 

Value:

if (vlc_module_set (p_submodule, VLC_MODULE_SHORTNAME, domain, \
                        (const char *)(shortname))) \
        goto error;

#define set_subcategory ( i_id   ) 

Value:

#define set_text_domain ( dom   )     domain = (dom);

#define vlc_config_set ( cfg,
...   )     vlc_plugin_set (NULL, (cfg), __VA_ARGS__)

#define VLC_COPYRIGHT_EXPORT

#define VLC_LICENSE_EXPORT

Value:

VLC_META_EXPORT (license, \
    "\x4c\x69\x63\x65\x6e\x73\x65\x64\x20\x75\x6e\x64\x65\x72\x20\x74" \
    "\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x6f\x66\x20\x74\x68\x65\x20" \
    "\x47\x4e\x55\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c" \
    "\x69\x63\x20\x4c\x69\x63\x65\x6e\x73\x65\x2c\x20\x76\x65\x72\x73" \
    "\x69\x6f\x6e\x20\x32\x20\x6f\x72\x20\x6c\x61\x74\x65\x72\x2e" )

#define VLC_META_EXPORT ( name,
value   ) 

Value:

EXTERN_SYMBOL DLL_SYMBOL const char * CDECL_SYMBOL \
    __VLC_SYMBOL(vlc_entry_ ## name) (void); \
    EXTERN_SYMBOL DLL_SYMBOL const char * CDECL_SYMBOL \
    __VLC_SYMBOL(vlc_entry_ ## name) (void) \
    { \
         return value; \
    }

#define VLC_METADATA_EXPORTS

 
#define vlc_module_begin (  ) 

Value:

EXTERN_SYMBOL DLL_SYMBOL int CDECL_SYMBOL                                 \
    __VLC_SYMBOL(vlc_entry) ( module_t *p_module );                           \
                                                                              \
    EXTERN_SYMBOL DLL_SYMBOL int CDECL_SYMBOL                                 \
    __VLC_SYMBOL(vlc_entry) ( module_t *p_module )                            \
    {                                                                         \
        module_config_t *p_config = NULL;                                     \
        const char *domain = NULL;                                            \
        if (vlc_module_set (p_module, VLC_MODULE_NAME,                        \
                            (const char *)(MODULE_STRING)))                   \
            goto error;                                                       \
        {                                                                     \
            module_t *p_submodule = p_module;

 
#define vlc_module_end (  ) 

Value:

}                                                                     \
        (void)p_config;                                                       \
        return VLC_SUCCESS;                                                   \
                                                                              \
    error:                                                                    \
        return VLC_EGENERIC;                                                  \
    }                                                                         \
    VLC_METADATA_EXPORTS

#define vlc_module_set ( mod,
...   )     vlc_plugin_set ((mod), NULL, __VA_ARGS__)


Enumeration Type Documentation

Enumerator:
VLC_SUBMODULE_CREATE 
VLC_CONFIG_CREATE 
VLC_MODULE_CPU_REQUIREMENT 
VLC_MODULE_SHORTCUT 
VLC_MODULE_CAPABILITY 
VLC_MODULE_SCORE 
VLC_MODULE_CB_OPEN 
VLC_MODULE_CB_CLOSE 
VLC_MODULE_NO_UNLOAD 
VLC_MODULE_NAME 
VLC_MODULE_SHORTNAME 
VLC_MODULE_DESCRIPTION 
VLC_MODULE_HELP 
VLC_CONFIG_NAME 
VLC_CONFIG_VALUE 
VLC_CONFIG_RANGE 
VLC_CONFIG_ADVANCED 
VLC_CONFIG_VOLATILE 
VLC_CONFIG_PERSISTENT 
VLC_CONFIG_RESTART 
VLC_CONFIG_PRIVATE 
VLC_CONFIG_REMOVED 
VLC_CONFIG_CAPABILITY 
VLC_CONFIG_SHORTCUT 
VLC_CONFIG_OLDNAME 
VLC_CONFIG_SAFE 
VLC_CONFIG_DESC 
VLC_CONFIG_LIST 
VLC_CONFIG_ADD_ACTION 


Function Documentation

int vlc_plugin_set ( module_t ,
module_config_t ,
int  ,
  ... 
)

References module_config_t::b_advanced, module_config_t::b_autosave, module_config_t::b_internal, module_config_t::b_removed, module_config_t::b_restart, module_config_t::b_safe, module_t::b_submodule, module_t::b_unloadable, module_config_t::b_unsaveable, CONFIG_ITEM_MODULE_CAT, CONFIG_ITEM_MODULE_LIST_CAT, default_name, module_nvalue_t::f, module_value_t::f, module_nvalue_t::i, module_value_t::i, i, module_config_t::i_action, module_t::i_cpu, module_config_t::i_list, module_t::i_score, module_config_t::i_short, module_config_t::i_type, IsConfigFloatType(), IsConfigIntegerType(), IsConfigStringType(), module_config_t::max, mdgettext(), module_config_t::min, MODULE_SHORTCUT_MAX, name, module_config_t::orig, PACKAGE, module_t::pf_activate, module_config_t::pf_callback, module_t::pf_deactivate, module_config_t::pf_update_list, module_config_t::pi_list, module_t::pp_shortcuts, module_config_t::ppf_action, module_config_t::ppsz_action_text, module_config_t::ppsz_list, module_config_t::ppsz_list_text, module_value_t::psz, module_t::psz_capability, module_t::psz_help, module_t::psz_longname, module_config_t::psz_longtext, module_config_t::psz_name, module_t::psz_object_name, module_config_t::psz_oldname, module_t::psz_shortname, module_config_t::psz_text, module_config_t::psz_type, module_config_t::saved, src, strdup(), text, module_config_t::value, vlc_timer::value, VLC_CONFIG_ADD_ACTION, VLC_CONFIG_ADVANCED, VLC_CONFIG_CAPABILITY, vlc_config_create(), VLC_CONFIG_CREATE, VLC_CONFIG_DESC, VLC_CONFIG_LIST, VLC_CONFIG_NAME, VLC_CONFIG_OLDNAME, VLC_CONFIG_PERSISTENT, VLC_CONFIG_PRIVATE, VLC_CONFIG_RANGE, VLC_CONFIG_REMOVED, VLC_CONFIG_RESTART, VLC_CONFIG_SAFE, VLC_CONFIG_SHORTCUT, VLC_CONFIG_VALUE, VLC_CONFIG_VOLATILE, VLC_MODULE_CAPABILITY, VLC_MODULE_CB_CLOSE, VLC_MODULE_CB_OPEN, VLC_MODULE_CPU_REQUIREMENT, VLC_MODULE_DESCRIPTION, VLC_MODULE_HELP, VLC_MODULE_NAME, VLC_MODULE_NO_UNLOAD, VLC_MODULE_SCORE, VLC_MODULE_SHORTCUT, VLC_MODULE_SHORTNAME, vlc_submodule_create(), and VLC_SUBMODULE_CREATE.


Generated on Sat Nov 21 08:05:27 2009 for VLC by  doxygen 1.5.6