Changeset 0669643b1c7370abeda3799588825d46527f5897

Show
Ignore:
Timestamp:
05/08/08 18:24:35 (4 months ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1210263875 +0300
git-parent:

[630076053112b47b2f6279b1e67a4031d2ca45b2]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1210262118 +0300
Message:

vlc_modules_macros.h -> vlc_plugin.h

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • include/vlc_common.h

    rd2a0694 r0669643  
    431431#endif 
    432432 
    433 #include "vlc_modules_macros.h" 
     433#include <vlc_plugin.h> 
    434434 
    435435/***************************************************************************** 
  • include/vlc_plugin.h

    r64ea683 r0669643  
    11/***************************************************************************** 
    2  * plugin.h: LibVLC plugin macros 
     2 * vlc_plugin.h : Macros used from within a module. 
    33 ***************************************************************************** 
    4  * Copyright © 2007 Rémi Denis-Courmont 
    5  * $Id$ 
     4 * Copyright (C) 2001-2006 the VideoLAN team 
     5 * Copyright © 2007-2008 Rémi Denis-Courmont 
     6 * 
     7 * Authors: Samuel Hocevar <sam@zoy.org> 
    68 * 
    79 * This program is free software; you can redistribute it and/or modify 
     
    2022 *****************************************************************************/ 
    2123 
    22 #ifndef _VLC_PLUGIN_H 
    23 # define _VLC_PLUGIN_H 1 
    24  
    25 #include <vlc_modules.h> 
    26 #include <vlc_configuration.h> 
    27  
    28 #endif 
     24#ifndef LIBVLC_MODULES_MACROS_H 
     25# define LIBVLC_MODULES_MACROS_H 1 
     26 
     27/***************************************************************************** 
     28 * If we are not within a module, assume we're in the vlc core. 
     29 *****************************************************************************/ 
     30#if !defined( __PLUGIN__ ) && !defined( __BUILTIN__ ) 
     31#   define MODULE_NAME main 
     32#endif 
     33 
     34/** 
     35 * Current plugin ABI version 
     36 */ 
     37# define MODULE_SYMBOL 0_9_0k 
     38# define MODULE_SUFFIX "__0_9_0k" 
     39 
     40/***************************************************************************** 
     41 * Add a few defines. You do not want to read this section. Really. 
     42 *****************************************************************************/ 
     43 
     44/* Explanation: 
     45 * 
     46 * if user has #defined MODULE_NAME foo, then we will need: 
     47 * #define MODULE_STRING "foo" 
     48 * 
     49 * and, if HAVE_DYNAMIC_PLUGINS is NOT set, we will also need: 
     50 * #define MODULE_FUNC( zog ) module_foo_zog 
     51 * 
     52 * this can't easily be done with the C preprocessor, thus a few ugly hacks. 
     53 */ 
     54 
     55/* I can't believe I need to do this to change « foo » to « "foo" » */ 
     56#define STRINGIFY( z )   UGLY_KLUDGE( z ) 
     57#define UGLY_KLUDGE( z ) #z 
     58/* And I need to do _this_ to change « foo bar » to « module_foo_bar » ! */ 
     59#define CONCATENATE( y, z ) CRUDE_HACK( y, z ) 
     60#define CRUDE_HACK( y, z )  y##__##z 
     61 
     62/* If the module is built-in, then we need to define foo_InitModule instead 
     63 * of InitModule. Same for Activate- and DeactivateModule. */ 
     64#ifdef __PLUGIN__ 
     65#   define E_( function )          CONCATENATE( function, MODULE_SYMBOL ) 
     66#   define __VLC_SYMBOL( symbol  ) CONCATENATE( symbol, MODULE_SYMBOL ) 
     67#else 
     68#   define E_( function )          CONCATENATE( function, MODULE_NAME ) 
     69#   define __VLC_SYMBOL( symbol )  CONCATENATE( symbol, MODULE_NAME ) 
     70#endif 
     71 
     72#if defined( __PLUGIN__ ) && ( defined( WIN32 ) || defined( UNDER_CE ) ) 
     73#   define DLL_SYMBOL              __declspec(dllexport) 
     74#   define CDECL_SYMBOL            __cdecl 
     75#elif defined (HAVE_ATTRIBUTE_VISIBILITY) 
     76#   define DLL_SYMBOL __attribute__((visibility("default"))) 
     77#   define CDECL_SYMBOL 
     78#else 
     79#   define DLL_SYMBOL 
     80#   define CDECL_SYMBOL 
     81#endif 
     82 
     83#if defined( __cplusplus ) 
     84#   define EXTERN_SYMBOL           extern "C" 
     85#else 
     86#   define EXTERN_SYMBOL 
     87#endif 
     88 
     89#define MODULE_STRING STRINGIFY( MODULE_NAME ) 
     90 
     91/* 
     92 * InitModule: this function is called once and only once, when the module 
     93 * is looked at for the first time. We get the useful data from it, for 
     94 * instance the module name, its shortcuts, its capabilities... we also create 
     95 * a copy of its config because the module can be unloaded at any time. 
     96 */ 
     97#if defined (__PLUGIN__) || defined (__BUILTIN__) 
     98EXTERN_SYMBOL DLL_SYMBOL int CDECL_SYMBOL 
     99E_(vlc_entry) ( module_t *p_module ); 
     100#endif 
     101 
     102#define vlc_module_begin( )                                                   \ 
     103    EXTERN_SYMBOL DLL_SYMBOL int CDECL_SYMBOL                                 \ 
     104    __VLC_SYMBOL(vlc_entry) ( module_t *p_module )                            \ 
     105    {                                                                         \ 
     106        module_config_t *p_config = NULL;                                     \ 
     107        if (vlc_module_set (p_module, VLC_MODULE_NAME,                        \ 
     108                            (const char *)(MODULE_STRING)))                   \ 
     109            goto error;                                                       \ 
     110        {                                                                     \ 
     111            module_t *p_submodule = p_module /* the ; gets added */ 
     112 
     113#define vlc_module_end( )                                                     \ 
     114        }                                                                     \ 
     115        (void)p_config;                                                       \ 
     116        return VLC_SUCCESS;                                                   \ 
     117                                                                              \ 
     118    error:                                                                    \ 
     119        return VLC_EGENERIC;                                                  \ 
     120    }                                                                         \ 
     121    struct _u_n_u_s_e_d_ /* the ; gets added */ 
     122 
     123 
     124#define add_submodule( ) \ 
     125    p_submodule = vlc_submodule_create( p_module ) 
     126 
     127#define add_requirement( cap ) \ 
     128    if (vlc_module_set (p_module, VLC_MODULE_CPU_REQUIREMENT, \ 
     129                        (int)(CPU_CAPABILITY_##cap))) \ 
     130        goto error 
     131 
     132#define add_shortcut( shortcut ) \ 
     133    if (vlc_module_set (p_submodule, VLC_MODULE_SHORTCUT, (int)(shortcut))) \ 
     134        goto error 
     135 
     136#define set_shortname( shortname ) \ 
     137    if (vlc_module_set (p_submodule, VLC_MODULE_SHORTNAME, \ 
     138        (const char *)(shortname))) \ 
     139        goto error 
     140 
     141#define set_description( desc ) \ 
     142    if (vlc_module_set (p_submodule, VLC_MODULE_DESCRIPTION, \ 
     143                        (const char *)(desc))) \ 
     144        goto error 
     145 
     146#define set_help( help ) \ 
     147    if (vlc_module_set (p_submodule, VLC_MODULE_HELP, (const char *)(help))) \ 
     148        goto error 
     149 
     150#define set_capability( cap, score ) \ 
     151    if (vlc_module_set (p_submodule, VLC_MODULE_CAPABILITY, (int)(cap)) \ 
     152     || vlc_module_set (p_submodule, VLC_MODULE_SCORE, (int)(score))) \ 
     153        goto error 
     154 
     155#define set_callbacks( activate, deactivate ) \ 
     156    if (vlc_module_set (p_submodule, VLC_MODULE_CB_OPEN, activate) \ 
     157     || vlc_module_set (p_submodule, VLC_MODULE_CB_CLOSE, deactivate)) \ 
     158        goto error 
     159 
     160#define linked_with_a_crap_library_which_uses_atexit( ) \ 
     161    if (vlc_module_set (p_submodule, VLC_MODULE_NO_UNLOAD)) \ 
     162        goto error 
     163 
     164VLC_EXPORT( module_t *, vlc_module_create, ( vlc_object_t * ) ); 
     165VLC_EXPORT( module_t *, vlc_submodule_create, ( module_t * ) ); 
     166VLC_EXPORT( int, vlc_module_set, (module_t *module, int propid, ...) ); 
     167VLC_EXPORT( module_config_t *, vlc_config_create, (module_t *, int type) ); 
     168VLC_EXPORT( int, vlc_config_set, (module_config_t *, int, ...) ); 
     169 
     170enum vlc_module_properties 
     171
     172    /* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI! 
     173     * Append new items at the end ONLY. */ 
     174    VLC_MODULE_CPU_REQUIREMENT, 
     175    VLC_MODULE_SHORTCUT, 
     176    VLC_MODULE_SHORTNAME, 
     177    VLC_MODULE_DESCRIPTION, 
     178    VLC_MODULE_HELP, 
     179    VLC_MODULE_CAPABILITY, 
     180    VLC_MODULE_SCORE, 
     181    VLC_MODULE_PROGRAM, 
     182    VLC_MODULE_CB_OPEN, 
     183    VLC_MODULE_CB_CLOSE, 
     184    VLC_MODULE_NO_UNLOAD, 
     185    VLC_MODULE_NAME, 
     186}; 
     187 
     188enum vlc_config_properties 
     189
     190    /* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI! 
     191     * Append new items at the end ONLY. */ 
     192 
     193    VLC_CONFIG_NAME, 
     194    /* command line name (args=const char *, vlc_callback_t) */ 
     195 
     196    VLC_CONFIG_DESC, 
     197    /* description (args=const char *, const char *) */ 
     198 
     199    VLC_CONFIG_VALUE, 
     200    /* actual value (args=int/double/const char *) */ 
     201 
     202    VLC_CONFIG_RANGE, 
     203    /* minimum value (args=int/double/const char * twice) */ 
     204 
     205    VLC_CONFIG_ADVANCED, 
     206    /* enable advanced flag (args=none) */ 
     207 
     208    VLC_CONFIG_VOLATILE, 
     209    /* don't write variable to storage (args=none) */ 
     210 
     211    VLC_CONFIG_PERSISTENT, 
     212    /* always write variable to storage (args=none) */ 
     213 
     214    VLC_CONFIG_RESTART, 
     215    /* restart required to apply value change (args=none) */ 
     216 
     217    VLC_CONFIG_PRIVATE, 
     218    /* hide from user (args=none) */ 
     219 
     220    VLC_CONFIG_REMOVED, 
     221    /* tag as no longer supported (args=none) */ 
     222 
     223    VLC_CONFIG_CAPABILITY, 
     224    /* capability for a module or list thereof (args=const char*) */ 
     225 
     226    VLC_CONFIG_SHORTCUT, 
     227    /* one-character (short) command line option name (args=char) */ 
     228 
     229    VLC_CONFIG_LIST, 
     230    /* possible values list 
     231     * (args=size_t, const <type> *, const char *const *) */ 
     232 
     233    VLC_CONFIG_ADD_ACTION, 
     234    /* add value change callback (args=vlc_callback_t, const char *) */ 
     235 
     236    VLC_CONFIG_OLDNAME, 
     237    /* former option name (args=const char *) */ 
     238 
     239    VLC_CONFIG_SAFE, 
     240    /* tag as modifiable by untrusted input item "sources" (args=none) */ 
     241}; 
     242 
     243/***************************************************************************** 
     244 * Macros used to build the configuration structure. 
     245 * 
     246 * Note that internally we support only 3 types of config data: int, float 
     247 *   and string. 
     248 *   The other types declared here just map to one of these 3 basic types but 
     249 *   have the advantage of also providing very good hints to a configuration 
     250 *   interface so as to make it more user friendly. 
     251 * The configuration structure also includes category hints. These hints can 
     252 *   provide a configuration interface with some very useful data and again 
     253 *   allow for a more user friendly interface. 
     254 *****************************************************************************/ 
     255 
     256#define add_type_inner( type ) \ 
     257    p_config = vlc_config_create (p_module, type) 
     258 
     259#define add_typedesc_inner( type, text, longtext ) \ 
     260    add_type_inner( type ); \ 
     261    vlc_config_set (p_config, VLC_CONFIG_DESC, \ 
     262                    (const char *)(text), (const char *)(longtext)) 
     263 
     264#define add_typeadv_inner( type, text, longtext, advc ) \ 
     265    add_typedesc_inner( type, text, longtext ); \ 
     266    if (advc) vlc_config_set (p_config, VLC_CONFIG_ADVANCED) 
     267 
     268#define add_typename_inner( type, name, text, longtext, advc, cb ) \ 
     269    add_typeadv_inner( type, text, longtext, advc ); \ 
     270    vlc_config_set (p_config, VLC_CONFIG_NAME, \ 
     271                    (const char *)(name), (vlc_callback_t)(cb)) 
     272 
     273#define add_string_inner( type, name, text, longtext, advc, cb, v ) \ 
     274    add_typename_inner( type, name, text, longtext, advc, cb ); \ 
     275    vlc_config_set (p_config, VLC_CONFIG_VALUE, (const char *)(v)) 
     276 
     277#define add_int_inner( type, name, text, longtext, advc, cb, v ) \ 
     278    add_typename_inner( type, name, text, longtext, advc, cb ); \ 
     279    vlc_config_set (p_config, VLC_CONFIG_VALUE, (int)(v)) 
     280 
     281 
     282#define set_category( i_id ) \ 
     283    add_type_inner( CONFIG_CATEGORY ); \ 
     284    vlc_config_set (p_config, VLC_CONFIG_VALUE, (int)(i_id)) 
     285 
     286#define set_subcategory( i_id ) \ 
     287    add_type_inner( CONFIG_SUBCATEGORY ); \ 
     288    vlc_config_set (p_config, VLC_CONFIG_VALUE, (int)(i_id)) 
     289 
     290#define set_section( text, longtext ) \ 
     291    add_typedesc_inner( CONFIG_SECTION, text, longtext ) 
     292 
     293#define add_category_hint( text, longtext, advc ) \ 
     294    add_typeadv_inner( CONFIG_HINT_CATEGORY, text, longtext, advc ) 
     295 
     296#define add_subcategory_hint( text, longtext ) \ 
     297    add_typedesc_inner( CONFIG_HINT_SUBCATEGORY, text, longtext ) 
     298 
     299#define end_subcategory_hint \ 
     300    add_type_inner( CONFIG_HINT_SUBCATEGORY_END ) 
     301 
     302#define add_usage_hint( text ) \ 
     303    add_typedesc_inner( CONFIG_HINT_USAGE, text, NULL ) 
     304 
     305#define add_string( name, value, p_callback, text, longtext, advc ) \ 
     306    add_string_inner( CONFIG_ITEM_STRING, name, text, longtext, advc, p_callback, value ) 
     307 
     308#define add_password( name, value, p_callback, text, longtext, advc ) \ 
     309    add_string_inner( CONFIG_ITEM_PASSWORD, name, text, longtext, advc, p_callback, value ) 
     310 
     311#define add_file( name, value, p_callback, text, longtext, advc ) \ 
     312    add_string_inner( CONFIG_ITEM_FILE, name, text, longtext, advc, p_callback, value ) 
     313 
     314#define add_directory( name, value, p_callback, text, longtext, advc ) \ 
     315    add_string_inner( CONFIG_ITEM_DIRECTORY, name, text, longtext, advc, p_callback, value ) 
     316 
     317#define add_module( name, psz_caps, value, p_callback, text, longtext, advc ) \ 
     318    add_string_inner( CONFIG_ITEM_MODULE, name, text, longtext, advc, p_callback, value ); \ 
     319    vlc_config_set (p_config, VLC_CONFIG_CAPABILITY, (const char *)(psz_caps)) 
     320 
     321#define add_module_list( name, psz_caps, value, p_callback, text, longtext, advc ) \ 
     322    add_string_inner( CONFIG_ITEM_MODULE_LIST, name, text, longtext, advc, p_callback, value ); \ 
     323    vlc_config_set (p_config, VLC_CONFIG_CAPABILITY, (const char *)(psz_caps)) 
     324 
     325#ifndef __PLUGIN__ 
     326#define add_module_cat( name, i_subcategory, value, p_callback, text, longtext, advc ) \ 
     327    add_string_inner( CONFIG_ITEM_MODULE_CAT, name, text, longtext, advc, p_callback, value ); \ 
     328    p_config->min.i = i_subcategory /* gruik */ 
     329 
     330#define add_module_list_cat( name, i_subcategory, value, p_callback, text, longtext, advc ) \ 
     331    add_string_inner( CONFIG_ITEM_MODULE_LIST_CAT, name, text, longtext, advc, p_callback, value ); \ 
     332    p_config->min.i = i_subcategory /* gruik */ 
     333#endif 
     334 
     335#define add_integer( name, value, p_callback, text, longtext, advc ) \ 
     336    add_int_inner( CONFIG_ITEM_INTEGER, name, text, longtext, advc, p_callback, value ) 
     337 
     338#define add_key( name, value, p_callback, text, longtext, advc ) \ 
     339    add_int_inner( CONFIG_ITEM_KEY, name, text, longtext, advc, p_callback, value ) 
     340 
     341#define add_integer_with_range( name, value, i_min, i_max, p_callback, text, longtext, advc ) \ 
     342    add_integer( name, value, p_callback, text, longtext, advc ); \ 
     343    change_integer_range( i_min, i_max ) 
     344 
     345#define add_float( name, v, p_callback, text, longtext, advc ) \ 
     346    add_typename_inner( CONFIG_ITEM_FLOAT, name, text, longtext, advc, p_callback ); \ 
     347    vlc_config_set (p_config, VLC_CONFIG_VALUE, (double)(v)) 
     348 
     349#define add_float_with_range( name, value, f_min, f_max, p_callback, text, longtext, advc ) \ 
     350    add_float( name, value, p_callback, text, longtext, advc ); \ 
     351    change_float_range( f_min, f_max ) 
     352 
     353#define add_bool( name, v, p_callback, text, longtext, advc ) \ 
     354    add_typename_inner( CONFIG_ITEM_BOOL, name, text, longtext, advc, p_callback ); \ 
     355    if (v) vlc_config_set (p_config, VLC_CONFIG_VALUE, (int)true) 
     356 
     357/* For removed option */ 
     358#define add_obsolete_inner( name, type ) \ 
     359    add_type_inner( type ); \ 
     360    vlc_config_set (p_config, VLC_CONFIG_NAME, \ 
     361                    (const char *)(name), (vlc_callback_t)NULL); \ 
     362    vlc_config_set (p_config, VLC_CONFIG_REMOVED) 
     363 
     364#define add_obsolete_bool( name ) \ 
     365        add_obsolete_inner( name, CONFIG_ITEM_BOOL ) 
     366 
     367#define add_obsolete_integer( name ) \ 
     368        add_obsolete_inner( name, CONFIG_ITEM_INTEGER ) 
     369 
     370#define add_obsolete_float( name ) \ 
     371        add_obsolete_inner( name, CONFIG_ITEM_FLOAT ) 
     372 
     373#define add_obsolete_string( name ) \ 
     374        add_obsolete_inner( name, CONFIG_ITEM_STRING ) 
     375 
     376/* Modifier macros for the config options (used for fine tuning) */ 
     377 
     378#define add_deprecated_alias( name ) \ 
     379    vlc_config_set (p_config, VLC_CONFIG_OLDNAME, (const char *)(name)) 
     380 
     381#define change_short( ch ) \ 
     382    vlc_config_set (p_config, VLC_CONFIG_SHORTCUT, (int)(ch)) 
     383 
     384#define change_string_list( list, list_text, list_update_func ) \ 
     385    vlc_config_set (p_config, VLC_CONFIG_LIST, \ 
     386                    (size_t)(sizeof (list) / sizeof (char *)), \ 
     387                    (const char *const *)(list), \ 
     388                    (const char *const *)(list_text), \ 
     389                    list_update_func) 
     390 
     391#define change_integer_list( list, list_text, list_update_func ) \ 
     392    vlc_config_set (p_config, VLC_CONFIG_LIST, \ 
     393                    (size_t)(sizeof (list) / sizeof (int)), \ 
     394                    (const int *)(list), \ 
     395                    (const char *const *)(list_text), \ 
     396                    list_update_func) 
     397 
     398#define change_float_list( list, list_text, list_update_func ) \ 
     399    vlc_config_set (p_config, VLC_CONFIG_LIST, \ 
     400                    (size_t)(sizeof (list) / sizeof (float)), \ 
     401                    (const float *)(list), \ 
     402                    (const char *const *)(list_text), \ 
     403                    list_update_func) 
     404 
     405#define change_integer_range( minv, maxv ) \ 
     406    vlc_config_set (p_config, VLC_CONFIG_RANGE, (int)(minv), (int)(maxv)) 
     407 
     408#define change_float_range( minv, maxv ) \ 
     409    vlc_config_set (p_config, VLC_CONFIG_RANGE, \ 
     410                    (double)(minv), (double)(maxv)) 
     411 
     412#define change_action_add( pf_action, text ) \ 
     413    vlc_config_set (p_config, VLC_CONFIG_ADD_ACTION, \ 
     414                    (vlc_callback_t)(pf_action), (const char *)(text)) 
     415 
     416#define change_internal() \ 
     417    vlc_config_set (p_config, VLC_CONFIG_PRIVATE) 
     418 
     419#define change_need_restart() \ 
     420    vlc_config_set (p_config, VLC_CONFIG_RESTART) 
     421 
     422#define change_autosave() \ 
     423    vlc_config_set (p_config, VLC_CONFIG_PERSISTENT) 
     424 
     425#define change_unsaveable() \ 
     426    vlc_config_set (p_config, VLC_CONFIG_VOLATILE) 
     427 
     428#define change_unsafe() (void)0 /* no-op */ 
     429 
     430#define change_safe() \ 
     431    vlc_config_set (p_config, VLC_CONFIG_SAFE) 
     432 
     433#endif 
  • src/Makefile.am

    rce7d502 r0669643  
    4444    ../include/vlc_messages.h \ 
    4545    ../include/vlc_modules.h \ 
    46     ../include/vlc_modules_macros.h \ 
    4746    ../include/vlc_mtime.h \ 
    4847    ../include/vlc_objects.h \ 
     48    ../include/vlc_plugin.h \ 
    4949    ../include/vlc_threads.h \ 
    5050    ../include/vlc_threads_funcs.h \ 
     
    8787    ../include/vlc_pgpkey.h \ 
    8888    ../include/vlc_playlist.h \ 
    89     ../include/vlc_plugin.h \ 
    9089    ../include/vlc_rand.h \ 
    9190    ../include/vlc_services_discovery.h \ 
     
    172171nodist_libvlc_la_SOURCES = misc/revision.c 
    173172libvlc_la_CFLAGS = `$(VLC_CONFIG) --cflags libvlc` \ 
     173    -DMODULE_STRING=\"main\" \ 
    174174    -DLOCALEDIR=\"$(localedir)\" \ 
    175175    -DSYSCONFDIR=\"$(sysconfdir)\" \ 
     
    191191libvlc_control_la_SOURCES = $(SOURCES_libvlc_control) 
    192192libvlc_control_la_LIBADD = libvlc.la 
    193 libvlc_control_la_CFLAGS = `$(VLC_CONFIG) --cflags libvlc` 
     193libvlc_control_la_CFLAGS = `$(VLC_CONFIG) --cflags libvlc` \ 
     194    -DMODULE_STRING=\"control\" 
    194195libvlc_control_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 
    195196if HAVE_COMPILER_EXPORT 
  • src/libvlc-module.c

    r8d89d74 r0669643  
    3636 
    3737#include <vlc/vlc.h> 
     38#include <vlc_plugin.h> 
    3839#include "libvlc.h" 
    3940 
  • src/modules/entry.c

    rd2a0694 r0669643  
    2525 
    2626#include <vlc/vlc.h> 
     27#include <vlc_plugin.h> 
    2728#include <assert.h> 
    2829#include <stdarg.h> 
  • src/modules/modules.c

    rf0f97b4 r0669643  
    3030 
    3131#include <vlc/vlc.h> 
     32#include <vlc_plugin.h> 
    3233#include "libvlc.h" 
    3334 
  • src/modules/os.c

    re769bca r0669643  
    3030 
    3131#include <vlc/vlc.h> 
     32#include <vlc_plugin.h> /* MODULE_SUFFIX */ 
    3233#include "libvlc.h" 
    3334#include "modules.h" 
     
    260261# ifdef NDEBUG 
    261262    dlclose( handle ); 
     263# else 
     264    (void)handle; 
    262265# endif 
    263266 
  • vlc-config.in.in

    r1be45fb r0669643  
    248248# 
    249249if test -n "${module}"; then 
    250   cppflags="${cppflags} -DMODULE_NAME=${module} -DMODULE_NAME_IS_${module}
     250  cppflags="${cppflags} -DMODULE_NAME=${module} -DMODULE_NAME_IS_${module} -DMODULE_STRING=\"${module}\"
    251251fi 
    252252